要了解响应变量y与因变量x之间的关系, 人们常用到线性回归。 常用 y = a*x + b表示, 然而更一般格式为
y = beta1*x + beta0 + error
其中beta0, beta1是参数,分别为截距和因变量的系数,error为残差。按照线性模型的假设, 残差应符合正态分布,一般取均值mean为0, 只需要估计标准差sd即可。 。
本文的目的是用R程序的实例说明如何用极大似然估计进行简单的线性回归的参数。 按照以下步骤完成:
因本文需要用到bbmle程序包, 没有安装的读者, 需要用 install.packages("bbmle")
安装bbmle程序包。
步骤:
- 生成要拟合的数据, 并绘图
- 通过R函数的内置lm方法建立线性模型, 并计算AIC以及LogLikelihood以便进行比较
- 建立对数似然函数 Log Likelihood
- 利用bbmle程序包的 mle2函数, 用数值优化算法(Optimization)求似然函数的最大值,从而给出所求参数的估计值。
- 基于最大对数似然值 Maximum Log Likelihood求该模型的AIC值(Akaike Information Criterion)
1 | library(bbmle) ### 导入bbmle程序包 |