用R语言实现简单回归分析
回归分析是确定两个或两个以上变量之间相互关系的一种统计方法,回归分析按照涉及的变量的多少,分为一元回归和多元回归分析;按照自变量的多少,可分为简单回归分析和多重回归分析 ;按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析;其中只包括一个自变量和一个因变量的回归分析,可以近似的用一条直线表述两个变量之间关系的方法称为一元线性回归分析;如果回归分析中包括两个或两个以上的自变量,且自变量之间存在线性相关,则称为多重线性回归分析。
1、一元线性回归分析:
公式:
y
=
a
x
+
b
y=ax+b
y=ax+b
其中y称为因变量,x称为自变量,a为斜率,b为截距。
R语言的实现方法:
线性回归模型:lm(y~x)
检验模型的准确性可用函数summary();
Summary函数会显示函数的t检验或z检验结果。
实例:下表为广告投入与销售额的关系,当投入100万广告时的销售额是多少?
广告投入 销售额
10 124
14 135
16 147
20 180
24 187
R语言实现如下:
ad<-c(10,14,16,20,24)
sales<-c(124,135,147,180,187)
#通过散点图查看变量间关系
a<-cbind(ad,sales)
plot(a)
#两个变量间呈明显的线性关系
linemodel<-lm(sales~ad)
summary(linemodel)
#预测广告投入100时的销售额
new<-data.frame(ad=100)
predict(linemodel,new,level=“0.95”)
模型为sales=70.6575+4.9966*ad,P值小于0.05,模型具有显著性效果,回归效果较好。
多重线性回归分析,即多个自变量与一个因变量之前的关系的算法,其计算过程基本与一元回归分析的方法类似,总体的求解过程也是先通过描点,观察自变量与因变量之间的关系后再确定回归模型,不过多元回归分析中,需要注意保证单一变量后再去画散点图,通过散点图再去推测每个自变量与因变量的关系,确定为线性关系的再用lm函数去设计算法模型。
2、多元线性回归分析
与一元线性回归类似,多元线性回归也是用来统计回归问题,只不过统计的自变量不再是一个,而是多个自变量,基本公式类似于:
y
=
a
0
x
0
+
a
1
x
1
+
a
2
x
2
+
a
3
x
3
+
⋯
.
.
y=a_0 x_0+a_1 x_1+a_2 x_2+a_3 x_3+⋯..
y=a0x0+a1x1+a2x2+a3x3+⋯..
其中a为常数,函数问题就转化为最基本的求解问题,我们把x_0设定为0,则a_0 x_0就为常数项,对于这个函数,由于有多个自变量,解决这种问题一般来说,只能单个变量逐渐求解,
我们通过R语言内置的一个数据集mtcars来进行演示:
函数模型与一元线性回归函数一致:lm()函数
Mtcars数据集主要是与汽车相关的一些数据,主要参数有每加仑里程(mpg),气缸排量(disp),马力(hp),汽车重量(wt)等其他参数。
本例主要用来分析不同型号汽车的每加仑里程(mpg)与气缸排量(disp)、马力(hp)、汽车重量(wt)等不同参数之间的关系,代码如下:
head(mtcars)
#查看mtcars的前5行数据
input<-mtcars[,c(“mpg”,“disp”,“hp”,“wt”)]
#把需要的数据转入input中
model<-lm(mpg~disp+hp+wt,data=input)
#建立函数模型
summary(model)
#显著性分析
P值只有8.65e-11,且R^2 调整后为0.8083,回归效果比较显著,因此回归方程为:
y
=
37.105505
−
0.000937
x
1
−
0.031157
x
2
−
3.800891
x
3
y=37.105505-0.000937x_1-0.031157x_2-3.800891x_3
y=37.105505−0.000937x1−0.031157x2−3.800891x3
在已知气缸排量(disp)、马力(hp)、汽车重量(wt)的情况下,可以推测汽车的每加仑里程(mpg)。