Doppelte Schleife

Fragen zu Stata Syntax und Do-Files.

Doppelte Schleife

Beitragvon dilling » Do 7. Feb 2013, 22:23

Hallo,

ich möchte versch. Werte Winsorieren, jedoch nach Jahren gruppiert.
Für einen Wert bekomme ich die Lösung mit einer Schleife. Wenn ich es aber gleichzeitig mit mehreren Variablen (KZ1win KZ2win etc.) machen möchte wie unten beschrieben bekomme ich "no observations" als Fehler zurück..

foreach j in KZ1win KZ2win KZ3win KZ4win KZ5win {
forvalues i = 1980/2011 {
winsor `j' if year == `i', p(0.05) high gen(temp)
replace `j' = temp if year == `i'
drop temp
}
}

(die variablen enthalten alle Werte oder .)

Weiss jemand was schiefläuft?

VG
dilling
 
Beiträge: 15
Registriert: Do 7. Feb 2013, 22:19
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Doppelte Schleife

Beitragvon daniel » Do 7. Feb 2013, 22:55

Die Fehlermeldung impliziert, dass es in mindestens eniem Jahr für midestens eine Variable keine gültigen Fälle (i.e. != .) gibt. -set trace on- könnte Aufschluss bringen, um welche Kombination von Jahr und Variable es sich handelt.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Doppelte Schleife

Beitragvon dilling » Fr 8. Feb 2013, 12:27

Danke für die Antwort, war schonmal hilfreich. Ich habe jetzt gefunden woran er sich stört:

Die Variable KZ3 erhält für jedes Jahr mindestens 10 Werte (und sehr viele ".")
Bei den anderen Variablen sieht es ähnlich aus, jedoch rechnet Stata dort korrekt & rechnet mit den wenigen "echten" Werten die neuen, winsorierten Werte aus.

Ich verstehe echt das Problem nicht. Es sieht für mich eher wie ein Bug von Stata/ der winsor Funktion aus..

Oder gibts noch ne andere Idee? :)
dilling
 
Beiträge: 15
Registriert: Do 7. Feb 2013, 22:19
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Doppelte Schleife

Beitragvon dilling » Fr 8. Feb 2013, 12:28

ps: er gibt nur bei KZ3 den Error "0 values to be Winsorized aus" wenn ich die Variablen KZ1 etc.. einzeln durchlaufen lasse
dilling
 
Beiträge: 15
Registriert: Do 7. Feb 2013, 22:19
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Doppelte Schleife

Beitragvon daniel » Fr 8. Feb 2013, 13:41

Kannst Du ein reproduzierbares Beispiel erstellen? Der code von -winsor- ist relativ kurz und sieht nicht sehr anfällig für bugs aus.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Doppelte Schleife

Beitragvon dilling » Fr 8. Feb 2013, 14:55

Habe eben die Lösung selbst gefunden: Für winsorize muss ansch. abhängig vom Percentil eine gewisse Mindestanzahl von Werten vorhanden sein & für z.b. p(0.01) sind 15 Werte zu wenig..
dilling
 
Beiträge: 15
Registriert: Do 7. Feb 2013, 22:19
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Stata Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron