简单线性回归和多元线性回归

有很多初学者不知道如何用R语言做回归,这里我讲解一下简单线性回归和多元线性回归。

当回归模型包含一个因变量和一个自变量时,我们称为简单线性回归比如:身高和体重的关系。
当有不止一个预测变量时, 则称为多元线性回归。比如:工作年限,学历都可能影响收入。
这里我们需要先了解一些用于回归分析的函数:
summary() 展示拟合模型的详细结果;coefficients() 列出拟合模型的模型参数(截距项和斜率);
fitted() 列出拟合模型的预测值;residuals() 列出拟合模型的残差值;plot() 生成评价拟合模型的诊断图。

1,简单线性模型

利用基础安装包中的数据集women,来研究15个年龄在30-39岁间女性的身高和体重信息的关系

dd<-lm(weight~height,data=women)
summary(dd)

简单线性回归和多元线性回归_第1张图片

从上图R平方项(0.991)表明模型可以解释体重99.1%的方差,同时P值显著表明,身高与体重线性相关,即weight=-87.52+3.45×height。

plot(women$height,women$weight,xlab="身高 (英尺)", ylab="体重 (斤)")
abline(dd)

简单线性回归和多元线性回归_第2张图片

2,多元线性回归

当预测变量不止一个时,简单线性回归就变成了多元线性回归。

以基础数据包state.x77 数据集为例,我们想探究美国一个州的犯罪率与人口、文盲率、平均收入和结霜天数(温度在冰点以下的平均天数)的关系。
head(state.x77)#查看数据前六行

简单线性回归和多元线性回归_第3张图片

因为 lm() 函数需要一个数据框( state.x77 数据集是矩阵),为了以后处理方便,你需要做
如下转化:
fz <- as.data.frame(state.x77[,c("Murder", "Population", 
 "Illiteracy", "Income", "Frost")])

简单线性回归和多元线性回归_第4张图片

多元回归分析中,第一步最好检查一下变量间的相关性,cor()函数提供了二变量之间的相
关系数。
cor(fz)#查一下两变量之间的相关性

简单线性回归和多元线性回归_第5张图片

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

简单线性回归和多元线性回归_第6张图片

 

当预测变量不止一个时,回归系数的含义为:一个预测变量增加一个单位,其他预测变量保
持不变时,因变量将要增加的数量。 例如本例中,文盲率的回归系数为4.14,表示控制人口、收
入和温度不变时,文盲率上升1%,谋杀率将会上升4.14%,它的系数在p<0.001的水平下显著不
为0。 相反, Frost 的系数没有显著不为 0 p =0.954 ),表明当控制其他变量不变时, Frost Murder

不呈线性相关。总体来看,所有的预测变量解释了各州谋杀率57%的方差。
 

2.1,有显著交互项的多元线性回归

这里看看美国每个州的人学历和收入对犯罪率的关系。

fz1<-as.data.frame(state.x77[,c("Murder","Illiteracy", "Income")])
fit1<-lm(Murder ~Illiteracy + Income,data=fz1) #不考虑两者的交互作用
summary(fit1)

简单线性回归和多元线性回归_第7张图片

fit2<-lm(Murder ~Illiteracy + Income+Illiteracy:Income,data=fz1)#考虑交互作用
summary(fit2)

简单线性回归和多元线性回归_第8张图片

 

若两个预测变量的交互项显著,说明响应变量与其中一个预测变量的关系依赖于另外一个预测变量的水平。

这里可以发现每个州犯罪率与收入的关系不与学历的变化而变化。(反之也可)

end~

你可能感兴趣的:(线性回归,回归,机器学习)