Mediation lavaan Error

Varianzanalyse, Diskriminanzanalyse, Kontingenzanalyse, Faktorenanalyse, Clusteranalyse, MDS, ....

Moderator: EDi

Antworten
ladenläuft
Beiträge: 2
Registriert: Do Sep 19, 2019 5:22 pm

Mediation lavaan Error

Beitrag von ladenläuft »

Hallo!
für eine Hausarbeit bin ich dabei eine Mediation mithilfe von lavaan zu rechnen. Die Daten sind aus dem ALLBUS-Datensatz. Der ganze Datensatz war zu groß, daher habe ich nur den Teildatensatz mit den Variablen, die ich verwende, hochgeladen (educ.hs=schulabschluss(dichotomisiert), ls01.nm=Lebenszufriedenheit(numerisch gemacht), di01a.nm=Einkommen(numerisch gemacht), id02.nm=Schichtzugehörigkeit(numerisch gemacht). In meiner Arbeit ist "educ.hs" der Prädiktor, "ls01.nm" das Kriterium und "di01a.nm" der 1. Mediator. ["id02.nm" ist ein zweiter Mediator, mit der Variable funktioniert der ganze Prozess auch gut].

Leider taucht bei der Mediation mit "di01a.nm" folgende Fehlermeldung auf:
"Warning messages:
1: In lav_data_full(data = data, group = group, cluster = cluster, :
lavaan WARNING: some observed variances are (at least) a factor 1000 times larger than others; use varTable(fit) to investigate
2: In lav_data_full(data = data, group = group, cluster = cluster, :
lavaan WARNING: some observed variances are larger than 1000000
lavaan NOTE: use varTable(fit) to investigate
3: In lav_model_vcov(lavmodel = lavmodel2, lavsamplestats = lavsamplestats, :
lavaan WARNING:
Could not compute standard errors! The information matrix could
not be inverted. This may be a symptom that the model is not
identified."
Die ersten zwei Warnungen kommen daher, dass die Varianzen der Einkommens-Variable (di01a.nm) so hoch sind, das liegt aber eben an der Höhe der Einkommenszahlen. Ich habe die Warnungen so verstanden, dass ich nachschauen soll, ob nicht extreme Werte vorhanden sind, weil es Codes für NAs sein könnten (wie 9999 o.ä.), und dass ich diese zwei vernachlässigen kann?
Die 3. Warnung ist jedoch die, die ich gerne lösen würde, da die Standardfehler wie angekündigt nicht auftauchen. Kann mir eventuell jemand dabei helfen?
Falls ich noch etwas zum besseren Verständnis anbringen soll, bitte bescheid geben. Das ist mein erster Forumsbeitrag überhaupt und ich hoffe, die Codes werden überhaupt so angezeigt, wie sie sollen :-).

Vielen Dank schonmal!

Code: Alles auswählen

library(lavaan)
model.3 <- '#Regressionen
          ls01.nm ~ c*educ.hs + b*di01a.nm
          di01a.nm ~ a*educ.hs
          #(Fehler-)Varianzen
          di01a.nm ~~ di01a.nm
          educ.hs ~~ educ.hs
          ls01.nm ~~ ls01.nm
          #Intercepts/Mittelwerte
          di01a.nm ~1
          educ.hs ~1
          ls01.nm ~1
          #indirect effect (a*b)
          indirect:=a*b
          #total effect
          total:=c+(a*b)'
fit.3 <- sem(model=model.3, data=med, meanstructure=TRUE, missing="fiml", fixed.x=FALSE)
inspectSampleCov(model=model.3, data=med, fixed.x=FALSE)
inspect(fit.3, "free")
inspect(fit.3, "est")
summary(fit.3, fit.measures=TRUE, standardized=TRUE, rsquare=TRUE)


Die Daten:

Code: Alles auswählen

> str(med)
'data.frame':	3477 obs. of  9 variables:
 $ educ    : Factor w/ 7 levels "OHNE ABSCHLUSS",..: 3 5 1 3 5 5 5 5 5 5 ...
 $ ls01    : Factor w/ 11 levels "GANZ UNZUFRIEDEN",..: 10 6 11 11 9 7 9 9 8 10 ...
 $ di01a   : Factor w/ 339 levels "25","50","60",..: 265 222 213 303 235 301 132 222 NA 158 ...
 $ id02    : Factor w/ 5 levels "UNTERSCHICHT",..: 3 2 2 4 3 3 3 3 3 3 ...
 $ educ.n  : num  3 5 1 3 5 5 5 5 5 5 ...
 $ educ.hs : num  0 1 0 0 1 1 1 1 1 1 ...
 $ ls01.nm : num  10 6 11 11 9 7 9 9 8 10 ...
 $ di01a.nm: num  2200 1500 1400 3600 1700 3450 854 1500 NA 978 ...
 $ id02.nm : num  3 2 2 4 3 3 3 3 3 3 ...

Code: Alles auswählen

> head(med)
            educ            ls01 di01a                id02 educ.n educ.hs ls01.nm di01a.nm id02.nm
1 MITTLERE REIFE .._duplicated_9  2200       MITTELSCHICHT      3       0      10     2200       3
2 HOCHSCHULREIFE .._duplicated_5  1500     ARBEITERSCHICHT      5       1       6     1500       2
3 OHNE ABSCHLUSS  GANZ ZUFRIEDEN  1400     ARBEITERSCHICHT      1       0      11     1400       2
4 MITTLERE REIFE  GANZ ZUFRIEDEN  3600 OBERE MITTELSCHICHT      3       0      11     3600       4
5 HOCHSCHULREIFE .._duplicated_8  1700       MITTELSCHICHT      5       1       9     1700       3
6 HOCHSCHULREIFE .._duplicated_6  3450       MITTELSCHICHT      5       1       7     3450       3
Dateianhänge
allbus18.csv
(269.03 KiB) 52-mal heruntergeladen
ladenläuft
Beiträge: 2
Registriert: Do Sep 19, 2019 5:22 pm

Re: Mediation lavaan Error

Beitrag von ladenläuft »

Ich weiß nicht, ob das ganz korrekt ist, aber nach tagelangem Suchen erhielt ich einen Lösungsvorschlag: Alle Werte der betroffenen Variablen durch 1000 zu teilen, sodass die Varianz nicht so hoch ist, aber die Mediationswerte trotzdem stimmen. Es hat funktioniert - nur falls jemand mal dasselbe Problem haben sollte. Jedoch keine Garantie auf Richtigkeit :)
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Mediation lavaan Error

Beitrag von bigben »

Hallo ladenläuft,

vielen Dank, dass Du Dich mit dem Lösungsvorschlag nochmal zurückgemeldet hast, auch wenn das Forum auf Deine erste Frage nicht viel zu bieten hatte.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Mediation lavaan Error

Beitrag von jogo »

Hallo ladenläuft,

das ist ganz toll, dass Du eine Lösung für Doch gefunden hast und diese meldest. So ein vorbildliches Verhalten wünschen wir uns von allen usern hier.
Oft haben wir es hier auch mit (wie ich sie nenne) "Kipptauchern" zu tun: Die kippen nur ihr Problem ab und tauchen dann ab.
Du gehörst jedenfalls nicht zu dieser Spezies und bist deshalb herzlich willkommen in diesem Forum!
ladenläuft hat geschrieben: Do Sep 26, 2019 11:02 am Ich weiß nicht, ob das ganz korrekt ist, aber nach tagelangem Suchen erhielt ich einen Lösungsvorschlag: Alle Werte der betroffenen Variablen durch 1000 zu teilen, sodass die Varianz nicht so hoch ist, aber die Mediationswerte trotzdem stimmen. Es hat funktioniert - nur falls jemand mal dasselbe Problem haben sollte. Jedoch keine Garantie auf Richtigkeit :)
Grüße, Jörg
Antworten