Frage zur Gewichtung

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.
realklaus
Beiträge: 23
Registriert: 25.08.2011, 00:09

Frage zur Gewichtung

Beitrag von realklaus »

Hallo Zusammen,

mein Datensatz (n=1077) weicht im Geschlecht als auch im Alter von der Verteilung in der gesellschaft (Verteilung aus dem Mikrozensus) ab.

Daher würde ich die Daten für die Aussage gerne nach Gewichtungsvariablen Alter (ge.al) und Geschlecht (ge.ge) gewichten. Dazu habe ich zwei Fragen:

1. Wird die komplette deskriptive Analyse gewichtet durchgeführt, oder nur die Berechnungen, welche auch Alter oder Geschlecht direkt implizieren? (Also bspw. Kreuztabellen mit Alter oder Geschlecht?)

2. Gibt es die Möglichkeit gleichzeitig mit zwei Variablen zu gewichten? Dies habe ich bei SPSS noch nicht finden können, bislang kannte und brauchte ich auch nur die Gewichtung mit einer Variable. Ich kann die Gewichtungsvariable ja auch nicht auf verschiedene Variablen auslegen.
bspw.: if f1=1 ge.ge=0,4.
if f1=2 ge.ge=0,7
if f2=1 ge.ge=0,5.

Das geht insofern nicht, als das nur die zuletzt genannte Variable gewichtet wird...
Dies wäre bspw. aber für eine Kreuztabelle wichtig, die ein Motiv mit Alter Kreuzt und nach Alter schichtet.

Es wäre großartig, könnte mir jemand helfen. Ich hoffe ich konnte das Problem verständlich darstellen. Solltet ihr jedoch Fragen haben, oder mehr Informationen benötigen, sagt bitte bescheid. Ich antworte schnell :)

Danke schonmal und liebe Grüße,

alex
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

Gibt es die Möglichkeit gleichzeitig mit zwei Variablen zu gewichten?

du musst deine Gewichtungsvariable schon entsprechend anpassen. Der Einsatz von Gewichtungsvariablen ist nur sehr beschränkt sinnvoll. Der Einsatz bei inferenzstat. Verf. wie sie bei SPSS implementiert sind, ist meist nicht mehr sinnvoll.

Gruß
drfg2008
realklaus
Beiträge: 23
Registriert: 25.08.2011, 00:09

Beitrag von realklaus »

Hallo.

die Gewichtungsvariable lässt sich ja m.E.n. nicht anpassen. Versuche ich sie wie o.g. auf zwei Variablen auszurichten, wird nur die letztgenannte gewichtet, spich
if f1=1 ge.ge=0,4.
if f1=2 ge.ge=0,7
if f2=1 ge.ge=0,5.
dann wird nur für f2 gewichtet. Oder gibt es einen anderen Weg, die Gew.Var. zu bestimmen?

Wenn ich inferenzstat. arbeiten möchte, muss ich jedoch gewichten, da meine Erhebung 1/3m und 2/3w erhoben hat. Wenn ich jetzt ohne Gewichtung nach Geschlecht auswerte, verzerrt sich ja alles. Dann lieber w ab und m aufwiegen, bei n=1077 sollte das noch im Rahmen dessen sein, was annehmbar ist.

Danke schonmal für deine Antwort. Gibt es denn eine Möglichkeit, wie ich die Gewichtungsvar. anpassen kann, ohne o.g. Effekt, bei if?

Grüße, alex
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

die Gewichtungsvariable lässt sich ja m.E.n. nicht anpassen.
selbstverständlich lässt sich das. Allerdings muss von dir dafür eine neue Gewichtungsvariable berechnet werden, die mehr als nur eine Variable berücksichtigt: Kreuztabelle - Dreisatz.

Wenn ich inferenzstat. arbeiten möchte, muss ich jedoch gewichten, da meine Erhebung 1/3m und 2/3w erhoben hat. Wenn ich jetzt ohne Gewichtung nach Geschlecht auswerte, verzerrt sich ja alles. Dann lieber w ab und m aufwiegen, bei n=1077 sollte das noch im Rahmen dessen sein, was annehmbar ist.

