实验目的

了解回归分析算法的基本原理,并掌握R语言中实现回归算法的函数方法

实验原理

回归分析(regression analysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。在大数据分析中,回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析以及发现变量之间的因果关系。例如,司机的鲁莽驾驶与道路交通事故数量之间的关系,最好的研究方法就是回归。

线性回归通常是人们在学习预测模型时首选的技术之一。在这种技术中,因变量是连续的,自变量可以是连续的也可以是离散的,回归线的性质是线性的。

线性回归可以根据给定的预测变量来预测目标变量的值。线性回归使用最佳的拟合直线(也就是回归线)在因变量(Y)和一个或多个自变量(X)之间建立一种关系。一元线性回归方程可以表示为下式:

实验步骤

我们使用R语言中的iris数据集进行回归分析,首先可以借助数据可视化来探索数据的规律和异常信息,可视化使数据看起来更简洁形象,比如在下面我们用散点图来观察数据集iris中各变量的关系。
加载iris数据集,调用str()函数查看iris数据集整体情况

> attach(iris)
> str(iris)
'data.frame':    150 obs. of  5 variables:
$ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
$ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
$ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
$ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
$ Species      : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

调用summary()函数总结iris数据集各变量的描述性统计量

> summary(iris)
Sepal.Length    Sepal.Width     Petal.Length    Petal.Width     Species  
Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100   setosa    :50  
1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300   versicolor:50  
Median :5.800   Median :3.000   Median :4.350   Median :1.300   virginica :50  
Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199                  
3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800                  
Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500

绘制散点矩阵图,查看数据集中各变量关系

> pairs(iris[, 1:4], col = "blue")

从上图可以看出,Petal.Length与Petal.Width存在明显的正相关性,接下来选择这组变量建立回归模型。

用lm()函数,得到回归方程

> (lm1 <- lm(Petal.Length ~ Petal.Width))
Call:
lm(formula = Petal.Length ~ Petal.Width)
Coefficients:
(Intercept)  Petal.Width  
    1.084         2.230

由以上给出的系数可以得到拟合的回归方程为下式,其中y代表Petal.Length,x代表Petal.Width

查看回归结果

> summary(lm1)
Call:
lm(formula = Petal.Length ~ Petal.Width)
Residuals:
     Min       1Q     Median       3Q      Max 
-1.33542 -0.30347 -0.02955  0.25776  1.39453 
Coefficients:
              Estimate  Std. Error t value  Pr(>|t|)    
(Intercept)  1.08356    0.07297   14.85   <2e-16 ***
Petal.Width  2.22994    0.05140   43.39   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4782 on 148 degrees of freedom
Multiple R-squared:  0.9271,    Adjusted R-squared:  0.9266 
F-statistic:  1882 on 1 and 148 DF,  p-value: < 2.2e-16

绘制Petal.Width和Petal.Length的散点图并添加回归线

> plot(Petal.Width, Petal.Length)
> lines(Petal.Width, lm1$fitted.values)

对拟合的模型进行残差检验

> par(mfrow = c(2, 2))
> plot(lm1)

results matching ""

    No results matching ""