Hallo zusammen,
wir müssen ein Programm mit einer Simulation zu einer Regressions-Fragestellung schreiben. Ich nutze Stata 16 und habe folgendes Do-File geschrieben:
*Generieren der Daten
set seed 12345
*Daten-Programm
cap program drop data_gen
program define data_gen
syntax, N(integer) missing(real) corr(real) rclass
clear
set obs `N'
// id für jede Reihe
gen id = _n
// Alter generieren
gen age = round(rnormal(40,10))
// Bildungsniveau generieren
gen edu = rbinomial(1,.6)
replace edu = 1 if edu == 0
replace edu = 0 if edu == 1
// Arbeitslosigkeit generieren
gen unemployed = rbinomial(1,.2)
replace unemployed = 1 if unemployed == 0
replace unemployed = 0 if unemployed == 1
// Einkommen generieren
gen income = round(rnormal(50000,10000))
// Missings generieren
forvalues i = 1/`N' {
if (runiform() < `missing') {
replace unemployed = . if _n == `i'
}
// Fehlerkorrelation generieren
if `corr' != 0 {
reshape long income, i(edu) j(age)
gen error = rnormal()
gen correlated_error = error + `corr'*error[_n-1]
replace income = correlated_error + income
reshape wide income,
junk(error correlated_error)
}
end
*Ausführen des Programms
local N = 1000
local missing = .1
local corr = .05
data_gen, N(`N') missing(`missing') corr(`corr')
*Simulationsprogramm
set seed 6789
program define sim_reg
global reps = 250
// Erstellen der Daten
data_gen, N(`N') missing(`missing') corr(`corr')
// Regression durchführen
reg unemployed age edu
// Ergebnisse speichern
forvalues i = 1/`reps' {
data_gen, N(`N') missing(`missing') corr(`corr')
reg unemployed age edu, estimates store(results`i', replace)
}
// Ergebnisse zusammenfassen
matrix results = (1/`reps')*results1
forvalues i = 2/`reps' {
data_gen, N(`N') missing(`missing') corr(`corr')
reg unemployed age edu, estimates store(results`i', replace)
matrix results = results + (1/`reps')*results`i'
}
// Ergebnisse ausgeben
matrix list results
end
*Simulationen ausführen
sim_reg, N(1000) missing(.1) corr(.05)
Kann jemand mir sagen, warum ich nach
*Ausführen des Programms
local N = 1000
local missing = .1
local corr = .05
data_gen, N(`N') missing(`missing') corr(`corr')
immer die Fehlermeldung
option n() required
r(198);
erhalte? Ich habe wirklich schon alle ausprobiert und verstehe es einfach nicht
Danke für jede Hilfe!