Weights

Hallo,
ich fokussiere mich in meiner Analyse auf Migranten und Flüchtlinge mit direktem Migrations - bzw. Flüchtlingshintergrund zwischen 2013 - 2021. Außerdem schaue ich mir nur Personen mit abgeschlossenem Interview an und die zwischen 18 und 64 Jahre alt sind. Observations mit fehlenden Angaben für corigin, immiyear und pgisced11 wurden ebenfalls ausgeschlossen.

Für die Analyse habe ich wie bei Companion empfohlen das Längsschnitt Gewicht erstellt (gen wlong = bdphrf * bepbleib * bfpbleib * bgpbleib * bhpbleib * bipbleib * bjpbleib * bkpbleib * blpbleib). Wenn ich aber nun die Gewichte anwenden will habe ich 0 für 55.970 von insgesamt 63.204 Observations. Das bedeutet ich verliere viele Observations für gewichtete Analysen. Mein Supervisor wies mich daraufhin, dass das nicht sein kann da Gewichtung normalerweise die Observations Anzahl entweder erhöht oder gleich bleibt aber nicht um so viel verringert.

Wenn ich es richtig verstehe von den Dokumentationen werden Personen mit 0 gewichtet wenn sie entweder eine hohe sampling oder nonresponse Wahrscheinlichkeit haben. Oder kann es daran liegen, dass ich ein unbalanced Panel habe und manche Personen z.B. in Wave e noch gar nicht Teil des Panels waren und deshalb in dem Längsschnitt Gewicht 0 sind?
Könnten sie mir bitte helfen zu verstehen warum dies der Fall ist?

LG Anna

Liebe Anna,

die Anzahl der Beobachtungen reduziert sich aus zwei Gründen. Zum einen nehmen Haushalte oder Personen nicht in jedem Jahr teil (unit non-response). Zum anderen geben Teilnehmende nicht immer Antworten auf die gestellten Fragen (item non-response). Im Fall von unit non-response erhalten Personen ein Gewicht mit dem Wert Null ($$phrf == 0). Im Fall von item non-response (oder auch Filterführung) sind die Werte der entsprechenden Variablen kleiner Null (bspw. pgisced11 == -1). Durch die Generierung der Variablen wlong, wie oben beschrieben, können Personen für die Analyse ausfallen, die entweder im Ausgangsjahr nicht teilgenommen haben (bdphrf == 0) haben oder in einem der Folgejahre (temporär) ausfielen ($$pbleib == 0). Die Werte von wlong sind größer Null für Personen, die in allen Jahren teilgenommen haben. Bei dem entsprechenden Vorgehen spricht man von einem balancierten Panel. Zudem umfasst dieses balancierte Panel lediglich Personen, die im Ausgangsjahr bereits im Panel sind. Personen, die später in das Panel kommen, haben in wlong kein Gewicht. Wenn also von ~63.000 Beobachtungen ausgegangen wird und hiervon knapp ~56.000 einen Gewichtungsfaktor von Null aufweisen, wäre das tatsächlich ungewöhnlich. Prüfe doch mal über die netto-Variable im Datensatz PPATHL, ob tatsächlich alle ~63.000 Beobachtungen lückenlos von Welle BD bis Welle BL gültig realisiert werden konnten.

Bei deinem gewählten Vorgehen im Umgang mit item-nonresponse, listwise deletion, solltest du beachten, dass die Variablen, auf denen du Zeilen löschst, generierte Variablen sind. Diese beruhen auf Angaben aus dem Lebenslauf-Fragebogen. Er bildet die Biografie und Fluchtroute ab. Dieser Fragebogen ist wichtig, aber für ein “gültiges Personeninterview” (Voraussetzung für die Gewichtung) nicht notwendig. Es kommt oft vor, dass dieser Fragenbogen erst in Folgewellen nacherhoben wird. Es ist wahrscheinlich, dass listwise deletion zu einer Verzerrung führt.

Viele Grüße
Hans

2 Likes

Hallo Hans,

vielen Dank für die ausführliche und hilfreiche Erklärung.

Mithilfe der netto - Variable habe ich Beobachtungen behalten die im Zeitraum 2013 - 2021 die Werte 10 - 19 aufzeigen (completed interviews wie bei Companion beschrieben). Allerdings habe ich dann kein balanciertes Panel, da manche Personen später dazukamen, oder einige z.B. nur 3 Wellen gültig realisiert werden konnten. Dies ist wohl dann auch der Grund des hohen Verlusts bei der Gewichtung.

