Hallo,
ich hab mal eine Frage bezüglich der Bildung von Dummy Variablen.
Ich will eine multiple Regression durchführen, und damit das funktioniert muss ich eine Nominalskalierte Variable in eine metrische umwandeln....so weit so gut, ABER: Wie geht das??
Meine Variable ist Religionsangehörigkeit, mit den Ausprägungen:
-3 = nicht valide
-2 = trifft nicht zu
-1 = keine Angabe
1 = katholisch
2 = evangelisch
3 = andere christliche
4 = Islamische
5 = andere Religionsgem.
6 = Konfessionslos
Ich bin echt ziemlich planlos, und im Internet finde ich nichts was mich wirklich weiter bringt...
Aber soweit ich weiß, muss ich auf Transformieren/Umkodieren in andere variable...aber danch bin ich mit meinem Latein schon am Ende!
Brauch dringend hilfe, sonst scheitert alles an der Bildung dieser DummyVariablen!!
DAnke schonmal!
Bildung von Dummy Variablen
-
- Beiträge: 2391
- Registriert: 06.02.2011, 19:58
re
Wie sieht denn deine Lösung aus?
Hier die einfachere Lösung:
Code: Alles auswählen
*---------------------------Variante 2 ------------------------------------------------*
*
* Dummy-Coding
* Dr. Frank Gaeth
* www.frag-einen-statistiker.de
*
*
*------------------- Example Data ---------------------------------------------.
input program.
loop a =1 to 1000 by 1.
end case.
end loop.
end file.
end input program.
COMPUTE v=RV.UNIFORM(1,5).
COMPUTE variable=TRUNC(v).
EXECUTE .
DELETE VARIABLES a v.
EXECUTE .
*--------------------Begin Python (here starts the script)---------------------------------------.
GET FILE='C:\user\frank\frag-einen-statistiker\frag_einen_statistiker\S3000.SAV'.
BEGIN PROGRAM.
import spss, spssaux
variable="v179" # <-- put in the variable name here!
#variable="variable"
laufvariable="NBDPJLDAEHJFAOCHDGDFKFIL54848184463901c2dd25340dfcdbdf39"
dummy="dummy_" + variable +"_"
spss.Submit(r"""AUTORECODE VARIABLES="""+variable+""" /INTO """+laufvariable+""" .""")
n = len(spssaux.VariableDict([laufvariable])[0].ValueLabels)
spss.Submit(r"""
VECTOR """+dummy+"""("""+str(n)+""").
COMPUTE """+dummy+"""("""+laufvariable+""")=1.
EXECUTE .
""")
spss.Submit(r"""
RECODE """+dummy+str(1)+""" to """+dummy+str(n)+""" (MISSING=0).
EXECUTE.
""")
mydict = spssaux.VariableDict([laufvariable])[0].ValueLabels
for code, label in mydict.items():
befehl = "VARIABLE LABELS "+dummy+code+" ' "+label+" '."
print befehl
spss.Submit(befehl)
spss.Submit(r"""DELETE VARIABLES """+laufvariable+""".""")
END PROGRAM.
drfg2008