Seite 1 von 1

Handling von: "lmer convergence code: 0 "

Verfasst: Do Jan 30, 2020 3:42 pm
von Janone
Hallo liebe Community,

ich rechne derzeit eine Mehrebenenanalyse mit 32 Ländern (Ländervariable "CNTRY3"). Die abhängige Variable ist die Zahlungsbereitschaft für den Umweltschutz "WTP" (Skala 1 - 5, zentriert). Ich habe im dritten Schritt (Random-Intercept-Random-Slope) der Mehrebenenanalyse vier Random Slopes aufgenommen (diese möchte ich auf Grund meiner Theorie variieren lassen):
  • RINC_ALL_z -> Einkommen pro Person (z-standardisiert)
  • social_trust (Skala 1 - 5, zentriert) -> Vertrauen in andere Menschen
  • political_trust (Skala 1 - 5, zentriert) -> Vertrauen in die Politik
  • EC_cen (Skala 1 - 5, zentriert) -> Umweltbewusstsein

Code: Alles auswählen

modell.3a <- lmer(WTP ~ RINC_ALL_z + social_trust_cen + political_trust_cen + 
                   Men + lowest_degree + middle_degree + requirement_university +
                   uncompleted_university + university_degree + AGE_cen + urban + 
                   EC_cen + (RINC_ALL_z + social_trust_cen + political_trust_cen + 
                               EC_cen|CNTRY3), data=ISSP2010_1)
Danach erscheint die Fehlermeldung:
convergence code: 0
Model failed to converge with max|grad| = 0.00527884 (tol = 0.002, component 1)

Nun konnte ich recherchieren, dass wenn man das Modell z. B. mit dem Optimizer "BOBYQA" rechnet, diese "convergence warnings" umgangen werden können. Und tatsächlich, wenn ich das Modell so rechne, dann erscheint kein convergence warning mehr:

Code: Alles auswählen

modell.3b <- lmer(WTP ~ RINC_ALL_z + social_trust_cen + political_trust_cen + 
                   Men + lowest_degree + middle_degree + requirement_university +
                   uncompleted_university + university_degree + AGE_cen + urban + 
                   EC_cen + (RINC_ALL_z + social_trust_cen + political_trust_cen + 
                               EC_cen|CNTRY3), data=ISSP2010_1, control = lmerControl(optimizer = "bobyqa", 
                                                                                      optCtrl=list(maxfun=1e5)))
Darauf habe ich diesem sehr interessanten Artikel entnommen, dass wenn man einen Optimizer benutzt, diesen mit allen anderen zur Verfügung stehenden Optimizern vergleichen sollte, um herauszufinden, ob bestimmte Optimizer die Parameter der Regression beeinflussen. Gesagt getan (mit der Variable Umweltbewusstsein), habe ich die Schaubilder des Artikels repliziert, nur leider befinden sich die Optimizer nicht wie in dem Artikel in einer Spalte (loglikelihood / t-Wert). Ich habe die beiden Bilder hier mal angehängt. Meine Interpretation wäre, bezogen auf den log-likelihood Vergleich und den T-Wert Vergleich, dass sich die Mehrheit (5) der Optimizer in einer Spalte befinden (daraunter mein verwendeter "BOBYQA" ) und nur 2 Optimizer von der Mehrheit der Optimizer abweicht, weshalb mein verwendeter Optimizer die Parameter nicht beeinflussen sollte, oder?

Bild "loglikmhjf2.png" anzeigen.
Bild "t-valuecomparisont7kr7.png" anzeigen.


Die erste Frage wäre, was so ein Optimizer überhaupt macht (man liest nur immer das man Optimizer benutzen soll, um convergence issues zu vermeiden)?
Die zweite Frage die sich mir stellt, würdet Ihr diese Interpretation der beiden Schaubilder ebenfalls so sehen?

Ich würde mich sehr über eine Antwort freuen, ich zerbreche mir schon mehrere Tage darüber den Kopf... :-(

Viele Grüße
Jörn

Re: Handling von: "lmer convergence code: 0 "

Verfasst: Fr Jan 31, 2020 8:07 pm
von EDi
Die erste Frage wäre, was so ein Optimizer überhaupt macht (man liest nur immer das man Optimizer benutzen soll, um convergence issues zu vermeiden)?
Er findet die am besten passenden Parameterwerte in deinem Model, gegeben den Daten die du hast.
Im Grunde sucht ein Optimizer nur ein Minimum.
Siehe kapitel 7 in diesem tollen Buch: https://ms.mcmaster.ca/~bolker/emdbook/book.pdf
Kann man auch kaufen und ist nicht schlecht.
Die zweite Frage die sich mir stellt, würdet Ihr diese Interpretation der beiden Schaubilder ebenfalls so sehen?
Sehe da jetzt keine Probleme mit. Wichtiger ist mMn das Model zu diagnostizieren, ob das gut genug ist.

Re: Handling von: "lmer convergence code: 0 "

Verfasst: Do Feb 06, 2020 11:52 pm
von Janone
Hi Edi,

sorry für die späte Antwort.
Vielen Dank für den super Literaturtip. Ist im Buch sehr informativ und verständlich beschrieben!

Diagnose meinst du in Form von ICC, Normalverteilungsannahme, Multikollinearität, Varianz der Random Slopes, Marginal/Conditional R²?

Viele Grüße und vielen vielen Dank
Jörn

Re: Handling von: "lmer convergence code: 0 "

Verfasst: Fr Feb 07, 2020 8:54 pm
von EDi
Joa, das übliche halt, schauen ob die Annahmen die man macht passen.

Verteilung der Residuen, Streuung der Residuen, Linearität, Verteilung der Random effects, etc etc
Ich machtdas immer visuell.