之前我在讲理解最大似然估计 http://0fd.org/2017/06/10/understand-the-maximum-likelihood-estimation/ 的时候,讲了两个例子,不过都很简单,今天来讲讲怎么用最大似然估计来求解线性回归方程,不管是一元还是多元
线性回归方程如下:
y = \theta_1 x_1 + ... + \theta_n x_n = \sum_{i=1}^{n} \theta_i x_i现在假设我们有 m 组样本数据,(y^1, x_{(1 \sim n)}^1), (y^2, x_{(1 \sim n)}^2), ..., (y^m, x_{(1 \sim n)}^m),我们怎么用最大似然估计来求解\theta呢?
要用最大似然回归,首先就得确定模型方程,这里用什么模型呢?
正态分布
我们以前大学学概率论的时候肯定知道中心极限定理:大量独立的随机变量之和趋向于某个稳定的分布,这个分布后来被命名为高斯分布,也就是正态分布,有兴趣的可以看看书本的证明过程
随机测量的误差服从正态分布,而且不仅服从正态分布,还服从均值为0的正态分布
误差的均值期望为0,这是非常重要的一个特性
定义误差:
\xi^{(i)} = y^{(i)} - \theta x_{(1 \sim n)}^{(i)}这样我们就把上面的线性方程的样本数据,转变成了误差的样本数据,通过最大似然方法求解误差分布的参数来求解线性方程的参数
再来回忆一下求解最大似然估计的4个过程:
- 确定模型函数
- 确定似然函数或者对数似然函数
- 求导
- 计算极值(使得似然最大的一定是在极值处)
1)确定模型函数
因为我们已经把样本数据转换成了误差,而误差服从均值为0的正态分布
正态分布的原始模型方程是
f(x) = \frac {1}{\sqrt{2\pi}\sigma} exp(-\frac {(x - \mu)^2}{2\sigma^2})这里的x是样本数据,\mu是样本均值,因为我们的样本是误差,并且样本的期望均值是0,把上述误差的定义代入上式,得到我们最终的模型方程
f(\xi) = \frac {1}{\sqrt{2\pi}\sigma} exp(-\frac {(\xi)^2}{2\sigma^2})进一步得到 f(x,y) = \frac {1}{\sqrt{2\pi}\sigma} exp(-\frac {(y - \theta x)^2}{2\sigma^2})
2)确定似然函数
正态分布的联合概率密度函数就是似然函数,为了计算方便,我们取对数似然
L({\theta},\sigma^2) = ln(\prod_{i=1}^{m} \frac {1}{\sqrt{2\pi}\sigma} exp(-\frac {(y_i - \theta x_i)^2}{2\sigma^2})) \\ = \sum_{i=1}^m ln(\frac {1}{\sqrt{2\pi}\sigma} exp(-\frac {(y_i - \theta x_i)^2}{2\sigma^2})) \\ = m ln(\frac {1}{\sqrt{2\pi}\sigma}) - \frac {1}{2\sigma^2} \sum_{i=1}^m (y_i - \theta x_i)^2这里和之前将的正态分布似然函数不太一样了,最终转换成了 \theta,\sigma^2 相关的函数
我们要求L(\theta)最大值,也就是求\frac {1}{2\sigma^2} \sum_{i=1}^m (y_i - \theta x_i)^2最小值
3)求导
对上述似然函数求导,最大值一定在极值处
由于我们最终的目的是求\theta的值,并不打算求解整个正态分布的所有参数,比如\sigma^2等等,所以我们只需要对\theta求偏导即可
\frac {\partial L(\theta,\sigma^2)} {\partial \theta} = \frac {1} {\sigma^2} \sum_{i=1}^{m} x_i (y_i - \theta x_i)由于x_i, \theta是向量,y_i是常量,我们把上式转换为向量表达式
\frac {\partial L(\theta,\sigma^2)} {\partial \theta} = \frac {1} {\sigma^2} \sum_{i=1}^{m} X_i(Y_i - \theta^T X_i) = \frac {1} {\sigma^2} (XY - X\theta^TX)4)计算极值
要求对数似然的最大值,让上述式子为0即可,最大值必然在极值处
XY = X\theta^TX = X^T \theta X最终,\theta = (X^TX)^{-1}XY