Dummy-Kodierung

Fragen und Diskussionen rund um die Arbeit mit SPSS. Für allgemeine Statistik-Themen, die nicht mit SPSS zusammenhängen, bitte das Statistik-Forum nutzen.
Antworten
Kassandra987
Beiträge: 3
Registriert: 06.03.2012, 19:12

Dummy-Kodierung

Beitrag von Kassandra987 »

Hallo! Ich hoffe ihr könnt mir helfen.

In einer Regressionsanalyse untersuche ich den Einfluss von Krankheiten (UV) auf Depressionen (AV).

Dabei soll ich die Krankheiten als Dummys kodieren.

Es gibt Krankheit A und Krankheit B, insgesamt sind also vier Kombinationen (Gruppen) möglichen, die auf AV einwirken können:

1. A: nein / B: nein
2. A: nein / B: ja
3. A: ja / B: nein
4. A: ja/ B: ja

Meine Frage ist nun, ob ich jede dieser Gruppen in 3 Dummys kodiere (wegen k-1) , ein Dummy somit zwei Informationen/ Merkmale (über Krankheit A und B) trägt.


Oder ob ich für Krankheit A und Krankheit B einen Dummy erstelle
Dummy 1= Krankheit A nein/ja (0/1)
und die Dummys auch untereinander kombinieren kann ???

Zum zweiten möchte ich wissen ob es eine direkte Dummy Syntax gibt oder ob ich das über Transformieren und Umkodieren machen muss ?

Ich bin über jede Nachricht sehr dankbar!

Lg, Kassandra
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

Hier mein Skript. Voraussetzung: Installation der Python Essentials

Code: Alles auswählen

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.
SPSS bietet auch eigene:

Code: Alles auswählen

SPSSINC CREATE DUMMIES VARIABLE=Variable
ROOTNAME = Variable_dummy
/OPTIONS ORDER=A USEVALUELABELS=YES.
Die Variable sollte vorher autorecodiert worden sein. Macht sich besser.
drfg2008
Kassandra987
Beiträge: 3
Registriert: 06.03.2012, 19:12

Beitrag von Kassandra987 »

dankeschön! das sieht aber sehr kompliziert aus. bin bis auf ein paar einfache befehle auch überhaupt nicht in spss eingearbeitet.
ist es inhaltlich und für die weiteren Rechnungen falsch, wenn ich einfach neue Varibalen erstelle?

meine kodierung sieht gerade so aus: (D=Dummy)(Kategorie= Krankheiten)

D1 D2 D3

*Kategorie 1 0 0 0
*Kategorie 2 0 0 1
*Kategorie 3 0 1 0
*Kategorie 4 1 0 0

kodiert habe ich mit z.B. mit
RECODE Kategorie ... INTO Dummy_1.
RECODE Kategorie ... INTO Dummy_2.

bin über jede Hilfe sehr dankbar!
Anzeige:Statistik und SPSS: Die besten Bücher
Als Buch oder E-Book - Jetzt bestellen
spss datenanalyse
SPSS - Moderne Datenanalyse - Jetzt bestellen!
statistik datenanalyse
Statistik - Der Weg zur Datenanalyse - Jetzt bestellen!
Antworten