Lmer मॉडल अभिसरण करने में विफल रहता है


12

मेरे डेटा का वर्णन यहां किया गया है जब एक दोहराया उपायों ANOVA को फिट करने पर "त्रुटि () मॉडल एकल में त्रुटि" हो सकती है?

मैं lmerअपने आधार मामले का उपयोग करते हुए एक इंटरैक्शन के प्रभाव को देखने की कोशिश कर रहा हूं :

my_null.model <- lmer(value ~ Condition+Scenario+ 
                             (1|Player)+(1|Trial), data = my, REML=FALSE)

my.model <- lmer(value ~ Condition*Scenario+ 
                             (1|Player)+(1|Trial), data = my, REML=FALSE)

दौड़ने से anovaमुझे महत्वपूर्ण परिणाम मिलते हैं, लेकिन जब मैं यादृच्छिक ढलान ( (1+Scenario|Player)) के लिए खाते की कोशिश करता हूं तो मॉडल इस त्रुटि के साथ विफल हो जाता है:

  Warning messages:
 1: In commonArgs(par, fn, control, environment()) :
   maxfun < 10 * length(par)^2 is not recommended.
 2: In optwrap(optimizer, devfun, getStart(start, rho$lower, rho$pp),  :
  convergence code 1 from bobyqa: bobyqa -- maximum number of function evaluations exceeded
 3: In commonArgs(par, fn, control, environment()) :
  maxfun < 10 * length(par)^2 is not recommended.
 4: In optwrap(optimizer, devfun, opt$par, lower = rho$lower, control = control,  :
   convergence code 1 from bobyqa: bobyqa -- maximum number of function evaluations exceeded
 5: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
   Model failed to converge with max|grad| = 36.9306 (tol = 0.002)
 6: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
   Model failed to converge: degenerate  Hessian with 1 negative eigenvalues

वैकल्पिक रूप से अगर यह बहुत सारे पुनरावृत्तियों (मैं इसे सेट करता हूं 100 000) के बाद अभिसरण करने में विफल रहता हूं और मुझे इसके बाद समान परिणाम मिल रहे हैं 50kऔर 100kइसका मतलब है कि यह वास्तविक मूल्य के बहुत करीब है, बस यह उस तक नहीं पहुंचता है। तो क्या मैं इस तरह से अपने परिणामों की रिपोर्ट कर सकता हूं?

ध्यान दें कि जब मैं पुनरावृत्तियों को इतना अधिक सेट करता हूं तो मुझे केवल ये चेतावनी मिलती है:

 Warning messages:
1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
 Model failed to converge with max|grad| = 43.4951 (tol = 0.002)
2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
 Model failed to converge: degenerate  Hessian with 1 negative eigenvalues

जवाबों:


8

अभिसरण का एक वैकल्पिक विधि के लिए यह वार्तालाप देखें । विशेष रूप से, बेन बोल्कर की यह टिप्पणी:

धन्यवाद। एक और भी सरल परीक्षा एक फिटेड उदाहरण लेने के लिए होगी जिसने आपको अभिसरण चेतावनी दी है और इसके परिणामों पर एक नज़र डालें
relgrad <- with(fitted_model@optinfo$derivs,solve(Hessian,gradient))
max(abs(relgrad))
और देखें कि क्या यह यथोचित रूप से छोटा है (उदाहरण <0.001?)

वैकल्पिक रूप से, आप यहां बोल्कर की सलाह को आजमा सकते हैं , जो कि एक अलग ऑप्टिमाइज़र की कोशिश करना है।


1
यदि अधिकतम (एब्स (रिग्रैड)) आपको 2.9239489e-05 का मान देता है तो आपको क्या करना चाहिए?
जेन्स

1
@ जेंस तब वास्तव में छोटा होगा, (ई -05 का अर्थ है "पहले 5 शून्य के बाद 5 शून्य और फिर बाईं ओर आप जो नंबर देखते हैं," लिखें)। तो उस मूल्य के साथ एक बहुत खुश होगा!
आर्थर स्पून
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.