多元线性回归的探索
作者:互联网
文章目录
数据使用的依然是state.x77数据集为例,探究一个州的犯罪率和其他因素的关系,包括人口、文盲率、平均收入和结霜天数(温度在冰点一下的平均天数)。
标签解释:Murder犯罪率、Population人口、Illiteracy文盲率、Income收入、Frost结霜天数
交互项的多元线性回归主要用mtcars数据中的汽车数据,对汽车重量和马力作为预测变量,并包含交互项来拟合回归模型。
其中,hp汽车功率,wt汽车重量。
实验过程:
1、分析二变量的关系
检测各变量的相关性,由此可见文盲率和犯罪率的关系是比较大的,达到约70%。
scatterplotMatrix()函数在非对角线绘制散点图,并添加了平滑和线性拟合曲线,对角线是绘制每个变量的密度图和轴须图。
其中谋杀率是双峰曲线,每个预测变量存在偏差,看谋杀率第一行图的数据,从拟合效果看,谋杀率随人口和文盲率的增加而增加,随收入水平和结霜天数下降而下降。
看最后一行图最后一个图,是结霜天数,曲线是结霜天数的拟合效果,纵轴为结霜天数,其他图为结霜天数的影响下的变量的变化,可以看出越冷的时候,文盲率越低,收入会越高
2、多元线性回归
预测变量不为1时,回归系数表明一个预测变量增加一个单位,其他预测变量保持不变时,因变量将要增加的数量。
①lm(Murder ~ Population + Illiteracy + Income + Frost,data=states)函数拟合多元线性回归
②在这次实验中,可以从结果看出,文盲率的回归系数为4.14(注:4.134e+00=4.134x10^0),所以说,在控制住人口、收入以及气温的情况下,文盲率上升1%,那么谋杀率会上升4.14%,它的系数在p<0.001的水平,显著不为零的。
再看Forst,回归系数为0.00058,同理的分析,它并不是显著不为0,所以说并不呈线性的关系。
注:
一个星号对应在5%的显著性水平显著,即p<0.05,p<0.05说明某件事情的发生至少有95%的把握。
两个星号对应1%水平显著,即p<0.01,p<0.01说明某件事情的发生至少有99%的把握。
三个星号对应0.1%显著水平,即p<0.001,p<0.001说明某件事情的发生至少有99.9%的把握。
星号越多,表明p值越小,显著性越强。
预测变量可以解释了各州谋杀率57%的方差。
3、显著交互项的多元线性回归(汽车数据集)
主要从Pr(>|t|)来进行探究
从Pr来看,功率和车重的交互项是显著的,意味着响应变量与其中一个预测变量的关系依赖于另一个预测变量的水平,再次意味着每加仑汽油行驶英里数与汽车功率的关系依车重不同而不同。
预测模型mpg为mpg=49.81 - 0.12 x hp - 8.22 x wt + 0.03 x hp x wt
利用wt=3.2,少于一个标准差或多余一个,代入,即wt=4.2和wt=2.2。
将wt分别代入时,会发现mpg的预期改变在减少,使用effects包的effect函数详细表示为如下图。
清晰可得,功率与每加仑汽油行驶英里数的关系随车重增加减弱了,当wt=4.2,直线几乎水平,表明hp增加,mpg不会发生改变。
> #检测各变量的相关性
> states <- as.data.frame(state.x77[,c("Murder","Population","Illiteracy","Income","Frost")])
> cor(states)
Murder Population Illiteracy Income Frost
Murder 1.0000000 0.3436428 0.7029752 -0.2300776 -0.5388834
Population 0.3436428 1.0000000 0.1076224 0.2082276 -0.3321525
Illiteracy 0.7029752 0.1076224 1.0000000 -0.4370752 -0.6719470
Income -0.2300776 0.2082276 -0.4370752 1.0000000 0.2262822
Frost -0.5388834 -0.3321525 -0.6719470 0.2262822 1.0000000
> #检测二变量关系
> library(car)
> scatterplotMatrix(states,spread=FALSE,smooth.args=list(lty=2),main="Scatter Plot Matrix")
> #多元线性回归
> fit <- lm(Murder ~ Population + Illiteracy + Income + Frost,data=states)
> summary(fit)
Call:
lm(formula = Murder ~ Population + Illiteracy + Income + Frost,
data = states)
Residuals:
Min 1Q Median 3Q Max
-4.7960 -1.6495 -0.0811 1.4815 7.6210
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.235e+00 3.866e+00 0.319 0.7510
Population 2.237e-04 9.052e-05 2.471 0.0173 *
Illiteracy 4.143e+00 8.744e-01 4.738 2.19e-05 ***
Income 6.442e-05 6.837e-04 0.094 0.9253
Frost 5.813e-04 1.005e-02 0.058 0.9541
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.535 on 45 degrees of freedom
Multiple R-squared: 0.567, Adjusted R-squared: 0.5285
F-statistic: 14.73 on 4 and 45 DF, p-value: 9.133e-08
> #有显著交互项的多元线性回归
> fit1 <- lm(mpg ~ hp + wt + hp:wt,data = mtcars)
> summary(fit1)
Call:
lm(formula = mpg ~ hp + wt + hp:wt, data = mtcars)
Residuals:
Min 1Q Median 3Q Max
-3.0632 -1.6491 -0.7362 1.4211 4.5513
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 49.80842 3.60516 13.816 5.01e-14 ***
hp -0.12010 0.02470 -4.863 4.04e-05 ***
wt -8.21662 1.26971 -6.471 5.20e-07 ***
hp:wt 0.02785 0.00742 3.753 0.000811 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.153 on 28 degrees of freedom
Multiple R-squared: 0.8848, Adjusted R-squared: 0.8724
F-statistic: 71.66 on 3 and 28 DF, p-value: 2.981e-13
> library(statmod)
> library(carData)
> library(effects)
> plot(effect("hp:wt",fit1,,list(wt=c(2.2,3.2,4.2))),multiline=TRUE)
There were 50 or more warnings (use warnings() to see the first 50)
标签:变量,探索,结霜,hp,多元,文盲率,wt,线性 来源: https://blog.csdn.net/weixin_44692890/article/details/122790445