gpt4 book ai didi

r - 预测预测的标准误差

转载 作者:行者123 更新时间:2023-12-01 12:48:56 25 4
gpt4 key购买 nike

我是 R 的新手,来自 Stata 世界。我刚刚运行了一个线性模型(大约有 100 个变量,每个变量有 500 个左右的数据点),如下所示:

RegModel.3 <- lm(ordercount~timecount2+timecount4 .... expeditedrop, data=Dataset)

现在我想为每个拟合值找到预测的标准误差,如 stata 中的 stdf 函数。

我试过下面的代码:

predict(RegModel.3$fitted.values, new, se.fit=TRUE)

但我收到以下错误:

Error in UseMethod("predict") : no applicable method for 'predict' applied to an object of class "c('double', 'numeric')"

我做错了什么?此外,我如何使用 write.csv 命令以类似于我编写系数的方式导出输出:

write.csv(RegModel.3$coefficients, file='results.csv')

谢谢!

最佳答案

取自 ?lm 的可重现示例:

ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2,10,20, labels=c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)


pp <- predict(lm.D9, interval="prediction",se.fit=TRUE)

(参见 ?predict.lm 引用)和

write.csv(cbind(pp$fit,stderr=pp$se.fit),file="predintervals.csv")

应该这样做。 (在这种情况下,标准误差都相同,因为只有一个分类预测变量,没有连续预测变量...)

PS:只要有可能,最好使用标准访问器,例如 coef() 来提取系数或 fitted() 来提取拟合值,而不是进入带有 $ 的对象。尝试使用 methods(class="lm") 查看可用的访问器。

编辑:说明一般方法仍然适用于大问题:

set.seed(101)
X <- matrix(runif(101*500),nrow=500)
prednames <- paste0("predictor",1:100)
X2 <- setNames(as.data.frame(X),
c("response",prednames))
form <- reformulate(paste(prednames,collapse="+"),response="response")
fit1 <- lm(form,data=X2)
pp <- predict(fit1,interval="predict",se.fit=TRUE)

关于r - 预测预测的标准误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13755110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com