Mô hình Lmer không hội tụ


12

Dữ liệu của tôi được mô tả ở đây Điều gì có thể gây ra mô hình "Error () là lỗi số ít" trong aov khi điều chỉnh lặp lại các biện pháp ANOVA?

Tôi đang cố gắng để xem hiệu quả của một tương tác bằng cách sử dụng lmertrường hợp cơ bản của tôi là:

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)

Việc chạy anovacho tôi kết quả quan trọng, nhưng khi tôi cố gắng tính độ dốc ngẫu nhiên ( (1+Scenario|Player)) thì mô hình không thành công với lỗi này:

  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

Ngoài ra, nếu nó không hội tụ sau nhiều lần lặp (tôi đặt nó 100 000) và tôi nhận được kết quả tương tự sau đó 50k100kđiều đó có nghĩa là nó rất gần với giá trị thực, chỉ là nó không đạt được. Vì vậy, tôi có thể báo cáo kết quả của tôi như thế này?

Lưu ý rằng khi tôi đặt số lần lặp quá cao, tôi chỉ nhận được các cảnh báo sau:

 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

Câu trả lời:


8

Xem cuộc hội thoại này để biết phương pháp đánh giá sự hội tụ. Cụ thể, nhận xét này từ Ben Bolker:

cảm ơn. Một thử nghiệm thậm chí đơn giản hơn sẽ là lấy một ví dụ được trang bị cho bạn các cảnh báo hội tụ và xem xét kết quả
relgrad <- with(fitted_model@optinfo$derivs,solve(Hessian,gradient))
max(abs(relgrad))
và xem nó có nhỏ không (ví dụ <0,001?)

Ngoài ra, bạn có thể thử lời khuyên của Bolker tại đây , đó là thử một trình tối ưu hóa khác.


1
Nên làm gì nếu max (abs (nâng cấp)) mang lại cho bạn giá trị 2,9239361e-05?
Jens

1
@Jens thì điều đó sẽ thực sự rất nhỏ (e-05 có nghĩa là "viết 5 số không và sau đó là các số bạn nhìn thấy ở bên trái", với một dấu chấm sau số 0 đầu tiên). Vì vậy, một người sẽ khá hạnh phúc với giá trị đó!
Muỗng Arthur
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.