最大似然估计求解线性回归

之前我在讲理解最大似然估计 http://0fd.org/2017/06/10/understand-the-maximum-likelihood-estimation/ 的时候,讲了两个例子,不过都很简单,今天来讲讲怎么用最大似然估计来求解线性回归方程,不管是一元还是多元

线性回归方程如下:

y=θ1x1+...+θnxn=i=1nθixiy = \theta_1 x_1 + ... + \theta_n x_n = \sum_{i=1}^{n} \theta_i x_i

现在假设我们有m m 组样本数据,(y1,x(1n)1),(y2,x(1n)2),...,(ym,x(1n)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,这是非常重要的一个特性

定义误差:

ξ(i)=y(i)θx(1n)(i)\xi^{(i)} = y^{(i)} - \theta x_{(1 \sim n)}^{(i)}

这样我们就把上面的线性方程的样本数据,转变成了误差的样本数据,通过最大似然方法求解误差分布的参数来求解线性方程的参数

再来回忆一下求解最大似然估计的4个过程:

  1. 确定模型函数
  2. 确定似然函数或者对数似然函数
  3. 求导
  4. 计算极值(使得似然最大的一定是在极值处)

1)确定模型函数

因为我们已经把样本数据转换成了误差,而误差服从均值为0的正态分布

正态分布的原始模型方程是

f(x)=12πσexp((xμ)22σ2)f(x) = \frac {1}{\sqrt{2\pi}\sigma} exp(-\frac {(x - \mu)^2}{2\sigma^2})

这里的xx是样本数据,μ\mu是样本均值,因为我们的样本是误差,并且样本的期望均值是0,把上述误差的定义代入上式,得到我们最终的模型方程

f(ξ)=12πσexp((ξ)22σ2)f(\xi) = \frac {1}{\sqrt{2\pi}\sigma} exp(-\frac {(\xi)^2}{2\sigma^2})

进一步得到 f(x,y)=12πσexp((yθx)22σ2) f(x,y) = \frac {1}{\sqrt{2\pi}\sigma} exp(-\frac {(y - \theta x)^2}{2\sigma^2})

2)确定似然函数

正态分布的联合概率密度函数就是似然函数,为了计算方便,我们取对数似然

L(θ,σ2)=ln(i=1m12πσexp((yiθxi)22σ2))=i=1mln(12πσexp((yiθxi)22σ2))=mln(12πσ)12σ2i=1m(yiθxi)2L({\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

这里和之前将的正态分布似然函数不太一样了,最终转换成了 θ,σ2\theta,\sigma^2 相关的函数

我们要求L(θ)L(\theta)最大值,也就是求12σ2i=1m(yiθxi)2\frac {1}{2\sigma^2} \sum_{i=1}^m (y_i - \theta x_i)^2最小值

3)求导

对上述似然函数求导,最大值一定在极值处

由于我们最终的目的是求θ\theta的值,并不打算求解整个正态分布的所有参数,比如σ2\sigma^2等等,所以我们只需要对θ\theta求偏导即可

L(θ,σ2)θ=1σ2i=1mxi(yiθxi)\frac {\partial L(\theta,\sigma^2)} {\partial \theta} = \frac {1} {\sigma^2} \sum_{i=1}^{m} x_i (y_i - \theta x_i)

由于xi,θx_i, \theta是向量,yiy_i是常量,我们把上式转换为向量表达式

L(θ,σ2)θ=1σ2i=1mXi(YiθTXi)=1σ2(XYXθTX)\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θTX=XTθXXY = X\theta^TX = X^T \theta X

最终,θ=(XTX)1XY\theta = (X^TX)^{-1}XY

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注