R中线性模型的随机预测
Random predictions from linear model in R
我有一些数据,其中一个变量有一些缺失值,我希望能够创建(随机)预测这些可能是什么。这是我的第一个想法:
# miss indicates where the observations with missing response are
library(MASS)
model <- glm.nb(data[-miss,4] ~ ., data=data[-miss,-4])
predict(model, newdata=data[miss,-4])
但是,如果我重复最后一行,它会一遍又一遍地给出相同的答案 - 它似乎给出了给定该数据和模型的响应的预测平均值。我想要一个包含方差的随机预测,即在给定模型下从具有此类预测变量的观察响应分布中随机抽取。
它可能与 pred.var 参数有关,但我不确定如何使用它。
假设我们有这样的数据:
set.seed(101)
dd <- data.frame(x=(1:20)*0.1)
dd$y <- rnbinom(20,mu=exp(dd$x),size=1)
## make some missing values
miss <- c(2,3,5)
dd$y[miss] <- NA
现在拟合一个模型:
m1 <- MASS::glm.nb(y~x,dd,na.action=na.exclude)
现在使用该模型的预测来获得预期的 mean 值并 rnbinom
生成随机值 ...
p <- predict(m1,newdata=dd,type="response")
randvals <- rnbinom(length(p),mu=p,size=m1$theta)
(这会为每个元素提供随机值,而不仅仅是缺失的元素,但显然您可以只挑选出您想要的...)如果 simulate
方法能够做到这一点,那就太好了,但它不够灵活...
我有一些数据,其中一个变量有一些缺失值,我希望能够创建(随机)预测这些可能是什么。这是我的第一个想法:
# miss indicates where the observations with missing response are
library(MASS)
model <- glm.nb(data[-miss,4] ~ ., data=data[-miss,-4])
predict(model, newdata=data[miss,-4])
但是,如果我重复最后一行,它会一遍又一遍地给出相同的答案 - 它似乎给出了给定该数据和模型的响应的预测平均值。我想要一个包含方差的随机预测,即在给定模型下从具有此类预测变量的观察响应分布中随机抽取。
它可能与 pred.var 参数有关,但我不确定如何使用它。
假设我们有这样的数据:
set.seed(101)
dd <- data.frame(x=(1:20)*0.1)
dd$y <- rnbinom(20,mu=exp(dd$x),size=1)
## make some missing values
miss <- c(2,3,5)
dd$y[miss] <- NA
现在拟合一个模型:
m1 <- MASS::glm.nb(y~x,dd,na.action=na.exclude)
现在使用该模型的预测来获得预期的 mean 值并 rnbinom
生成随机值 ...
p <- predict(m1,newdata=dd,type="response")
randvals <- rnbinom(length(p),mu=p,size=m1$theta)
(这会为每个元素提供随机值,而不仅仅是缺失的元素,但显然您可以只挑选出您想要的...)如果 simulate
方法能够做到这一点,那就太好了,但它不够灵活...