multiple imputation mit multilevel data set

Allgemeine Fragen rund um Statistik mit Stata.

multiple imputation mit multilevel data set

Beitragvon t3tsur0 » Di 7. Mär 2023, 17:42

Hallo liebe Stata-user,

Ich arbeite mit einem multilevel data set, in dem Individuen in Ländern geclustered sind. Ich möchte gerne missings imputen für Einkommen und zwei Anxiety-Variabeln. So sieht mein Code bisher aus:

Code: Alles auswählen
egen incrank = xtile(inc), n(100) by(country)

gen incrank_pdi = incrank * pdi // Interaction term
gen incrank_idv = incrank * idv // Interaction term

mi set mlong
mi register imputed inc stanx1 stanx2
mi register passive incrank incrank_pdi incrank_idv
set seed 46352
mi impute chained (pmm, knn(5)) inc stanx1 stanx2 incrank incrank_pdi incrank_idv = idv i.sex age i.educ i.empstat pdi idv gini_disp gdp i.country, add(5) rseed(46352)

mi passive: gen sa = (stanx1 + stanx2) / 2

mi estimate: mixed sa incrank inc educ age sex empstat pdi idv gdp gini_disp incrank_pdi incrank_idv || country: incrank, mle


Mein Analyse-Model ist ein mixed effects model mit random slope und zwei cross-level Interaktionen. Daher habe ich die 2 Interaktionsterme vor der Imputation als Faktor aus Income rank und Individualism / Power Distance generiert. Income rank ist auch eine passive Variable, da sie sich aus Einkommen ergibt.

Meine Fragen sind die folgenden:

1. Ich habe country im Imputations-Model als Faktor gekennzeichnet, um die Clusterung zu berücksichtigen. Ist dies ausreichend dafür oder müssen noch weitere Schritte unternommen werden? Muss ich auch die anderen level-2 Variablen anders kennzeichnen?
2. Sollen die passiven Variablen (sa; incrank; Interaktionsterme) in das Imputations-Model aufgenommen werden oder erst danach erstellt werden?

Ich wäre Euch für jede Art von Hinweisen und Hilfe sehr dankbar!

Liebe Grüße
Daniel
t3tsur0
 
Beiträge: 9
Registriert: Di 7. Mär 2023, 17:28
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: multiple imputation mit multilevel data set

Beitragvon Staxa » Mi 8. Mär 2023, 10:20

Zu den allgemeinen Fragen wie passive Imputation findest du hier eine Übersicht: https://stats.oarc.ucla.edu/stata/semin ... a_pt1_new/
Theoretisch kannst du auch für jedes Land extra imputieren, also deinen aktuellen Befehl mit by() verwenden. Das klappt wenn die Fallzahlen für jedes Land ausreichend groß sind.
Stata für Anfänger: www.statabook.com
Staxa
 
Beiträge: 680
Registriert: Di 27. Feb 2018, 12:56
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: multiple imputation mit multilevel data set

Beitragvon t3tsur0 » Mi 8. Mär 2023, 13:42

Vielen Dank für deine Antwort Staxa.
Die Übersicht von der UCLA habe ich mir tatsächlich schon näher angeguckt.
Ich habe gelesen, dass man in das Imputations-Model alle Variablen aufnehmen soll, die auch im Analyse-Model sind. Das würde dann wohl heißen, dass ich tatsächlich alle passiven Variablen (sa, Interaktionsterme, incrank) schon vor der Imputation erstellen und in die Imputation als abhänglige Variablen (da sie auch Missings enthalten) aufnehmen sollte. Wäre das der richtige Ansatz?

Der Hinweis mit by(country) zu arbeiten ist interessant. Ich habe für alle Länder über 1000 Fälle. Wäre das ausreichend? Dann würde mein code so aussehen:

Code: Alles auswählen
mi impute chained (pmm, knn(5)) inc stanx1 stanx2 incrank incrank_pdi incrank_idv = idv i.sex age i.educ i.empstat pdi idv gini_disp gdp, add(5) rseed(46352) by(country)


Allerdings würde es dann wohl keinen Sinn machen meine Level-2 Prädiktoren (pdi, idv, gini_disp, gdp) in das Model aufzunehmen, da sie innerhalb der Länder keine Varianz aufweisen. Sollte ich Sie trotzdem im Model lassen?
t3tsur0
 
Beiträge: 9
Registriert: Di 7. Mär 2023, 17:28
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: multiple imputation mit multilevel data set

Beitragvon Staxa » Mi 8. Mär 2023, 14:41

