【R语言】lm线性回归及输出含义,置信区间,预测,R方,ggplot 拟合直线
创作时间:
作者:
@小白创作中心
【R语言】lm线性回归及输出含义,置信区间,预测,R方,ggplot 拟合直线
引用
CSDN
1.
https://blog.csdn.net/weixin_48846514/article/details/146354840
在R语言中,我们使用lm()
函数执行线性回归,并用summary()
查看结果。例如:
lm.fit <- lm(Price ~ BuildingArea, data = st.kilda.data)
summary(lm.fit)
回归分析结果如下:
Call:
lm(formula = Price ~ BuildingArea, data = st.kilda.data)
Residuals:
Min 1Q Median 3Q Max
-817415 -201614 -85181 19895 3403199
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -129484.0 91775.9 -1.411 0.161
BuildingArea 11209.5 799.8 14.015 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 490300 on 99 degrees of freedom
Multiple R-squared: 0.6649, Adjusted R-squared: 0.6615
F-statistic: 196.4 on 1 and 99 DF, p-value: < 2.2e-16
1. Call(回归公式)
Call:
lm(formula = Price ~ BuildingArea, data = st.kilda.data)
- 这里的
Price ~ BuildingArea
说明房价 (Price)作为因变量(Y),由建筑面积 (BuildingArea)作为自变量(X)来预测。
2. Residuals(残差分析)
Residuals:
Min 1Q Median 3Q Max
-817415 -201614 -85181 19895 3403199
- 残差 = 真实值 - 预测值,表示模型的误差。
- 五个关键数值
- Min(最小值):最小残差,模型低估的最大程度(-817415)。
- 1Q(第一四分位数):有 25% 的残差低于 -201614。
- Median(中位数):50% 残差小于 -85181。
- 3Q(第三四分位数):有 75% 的残差小于 19895。
- Max(最大值):最大残差,模型高估的最大程度(3403199)。
3. Coefficients(回归系数表)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -129484.0 91775.9 -1.411 0.161
BuildingArea 11209.5 799.8 14.015 <2e-16 ***
(1) Estimate(估计值)
- 截距(Intercept):-129484.0
- 当
BuildingArea = 0
时,房价的理论预测值是 -129,484 元(在实际应用中,可能没有建筑面积为 0 的情况,因此截距通常不具有实际意义)。 - BuildingArea系数:11209.5
- 每增加 1 平方米建筑面积,房价平均增加 11,209.5 元。
(2) Std. Error(标准误差)
- 标准误差(Std. Error)表示估计值的不确定性:
- BuildingArea的标准误差为799.8,说明
11209.5
这个估计值有较小的误差,较为可靠。 - Intercept的标准误差较大,说明该估计值可能不稳定。
(3) t value(t 统计量)
- 计算公式:
t = Estimate / Std. Error
- 例如:
t_BuildingArea = 11209.5 / 799.8 = 14.015
- t 值越大,说明该变量对因变量的影响更显著。
(4) Pr(>|t|)(p 值)
- p 值用于检验回归系数是否显著
- BuildingArea的 p 值**< 2e-16**,表示该变量对房价有极其显著的影响(通常 p < 0.05 认为显著)。
- Intercept的 p 值0.161,大于 0.05,表示截距不显著,可以在某些情况下忽略它。
4. Significance Codes(显著性标记)
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
- 这是 R 语言的显著性水平说明:
***
表示p < 0.001,极显著。**
表示0.001 ≤ p < 0.01,显著。*
表示0.01 ≤ p < 0.05,较显著。.
表示0.05 ≤ p < 0.1,弱显著。
在本例中:
- BuildingArea变量的 p 值**< 2e-16**,所以被标记为
***
,表示它对Price
影响极其显著。 - Intercept的 p 值为 0.161,没有标记,表示不显著。
5. 模型整体评估
Residual standard error: 490300 on 99 degrees of freedom
Multiple R-squared: 0.6649, Adjusted R-squared: 0.6615
F-statistic: 196.4 on 1 and 99 DF, p-value: < 2.2e-16
(1) Residual Standard Error(残差标准误差)
- 490300 说明模型的预测误差大约是49 万。
- 数值越小,表示模型的拟合度越好。
(2) R-squared(R² 决定系数)
- Multiple R-squared(0.6649)
- 表示
BuildingArea
能解释房价变化的 66.49%,模型拟合度较好。 - Adjusted R-squared(0.6615)
- 调整 R²,用于修正变量数量对 R² 的影响。
- 因为是单变量回归,这里 R² 和 Adjusted R² 差异不大。
(3) F-statistic(F 统计量)
- F-statistic: 196.4 on 1 and 99 DF, p-value: < 2.2e-16
- 检验整体模型是否显著
- F 值 = 196.4,p 值**< 2.2e-16,表示模型整体显著**。
置信区间
置信区间(Confidence Intervals)在回归分析中的作用
在回归分析中,置信区间(Confidence Interval, CI)用于衡量回归系数的不确定性。与 p 值不同,置信区间提供了一个范围,表示回归系数的可能真实值,而不是一个显著性检验的结果。
1. 在 R 中计算置信区间
我们可以使用confint()
函数来计算回归系数的置信区间。例如:
lm.fit <- lm(Price ~ BuildingArea, data = st.kilda.data)
# 默认 95% 置信区间
confint(lm.fit)
输出结果:
2.5 % 97.5 %
(Intercept) -311587.233 52619.18
BuildingArea 9622.491 12796.50
- 默认情况下,
confint()
计算 95% 置信区间(即level = 0.95
)。 - 解释
- BuildingArea的 95% 置信区间为[9622.49, 12796.50],表示我们有 95% 的信心,真实回归系数落在这个区间内。
- Intercept(截距)的 95% 置信区间较大,说明截距的不确定性较高。
2. 改变置信水平
我们可以调整level
参数来计算不同的置信区间,例如99% 置信区间:
confint(lm.fit, level = 0.99)
输出结果:
0.5 % 99.5 %
(Intercept) -370524.63 111556.57
BuildingArea 9108.86 13310.13
- 99% 置信区间比 95% 置信区间更宽,因为更高的置信水平意味着我们需要一个更大的区间来确保包含真实值。
- BuildingArea的 99% 置信区间为[9108.86, 13310.13],表示我们有 99% 的信心,真实回归系数落在这个区间内。
3. 置信区间 vs. p 值
- 如果置信区间不包含 0,说明该变量的系数显著不为 0,与 p 值小于 0.05 的结果一致。
- 如果置信区间包含 0,说明变量的影响可能不显著,与 p 值大于 0.05 的情况一致。
在这个示例中:
- BuildingArea的置信区间(95%:
[9622.49, 12796.50]
)不包含 0,说明其对Price
影响显著(p < 2e-16)。 - Intercept的置信区间包含 0(-311587.23 到 52619.18),这与 p = 0.161 的结果一致,说明截距可能不显著。
4. 置信区间的作用
- 解释回归系数的不确定性,避免单一估计值可能带来的误导。
- 用于变量选择:如果某个变量的置信区间包含 0,可以考虑去掉该变量。
- 与 p 值互补,提供更直观的统计信息。
预测
1. 置信区间 vs. 预测区间
在predict()
函数中,我们可以指定interval
参数来计算:
- 置信区间(Confidence Interval):预测均值的精确度,即100 m² 房屋的平均价格的估计范围。
- 预测区间(Prediction Interval):预测单个新样本的值的精确度,即某个具体 100 m² 房屋的价格可能落入的范围。
R 代码
# 生成一个新数据集,表示 100m² 的房屋
new.100 <- data.frame(BuildingArea = 100)
# 计算 95% 置信区间
predict(lm.fit, new.100, interval = "confidence")
# 计算 95% 预测区间
predict(lm.fit, new.100, interval = "prediction")
2. 置信区间(Confidence Interval)
fit lwr upr
1 991465.5 894562.7 1088368
- 预测值(fit):
991,465.5
(即 99.1 万) - 下界(lwr):
894,562.7
(即 89.5 万) - 上界(upr):
1,088,368
(即 108.8 万)
解读
- 这个区间表示,我们有95% 的信心,对于所有100 m² 的房屋,它们的平均价格会落在89.5 万到 108.8 万之间。
- 由于它是均值的区间,因此它较窄。
3. 预测区间(Prediction Interval)
fit lwr upr
1 991465.5 13820.26 1969111
- 预测值(fit):
991,465.5
(即 99.1 万) - 下界(lwr):
13,820.26
(即 1.38 万) - 上界(upr):
1,969,111
(即 196.9 万)
解读
- 这个区间表示,我们有95% 的信心,对于某一特定100 m² 的房屋,它的实际价格可能落在1.38 万到 196.9 万之间。
- 这个范围比置信区间更宽,因为它考虑了个别房屋的价格波动(残差的影响)。
4. 置信区间 vs. 预测区间
特征 | 置信区间(Confidence Interval) | 预测区间(Prediction Interval) |
---|---|---|
定义 | 预测均值的范围,即100m² 房屋的平均价格 | 预测单个房屋的范围,即具体某个 100m² 房屋的价格 |
计算方式 | 仅考虑回归系数的不确定性 | 还考虑个体样本的波动性 |
区间宽度 | 较窄,因为均值的误差小 | 较宽,因为个体房屋价格变化较大 |
示例(100m²) | [89.5 万, 108.8 万] | [1.38 万, 196.9 万] |
R方的计算以及四舍五入
round(summary(lm.fit)$r.square, 3)
summary(lm.fit)$r.square
:提取回归模型的决定系数 R²。round(..., 3)
:将其四舍五入到小数点后三位。
重复生成相同数字n次
rep(100, 3)
ggplot散点图 smooth拟合直线
sonar |>
ggplot(aes(x = V1, y = V2)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE) +
labs(x = "V1", y = "V2") +
ggtitle("V2 versus V1 Scatter Plot")
geom_point()
:绘制散点图。geom_smooth(method = "lm", se = FALSE)
:method = "lm"
:使用线性回归(lm
)。se = FALSE
:不显示置信区间(默认是TRUE
,会绘制阴影区域)。labs()
&ggtitle()
:设置坐标轴标签和标题。
热门推荐
深入了解各类基金:ETF、LOF、FOF、QDII、QFII及封闭式基金
如何识别和投资蓝筹股?这些股票的市场稳定性如何分析?
如何对一个文件夹里所有excel表执行同一段VBA
怀孕产前、产后怎么吃?养胎不养肉孕婦飲食調養秘訣、产后饮食禁忌懒人包!
如何理解和应用横盘突破指标?横盘突破指标的实际应用和注意事项有哪些?
装修柜子开门方式有哪些
创业团队如何合理决策
背水一战:韩信井陉之战的智慧与勇气
2025桂林电子科技大学研究生学费及奖助学金政策详解
揭秘闭锁颌:从定义到成因,全面解析这一影响孩子面容特征的口腔问题
锂电清洁度分析:从光镜到电镜(下)
金刚菩提为什么一定要分大小?
《自然》揭晓2025年七大技术突破,生命科学领域独占四席
探索轨道交通中的ATS系统:关键作用与技术细节
十二生肖由来
豆瓣评分最高的10部国产电影,最低9.3分,第1高达9.6分
从田间到餐桌:地理标志如何带动区域经济与乡村振兴?
防盗门的高度有什么讲究?家居安全知识必读
果树春季萌芽到秋季摘果需要追肥浇水几次?怎样浇水施肥最合理?
第一次攀登珠穆朗玛峰:挑战极限的壮丽征程
国网信息化安全架构图的主要组成部分有哪些?
地质灾害调查与防治就业方向及前景:大专毕业能去干什么
初次去北京旅游全攻略:必看景点、美食推荐与交通住宿指南
电脑CPU正常温度范围是多少度详解各类CPU温度标准
2025年,请对照这8个方法来爱自己
供需趋紧催动涨价 稀土行业产业链整合动力足
火影忍者终章:鸣人与佐助的终极对决与和平的曙光
创业创新是什么?从定义到实践的全面解析
夏天跑步不担心:简易补水策略
学历证书是毕业证还是学位证有什么区别