Я учусь реализовывать надежные glms в R, но не могу понять, почему я не могу заставить glmrob предсказывать значения из моих регрессионных моделей, когда у меня есть модель, в которой некоторые столбцы отброшены из-за коллинеарности. В частности, когда я использую функцию прогнозирования для прогнозирования значений из glmrob, она всегда дает NA для всех значений. Я не наблюдаю этого при прогнозировании значений из одних и тех же данных и модели с использованием glm. Кажется, не имеет значения, какие данные я использую - до тех пор, пока в подобранной модели есть коэффициент NA (а NA не является последним коэффициентом в векторе коэффициентов), прогноз не работает.
Это поведение сохраняется для всех наборов данных и моделей, которые я пробовал, когда внутренний столбец отбрасывается из-за коллинеарности. Я включаю поддельный набор данных, в котором два столбца удаляются из модели, что дает два NA в списке коэффициентов. И glm, и glmrob дают почти одинаковые коэффициенты, но прогнозирование работает только с моделью glm. Итак, мой вопрос: что я не понимаю в надежной регрессии, которая помешала бы моим моделям glmrob генерировать предсказанные значения?
library(robustbase)
#Make fake data with two categorial predictors
df <- data.frame("category" = rep(c("A","B","C"),each=6))
df$location <- rep(1:6,each=3)
val <- rep(c(500,50,5000),each=6)+rep(c(50,100,25,200,100,1),each=3)
df$value <- rpois(NROW(df),val)
#note that predict works if we omit the newdata parameter. However I need the newdata param
#so I use the original dataframe here as a stand-in.
mod <- glm(val ~ category + as.factor(location), data=df, family=poisson)
predict(mod, newdata=df) # works fine
mod <- glmrob(val ~ category + as.factor(location), data=df, family=poisson)
predict(mod, newdata=df) #predicts NA for all values