查看原文
其他

第四十讲 R-线性回归:预测模型及可信区间

跟投必得学 投必得医学 2022-05-07


在“R与生物统计专题”中,我们会从介绍R的基本知识展开到生物统计原理及其在R中的实现。以从浅入深,层层递进的形式在投必得医学公众号更新。

在前面几讲,我们介绍了线性回归及R的实现(第三十九讲 R-线性回归:自变量中存在分类变量时第三十八讲 R-线性回归模型的假设条件检验第三十七讲 R-多元线性回归中的多重共线性和方差膨胀因子第三十六讲 R-多元线性回归中的交互作用及更优模型选择第三十五讲 R-多元线性回归)。今天的课程将继续带大家学习R-线性回:预测模型及可信区间。
线性回归的一个主要目标是基于一个或多个预测变量来预测结果值。(我们也用它来研究两个变量的相关性,同时校正其他混杂因素)。那么,当我们取得了预测模型后,根据该预测模型对新数据进行预测得出的预测值是什么?这个预测值的可信度如何呢?今天的讲解中,我们会给出答案。
 
1.建立线性回归

我们首先建立一个简单的线性回归模型,该模型根据速度预测汽车的停车距离。
# 加载数据data("cars", package="datasets")


# 建立模型model<-lm(dist~speed, data=cars)model
输出结果
## Call:## lm(formula = dist ~ speed, data = cars)## Coefficients:## (Intercept) speed ## -17.58 3.93

线性模型方程可写为:dist= -17.579 + 3.932*speed。

请注意

变量speed和dist的单位分别是mph和ft



2.对新数据集的预测

使用以上模型,我们可以预测新速度值的停车距离。
首先创建一个新的数据框,其中包含例如三个新的速度值:
new.speeds<-data.frame( speed=c(12, 19, 24))

您可以使用R函数predict()预测相应的停车距离,如下所示:
predict(model, newdata=new.speeds)
输出结果
## 1 2 3## 29.6 57.1 76.8

3.置信区间

置信区间反映了均值预测周围的不确定性。要显示均值预测的95%置信区间,请加用R代码interval= "confidence":
predict(model, newdata=new.speeds, interval="confidence")

输出结果
## fit lwr upr## 1 29.6 24.4 34.8## 2 57.1 51.8 62.4## 3 76.8 68.4 85.2

输出包含以下几列:
·        fit:三个新车速预算的停车距离
·        lwr和upr:期望值的置信度上限和下限。默认情况下,该函数产生95%的置信度范围。

例如,与速度19相关的95%置信区间为(51.83,62.44),平均预测值为57.1。根据我们的模型,一辆时速为19 mph的汽车的平均制动距离为51.83到62.44ft,即平均值落在51.83到62.44到概率为95%。





4. 预测区间

预测区间给出了单个值(注意,置信区间为平均值)附近的不确定性。以相同的方式,作为置信区间,预测区间可以计算如下:
predict(model, newdata=new.speeds, interval="prediction")
输出结果
## fit lwr upr## 1 29.6 -1.75 61.0## 2 57.1 25.76 88.5## 3 76.8 44.75 108.8

与19的速度相关联的95%预测区间为(25.76,88.51)。根据我们的模型,速度为19 mph的汽车的停车距离在25.76到88.51之间的概率为95%。



注意,预测区间依赖于假设:残留误差正态分布为常数。因此,只有在您认为手边的数据近似满足假设的情况下,才可以使用预测区间。




5. 预测区间还是置信区间?

预测区间反映单个值附近的不确定性,而置信区间反映平均预测值附近的不确定性。因此,预测区间通常将比相同值的置信区间宽得多。
 

我们应该使用哪一个?


这个问题的答案取决于分析的背景和目的。通常,我们对特定的单个预测感兴趣,因此预测间隔会更合适。当您在应该使用预测区间时错误使用了置信区间,将大大低估给定预测值的不确定性。

6. 作图

我们可以绘制包含回归曲线、置信区间和预测区间的散点图
·        回归线为蓝色
·        灰色的置信区间
·        红色的预测区间
# 0. 建立预测模型data("cars", package="datasets")model<-lm(dist~speed, data=cars)

# 1. 添加预测区间pred.int<-predict(model, interval="prediction")mydata<-cbind(cars, pred.int)

# 2. 绘制回归线和置信区间library("ggplot2")p<-ggplot(mydata, aes(speed, dist))+ geom_point()+ stat_smooth(method=lm)

# 3. 绘制预测区间p+geom_line(aes(y=lwr), color="red", linetype="dashed")+ geom_line(aes(y=upr), color="red", linetype="dashed")

 
参考内容:
1. Alboukadel Kassambara, Machine LearningEssentials: Practical Guide in R.
 

好了,本期讲解就先到这里。小伙伴们赶紧试起来吧。
在之后的更新中,我们会进一步为您介绍R的入门,以及常用生物统计方法和R实现。欢迎关注,投必得医学手把手带您走入R和生物统计的世界。
提前预告一下,下一讲我们将学习R-线性回归:R-判断回归模型性能的指标。
第一讲 R-基本介绍及安装
第二讲 R-编程基础-运算、数据类型和向量等基本介绍
第三讲 R编程基础-矩阵和数据框
第四讲 R-描述性统计分析
第五讲 R-数据描述性统计分析作图
第六讲 R-数据正态分布检验
第七讲 R-相关性分析及作图
第八讲 R-单样本T检验
第九讲 R-单样本Wilcoxon检验
第十讲 R-两独立样本t检验
第十一讲 R-两独立样本Wilcoxon检验
第十二讲 R-配对样本t检验
第十三讲 R-配对样本Wilcoxon检验
第十四讲 R-单因素方差分析1
第十五讲 R-单因素方差分析2
第十六讲 R-双向方差分析1
第十七讲 R-双向方差分析2
第十八讲 R-多元方差分析
第十九讲 F检验:两样本方差比较
第二十讲 多样本间的方差比较
第二十一讲 单比例的Z检验
第二十二讲 两比例Z检验
第二十三讲 R-卡方检验之拟合度检验
第二十四讲  R-卡方检验之独立性检验
第二十五讲 生存分析基础概念
第二十六讲 R-生存分析:绘制KM生存曲线
第二十七讲 R-生存分析:生存函数的假设检验
第二十八讲 R-Cox比例风险模型(1)
第二十九讲 R-Cox比例风险模型(2)
第三十讲  R-Cox比例风险模型的假设检验条件
第三十一讲 R-机器学习与回归概述
第三十二讲 R-回归分析概述
第三十三讲 R-简单线性回归模型(1)
第三十四讲 R-简单线性回归模型(2)
第三十五讲 R-多元线性回归
第三十六讲 R-多元线性回归中的交互作用及更优模型选择
第三十七讲 R-多元线性回归中的多重共线性和方差膨胀因子
第三十八讲 R-线性回归模型的假设条件检验
第三十九讲 R-线性回归:自变量中存在分类变量时
当然啦,R语言的掌握是在长期训练中慢慢积累的。一个人学习太累,不妨加入“R与统计交流群”,和数百位硕博一起学习。

快扫二维码撩客服,
带你进入投必得医学交流群,
让我们共同进步!
↓↓



- END -

长按二维码关注「投必得医学」,更多科研干货在等你!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存