Falsch. Gewichtung verzerrt zwar nicht (unbedingt) die Erwartungswerte (soll sie ja entzerren), jedoch (zum Beispiel) die Varianzen. Zu diesem Thema gibt es hier aber schon mehr als genug Diskussion. Und der Chi-Quadrat Test (als Beispiel) benötigt auch keine 100% igen Abbilder der GG in der Stp., da die n(i,j) gegen erwarteten Werte e (i,j) gerechnet werden. Nur als Beispiel. Und beim t-Test wären die Varianzen nach der Gewichtung nicht mehr erwartungstreu.

Besser: Poststratifikation, statt Gewichtung. Bzw. Gewichtung nur zur Darstellung von Lageparametern µ, oder p (beim p-Problem).

Gruß
drfg2008
realklaus
Beiträge: 23
Registriert: 25.08.2011, 00:09

Beitrag von realklaus »

selbstverständlich lässt sich das. Allerdings muss von dir dafür eine neue Gewichtungsvariable berechnet werden, die mehr als nur eine Variable berücksichtigt: Kreuztabelle - Dreisatz.
Das ist ja eigentlich meine Frage. Wie lässt sich die Gewichtungsvariable berechnen? So habe ich es probiert:

if f2=1 gew=1.6763.
if f2=2 gew=0.7024.
if f1=12 gew=3.36.
if f1=13 gew=1.66.
if f1=14 gew=0.72.
if f1=15 gew=0.62.
if f1=16 gew=0.64.
if f1=17 gew=0.86.
if f1=18 gew=1.03.
if f1=19 gew=1.05.
if f1=20 gew=1.24.
if f1=21 gew=1.36.
exe.

weight by gew.
fre f1.
fre f2.
weight off.

In der Häufigkeitsauszählung erscheint nun aber nur f1 gewichtet, f2 leider nicht.

Falsch. Gewichtung verzerrt zwar nicht (unbedingt) die Erwartungswerte (soll sie ja entzerren), jedoch (zum Beispiel) die Varianzen. Zu diesem Thema gibt es hier aber schon mehr als genug Diskussion. Und der Chi-Quadrat Test (als Beispiel) benötigt auch keine 100% igen Abbilder der GG in der Stp., da die n(i,j) gegen erwarteten Werte e (i,j) gerechnet werden. Nur als Beispiel. Und beim t-Test wären die Varianzen nach der Gewichtung nicht mehr erwartungstreu.
In einer einfachen Kreuztab. möchte ich herausfinden, wieviele m und w bspw. Fernseh gucken. Wenn ich meiner Erhebung jetzt 1/3m und 2/3w habe, liefert mir diese Kreuztab. doch verzerrte Ergebnisse. Und dafür ist doch eine Gewichtung da? Chisq. oder t-test werden nicht gewichtet durchgeführt, das es hier ja um die Streuung geht.

Ist aber eigentlich auch egal. Es wäre toll, würdest du mir verraten, wie ich die Gewichtungsvariable erstelle, die mehr als eine var. berücksichtigt.

Vielen Dank und liebe Grüße, alex
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

Wenn nach Geschlecht als auch nach Alter gewichtet werden soll, dann musst du nach den Kategorien des Mikrozensus genau die gleichen Kategorien in deinem Datensatz bilden. Danach kreuzt du beide Variablen im Datensatz / im Mikrozensus. Und berechnest über einen einfache Dreisatz die Gewichtungsvariablen.

Beispiel:

Geschlecht: m:1000 / w 2000
mit
Alter-Kat. bis-25: 750 / 26 -36 1000 / ... usw.

Jetzt die Zellbesetzungen: M / bis 25 ; W / bis 25 ... usw. einmal in deinem Datensatz, dann im Mikrozensus.

Dann die Berechnung der Gewichtungsvariablen:

if (-=1 & agekat =1) weight = 1.00124.
if (-=2 & agekat =1) weight = 1.7321.
...

execute.

weight by weight.

So in der Richtung. Viel Arbeit. Deshalb die Frage, wie sinnvoll das überhaupt ist. Für inferenzstat. Verfahren jedenfalls kaum.

Gruß
drfg2008
realklaus
Beiträge: 23
Registriert: 25.08.2011, 00:09

Beitrag von realklaus »

