Я создаю модель GLM с несколькими переменными.После получения выходных данных я использую GLM для прогнозирования новых значений.
Я заметил, что после изменения вручную коэффициента GLM для одного из уровней категориальной переменной я все еще получаю те же прогнозируемые значения, хотя знаю, что некоторые из моих данных имеют этот уровень.Некоторый код может помочь объяснить мой процесс:
##data frame
df <-data.frame(Account =c("A","B","C","D","E","F","G","H"),
Exposure = c(1,50,67,85,250,25,22,89),
JudicialOrientation=c("Neutral","Neutral","Plaintiff","Defense","Plaintiff","Neutral","Plaintiff","Defense"),
Freq= c(.008,.5,.05,.34,.7,0,.04,.12),
Losses = c(100000,100,2500,100000,25000,0,7500,5200),
LossPerUnit = c(100000,100,2500,100000,25000,0,7500,5200)/c(1,50,67,85,250,25,22,89))
##Variables for modeling
ModelingVars <- as.formula(df$LossPerUnit~df$JudicialOrientation+df$Freq)
##Tweedie GLM
Model <- glm(ModelingVars, family=tweedie(var.power=1.5, link.power = 0),
weight = Exposure, data = df)
summary(Model)
##Predict Losses with Model coefficients
df$PredictedLossPerUnit <- predict(Model,df, type="response")
##Manually edit a coefficient for one of my categorical variable's levels
Model$coefficients["df$JudicialOrientationNeutral"] <-log(50)
##Predict Losses again to compare
df$PredictedLossPerUnit2 <- predict(Model, df, type ="response")
sum(df$PredictedLossPerUnit)
sum(df$PredictedLossPerUnit2)
View(head(df))
summary(Model)
Этот код работает нормально, и оба PredictedLossPerUnits имеют разные номера (если в строке было наблюдение "JudicialOrientationNeutral").Когда я собираюсь сделать что-то похожее на моем основном наборе данных, который имеет больше переменных, но сходным образом (некоторые непрерывные, некоторые дискретные с несколькими ячейками), я продолжаю получать одни и те же предсказанные значения для моей функции предсказания даже после манипулирования коэффициентом.
Есть ли что-нибудь странное, что заставило бы мою функцию прогнозирования продолжать давать те же результаты, что и оригинал - даже после того, как я вручную изменил коэффициент в моем GLM?
РЕДАКТИРОВАТЬ: Я нашел ответ.В моем другом наборе данных, который я делал: df $ PredictedLossPerUnit <- Foregnate (модель, данные = DF, тип = «ответ»)».Глупая ошибка, но хороший урок.Спасибо всем, что помогло. </p>