Ja also von der Fallzahl passt das. Die Level 2 Vars kannst du dann rauswerfen. Und Interaktionen würde ich grundsätzlich in beiden Modellen (imputation und später) mit der Stata Syntax (##) spezifizieren.
Stata für Anfänger: www.statabook.com
Staxa
 
Beiträge: 680
Registriert: Di 27. Feb 2018, 12:56
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: multiple imputation mit multilevel data set

Beitragvon t3tsur0 » Mi 8. Mär 2023, 15:09

Alles klar, so werde ich es machen. Danke dir!
t3tsur0
 
Beiträge: 9
Registriert: Di 7. Mär 2023, 17:28
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: multiple imputation mit multilevel data set

Beitragvon t3tsur0 » Do 9. Mär 2023, 14:24

Was wäre mit den Variablen income rank und sa? Sollten diese vor der Imputation erstellt werden oder hinterher mit mi passive:?
t3tsur0
 
Beiträge: 9
Registriert: Di 7. Mär 2023, 17:28
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: multiple imputation mit multilevel data set

Beitragvon Staxa » Do 9. Mär 2023, 19:49

Ich denke hier geht nur vorher. Theoretisch auch später, aber dann musst du die Perzentilberechnung nach Imputationsdatensatz getrennt machen. Das geht dann nur im Format flong.

Danach:

Code: Alles auswählen
bysort _mi_m: gen incrank_pdi = incrank * pdi
Stata für Anfänger: www.statabook.com
Staxa
 
Beiträge: 680
Registriert: Di 27. Feb 2018, 12:56
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: multiple imputation mit multilevel data set

Beitragvon t3tsur0 » Do 9. Mär 2023, 20:50

Danke für deine Antwort! Ich würde die passiven Variablen auch gerne vor der Imputation generieren und in das Imputationsmodel aufnehmen, da es so nach dem, was ich gelesen habe, empfohlen wird. Allerdings habe ich dann ein Problem mit den generierten Werten der passiven Variablen.

Hier zunächst das Ergebnis der Imputation:

imputation.png
imputation.png (84.63 KiB) 1272-mal betrachtet


Es sollten also alle missings erfolgreich imputiert worden sein.

Die imputierten Werte von income und sa (status anxiety) scheinen nach deskriptiven Tests auch in Ordnung zu sein:
inc sum.png
inc sum.png (22.1 KiB) 1272-mal betrachtet


Allerdings sieht die Verteilung der Werte für alle passiven Variablen, die aus income generiert wurden nicht gut aus:
Hier ein Histogram nach:
Code: Alles auswählen
hist incrank, by(_mi_m)

incrank hist.png
incrank hist.png (28.59 KiB) 1272-mal betrachtet


Das gleiche ist der Fall für den Faktor aus incrank und pdi.

Hast du eine Idee wie ich das beheben kann? Oder liegt es nur an meiner falschen Interpretation?
t3tsur0
 
Beiträge: 9
Registriert: Di 7. Mär 2023, 17:28
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: multiple imputation mit multilevel data set

Beitragvon Staxa » Do 9. Mär 2023, 21:17

Ja das ist aber ein Problem der Logik her. Du machst Perzentile, welche, per Definition, immer gleichverteilt sind. Das kann die Imputation nicht auffangen. Da müsste man es echt anders herum machen und später generieren. Sehe das auch nicht als Fehler an.
Stata für Anfänger: www.statabook.com
Staxa
 
Beiträge: 680
Registriert: Di 27. Feb 2018, 12:56
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: multiple imputation mit multilevel data set

Beitragvon t3tsur0 » Do 9. Mär 2023, 21:52

Ich verstehe. Ich habe jetzt incrank nach der Imputation generiert. Allerdings heißt das, dass ich dann auch die Interaktionsterme (incrank * pdi; incrank * idv) erst hinterher generieren kann. Ich habe nur gelesen, dass Interaktionsterme ins Imputationsmodel aufgenommen werden sollen...

Tatsächlich erhalte ich aber gute Ergebnisse für incrank wenn ich die Imputation so durchführe:

Code: Alles auswählen
gen sa = (stanx1 + stanx2) / 2

mi set mlong
mi register imputed inc sa
set seed 46352
mi impute chained (pmm, knn(5)) inc sa = i.sex i.age i.educ i.empstat i.country, add(2) rseed(46352)

mi passive: egen incrank = xtile(inc), n(100) by(country)
mi passive: gen incrank_pdi = incrank * pdi
mi passive: gen incrank_idv = incrank * idv

mi estimate: mixed sa incrank inc i.educ i.age i.sex i.empstat pdi idv gdp gini_disp incrank_pdi incrank_idv|| country: incrank, mle


Wie würdest du das Problem mit den Interaktionstermen einschätzen?
t3tsur0
 
Beiträge: 9
Registriert: Di 7. Mär 2023, 17:28
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Nächste

Zurück zu Statistik allgemein

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron