【问题标题】:How to get standard deviations using predict?如何使用预测获得标准偏差?
【发布时间】:2021-03-08 10:51:49
【问题描述】:

我正在尝试绘制三向交互。首先,我使用expand.grid 创建变量的不同组合。然后我使用predict 来获取预测值。它运作良好,但是,我想获得标准偏差或置信区间。一旦我在predict 中包含选项se.fit = T,我就会得到一些我无法解释的结果,因为两个组合得到一个预测值,而另外两个得到四个结果的范围。我不确定se.fit = T 选项在这种情况下是否错误,或者问题是否在于我对结果的解释。有人可以帮忙吗?

这是没有se.fit 选项的代码:

set.seed(20170925) 
dat <- data.frame(time=gl(n = 2,k = 5000),
                  y= rnorm(10000, mean=1000, sd=400),
                  a=factor(sample(1:2, 10000, replace=TRUE)),
                  b=factor(sample(1:2, 10000, replace=TRUE)),
                  c=factor(rep(rep(1:3,times=c(2500,2500,5000)),2)))

m = lm(y ~ a*b*c, data=dat)
pred <- expand.grid(a=factor(1:2),b=factor(1:2), c=factor(1, levels=c(1,2,3)))
pred$y <- predict(m,pred)

要添加se.fit 选项,我们运行相同的代码,但将最后一行更改为:

pred$y <- predict(m,pred, se.fit = T)

【问题讨论】:

    标签: r predict interaction


    【解决方案1】:

    predict 现在给你一个列表,你只需要挑选其中的元素,可能是这样的:

    p <- predict( m, pred, se.fit=TRUE )
    
    pred$y <- p$fit
    pred$se.fit <- p$se.fit
    
    

    编辑:让它更简单

    【讨论】:

      猜你喜欢
      • 2017-06-06
      • 2019-08-16
      • 2019-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多