参考资料:R语言实战【第2版】
对于回归模型的拟合,R提供了强大而丰富的功能和选项。
回归类型 | 用途 |
简单线性 | 用一个量化的解释变量预测一个量化的响应变量 |
多项式 | 用一个量化的解释变量预测一个量化的响应变量,模型的关系是n阶多项式 |
多层 | 用拥有等级结构的数据预测一个响应变量(例如学校中教室里的学生)。也被称为分层模型、嵌套模型或混合模型 |
多元线性 | 用两个或多个量化的解释变量预测一个量化的响应变量 |
多变量 | 用一个或多个解释变量预测多个响应变量 |
Logistic | 用一个或多个解释变量预测一个类别型响应变量 |
泊松 | 用一个或多个解释变量预测一个代表频数的响应变量 |
Cox比例风险 | 用一个或多个解释变量预测一个事件(死亡、失败或旧病复发)发生的时间 |
时间序列 | 对误差项相关的时间序列数据建模 |
非线性 | 用一个或多个量化的解释变量预测一个量化的响应变量,不过模型是非线性的 |
非参数 | 用一个或多个量化的解释变量预测一个量化的响应变量,模型的形式源自数据形式,不事先设定 |
稳健 | 用一个或多个量化的解释变量预测一个量化的响应变量,能抵御强影响点的干扰 |
OLS回归是通过预测变量的加权和来预测量化的因变量,其中权重是通过数据估计而得到的参数。OLS回归拟合模型的形式:
其中,i=1...n,n为观测的数目,k为预测变量的数目。
第i次观测对应的因变量的预测值
第i次观测对应的第j个预测变量值
截距项
预测变量j的回归系数
我们的目标是通过减少响应变量的真实值和预测值的差值来获得模型参数(截距项和斜率)。具体而言,即使得残差平方和最小。
为了能够恰当地解释OLS模型的系数,数据必须满足一下统计假设:
正态性:对于固定的自变量值,因变量值呈正态分布。
独立性:Yi值之间相互独立。
线性:因变量与自变量之间为线性相关。
同方差性:因变量的方差不随着自变量水平的不同而变化。
如果违背了以上假设,我们的统计显著性检验结果和所得的置信区间就不精确了。注意,OLS回归还假定自变量是固定的且测量无误差,但在实践中通常都放松了这个假设。
1、用lm()拟合回归模型
在R中,拟合线性模型最基本的函数就是lm(),格式为:
myfit<-lm(formula,data)
其中,formula指要拟合的模型形式,data是一个数据框,包含了用于拟合模型的数据。结果对象(本例是myfit)存储在一个列表中,包含了所拟合模型的大量信息。表达式(formula)形式如下:
Y~X1+X2+...+Xk
~左边为响应变量(因变量),右边为各个预测变量(自变量),预测变量之间用+符号分隔。R表达式中常用的符号如下:
符号 | 用途 |
~ | 分隔符号,左边为响应变量,右边为解释变量 |
+ | 分隔预测变量 |
: | 表示预测变量的交互项。如,要通过x、z以及x与z的交互预测y,表达式为y~x+z+x:z |
* | 表示所有可能交互项的简洁方式。表达式y~x*z*w可展开为y~x+z+w+x:z+x:w+z:w+x:z:w |
^ | 表示交互项达到某个次数。表达式y~(x+z+w)^2可展开为y~x+z+w+x:z+x:w+z:w |
. | 表示包含除因变量外地所有变量。若一个数据框值包含变量x、y、z和w,表达式y~.可展开为y~x+z+w |
- | 减号,表示从等式中移除某个变量。表达式y~(x+z+w)^2-x:w可展开为y~x+z+w+x:z+z:w |
-1 | 删除截距项。表达式y~x-1表示拟合y在x上的回归,并强制直线通过原点 |
I() | 从算术的角度来解释括号中的元素。例如,y~x+(z+w)^2将展开为y~x+z+w+z:w。相反,代码y~x+I((z+w)^2)将展开为y~x+h,h是一个由z和w的平方和创建的新变量 |
function | 可以在表达式中用的数学函数。例如,log(y)~x+z+w表示通过x、z、w来预测log(y) |
除了lm()函数,还有一些对做简单或多元回归分析有用的函数。拟合模型后,将这些函数应用于lm()返回的对象,可以得到更多额外的模型信息。如下:
函数 | 用途 |
summary() | 展开拟合模型的详细结果 |
coefficients() | 列出拟合模型的模型参数(截距项和斜率) |
confint() | 提供模型参数的置信区间(默认95%) |
residuals() | 列出拟合模型的残差值 |
fitted() | 列出拟合模型的预测值 |
anova() | 生成一个你和模型的方差分析表,或者比较两个或更多个拟合模型的方差分析表 |
vcov() | 列出模型参数的协方差矩阵 |
AIC() | 输出赤池信息统计量 |
plot() | 生成评价拟合模型的诊断图 |
predict() | 用拟合模型对新的数据集预测响应变量值 |