R语言实战 ---学习心得08--回归分析

1. 回归分析

定义: 自变量和因变量之间的关系,可以用回归方程是表达出来。

对于回归分析常用的数据格式以及函数:
在这里插入图片描述

备注:
1. 响应变量:因变量,
2. 预测变量:自变量,
3. 解释变量:总共的自变量,
4. ‘:’ 变量的交互项: 指的是两个变量对应元素的乘积,得到新的数据列
在这里插入图片描述

1.1 简单线性回归模型 lm()

使用women中的数据:

women
fit = lm(weight~height, data = women)   # 得到weight = -87.52 + 3.45 * height
summary(fit)  # 查看fit的详细属性

fitted(fit)   # 查看拟合之后的因变量的预测值
residuals(fit)  # 查看残差   (实际值与预测值之间的差)
plot(women$height,women$weight, 
     xlab="Height (in inches)", 
     ylab="Weight (in pounds)") 
abline(fit)

结果:

  1. Coefficients栏下的Estimate分别表示截距和系数。Pr(>|t|) 表示方差和截距的P值(显著性)。
  2. Multiple R-squared:R平方项(0.991)表明模型可以解释体重99.1%的方差,它也是实际和预测值之间相关
    系数的平方(R^2 = r(ŶY)^2)------(也叫做模型的方差解释率,值越高越好) 。
> summary(fit)  # 查看fit的详细属性

Call:
lm(formula = weight ~ height, data = women)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.7333 -1.1333 -0.3833  0.7417  3.1167 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -87.51667    5.93694  -14.74 1.71e-09 ***
height        3.45000    0.09114   37.85 1.09e-14 ***
---
Signif. codes:  
0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.525 on 13 degrees of freedom
Multiple R-squared:  0.991,	Adjusted R-squared:  0.9903 
F-statistic:  1433 on 1 and 13 DF,  p-value: 1.091e-14

height 和 weight的点图,以及拟合直线
在这里插入图片描述

1.2 多项式回归模型

二项式回归模型,就是添加了一个自变量平方的项,来提高回归的预测精度。
使用women中的数据:

#  多项式回归 (添加了一个自变量的平方项)
fit2 = lm(weight ~ height + I(height^2), data = women)
summary(fit2)
plot(women$height, women$weight)
lines(women$height,fitted(fit2)) # 拟合曲线 (横坐标和纵坐标)

结果:

  1. 二次项的t值为13.891, p值小于0.01,显著。 增加了拟合的优度。
> summary(fit2)

Call:
lm(formula = weight ~ height + I(height^2), data = women)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.50941 -0.29611 -0.00941  0.28615  0.59706 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 261.87818   25.19677  10.393 2.36e-07 ***
height       -7.34832    0.77769  -9.449 6.58e-07 ***
I(height^2)   0.08306    0.00598  13.891 9.32e-09 ***
---
Signif. codes:  
0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3841 on 12 degrees of freedom
Multiple R-squared:  0.9995,	Adjusted R-squared:  0.9994 
F-statistic: 1.139e+04 on 2 and 12 DF,  p-value: < 2.2e-16

在这里插入图片描述

1.3 多元线性回归

当自变量的数目不止一个的时候,也就变成了多元回归拟合,最简单的是多元线性回归。

  1. car包中有一个scatterplotMatrix函数,可以直接画出多元线性相关的拟合曲线,以及各个变量分布图。
states = data.frame(state.x77[,c("Murder", "Population", "Illiteracy", "Income", "Frost")])
cor(states)
#install.packages('car')
library(car) 
# car库中的scatterplotMatrix 画出分布图以及拟合曲线,。。。
scatterplotMatrix(states, spread=FALSE, smoother.args=list(lty=2), 
                    main="Scatter Plot Matrix")

在这里插入图片描述
2. 多元线性回归分析

fit <- lm(Murder ~ Population + Illiteracy + Income + Frost, data=states)
summary(fit)

结果:
> 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

结果分析:
回归系数的含义为:一个预测变量增加一个单位,其他预测变量保持不变时,因变量将要增加的数量。
例如本例中,文盲率的回归系数为4.14,表示控制人口、收入和温度不变时,文盲率上升1%,谋杀率将会上升4.14%,它的系数在p<0.001的水平下显著不为0。相反,Frost的系数没有显著不为0(p=0.954) ,表明当控制其他变量不变时,Frost与Murder
不呈线性相关。总体来看,所有的预测变量解释了各州谋杀率56.7%的方差。

1.4 有交互项的回归分析

交互项:指的是两组变量的各个元素的乘积,得到的一组新的变量。

mtcars
d = mtcars$hp*mtcars$wt
mtcars$d = d
fit <- lm(mpg ~ hp + wt + d, data=mtcars) 
# hp:wt 就是hp和wt的乘积
fit2 <- lm(mpg ~ hp + wt + hp:wt, data=mtcars)  
summary(fit)
结果:
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

# fit 和 fit2 的值是一样的。

本列中得到的回归方程就是: mpg = 49.80 -0.12*hp -8.21*wt + 0.03*hp*wt
我们可以控制wt 在不同水平下,得到mpg和hp的关系。

library(effects) 


mean(mtcars$wt)   # 结果是3.2
sd(mtcars$wt)     # 结果约等于1
# plot(effect(term, mod,, xlevels), multiline=TRUE)   term: 交互项, mod: lm()的拟合模型, xlevels:交互相中某个变量的水平
plot(effect("hp:wt", fit,, list(wt=c(2.2,3.2,4.2))), multiline=TRUE)  # 注意fit后面是双逗号
# wt取值的为平均值,以及平均值上下各一个方差的值

结果:
在这里插入图片描述
意义:交互项可以使两个自变量与因变量的联系更加紧密,
结果分析:
可以看到在wt = 4.2时候,hp 和 mpg之间的关系就是一条直线了。也就是说两组变量关系越来越弱, 几乎没有关系了。

注意:在所有的线性回归分析假设中,所有的零假设都应该是自变量和因变量不相关,因而在p<0.05 或者 p<0.01时,可以得出两个变量在两个水平下的显著相关。而且在解释显著相关时, 应该在重复样本实验中,能够得到这样的相关性或者更大相关性的概率则更大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值