回归分析是统计学的核心算法,是机器学习最基本算法,也是数学建模最常用的算法之一。
简单来说,回归分析就是用一个或多个自变量来预测因变量的方法,具体是通过多组自变量和因变量的样本数据,拟合出最佳的函数关系。
本篇由前入深将线性回归的原理讲清楚,并用案例演示实际操作。
一、最小二乘法
设有
组样本点:
例1,现有10期的广告费用与销售额的数据:
先画散点图观察一下:
cost<-c(30,40,40,50,60,70,70,70,80,90)
sale<-c(143.5,192.2,204.7,266,318.2,457,333.8,312.1,386.4,503.9)
dat<-as.data.frame(cbind(cost,sale))
plot(dat)
可见,这些散点大致在一条直线上,一元线性回归就是寻找一条直线,使得与这些散点拟合程度最好(越接近直线越好)。
比如画这样一条直线,方程可写为:
(线性模型), 其中
是待定系数,目标是选取与样本点最接近的直线对应的
.
那么,怎么刻画这种“最接近”?
是与横轴
对应的直线上的点的纵坐标(称为线性模型预测值),它与样本点
对应的真实值
之差,就是预测误差(红线长度):
适合描述散点到直线的“接近程度”。
但绝对值不容易计算,改用:
我们需要让所有散点总体上最接近该直线,故需要让总的预测误差
最小。
于是问题转化为优化问题,选取
使得
(1)
这就是“最小二乘法”,有着很直观的几何解释。
二、问题(1)求解
这是个求二元函数极小值问题。
根据微积分知识,二元函数极值是在一阶偏导等于0点处取到:
解关于