variable dichotomisieren
-
- Beiträge: 39
- Registriert: 29.03.2006, 12:05
variable dichotomisieren
Hallo,
ich möchte eine variable, die nominal skaliert ist, also in diesem fall von 1=a
bis 9=i, dichotomisieren.
Wie gehe ich da vor (wahrscheinlich irgendwie rekodieren; aber wie)?
Mit besten Grüßen
spearmint
ich möchte eine variable, die nominal skaliert ist, also in diesem fall von 1=a
bis 9=i, dichotomisieren.
Wie gehe ich da vor (wahrscheinlich irgendwie rekodieren; aber wie)?
Mit besten Grüßen
spearmint
-
- Beiträge: 35
- Registriert: 27.01.2006, 13:31
Moinsen.
Also, Nominalskalen dichotomisiert man eigentlich nicht, weil sie nur Kategorien als Ausprägungen haben (-die Werte können dabei völlig willkürlich verteilt werden-), die logischerweise in keine (mathematisch) sinnvolle Reihenfolge (im Sinne von "größer" -> "kleiner", "mehr" -> "weniger ...) gebracht werden können.
Wahrscheinlich möchtest du aber eine Variable mit zwei Ausprägungen, in denen jeweils die einzelnen Kategorien deiner ursprünglichen Variablenausprägungen (a, b, c, ...) zusammengefasst sind. Das kann aber nur aus inhaltlichen Gründen geschehen.
Wenn du also aufgrund deiner Überlegungen die Variablenausprägungen a, c, und e in einer Kategorie haben möchtest, weil sie in irgendeiner Form zusammen gehören, und die Fälle mit den Ausprägungen b, d und f der anderen Kategorie zuordnen möchtest, kannst du die folgende Syntax verwenden:
recode [VARIABLENNAME] (1, 3, 5 =0)(2, 4, 6=1) into [NEUER VAR-NAME].
[value labels.....]
[variable label...]
Die Zahlen sind dabei die den Variablenausprägungen zugeordneten Werte.
Alternativ kannst du das auch mit dem compute-Befehl machen, aber mit recode geht es genauso.
Grüße,
PearsonsR
Also, Nominalskalen dichotomisiert man eigentlich nicht, weil sie nur Kategorien als Ausprägungen haben (-die Werte können dabei völlig willkürlich verteilt werden-), die logischerweise in keine (mathematisch) sinnvolle Reihenfolge (im Sinne von "größer" -> "kleiner", "mehr" -> "weniger ...) gebracht werden können.
Wahrscheinlich möchtest du aber eine Variable mit zwei Ausprägungen, in denen jeweils die einzelnen Kategorien deiner ursprünglichen Variablenausprägungen (a, b, c, ...) zusammengefasst sind. Das kann aber nur aus inhaltlichen Gründen geschehen.
Wenn du also aufgrund deiner Überlegungen die Variablenausprägungen a, c, und e in einer Kategorie haben möchtest, weil sie in irgendeiner Form zusammen gehören, und die Fälle mit den Ausprägungen b, d und f der anderen Kategorie zuordnen möchtest, kannst du die folgende Syntax verwenden:
recode [VARIABLENNAME] (1, 3, 5 =0)(2, 4, 6=1) into [NEUER VAR-NAME].
[value labels.....]
[variable label...]
Die Zahlen sind dabei die den Variablenausprägungen zugeordneten Werte.
Alternativ kannst du das auch mit dem compute-Befehl machen, aber mit recode geht es genauso.
Grüße,
PearsonsR
-
- Beiträge: 39
- Registriert: 29.03.2006, 12:05
Hallo PearsonR,
danke für die schnelle Antwort(und Respekt vor deinen Fachkenntnissen).
..
Ich dachte, man kann eine eigentlich nominal skalierte Variable in mehrere Dummy-Variablen aufspalten.
Also in meinem Fall geht es um eine Variable, die die Hauptinfo-Quelle für Gesundheitsfragen darstellt. Unter Wertelabels steht da sowas wie:
1= Internet
2= Bücher
3= Arzt
...
10= andere
11= weiß nicht
Kann man die nicht irgendwie auf folgende Art codieren: Internet? o=nein, 1=ja ; Bücher? 0=nein. 1=ja?
Beste Grüße,
Spearmint
danke für die schnelle Antwort(und Respekt vor deinen Fachkenntnissen).
..
Ich dachte, man kann eine eigentlich nominal skalierte Variable in mehrere Dummy-Variablen aufspalten.
Also in meinem Fall geht es um eine Variable, die die Hauptinfo-Quelle für Gesundheitsfragen darstellt. Unter Wertelabels steht da sowas wie:
1= Internet
2= Bücher
3= Arzt
...
10= andere
11= weiß nicht
Kann man die nicht irgendwie auf folgende Art codieren: Internet? o=nein, 1=ja ; Bücher? 0=nein. 1=ja?
Beste Grüße,
Spearmint
-
- Beiträge: 39
- Registriert: 29.03.2006, 12:05
Hallo Gregor,
bei der Frage handelt es sich um eine Mehrfachantwort-Frage. Die lautet (sinngemäß), welche Informationsquellen für Gesundheitsfragen man hauptsächlich nutzt. Als Antwortmöglichkeiten gibt es die vorher erwähnten.
Ich möchte die einzelnen Fälle in Gruppen aufteilen(nach den vorher erwähnten Antwortmöglichkeiten) und gerennt untersuchen. Also wer nutzt beispielsweise das Internet, was hat die Person für einen Bildungsabschluss, welcher Einkommensklasse gehört er an usw. Demographische Variablen eben.
Alle Klarheiten beseitigt ?
bei der Frage handelt es sich um eine Mehrfachantwort-Frage. Die lautet (sinngemäß), welche Informationsquellen für Gesundheitsfragen man hauptsächlich nutzt. Als Antwortmöglichkeiten gibt es die vorher erwähnten.
Ich möchte die einzelnen Fälle in Gruppen aufteilen(nach den vorher erwähnten Antwortmöglichkeiten) und gerennt untersuchen. Also wer nutzt beispielsweise das Internet, was hat die Person für einen Bildungsabschluss, welcher Einkommensklasse gehört er an usw. Demographische Variablen eben.
Alle Klarheiten beseitigt ?
-
- Moderator
- Beiträge: 304
- Registriert: 17.01.2006, 19:20
Hallo spearmint,
Was Du machen möchtest ist selbverständlich möglich. Um bei Deinem Beispiel zu bleiben:
Du transformiertst also einen bestimmten Wert der alten Variable in eine neue Variable.
"(2=1)" bedeutet dann, dass alle Fälle der alten Variablen mit dem Wert "2" (für Buecher) den Wert "1" (für ja oder ausgewählt) in der neuen Variablen zugewiesen bekommen. Alle anderen Fälle in der alten Variablen, die Bücher nicht angegeben haben bekommen den Wert "0" in der neuen Variablen (ELSE=0).
Und so gehts dann immer weiter (3=1), (4=1) usw.
Mit "Variable Labels" gibst Du jeder Variablen dann einen Namen.
Das "Execute." ganz am Ende nicht vergessen.
Eine Anmerkung noch: Wenn die Variable so aussieht, wie Du es in Deinem Beispiel schilderst, kann diese keine Mehrfachantworten darstellen. Bei einem Mehrfachantworten-Set arbeitet man ja normalerweise mit Sets von dichotomen Variablen, also genau so wie Du es auch haben möchtest.
Eigentlich hätten die Variablen ja schon zu Beginn so kodiert sein müssen, um Mehrfachantworten überhaupt zuzulassen.
Eine weitere Möglichkeit wäre die "kategoriale Methode" der Mehrfachantworten: Dabei hast Du im Prinzip fünfmal die "selbe" Variable (nur mit anderem Namen), wobei sich V1 auf die erste Nennung, V2 auf die zweite Nennung bezieht usw. Sollten die Daten nach diesem Schema kodiert sein, musst Du natürlich für alle Variablen einen "Recode" nach obigem Schema durchführen.
Was Du machen möchtest ist selbverständlich möglich. Um bei Deinem Beispiel zu bleiben:
Code: Alles auswählen
RECODE
altevariable
(1=1) (ELSE=0) INTO NeueVariable1 .
VARIABLE LABELS NeueVariable1 'internet'.
RECODE
altevariable
(2=1) (ELSE=0) INTO NeueVariable2 .
VARIABLE LABELS NeueVariable2 'buecher'
usw...
Execute.
"(2=1)" bedeutet dann, dass alle Fälle der alten Variablen mit dem Wert "2" (für Buecher) den Wert "1" (für ja oder ausgewählt) in der neuen Variablen zugewiesen bekommen. Alle anderen Fälle in der alten Variablen, die Bücher nicht angegeben haben bekommen den Wert "0" in der neuen Variablen (ELSE=0).
Und so gehts dann immer weiter (3=1), (4=1) usw.
Mit "Variable Labels" gibst Du jeder Variablen dann einen Namen.
Das "Execute." ganz am Ende nicht vergessen.
Eine Anmerkung noch: Wenn die Variable so aussieht, wie Du es in Deinem Beispiel schilderst, kann diese keine Mehrfachantworten darstellen. Bei einem Mehrfachantworten-Set arbeitet man ja normalerweise mit Sets von dichotomen Variablen, also genau so wie Du es auch haben möchtest.
Eigentlich hätten die Variablen ja schon zu Beginn so kodiert sein müssen, um Mehrfachantworten überhaupt zuzulassen.
Eine weitere Möglichkeit wäre die "kategoriale Methode" der Mehrfachantworten: Dabei hast Du im Prinzip fünfmal die "selbe" Variable (nur mit anderem Namen), wobei sich V1 auf die erste Nennung, V2 auf die zweite Nennung bezieht usw. Sollten die Daten nach diesem Schema kodiert sein, musst Du natürlich für alle Variablen einen "Recode" nach obigem Schema durchführen.
-
- Beiträge: 39
- Registriert: 29.03.2006, 12:05
-
- Moderator
- Beiträge: 304
- Registriert: 17.01.2006, 19:20
Was genau meinst Du damit? Schau evtl. mal nach, dass die Variable auch als numerischer Typ und nicht als string definiert ist. Wenn das gegeben ist kannst Du noch den Wertebereich ("0" und "1") definieren und dann sollten eigentlich keine Probleme mehr auftauchen.Die Umkodierung hat geklappt, aber wieso kann ich die "neuen" Variablen nicht wie dichotome Variablen behandeln?
-
- Beiträge: 39
- Registriert: 29.03.2006, 12:05
hallo guido.
"Eine Anmerkung noch: Wenn die Variable so aussieht, wie Du es in Deinem Beispiel schilderst, kann diese keine Mehrfachantworten darstellen. Bei einem Mehrfachantworten-Set arbeitet man ja normalerweise mit Sets von dichotomen Variablen, also genau so wie Du es auch haben möchtest"
Die Umkodierung hat tadellos geklappt. Meine Frage bezog sich auf deine Anmerkung (s.o.). Die habe ich nicht ganz verstanden.
Beste Grüße,
sp.
"Eine Anmerkung noch: Wenn die Variable so aussieht, wie Du es in Deinem Beispiel schilderst, kann diese keine Mehrfachantworten darstellen. Bei einem Mehrfachantworten-Set arbeitet man ja normalerweise mit Sets von dichotomen Variablen, also genau so wie Du es auch haben möchtest"
Die Umkodierung hat tadellos geklappt. Meine Frage bezog sich auf deine Anmerkung (s.o.). Die habe ich nicht ganz verstanden.
Beste Grüße,
sp.