2015-01-16 9 views
3

미리 확인해 주셔서 감사합니다. 아카이브에서이 문제를 한 번 보았습니다.하지만 R에 조금 익숙하며 문제와 솔루션을 모두 이해하는 데 많은 어려움이 있습니다 ...오류 메시지 : fn (x, ...) 오류 : 종료 된 VtV가 양수가 아닙니다.

lmer 함수를 사용하여 최소한의 적절한 모델을 만드십시오. 내 모델은 ~ 크기 * Attempts * Status + (random factor)입니다.

as.logical(Mated) 
as.numeric(Size) 
as.factor(Attempts) 
as.factor(Status) 

내 모델 실행 그래서 결국 내가 보는 것이

(이들은 모두 이전 모델에 일한) :

Model1<-lmer(Mated ~ Size*Status*Attempts + (1|FemaleID),data=mydata) 

을 그리고 fault.It의 내가 시도 할 경우에만없이 제출하실 수 있습니다 그것이 잘못이 업데이트 적용 : 여기

Model2<-update(Model1, REML=FALSE) 

하면 오류 메시지가 공급 : fn (x, ...)의 오류 : VtV가 양의 값을 가지고 있지 않습니다.

상호 작용이없는 세 번째 모델을 만들고 그 모델과 ANOVA 사이에 ANOVA를 수행하면 두 모델이 크게 다릅니다.

Model3<-update(Model1,~.-Size:Status:Attempts 
anova(Model1,Model3) 

내가 뭘 잘못하고 있니? 세 방향 상호 작용이 실제로 중요한가 아니면 실수를 저질렀습니까? Mated이 그때는 아마 대신 로짓 또는 프로 빗 링크 기능 glmer를 사용한다, 이진

답변

4

경우

감사합니다, 무엇인가 : 그것은 당신이 알려 수 있다면 도움이 될 것이다

model <- glmer(Mated ~ Size * Status * Attempts + (1|FemaleID), 
data = mydata, family = binomial) 

데이터가 어떻게 보이는지 (head(mydata)은 좋을 수도 있고 재현 가능한 예를 만드는 방법은 here 참조).

또한 나는 Mated을 논리적으로 만드는 것을 피할 것입니다 (인생이 더욱 어려워 질 수있는 방법은 this question and answer 참조). 대신 as.factor(Mated)은 명시 적으로 응답 변수를 이산 적으로 만들 것입니다.

그런 다음 전체 모델과 축소 모델을 anova()과 비교할 수 있습니다.