#r #glm
Вопрос:
GLM показывает коэффициент для «Да» и «Нет», что неверно. Функция GLM обычно автоматически фиктивно кодирует двоичные коэффициенты, так что только один из уровней имеет коэффициент.
Поэтому в этом случае он должен указывать коэффициент для «Да», в то время как «Нет» не должно иметь коэффициента, так как это базовый уровень.
У меня не было этой проблемы с другими аналогично закодированными независимыми переменными, похоже, что-то есть в этой конкретной последовательности Да, Нет и NA. Почему он это делает?
#Generate specific sequence of Yes and No
c <- replicate(5,"No")
d <- c("Yes","No","Yes","No","NA","Yes")
#Concatenate and add into dataframe and generate dependent variable f
df <- data.frame(e=c(c,d),
f=sample(c(0,1,2,3,4), 11, replace = TRUE, prob = NULL))
#Convert e to a factor
df$e <- as.factor(df$e)
nbd_attend<-glm.nb(f ~ e, data = df)
summary(nbd_attend)
Комментарии:
1. У вас также есть строка «NA» в качестве уровня фактора. Это рассматривается как уровень перехвата.
Ответ №1:
Вы включили «NA» в качестве привязки ваших данных, а не специальное отсутствующее значение NA
. Если бы вы вместо этого использовали
d <- c("Yes", "No", "Yes", "No", "NA", "Yes") # bad
d <- c("Yes", "No", "Yes", "No", NA, "Yes") # good
Тогда это сработало бы.
По сути, вы сделали коэффициент с тремя уровнями, и «NA» является первым в алфавитном порядке, поэтому он стал базовым уровнем.
levels(df$e)
# [1] "NA" "No" "Yes"