Lmer 모델이 수렴하지 않습니다


12

내 데이터는 여기에 설명되어 있습니다 . 반복 측정 ANOVA를 피팅 할 때 "ov (Error () model is singleular error)"가 발생하는 원인은 무엇입니까?

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

수렴을 평가하는 다른 방법은 대화를 참조하십시오 . 특히 Ben Bolker의 의견은 다음과 같습니다.

감사. 더 간단한 테스트는 수렴 경고를 제공하고 그 결과를
relgrad <- with(fitted_model@optinfo$derivs,solve(Hessian,gradient))
max(abs(relgrad))
보고 합리적으로 작은 지 (예 : <0.001?) 확인한 적합한 예를 취하는 것입니다.

또는 여기 에서 다른 최적화 프로그램을 시도하는 Bolker의 조언을 시도 할 수 있습니다.


1
max (abs (relgrad))가 2.9239489e-05 값을 주면 어떻게해야합니까?
Jens

1
@Jens 그러면 정말 작을 것입니다 (e-05는 "0에 5를 쓴 다음 왼쪽에 보이는 숫자"를 의미하며 첫 번째 0 뒤에 점이 있음). 그래서 그 가치에 매우 만족할 것입니다!
Arthur Spoon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.