Как R делает прогнозы, используя байесовские регрессионные модели? - PullRequest
0 голосов
/ 21 марта 2020

Я построил байесовскую модель регрессии в R, и я пытаюсь использовать ее, чтобы делать прогнозы из записи X, которой нет в обучающем наборе. Проблема в том, как бы я ни изменял значения одной из независимых переменных в X, прогноз остается прежним! Может ли кто-нибудь пролить свет на то, как делаются прогнозы с использованием байесовских моделей регрессии? Вот некоторый код, чтобы дать вам некоторое представление о том, что я делаю:

install.packages("BMA")
library(BMA)

D_for_Bayes_tweaked <- D_for_Bayes

bfit1 <- bic.glm(f = as.formula('freq_iso_chng2 ~ cpi_gasoline_proj + vhcl_age_proj + vhcl_sale_ltruck_proj',), data = D_for_Bayes[D_for_Bayes$year >= 2003 & D_for_Bayes$year <= 2019,], glm.family = Gamma(link = "log"))

(p1 <- predict(bfit1, newdata = D_for_Bayes[D_for_Bayes$year >= 2003 & D_for_Bayes$year <= 2020,], type = "response"))

cpi_gasoline_proj_change <- 0.025

new_gas_cpi <- D_for_Bayes[D_for_Bayes$year == 2020,]$cpi_gasoline_proj + cpi_gasoline_proj_change

D_for_Bayes_tweaked[D_for_Bayes_tweaked$year == 2020,]$cpi_gasoline_proj <- new_gas_cpi

bfit2 <- bic.glm(f = as.formula('freq_iso_chng2 ~ cpi_gasoline_proj + vhcl_age_proj + vhcl_sale_ltruck_proj',), data = D_for_Bayes_tweaked[D_for_Bayes_tweaked$year >= 2003 & D_for_Bayes_tweaked$year <= 2019,], glm.family = Gamma(link = "log"))
(p2 <- predict(bfit2, newdata = D_for_Bayes_tweaked[D_for_Bayes_tweaked$year >= 2003 & D_for_Bayes_tweaked$year <= 2020,], type = "response"))

1 Ответ

0 голосов
/ 22 марта 2020

ОК, я понял, как решить мою проблему. Вот основная проблема: я пытался предсказать значение freq_iso_chng2 для 2020 года, но первоначально значение freq_iso_chng2 в 2020 году было NA. Это влияет на прогноз. Если вы замените значение «NA» freq_iso_chng2 на любое конкретное число c, то предсказания будут реагировать на изменения переменных предиктора. Не знаю, почему это работает, но это работает. По какой-то причине прогнозы R с использованием байесовской модели различаются в зависимости от того, была ли цель пропущена или начиналась как число.

...