Seite 1 von 2
Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur
Verfasst: Mo Jan 11, 2021 11:40 am
von mohnstrudel
Liebe R-Community,
ich möchte ein Pfadmodell mit lavaan rechnen. Auf den Befehl
gibt mir R folgende Fehlermeldung als Rückmeldung:
Code: Alles auswählen
Fehler in lav_syntax_parse_rhs(rhs = rhs.formula[[2L]], op = op) :
lavaan ERROR: I'm confused parsing this line: $df.netjesAWE_connect.e
Zusätzlich: Es gab 11 Warnungen (Anzeige mit warnings())
Aufgrund meiner bisherigen Recherchen gehe ich davon aus, dass diese Fehlermeldung etwas mit der Art der Variablen zu tun hat. Folgende sind die Datenstrukturen der im Modell enthaltenen Variablen:
Code: Alles auswählen
> str(df.netjes$AWE_connect.e)
num [1:320] 3 5 6 3 6 4 3 2 7 3 ...
> str(df.netjes$nfa.expand)
num [1:320] 2 1 1 2 4 4 3 1 7 1 ...
> str(df.netjes$NHIP_wise)
'avector' num [1:320] 7 7 7 5 7 5 5 5 6 3 ...
- attr(*, "1")= chr "stimme absolut nicht zu [-3]"
- attr(*, "2")= chr "stimme überhaupt nicht zu [-2]"
- attr(*, "3")= chr "stimme eher nicht zu [-1]"
- attr(*, "4")= chr "stimme teilweise zu/teilweise nicht [0]"
- attr(*, "5")= chr "stimme eher zu [+1]"
- attr(*, "6")= chr "stimme sehr zu [+2]"
- attr(*, "7")= chr "stimme absolut zu [+3]"
- attr(*, "comment")= chr "NHIP: Wir Menschen kön..."
> str(df.netjes$GEB_everydaytrip_dic)
'avector' num [1:320] NA 1 1 1 NA 0 1 0 1 1 ...
- attr(*, "1")= chr "nie [0]"
- attr(*, "2")= chr "selten [1]"
- attr(*, "3")= chr "ab und zu [2]"
- attr(*, "4")= chr "gelegentlich [3]"
- attr(*, "5")= chr "oft [4]"
- attr(*, "6")= chr "sehr oft [5]"
- attr(*, "7")= chr "immer [6]"
- attr(*, "comment")= chr "GEB: Für alltägliche..."
Der Datensatz besteht aus 320 Zeilen/Fällen und 327 Spalten/Variablen.
Denkbar ist natürlich auch, dass die Schwierigkeit an einer ganz anderen Stelle liegt, allerdings gehen mir seit Längerem die Ideen aus. Weiß jemand mehr dazu? Ich freue mich riesig über Unterstützung!
Viele Grüße
mohnstrudel
Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur
Verfasst: Mo Jan 11, 2021 12:07 pm
von bigben
! Hüftschuss vom Nicht-lavaan-Fachmann !
mohnstrudel hat geschrieben: Mo Jan 11, 2021 11:40 am lavaan ERROR: I'm confused parsing this line: $df.netjesAWE_connect.e
Fehlt da nicht irgendwie ein Dollarzeichen zwischen df.netjes und AEW_connect.e?
Ansonsten: lavaan scheint sich über die Syntax der Modellbeschreibung zu beschweren. Willst Du die Modellbeschreibung mit uns teilen?
LG,
Bernhard
Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur
Verfasst: Mo Jan 11, 2021 12:18 pm
von mohnstrudel
Hallo Bernhard,
danke für deine schnelle Antwort samt Hüftschuss.
Die Veränderte Stellung des $-Zeichens in der Fehlermeldung ist mir auch aufgefallen, im Code der Modellbeschreibung steht sie allerdings noch korrekt.
Code: Alles auswählen
model.path = '
#Messmodell
AWE =~ df.netjes$AWE_connect.e + df.netjes$AWE_living + df.netjes$AWE_one + df.netjes$AWE_connect.c +
df.netjes$AWE_grand + df.netjes$AWE_groter + df.netjes$AWE_greatness + df.netjes$AWE_vast +
df.netjes$AWE_mental + df.netjes$AWE_full + df.netjes$AWE_atonce + df.netjes$AWE_magnitude
NfA =~df.netjes$nfa.expand + df.netjes$nfa.newmap + df.netjes$nfa.rethink + df.netjes$nfa.alter +
df.netjes$nfa.work + df.netjes$AWE.nfa
WV =~ df.netjes$NHIP_wise + df.netjes$NHIP_respect + df.netjes$NHIP_caring +
df.netjes$NHIP_compatible + df.netjes$NHIP_ecobene +
df.netjes$NHIP_hungry + df.netjes$NHIP_consfew +
df.netjes$NHIP_progress + df.netjes$NHIP_balance
PEE =~ df.netjes$GEB_everydaytrip_dic + df.netjes$GEB_seasonal_dic + df.netjes$GEB_1000km.R_dic +
df.netjes$GEB_fulldrum_dic + df.netjes$GEB_heating_R.R_dic + df.netjes$GEB_campaign_dic +
df.netjes$GEB_bag.R_dic + df.netjes$GEB_30km.R_dic + df.netjes$GEB_Pfand_dic +
df.netjes$GEB_togo.R_dic + df.netjes$GEB_repair_dic + df.netjes$GEB_finansupp_dic +
df.netjes$GEB_regional_dic + df.netjes$GEB_dryer.R_dic + df.netjes$GEB_taketime_dic +
df.netjes$GEB_talk_dic + df.netjes$GEB_boycot_dic + df.netjes$GEB_compensate_dic +
df.netjes$GEB_heating_dic + df.netjes$GEB_light_dic + df.netjes$GEB_standby.R_dic +
df.netjes$GEB_share_dic + df.netjes$GEB_meat_dic + df.netjes$GEB_politics_dic
#Regressionen
NfA ~ AWE
WV ~ NfA + AWE
PEE ~ NfA + AWE
PEE ~ WV + NfA + AWE
'
Viele Grüße
mohnstrudel
Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur
Verfasst: Mo Jan 11, 2021 12:37 pm
von jogo
Ist es nicht möglich, den Teil df.netjes$ einfach wegzulassen?
Gruß, Jörg
Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur
Verfasst: Mo Jan 11, 2021 12:38 pm
von bigben
Hallo mohnstrudel,
wie gesagt, ich habe nicht so dick Ahnung von lavaan. Beispielmodelle die ich finde enthalten das "df.netjes$" immer nicht mit drin: z. B.
https://lavaan.ugent.be/tutorial/sem.html
Bist Du sicher, dass das drin stehen darf?
LG,
Bernhard
Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur
Verfasst: Mo Jan 11, 2021 12:51 pm
von mohnstrudel
Hallo Jörg und Bernhard,
danke für eure Idee!
Ich habe sie gleich einmal umgesetzt, um zu sehen, was sich dann verändert. Unliebsamerweise scheint diese Veränderung im Code keine Veränderung im Output zu erzeugen.
Code: Alles auswählen
> model.path1 = '
+ #Messmodell
+ AWE =~ AWE_connect.e + AWE_living + AWE_one + AWE_connect.c +
+ AWE_grand + AWE_groter + AWE_greatness + AWE_vast +
+ AWE_mental + AWE_full + AWE_atonce + AWE_magnitude
+ NfA =~nfa.expand + nfa.newmap + nfa.rethink + nfa.alter +
+ nfa.work + AWE.nfa
+ WV =~ NHIP_wise + NHIP_respect + NHIP_caring +
+ NHIP_compatible + NHIP_ecobene +
+ NHIP_hungry + NHIP_consfew +
+ NHIP_progress + NHIP_balance
+ PEE =~ GEB_everydaytrip_dic + GEB_seasonal_dic + GEB_1000km.R_dic +
+ GEB_fulldrum_dic + GEB_heating_R.R_dic + GEB_campaign_dic +
+ GEB_bag.R_dic + GEB_30km.R_dic + GEB_Pfand_dic +
+ GEB_togo.R_dic + GEB_repair_dic + GEB_finansupp_dic +
+ GEB_regional_dic + GEB_dryer.R_dic + GEB_taketime_dic +
+ GEB_talk_dic + GEB_boycot_dic + GEB_compensate_dic +
+ GEB_heating_dic + GEB_light_dic + GEB_standby.R_dic +
+ GEB_share_dic + GEB_meat_dic + GEB_politics_dic
+ #Regressionen
+ NfA ~ AWE
+ WV ~ NfA + AWE
+ PEE ~ NfA + AWE
+ PEE ~ WV + NfA + AWE
+ '
> fit1 <- sem (model.path, data=df.netjes)
Fehler in lav_syntax_parse_rhs(rhs = rhs.formula[[2L]], op = op) :
lavaan ERROR: I'm confused parsing this line: $df.netjesAWE_connect.e
Zusätzlich: Es gab 11 Warnungen (Anzeige mit warnings())
Was könnte ich noch testen? Und was haltet ihr von der Idee, dass es an der Variablen-Struktur liegen könnte?
Viele Grüße
mohnstrudel
Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur
Verfasst: Mo Jan 11, 2021 1:02 pm
von jogo
muss das nicht
heißen
... mit dem alten
model.path kann es auch nur die alten Fehlermeldungen geben.
Gruß, Jörg
Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur
Verfasst: Mo Jan 11, 2021 2:48 pm
von mohnstrudel
Stimmt, das hatte ich noch übersehen. Danke für den Hinweis!
Der neue Output sieht nun hinsichtlich der Fehlermeldung deutlich vielversprechender aus. Schön!
Es ergibt sich nun eine Fehlermeldung hinsichtlich der Regression - offensichtlich aufgrund der doppelten Nennung von PEE. Wenn ich nun die dritte "Gleichung" herausnehme, sind dann dennoch alle Beziehungen unter den einzelnen Variablen erhalten?
Code: Alles auswählen
> model.path1 = '
+ #Messmodell
+ AWE =~ AWE_connect.e + AWE_living + AWE_one + AWE_connect.c +
+ AWE_grand + AWE_groter + AWE_greatness + AWE_vast +
+ AWE_mental + AWE_full + AWE_atonce + AWE_magnitude
+ NfA =~nfa.expand + nfa.newmap + nfa.rethink + nfa.alter +
+ nfa.work + AWE.nfa
+ WV =~ NHIP_wise + NHIP_respect + NHIP_caring +
+ NHIP_compatible + NHIP_ecobene +
+ NHIP_hungry + NHIP_consfew +
+ NHIP_progress + NHIP_balance
+ PEE =~ GEB_everydaytrip_dic + GEB_seasonal_dic + GEB_1000km.R_dic +
+ GEB_fulldrum_dic + GEB_heating_R.R_dic + GEB_campaign_dic +
+ GEB_bag.R_dic + GEB_30km.R_dic + GEB_Pfand_dic +
+ GEB_togo.R_dic + GEB_repair_dic + GEB_finansupp_dic +
+ GEB_regional_dic + GEB_dryer.R_dic + GEB_taketime_dic +
+ GEB_talk_dic + GEB_boycot_dic + GEB_compensate_dic +
+ GEB_heating_dic + GEB_light_dic + GEB_standby.R_dic +
+ GEB_share_dic + GEB_meat_dic + GEB_politics_dic
+ #Regressionen
+ NfA ~ AWE
+ WV ~ NfA + AWE
+ PEE ~ NfA + AWE
+ PEE ~ WV + NfA + AWE
+ '
> fit1 <- sem (model.path1, data=df.netjes)
Fehler in lavParseModelString(model) :
lavaan ERROR: duplicate model element in: PEE~WV+NfA+AWE
Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur
Verfasst: Di Jan 12, 2021 11:24 am
von mohnstrudel
Nachdem ich nun testweise die "doppelte" Regression entfernt habe, erscheint die diesbezügliche Fehlermeldung nun nicht mehr.
Allerdings ergibt sich zu diesem Modell
Code: Alles auswählen
model.path1 = '
#Messmodell
AWE =~ AWE_connect.e + AWE_living + AWE_one + AWE_connect.c +
AWE_grand + AWE_groter + AWE_greatness + AWE_vast +
AWE_mental + AWE_full + AWE_atonce + AWE_magnitude
NfA =~nfa.expand + nfa.newmap + nfa.rethink + nfa.alter +
nfa.work + AWE.nfa
WV =~ NHIP_wise + NHIP_respect + NHIP_caring +
NHIP_compatible + NHIP_ecobene +
NHIP_hungry + NHIP_consfew +
NHIP_progress + NHIP_balance
PEE =~ GEB_everydaytrip_dic + GEB_seasonal_dic + GEB_1000km.R_dic +
GEB_fulldrum_dic + GEB_heating_R.R_dic + GEB_campaign_dic +
GEB_bag.R_dic + GEB_30km.R_dic + GEB_Pfand_dic +
GEB_togo.R_dic + GEB_repair_dic + GEB_finansupp_dic +
GEB_regional_dic + GEB_dryer.R_dic + GEB_taketime_dic +
GEB_talk_dic + GEB_boycot_dic + GEB_compensate_dic +
GEB_heating_dic + GEB_light_dic + GEB_standby.R_dic +
GEB_share_dic + GEB_meat_dic + GEB_politics_dic
#Regressionen
NfA ~ AWE
WV ~ NfA + AWE
PEE ~ WV + NfA + AWE
'
fit1 <- sem (model.path1, data=df.netjes)
nun folgende Fehlermeldung von lavaan
Code: Alles auswählen
Fehler in lav_samplestats_icov(COV = cov[[g]], ridge = ridge, x.idx = x.idx[[g]], :
lavaan ERROR: sample covariance matrix is not positive-definite
Zusätzlich: Warnmeldung:
In lav_data_full(data = data, group = group, cluster = cluster, :
lavaan WARNING: small number of observations (nobs < nvar)
nobs = 13 nvar = 51
Ich kann mir gut vorstellen, dass die geringe Anzahl der Fälle mit Missings in der Variable PEE zusammenhängt. Wie kann ich hier in lavaan einen Missing Data-Prozess wählen, der nicht listenweise Fälle ausschließt?
Ich bin über eure Hilfe sehr dankbar...
Viele Grüße
mohnstrudel
Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur
Verfasst: Di Jan 12, 2021 1:11 pm
von EDi
https://lavaan.ugent.be/tutorial/est.html
Trotzdem würde ich mir vorher die Daten anschauen, wo z. B. die NAs sind und eventuell entsprechend das Model anpassen.