【问题标题】:Random predictions from linear model in RR中线性模型的随机预测
【发布时间】:2016-04-20 20:56:09
【问题描述】:

我有一些数据,其中一个变量有一些缺失值,我希望能够创建(随机)预测这些可能是什么。这是我的第一个想法:

# 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 参数有关,但我不确定如何使用它。

【问题讨论】:

    标签: r glm predict


    【解决方案1】:

    假设我们有这样的数据:

    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 方法这样做会很好,但它并不完全足够灵活...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 2019-07-10
      相关资源
      最近更新 更多