Как мне справиться с этой ошибкой при использовании функции intEff () R в пробитной модели? - PullRequest
0 голосов
/ 28 января 2020
probit5 <- glm(shot_success ~ age + risk + loc + self_est + compet + regfoc + self_eff + 
           + first_mover + gender + ten_throws + incentive + score_diff + first_mover*gender, 
           family = binomial(link = "probit"), 
           data=data)

intEff(probit5, vars=c("first_mover", "gender"), data=data)

Ошибка:

Error in dimnames(x) <- dn :
  length of 'dimnames' [2] not equal to array extent
In addition: Warning message:
In cbind(deriv1, deriv2, deriv3, nn, deriv0) :
  number of rows of result is not a multiple of vector length (arg 4)

Воспроизводимый пример:

example <- structure(list(id = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), id_opp = c(2, 
2, 2, 2, 2, 2, 2, 2, 2, 2), shot_success = c(0, 1, 0, 0, 0, 0, 
0, 0, 1, 0), tiebreak = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), score_diff = c(0, 
0, 1, 0, 0, 0, 0, 0, 0, -2), first_mover = c(1, 0, 1, 0, 1, 0, 
1, 0, 1, 0), incentive = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), ten_throws = c(1, 
1, 1, 1, 1, 1, 1, 1, 1, 1), pre_training = c(0, 0, 0, 0, 0, 0, 
0, 0, 0, 0), gender = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), age = c(18, 
18, 18, 18, 18, 18, 18, 18, 18, 18), self_est = c(1, 1, 1, 1, 
1, 1, 1, 1, 1, 1), risk = c(3.6667, 3.6667, 3.6667, 3.6667, 3.6667, 
3.6667, 3.6667, 3.6667, 3.6667, 3.6667), loc = c(4.8, 4.8, 4.8, 
4.8, 4.8, 4.8, 4.8, 4.8, 4.8, 4.8), self_eff = c(2.8, 2.8, 2.8, 
2.8, 2.8, 2.8, 2.8, 2.8, 2.8, 2.8), compet = c(4.54, 4.54, 4.54, 
4.54, 4.54, 4.54, 4.54, 4.54, 4.54, 4.54), regfoc = c(3.6364, 
3.6364, 3.6364, 3.6364, 3.6364, 3.6364, 3.6364, 3.6364, 3.6364, 
3.6364)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", 
"data.frame"))


probit_example <- glm(shot_success ~  gender + age + risk + loc + self_est + compet + regfoc  + self_eff + first_mover + ten_throws
                                 + incentive + score_diff + first_mover*gender,
                                 family = binomial(link = "probit"),
                                 data = example)

intEff(probit_example, vars=c("first_mover", "gender"), data=example)

Использование только этих нескольких строк возвращает другую ошибку. При использовании всех 1040 строк моих данных возвращается ошибка, о которой я упоминал, но включение всех строк здесь будет слишком длинным ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...