Hab verstanden - genau das war es, was ich wissen wollte.

Arbeite nach langer Zeit wieder mit spss, erstaunlich was man alles so vergisst, wenn man es nicht anwendet.

Die Klammern mehrerer if Bedingungen bspw. waren bei mir schon wie aus dem Gedächtnis gestrichen. Und selbst beim Herrn Brosius war nichts dergleichen zu finden.

Also vielen Dank an dieser Stelle nochmal, warst mir eine große Hilfe und hast mich ein großes Stück weiter gebracht. Auch wenn wir uns bzgl. der Sinnhaftigkeit nicht einig wurden :)

alex
realklaus
Beiträge: 23
Registriert: 25.08.2011, 00:09

Beitrag von realklaus »

hm so ganz habe ich es jetzt doch noch nicht verstanden...anscheinend.

Habe mmn alles so gemacht, wie du sagtest. In meinem Datensatz und in meiner Referenz jeweils mit den gleichen Kategorien Geschlecht und Alter gekreuzt. Dann erhalte ich zwei Tabellen, geschlecht cro by alter von meinem Datensatz und vom mikrozensus. Dann habe ich in dem jeweiligen Feld die soll% durch die aktuellen% geteilt, um die Gewichtungsvariable zu erhalten.
Das in folgende Syntax eingefügt:

if (f2=1 & f1z=1) gew=2.6147.
if (f2=1 & f1z=2) gew=0.8937.
if (f2=1 & f1z=3) gew=0.7195.
if (f2=1 & f1z=4) gew=0.8911.
if (f2=1 & f1z=5) gew=1.1296.
if (f2=1 & f1z=1) gew=1.8159.
if (f2=2 & f1z=2) gew=0.5518.
if (f2=2 & f1z=3) gew=0.7683.
if (f2=2 & f1z=4) gew=1.2164.
if (f2=2 & f1z=5) gew=1.5535.
exe.

Die Gewichtung bzgl. Geschlecht hat sich nun so gut wie gar nicht verändert. Alter stimmt schon ganz gut.

Wo liegt der Fehler?

Danke nochmals...
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

ohne Kenntnis des Datensatzes ist es kaum möglich den Grund zu finden. Die Gewichtung vergrößert jedenfalls das N um das 2,1545 fache (daher kann zum Beispiel der t-Test nicht mehr sinnvoll eingesetzt werden, da N1 und N2 = N vergrößert sind).

Dann müsste man sehen, ob alles richtig gerechnet ist. Und bei welchen Berechnungen die Unterschiede auftauchen.

Gruß
drfg2008
realklaus
Beiträge: 23
Registriert: 25.08.2011, 00:09

Beitrag von realklaus »

ok, gibt es Fragen, die ich noch beantworten könnte, damit du besser im Bilde bist?

Du meinst also, dass die Syntax eigentlich stimmen müsste, die Gewichtungsvariablen aber falsch sein könnten? Nur, damit ich einen Ansatz habe, nach dem Fehler zu suchen.

Besten Dank und Grüße,

alex
realklaus
Beiträge: 23
Registriert: 25.08.2011, 00:09

Beitrag von realklaus »

Hallo nochmal,

kannst du denn mit den Informationen, die du hast sagen, ob die Syntax so stimmen müsste? Also ob es mit diesem Weg funktioniert?

Dann könnten es ja nur die Faktoren sein...

Danke!
realklaus
Beiträge: 23
Registriert: 25.08.2011, 00:09

Beitrag von realklaus »

Also ich habe nochmal alles überprüft und möchte gerne meine Herangehensweise nochmal darlegen, damit mir vielleicht doch noch jemand den Tip zur Lösung geben kann:

- im Datensatz und im Mikrozensus Geschlecht (f2, 1=m, 2=w) und Alterskategorie (f1z, 1=12-13, 2=13-14, ...) gekreuzt (cro f1z by f2/cells count column.)

- über die jeweiligen Prozente in den entsprechenden Zellen jedes Datensatzes (m und 12-13 (Zelle 1), w und 12-13 (Zelle 2), m 14-15, w 14-15 (Zelle 3)...) die Gewichtungsfaktoren berechnet (Prozent Zelle 1 Mikrozensus geteilt durch Prozent Zelle 1 in meinem Datensatz, Prozent Zelle 2 Mikrozensus durch Prozent Zelle 2 mein Datensatz...)

