`probemod::pickapoint` завершается неудачно при смене модератора и IV для линейной модели с взаимодействием
Я пытаюсь смоделировать значения для взаимодействия, но когда я ввожу IV и модератор одним способом, это терпит неудачу. Когда я переворачиваю их, все работает нормально. И IV, и модератор являются числовыми, поэтому это не проблема типа данных. Кто-нибудь знает, почему это происходит?
Сообщение об ошибке:
Error in cov[interactionterms[j], interactionterms[j]] : subscript out of bounds
пример
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')
1 ответ
Решение
Обратите внимание, что ваша модель регрессии указана как cyl*disp
, так что термин взаимодействия cyl:disp
, Количество заказов.
Если вы укажете iv = "disp"
а также mod = "cyl"
, pickapoint
буду искать disp:cyl
(проследить локальную переменную interactionterms
и вы это увидите) но такого термина в lm.model
,
Ковариационная матрица имеет dimnames:
# (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
поэтому при поиске вы получаете сообщение об ошибке disp:cyl
,