Dummy-Variablen und Missings

Allgemeine Fragen rund um Statistik mit Stata.

Dummy-Variablen und Missings

Beitragvon Susi » Do 1. Nov 2012, 22:07

Hallo ihr Lieben,

bei meinen Dummy-Variablen ist mir aufgeallen, dass alle Missings als 1 ausgewiesen werden.
D.h. ich habe eine Variable1 mit verschiedenen Werten.
Z.B. Var1
1
14
4,98
. (missing)

und meine Dummy-Varibale = 0 if Var1 > 5,5 & Var1 < .

dummy-Var
1
0
1
1 (eigentlich missing)

Wie bekomme ich es hin, dass die Missing-Werte auch weiterhin Missing also ein Punkt bleiben?
Sonst wird das Ergebnis meiner Regression doch verfälscht oder?

Vielen Dank

Liebe Grüße
Susi
Susi
 
Beiträge: 7
Registriert: Do 1. Nov 2012, 11:18
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Dummy-Variablen und Missings

Beitragvon daniel » Do 1. Nov 2012, 23:04

Dein code tut nicht das, was Du tun willst. Ich versuche zu erklären. Du hast vermutlich etwas in der Richtung

Code: Alles auswählen
g byte foo = 0 if var1 > 5.5 & var1 < .


eingegeben? Was Stata nun tut, ist für jeden Wert in <var2> prüfen, ob er größer ist als 5.5* und kleiner als . (i.e. missing). Ist diese Bedingung erfüllt, bekommt die neue Variable <foo> den Wert 0, sonst einen fehlenden Wert. Die -if- Bedingung gibt also an, für welche Fälle (i.e. Zeilen) die Operation angewendet wird. Alle Fälle, die durch die -if- Bedingung ausgeschlossen werden, bekommen einen fehlenden Wert. Was Du vermutlich wolltest ist

Code: Alles auswählen
g byte foo = (var1 <= 5.5) if !mi(var1)


Der Ausdruck(im Stata manual exp)/die Bedingung (var1 <= 5.5) kann "wahr" oder "falsch" sein. Stata versteht unter "falsch" den Wert 0, unter "wahr" den Wert 1**. Für jeden Fall/Wert in <var1>, der größer ist als 5.5 wird also der Wert 0 in der neuen Variable <foo> zurückgegeben, für alle anderen Fälle 1. Die Prüfung der Bedingung erfolgt aber nur für diejenigen Fälle, die nicht durch die -if- Bedingung ausgeschlossen werden. Die Fälle, in denen <var1> einen fehlenden Wert aufweist, bekommen in <foo> ebenfalls einen fehlenden Wert. Ob Du -var1 < .- oder -!mi(var1)- schreibst ist eine reine Stilfrage.***


* Streng genommen müsste man hier noch nach dem Speichertyp von <var1> ("float" oder "double") fragen. Das ist hier aber vermutlich zu verwirrend/weitführend, bzw. vermutlich nicht von Bedeutung. Nur als Hinweis, da Du früher oder später über dieses Phänomen stolpern wirst, spiel bei Gelegenheit mal mit folgendem code

Code: Alles auswählen
clear
se obs 1
g foo = 2.3
cou if (foo == 2.3)
g double bar = 2.3
cou if (bar == 2.3)
cou if (foo == float(2.3))


Das Stichwort, nach dem Du (im Stata blog) suchen willst, um eine Erklärung zu bekommen lautet: precision.


** Das stimmt so nicht ganz. Stata unterscheidet 0 ("falsch") von allen anderen Werten ("wahr"). Das gilt für Werte, die bereits vorhanden sind (z.B. das outcome in einer logistischen Regression). Soll Stata dagegen eine logischen Bedingung prüfen, wird entweder 0 ("falsch") oder 1 ("wahr") zurückgegeben.

*** Das ist eine Vermutung. Ich habe noch nie die Zeit gestoppt. Es kann sein, dass die Funktion -mi()- einige Millisekunden langsamer ist als die Bedingung -< .-.
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: Dummy-Variablen und Missings

Beitragvon Susi » Fr 2. Nov 2012, 21:24

Vielen vielen Dank Daniel. Du kennst dich wirklich sehr gut aus mit Stata.

LG
Susi
Susi
 
Beiträge: 7
Registriert: Do 1. Nov 2012, 11:18
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Statistik allgemein

Wer ist online?

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

cron