“最优“回归方程的选择”
当变量中含有对Y影响不大的变量时,可能因为误差平方和的自由度减小而使方差的估计增大,从而影响回归预测的精度,适当的选择一个变量建立一个最优的回归方程十重要。此处采用逐步回归法。
逐步回归法计算
#水泥热量与四种成分的关系
cement<-data.frame(
X1=c( 7, 1, 11, 11, 7, 11, 3, 1, 2, 21, 1, 11, 10),
X2=c(26, 29, 56, 31, 52, 55, 71, 31, 54, 47, 40, 66, 68),
X3=c( 6, 15, 8, 8, 6, 9, 17, 22, 18, 4, 23, 9, 8),
X4=c(60, 52, 20, 47, 33, 22, 6, 44, 22, 26, 34, 12, 12),
Y =c(78.5, 74.3, 104.3, 87.6, 95.9, 109.2, 102.7, 72.5,
93.1,115.9, 83.8, 113.3, 109.4)
)
lm.sol<-lm(Y ~ X1+X2+X3+X4, data=cement)
summary(lm.sol)
Call:
lm(formula = Y ~ X1 + X2 + X3 + X4, data = cement)
Residuals:
Min 1Q Median 3Q Max
-3.1750 -1.6709 0.2508 1.3783 3.9254
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 62.4054 70.0710 0.891 0.3991
X1 1.5511 0.7448 2.083 0.0708 .
X2 0.5102 0.7238 0.705 0.5009
X3 0.1019 0.7547 0.135 0.8959
X4 -0.1441 0.7091 -0.203 0.8441
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.446 on 8 degrees of freedom
Multiple R-squared: 0.9824, Adjusted R-squared: 0.9736
F-statistic: 111.5 on 4 and 8 DF, p-value: 4.756e-07
#回归系数没有一项通过检测
#用step( )做回归分析
lm.ste<-step(lm.sol)
Start: AIC=26.94
Y ~ X1 + X2 + X3 + X4
Df Sum of Sq RSS AIC
- X3 1 0.1091 47.973 24.974
- X4 1 0.2470 48.111 25.011
- X2 1 2.9725 50.836 25.728
<none> 47.864 26.944
- X1 1 25.9509 73.815 30.576
Step: AIC=24.97
Y ~ X1 + X2 + X4
Df Sum of Sq RSS AIC
<none> 47.97 24.974
- X4 1 9.93 57.90 25.420
- X2 1 26.79 74.76 28.742
- X1 1 820.91 868.88 60.629
用全部变量做回归分析时,AIC值为26.94。接下来显示如果去除X3,则AIC = 24.97,去掉x4则为25.01,去掉X3可以使AIC达到最小,R软件自动去掉x3.
summary(lm.ste)
Call:
lm(formula = Y ~ X1 + X2 + X4, data = cement)
Residuals:
Min 1Q Median 3Q Max
-3.0919 -1.8016 0.2562 1.2818 3.8982
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 71.6483 14.1424 5.066 0.000675 ***
X1 1.4519 0.1170 12.410 5.78e-07 ***
X2 0.4161 0.1856 2.242 0.051687 .
X4 -0.2365 0.1733 -1.365 0.205395
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.309 on 9 degrees of freedom
Multiple R-squared: 0.9823, Adjusted R-squared: 0.9764
F-statistic: 166.8 on 3 and 9 DF, p-value: 3.323e-08
回归系数显著性水平有大提高,但是X2,X2系数检验不理想。从step()可以看出去掉x4,AIC从24.97变为25.42,是增加的最少的,除AIC准则外,残差平方各也是逐步回归的重要指标之一,从直观上看,拟合越好的直线,残差平方和应该最小,去掉x4后,残差平方和上升了9.93,也是最少的。从这两项指标看,应该去掉x4.
lm.opt <- lm(Y ~ X1+X2,data = cement);
summary(lm.opt)
Call:
lm(formula = Y ~ X1 + X2, data = cement)
Residuals:
Min 1Q Median 3Q Max
-2.893 -1.574 -1.302 1.363 4.048
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 52.57735 2.28617 23.00 5.46e-10 ***
X1 1.46831 0.12130 12.11 2.69e-07 ***
X2 0.66225 0.04585 14.44 5.03e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.406 on 10 degrees of freedom
Multiple R-squared: 0.9787, Adjusted R-squared: 0.9744
F-statistic: 229.5 on 2 and 10 DF, p-value: 4.407e-09
这个结果还算满意
Y = 52.58 + 1.46831*X1 + 0.66225*X2
改变step( )中的某些参数,可能得到不同的结果。
lm.ste<-step(lm.sol, trace=0, k=3); lm.ste
Call:
lm(formula = Y ~ X1 + X2, data = cement)
Coefficients:
(Intercept) X1 X2
52.5773 1.4683 0.663
直接去掉X3和X4。
从增加变量的角度考虑逐步回归
lm0<-lm(Y~1, data=cement)
lm.ste<-step(lm0, scope = ~X1+X2+X3+X4, k=4)
Start: AIC=73.44
Y ~ 1
Df Sum of Sq RSS AIC
+ X4 1 1831.90 883.87 62.852
+ X2 1 1809.43 906.34 63.178
+ X1 1 1450.08 1265.69 67.519
+ X3 1 776.36 1939.40 73.067
<none> 2715.76 73.444
Step: AIC=62.85
Y ~ X4
Df Sum of Sq RSS AIC
+ X1 1 809.10 74.76 34.742
+ X3 1 708.13 175.74 45.853
<none> 883.87 62.852
+ X2 1 14.99 868.88 66.629
- X4 1 1831.90 2715.76 73.444
Step: AIC=34.74
Y ~ X4 + X1
Df Sum of Sq RSS AIC
+ X2 1 26.79 47.97 32.974
+ X3 1 23.93 50.84 33.728
<none> 74.76 34.742
- X1 1 809.10 883.87 62.852
- X4 1 1190.92 1265.69 67.519
Step: AIC=32.97
Y ~ X4 + X1 + X2
Df Sum of Sq RSS AIC
- X4 1 9.93 57.90 31.420
<none> 47.97 32.974
- X2 1 26.79 74.76 34.742
+ X3 1 0.11 47.86 36.944
- X1 1 820.91 868.88 66.629
Step: AIC=31.42
Y ~ X1 + X2
Df Sum of Sq RSS AIC
<none> 57.90 31.420
+ X4 1 9.93 47.97 32.974
+ X3 1 9.79 48.11 33.011
- X1 1 848.43 906.34 63.178
- X2 1 1207.78 1265.69 67.519
这里取k4,最后还剩下x1与x2。
在R中,还有两个函数可以做逐步回归,一个是add1( )函数,用于增加变量,一个是drop1( )函数,用于减小变量。事实上,step( )就是使用这两个函数来自动增加和减小变量。
add1(lm0, scope = ~X1+X2+X3+X4, test="F")
Single term additions
Model:
Y ~ 1
Df Sum of Sq RSS AIC F value Pr(>F)
<none> 2715.76 71.444
X1 1 1450.08 1265.69 63.519 12.6025 0.0045520 **
X2 1 1809.43 906.34 59.178 21.9606 0.0006648 ***
X3 1 776.36 1939.40 69.067 4.4034 0.0597623 .
X4 1 1831.90 883.87 58.852 22.7985 0.0005762 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
打算减少变量
drop1(lm.sol, test="F")
Single term deletions
Model:
Y ~ X1 + X2 + X3 + X4
Df Sum of Sq RSS AIC F value Pr(>F)
<none> 47.864 26.944
X1 1 25.9509 73.815 30.576 4.3375 0.07082 .
X2 1 2.9725 50.836 25.728 0.4968 0.50090
X3 1 0.1091 47.973 24.974 0.0182 0.89592
X4 1 0.2470 48.111 25.011 0.0413 0.84407
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
根据每步计算的结果情况,人工选择增加还是去掉某些变量。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在数据分析领域,Excel作为一种普及率极高且功能强大的工具,无疑为无数专业人士提供了便捷的解决方案。尽管Excel自带了丰富的功 ...
2025-01-17在这个瞬息万变的时代,许多人都在寻找能让他们脱颖而出的职业。而数据分析师,作为大数据和人工智能时代的热门职业,自然吸引了 ...
2025-01-14Python作为一门功能强大的编程语言,已经成为数据分析和可视化领域的重要工具。无论你是数据分析的新手,还是经验丰富的专业人士 ...
2025-01-10完全靠数据决策,真的靠谱吗? 最近几年,“数据驱动”成了商界最火的关键词之一,但靠数据就能走天下?其实不然!那些真正成功 ...
2025-01-09SparkSQL 结构化数据处理流程及原理是什么?Spark SQL 可以使用现有的Hive元存储、SerDes 和 UDF。它可以使用 JDBC/ODB ...
2025-01-09在如今这个信息爆炸的时代,数据已然成为企业的生命线。无论是科技公司还是传统行业,数据分析正在深刻地影响着商业决策以及未来 ...
2025-01-08“数据为王”相信大家都听说过。当前,数据信息不再仅仅是传递的媒介,它成为了驱动经济发展的新燃料。对于企业而言,数据指标体 ...
2025-01-07在职场中,当你遇到问题的时候,如果感到无从下手,或者抓不到重点,可能是因为你掌握的思维模型不够多。 一个好用的思维模型, ...
2025-01-06在现代企业中,数据分析师扮演着至关重要的角色。每天都有大量数据涌入,从社交媒体到交易平台,数据以空前的速度和规模生成。面 ...
2025-01-06在职场中,许多言辞并非表面意思那么简单,有时需要听懂背后的“潜台词”。尤其在数据分析的领域里,掌握常用术语就像掌握一门新 ...
2025-01-04在当今信息化社会,数据分析已成为各行各业的核心驱动力。它不仅仅是对数字进行整理与计算,而是在数据的海洋中探寻规律,从而指 ...
2025-01-03又到一年年终时,各位打工人也迎来了展示成果的关键时刻 —— 年终述职。一份出色的年终述职报告,不仅能全面呈现你的工作价值, ...
2025-01-03在竞争激烈的商业世界中,竞品分析对于企业的发展至关重要。今天,我们就来详细聊聊数据分析师写竞品分析的那些事儿。 一、明确 ...
2025-01-03在数据分析的江湖里,有两个阵营总是争论不休。一派信奉“大即是美”,认为数据越多越好;另一派坚守“小而精”,力挺质量胜于规 ...
2025-01-02数据分析是一个复杂且多维度的过程,从数据收集到分析结果应用,每一步都是对信息的提炼与升华。可视化分析结果,以图表的形式展 ...
2025-01-02在当今的数字化时代,数据分析师扮演着一个至关重要的角色。他们如同现代企业的“解密专家”,通过解析数据为企业提供决策支持。 ...
2025-01-02数据分析报告至关重要 一份高质量的数据分析报告不仅能够揭示数据背后的真相,还能为企业决策者提供有价值的洞察和建议。 年薪 ...
2024-12-31数据分析,听起来好像是技术大咖的专属技能,但其实是一项人人都能学会的职场硬核能力!今天,我们来聊聊数据分析的核心流程,拆 ...
2024-12-31提到数据分析,你脑海里可能会浮现出一群“数字控”抱着电脑,在海量数据里疯狂敲代码的画面。但事实是,数据分析并没有你想象的 ...
2024-12-31关于数据分析师是否会成为失业高危职业,近年来的讨论层出不穷。在这个快速变化的时代,技术进步让人既兴奋又不安。今天,我们从 ...
2024-12-30