- gewichtungsvar. mit diesen Faktoren bestimmt:
if (f2=1 & f1z=1) gew=2.6147. (-> Zelle 1)
if (f2=2 & f1z=1) gew=1.8159. (-> Zelle 2)
if (f2=1 & f1z=2) gew=0.8937.
if (f2=2 & f1z=2) gew=0.5518.
if (f2=1 & f1z=3) gew=0.7195.
if (f2=2 & f1z=3) gew=0.7683.
if (f2=1 & f1z=4) gew=0.8911.
if (f2=2 & f1z=4) gew=1.2164.
if (f2=1 & f1z=5) gew=1.1296.
if (f2=2 & f1z=5) gew=1.5535.
exe.

- stelle ich nun die Anfangstabelle mit Gewichtung her: (cro f1z by f2/cells count column.), stimmen die Prozente mit der Tab aus dem Mikrozensus überein

- Auszählung der Alterskategorien nach Gewichtung stimmen auch die mit dem Mikrozensus überein

- Auszälung vom Geschlecht stimmt NICHT! mit der vom Mikrozensus. Die Verteilung in meinem Datensatz ist immernoch 1/3 zu 2/3. Sicher sehe ich den Wald vor lauter Bäumen nicht, aber ich komme einfach nicht drauf...

Bitte nochmals um Hilfe.

Herzlichen Dank und liebe Grüße, alex
realklaus
Beiträge: 23
Registriert: 25.08.2011, 00:09

Beitrag von realklaus »

Eine weitere Sache ist mir noch aufgefallen:

kehre ich die Kreuztablle um, also
cro f2 by f1z/cells count column.
verändern sich ja auch die Prozente. Habe nochmal die gleichen Schritte von oben für diese Tabelle durchgeführt und komme nun auf andere Faktoren.

Wie kann ich diese nun verbinden? Bzw. was habe ich falsch verstanden, bzw. wo liegt der Fehler?

Ach Mann ich verzweifle hier!
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

wahrscheinlich irgendwo ein Fehler in der Rechnung.

Allerdings rundest du 4 Stellen nach dem Komma. Dadurch entstehen auch Rundungsfehler. Die dürften aber erst in den Kreuztabellen relevant werden.

Übrigens würde ich eher so programmieren (Zahlen fiktiv):

Code: Alles auswählen

do if - = 0.
if age_kat = 	0	weight = 	3.75	.
if age_kat = 	1	weight = 	1.871794872	.
if age_kat = 	2	weight = 	1.891566265	.
if age_kat = 	3	weight = 	2.010869565	.
if age_kat = 	4	weight = 	1.769230769	.
if age_kat = 	5	weight = 	1.444444444	.
END IF .

EXECUTE .

do if - = 1.
if age_kat = 	0	weight = 	2.181818182	.
if age_kat = 	1	weight = 	1.923076923	.
if age_kat = 	2	weight = 	2.315068493	.
if age_kat = 	3	weight = 	2.111111111	.
if age_kat = 	4	weight = 	2	.
if age_kat = 	5	weight = 	1.307692308	.
END IF .
EXECUTE .

formats weight (f8.4).
Gruß
drfg2008
realklaus
Beiträge: 23
Registriert: 25.08.2011, 00:09

Beitrag von realklaus »

Hallo und Danke schonmal.

Ich denke auch, dass der Fehler in der Rechung liegt. Kommastellen wollte ich dann mal machen, wenn das Ergebnis hinhaut, sonst schreib ich mich wieder und wieder dumm und dämlich :)

Kann es sein, dass ich bei den Kreuztabellen den Gewichtungsfaktor nach den absoluten Zahlen rechnen muss? Diese bleiben ja konstant, egal wierum ich kreuze. Denke, dass mein Fehler war nach den Prozenten (cells=column) zu gewichten, diese ja aber richtungsgebunden sind. Daher funktionieren die Faktoren auch beim Alter, aber nicht beim Geschlecht.

Wäre das eine erklärung? :oops:

Danke!
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