R中的Predict.lm() – 如何在拟合值周围获得不稳定的预测带

栏目: R语言 · 发布时间: 6年前

内容简介:代码日志版权声明:翻译自:http://stackoverflow.com/questions/12544090/predict-lm-in-r-how-to-get-nonconstant-prediction-bands-around-fitted-values

所以我目前正试图绘制线性模型的置信区间.我发现我应该使用predict.lm()这个,但我有一些问题真正理解的功能,我不喜欢使用功能,而不知道发生了什么.我在这个问题上发现了几个how-to,但是只有相应的R代码,没有真正的解释.

这是函数本身:

## S3 method for class 'lm'
predict(object, newdata, se.fit = FALSE, scale = NULL, df = Inf,
        interval = c("none", "confidence", "prediction"),
        level = 0.95, type = c("response", "terms"),
        terms = NULL, na.action = na.pass,
        pred.var = res.var/weights, weights = 1, ...)

现在,我难以理解:

1) newdata  
    An optional data frame in which to look for variables 
    with which to predict. If omitted, the fitted values are used.

所有人似乎都在使用newdata,但我不太明白为什么.为了计算置信区间,我显然需要这个间隔的数据(如观测数,x的平均值等),所以不能说是什么意思.但是那是什么意思呢?

2)间隔

间隔计算类型

好的,但是什么是“无”?

3a)类型

预测类型(响应或模型项).

3b)条款

如果type =“terms”,哪些术语(默认是所有术语)

> 3a:我可以通过我的模型获得一个特定变量的置信区间吗?如果是这样,那么3b呢?如果我可以在3a中指定这个术语,那么在3b中再做一次就没有意义了,所以我想我再错了,但是我不明白为什么.

我想你们中有些人可能会想:为什么不试试这个?我会(即使这可能不是在这里解决一切),但我现在不知道如何.因为我现在不知道newdata是什么,我不知道如何使用它,如果我尝试,我没有得到正确的置信区间.不知怎的,你如何选择数据是非常重要的,但我只是不明白!

编辑:我想补充一点,我的意图是要了解forecast.lm的工作原理.我的意思是我不明白,如果它的工作方式我认为它.那就是计算y-hat(预测值),而不是使用间隔的每个upr / lwr界限的加/减来计算几个数据点(看起来像一个置信线)?那么我会不明白为什么在新数据中与线性模型有相同的长度是必要的.

组成一些数据:

d <- data.frame(x=c(1,4,5,7),
                y=c(0.8,4.2,4.7,8))

适合型号:

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

与原始x值的置信度和预测间隔:

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

CONF.和pred.间隔与新的x值(外推和更精细/与原始数据均匀间隔):

nd <- data.frame(x=seq(0,8,length=51))
p_conf2 <- predict(lm1,interval="confidence",newdata=nd)
p_pred2 <- predict(lm1,interval="prediction",newdata=nd)

一起绘制一切:

par(las=1,bty="l") ## cosmetics
plot(y~x,data=d,ylim=c(-5,12),xlim=c(0,8)) ## data
abline(lm1) ## fit
matlines(d$x,p_conf1[,c("lwr","upr")],col=2,lty=1,type="b",pch="+")
matlines(d$x,p_pred1[,c("lwr","upr")],col=2,lty=2,type="b",pch=1)
matlines(nd$x,p_conf2[,c("lwr","upr")],col=4,lty=1,type="b",pch="+")
matlines(nd$x,p_pred2[,c("lwr","upr")],col=4,lty=2,type="b",pch=1)

R中的Predict.lm() – 如何在拟合值周围获得不稳定的预测带

使用新数据允许外推超出原始数据;此外,如果原始数据稀疏或不均匀间隔,则预测间隔(其不是直线)可能不能通过原始x值之间的线性插值很好地近似…

我不太清楚你的意思是“我的模型中一个特定变量的置信区间”;如果你想要参数的置信区间,那么你应该使用confint.如果您只想根据某些参数的更改(忽略由于其他参数导致的不确定性)来预测更改),那么确实要使用type =“terms”.

interval =“none”(默认值)只是告诉R不要计算任何置信度或预测间隔,只返回预测值.

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/12544090/predict-lm-in-r-how-to-get-nonconstant-prediction-bands-around-fitted-values


以上所述就是小编给大家介绍的《R中的Predict.lm() – 如何在拟合值周围获得不稳定的预测带》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

互联网+供应链金融创新

互联网+供应链金融创新

宝象金融研究院、零壹研究院 / 电子工业出版社 / 2016-6 / 65.00

供应链金融是一种带有模式创新的金融服务,它真正渗透到了产业运行的全过程。然而,如何探索这种模式的规律?特别是在"互联网+”时代,不同的产业主体如何更好地利用供应链金融促进产业的发展,成为了众多企业关注的话题。零壹财经攥写的《互联网+供应链金融创新》正是立足于这一点,全面总结反映了中国各行各业,以及不同的经营主体如何在立足产业运营的基础上,通过供应链金融来促进产业的发展具有很好的借鉴意义,其丰富的案......一起来看看 《互联网+供应链金融创新》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具