Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

mohnstrudel
Beiträge: 17
Registriert: Mi Nov 25, 2020 5:13 pm

Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur

Beitrag von mohnstrudel »

Liebe R-Community,

ich möchte ein Pfadmodell mit lavaan rechnen. Auf den Befehl

Code: Alles auswählen

fit1 <- sem (model.path, data=df.netjes)
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
bigben
Beiträge: 2780
Registriert: Mi Okt 12, 2016 9:09 am

Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
mohnstrudel
Beiträge: 17
Registriert: Mi Nov 25, 2020 5:13 pm

Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur

Beitrag 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
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur

Beitrag von jogo »

Ist es nicht möglich, den Teil df.netjes$ einfach wegzulassen?

Gruß, Jörg
bigben
Beiträge: 2780
Registriert: Mi Okt 12, 2016 9:09 am

Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
mohnstrudel
Beiträge: 17
Registriert: Mi Nov 25, 2020 5:13 pm

Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur

Beitrag 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
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur

Beitrag von jogo »

muss das nicht

Code: Alles auswählen

fit1 <- sem (model.path1, data=df.netjes)
heißen :?:
... mit dem alten model.path kann es auch nur die alten Fehlermeldungen geben.

Gruß, Jörg
mohnstrudel
Beiträge: 17
Registriert: Mi Nov 25, 2020 5:13 pm

Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur

Beitrag 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
mohnstrudel
Beiträge: 17
Registriert: Mi Nov 25, 2020 5:13 pm

Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur

Beitrag 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
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Fehlermeldung lavaan "I'm confused in parsing this line"/ uneinheitliche Variablenstruktur

Beitrag von EDi »

https://lavaan.ugent.be/tutorial/est.html

Code: Alles auswählen

missing = "ML"
Trotzdem würde ich mir vorher die Daten anschauen, wo z. B. die NAs sind und eventuell entsprechend das Model anpassen.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Antworten