2016-09-30 5 views
1

상호 작용의 값을 모델링하려고하지만 IV와 중재자를 한 방향으로 입력하면 실패합니다. 내가 반대로하면 잘 작동한다. IV와 사회자 모두 숫자이므로 데이터 유형 문제는 아닙니다. 왜 이런 일이 일어나는 지 아십니까?상호 작용이있는 선형 모델에 대해 중재자와 IV를 역전하면 'probemod :: pickapoint'가 실패합니다.

오류 메시지 :

Error in cov[interactionterms[j], interactionterms[j]] : subscript out of bounds 

예 상호 작용 기간이 cyl:disp입니다 귀하의 회귀 모델, cyl*disp로 지정

library(probemod) 
lm.model<-lm(mpg~cyl*disp,data=mtcars) 
## FAILS 
ppick<-pickapoint(lm.model, dv="mpg", iv="disp", mod="cyl", method='meansd') 
## WORKS FINE 
ppick<-pickapoint(lm.model, dv="mpg", iv="cyl", mod="disp", method='meansd') 
+0

'traceback()'은 무엇을 보여줍니까? – shadowtalker

답변

1

참고. 주문 건수는입니다.

당신이 disp:cyl를 찾습니다 iv = "disp"mod = "cyl", pickapoint을 지정 (로컬 변수 interactionterms을 추적하고 당신이 그것을 볼 것)을하지만 lm.model에서 그런 용어가없는 경우.

공분산 행렬은 dimnames 있습니다 disp:cyl를 찾을 때

#   (Intercept)   cyl   disp  cyl:disp 
#(Intercept) 25.04638446 -3.770034504 -0.162461470 2.219922e-02 
#cyl   -3.77003450 0.705917580 0.017132037 -2.807237e-03 
#disp  -0.16246147 0.017132037 0.001600197 -1.929310e-04 
#cyl:disp  0.02219922 -0.002807237 -0.000192931 2.448097e-05 

따라서 당신은 오류 "범위를 벗어 첨자"을 얻는다.

관련 문제