Model Lmer gagal untuk bertemu

12

Data saya dijelaskan di sini Apa yang dapat menyebabkan "Error () model singular error" di aov saat memasang ANOVA tindakan berulang?

Saya mencoba untuk melihat efek dari interaksi menggunakan lmersehingga kasus dasar saya adalah:

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)

Menjalankan anovamemberi saya hasil yang signifikan, tetapi ketika saya mencoba menjelaskan kemiringan acak ( (1+Scenario|Player)) model gagal dengan kesalahan ini:

  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

Atau jika gagal untuk konvergen setelah banyak iterasi (saya set ke 100 000) dan saya mendapatkan hasil yang sama setelah 50kdan 100kitu berarti bahwa itu sangat dekat dengan nilai aktual, hanya saja tidak mencapainya. Jadi bisakah saya melaporkan hasil saya seperti ini?

Perhatikan bahwa ketika saya mengatur iterasi begitu tinggi saya hanya mendapatkan peringatan ini:

 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
Pio
sumber

Jawaban:

8

Lihat percakapan ini untuk metode alternatif menilai konvergensi. Secara khusus, komentar dari Ben Bolker ini:

Terima kasih. Tes yang bahkan lebih sederhana adalah dengan mengambil contoh yang cocok yang memberi Anda peringatan konvergensi dan melihat hasil
relgrad <- with(fitted_model@optinfo$derivs,solve(Hessian,gradient))
max(abs(relgrad))
dan melihat apakah itu cukup kecil (mis. <0,001?)

Atau, Anda dapat mencoba saran Bolker di sini , yaitu mencoba pengoptimal yang berbeda.

filups21
sumber
1
apa yang harus dilakukan jika maks (abs (relgrad)) memberi Anda nilai 2,9239489e-05?
Jens
1
@Jen maka itu akan menjadi sangat, sangat kecil (e-05 berarti "tulis 5 nol dan kemudian angka yang Anda lihat di sebelah kiri", dengan titik setelah nol pertama). Jadi orang akan sangat senang dengan nilai itu!
Arthur Spoon