【问题标题】:Exporting Linear Regression Results Including Confidence Intervals导出包括置信区间的线性回归结果
【发布时间】:2012-12-27 16:40:02
【问题描述】:

嘿,我怎样才能导出一个结果表,用于制作我为下面的线性回归模型生成的图表。

d <- data.frame(x=c(200110,86933,104429,240752,255332,75998,
                    204302,97321,342812,220522,110990,259706,65733),
                y=c(200000,110000,165363,225362,313284,113972,
                    137449,113106,409020,261733,171300,344437,89000))

lm1 <- lm(y~x,data=d)

p_conf1 <- predict(lm1,interval="confidence")


nd <- data.frame(x=seq(0,80000,length=510000))
p_conf2 <- predict(lm1,interval="confidence",newdata=nd)



plot(y~x,data=d,ylim=c(-21750,600000),xlim=c(0,600000)) ## data
abline(lm1) ## fit
matlines(d$x,p_conf1[,c("lwr","upr")],col=2,lty=1,type="b",pch="+")

matlines(nd$x,p_conf2[,c("lwr","upr")],col=4,lty=1,type="b",pch="+")

【问题讨论】:

  • 您能否更具体地说明您想要的表格中的内容?
  • 几个小点:(1)你真的需要对 0 到 80000 之间的 510000 个值进行评估的预测吗?似乎有点矫枉过正(至少对于图形输出)...(2)如果您将dx 排序:d &lt;- d[order(d$x),],您的图片会更漂亮,否则您的第一个matlines 输出有交叉线。您问题的一般答案是write.csv(data.frame(...)),但详细信息等待您对@MattParker 评论的回答...
  • 谢谢,我当然可以缩小预测范围。我认为是错字。我的目标是生成一个图表,显示当我们超出用于生成线性回归的数据的下限时,置信区间如何随该模型变化。此外,我希望能够为数据集内外的任何预测 y 生成置信区间。然后可以访问这些结果。
  • 顺便说一句,如果您的问题得到了满意的回答,则单击最佳答案旁边的复选标记以接受它被认为是一种很好的形式(但不是严格必需) ...

标签: r export regression linear-regression


【解决方案1】:

仍然不完全确定您想要什么,但这似乎是合理的:

dat1 <- data.frame(d,p_conf1)
dat2 <- data.frame(nd,y=NA,p_conf2)
write.csv(rbind(dat1,dat2),file="linpredout.csv")

包括xy(等于观测值或NA为非观测点)、预测值fitlwr/upr边界。

编辑:修正错字。

【讨论】:

  • Bloker 嘿,非常感谢您的帮助。我完全不喜欢这个程序和语言。手册花了我几个小时才走到这一步。我很接近,但正如您在下面看到的代码生成了一个错误,我确信我使用不当。我只是把它贴在我已经写的结尾处。想法?... > > dat1 dat2 write.csv(rbind(dat1,tdat2),file="linpredout .csv") rbind(dat1, tdat2) 中的错误:找不到对象 'tdat2'
  • @Bolker Cool 它现在不会生成错误消息——但我不能在我的代码中的正确位置使用它,因为没有生成 .csv 文件。或者如果是我不知道在哪里可以找到它。真的很感谢你在这方面的帮助。
  • ?getwd(解释了获取和设置工作目录)。或使用绝对路径,例如file="c:/myout.csv" -- 但从长远来看,了解工作目录的工作原理要好得多
【解决方案2】:

这将返回一个矩阵,其中包含构建置信区间所需的一些信息:

> coef(summary(lm1))
                Estimate   Std. Error   t value     Pr(>|t|)
(Intercept) 21749.037058 2.665203e+04 0.8160369 4.317954e-01
x               1.046954 1.374353e-01 7.6177997 1.037175e-05

任何关于线性回归的文本都应该有置信区间的公式。您可能需要根据您使用的公式计算一些辅助量。 predict 的代码是可见的......只需在控制台输入:

predict.lm

别忘了置信区间不同于预测区间。

【讨论】:

  • 我认为如果 OP 希望能够预测 R 之外的区间,他们也需要 vcov() 的结果(即斜率-截距相关性)......但这不是我阅读的方式他们的问题。
  • 我猜我们的阅读方式确实不同。我以为 OP 想为 CI 波段构建一个公式。
猜你喜欢
  • 1970-01-01
  • 2010-11-13
  • 2019-08-29
  • 1970-01-01
  • 1970-01-01
  • 2020-08-01
  • 2023-03-26
  • 2020-03-02
  • 1970-01-01
相关资源
最近更新 更多