Wenn ich meine Vorgehensweise nun ändere und nur Beobachtungen beibehalte, die in wlong größer Null sind, habe ich ein balanciertes Panel, wie in deiner Erklärung beschrieben. Wenn ich dann noch die Personen mit einer item non-response und Personen die jünger als 18 oder älter als 64 Jahre alt sind lösche, habe ich ~7000 Beobachtungen in meinem Sample. Die ~7.000 Beobachtungen die jetzt übrig sind, ist wohl die Differenz zwischen den ~63.000 und ~56.000 Beobachtungen wenn die Beobachtungen gewichtet werden. Diese Vorgehensweise ermöglicht mir, dass nun keine Beobachtung mit Null gewichtet wird.

Bezüglich der listwise deletion, wäre es also besser diese Personen komplett aus dem Panel zu löschen die in einer Variable item non-response aufzeigen anstatt nur die Zeile zu löschen, sodass ich keine Verzerrung in meinen Ergebnissen habe?

Liebe Grüße
Anna

Hallo Anna,

der Ausschluss von Personen aufgrund ihres Alters liegt vermutlich in der Forschungsfrage / Analyse begründet und sollte unproblematisch sein. Bei den Variablen corigin, immiyear und pgisced11 handelt es sich, wie gesagt um generierte Variablen. Durch den Ausschluss von Personen ohne Angabe auf der Variablen fallen zum einen Personen aus der Analyse, für die kein Wert erfasst wird (bspw. für immiyear, weil in Deutschland geboren) mit dem Wert -2 zum anderen fallen aber auch Personen aus, für die der Wert nicht angegeben ist (bspw. immiyear == -1) also unbekannt ist. Trotzdem können Werte der übrigen Variablen bekannt sein. Ob der Ausschluss dieser Beobachtungen aus deiner Analyse zu Verzerrungen führt, hängt immer vom Ausfallmechanismus (siehe Link weiter unten) und dem Einfluss auf die jeweilige Fragestellung hab.

Ich habe die Analyse-Population rudimentär in der nachstehenden Syntax eingegrenzt auf Personen, die nicht in Deutschland geboren wurden, zwischen 18 und 64 Jahren alt sind und in den jeweiligen Jahren teilgenommen haben. Die Aufschlüsselung nach Jahren habe ich dabei der Übersichtlichkeit halber ausgelassen. Man sieht, dass bspw. 274 Personen ausfallen, weil alle Angaben fehlen und 25052 Personen gültige Angaben in allen Variablen haben. In den übrigen Kombinationen fehlt jeweils mindestens eine der Angaben. Hierdurch geht dir eben Information verloren. Zur Einordnung und zum Umgang mit fehlenden Werten möchte ich auf die Seite https://wikis.fu-berlin.de/display/fustat/Vom+Umgang+mit+fehlenden+Werten verweisen.

> library(haven)
> library(here)
> library(tidyverse)
> 
> PPATHL <- read_dta(here('Daten', 'ppathl.dta'))
> PGEN   <- read_dta(here('Daten', 'pgen.dta'))
>
> PPATHL |> 
+   left_join(PGEN, by = c('pid', 'syear')) |> 
+   mutate(alter = syear - ifelse(gebjahr > 0, gebjahr, syear)) |> 
+   filter(netto %in% 10:19 & alter %in% 18:64 & corigin != 276) |> 
+   group_by(corigin > 0, immiyear > 0, pgisced11 > 0) |> 
+   summarise(PE = n_distinct(pid)) |> 
+   print(n=300)
# A tibble: 8 × 4
# Groups:   corigin > 0, immiyear > 0 [4]
  `corigin > 0` `immiyear > 0` `pgisced11 > 0`    PE
  <lgl>         <lgl>          <lgl>           <int>
1 FALSE         FALSE          FALSE             274
2 FALSE         FALSE          TRUE               27
3 FALSE         TRUE           FALSE             627
4 FALSE         TRUE           TRUE               40
5 TRUE          FALSE          FALSE            2226
6 TRUE          FALSE          TRUE              609
7 TRUE          TRUE           FALSE            6397
8 TRUE          TRUE           TRUE            25052
1 Like