Handling von: "lmer convergence code: 0 "

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

Moderatoren: EDi, jogo

Antworten
Janone
Beiträge: 9
Registriert: So Feb 24, 2019 3:51 pm

Handling von: "lmer convergence code: 0 "

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

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

Beitrag 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.
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.
Janone
Beiträge: 9
Registriert: So Feb 24, 2019 3:51 pm

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

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

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

Beitrag 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.
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