在R中,拟合线性模型最基本的函数就是\(lm()\),格式为:
\(myfit <- lm(formula, data)\)
其中,\(formula\)指要拟合的模型形式,\(data\)是一个数据框,包含了用于拟合模型的数据。结果对象(本例中是\(myfit\))存储在一个列表中,包含了所拟合模型的大量信息。表达式(\(formula\))形式如下:
左边为响应变量,右边为各个预测变量,预测变量之间用+符号分隔。表8-2中的符号可以不同方式修改这一表达式。
除了\(lm()\),表8-3还列出了其他一些对做简单或多元回归分析有用的函数。拟合模型后,将这些函数应用于\(lm()\)返回的对象,可以得到更多额外的模型信息。
符 号 | 用 途 |
---|---|
~ | 分隔符号,左边为响应变量,右边为解释变量。例如,要通过x、z和w预测y,代码为y ~ x + z + w |
+ | 分隔预测变量 |
: | 表示预测变量的交互项。例如,要通过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) |
函 数 | 用 途 |
---|---|
summary() | 展示拟合模型的详细结果 |
coefficients() | 列出拟合模型的模型参数(截距项和斜率) |
confint() | 提供模型参数的置信区间(默认95%) |
fitted() | 列出拟合模型的预测值 |
residuals() | 列出拟合模型的残差值 |
anova() | 生成一个拟合模型的方差分析表,或者比较两个或更多拟合模型的方差分析表 |
vcov() | 列出模型参数的协方差矩阵 |
AIC() | 输出赤池信息统计量 |
plot() | 生成评价拟合模型的诊断图 |
predict() | 用拟合模型对新的数据集预测响应变量值 |
当回归模型包含一个因变量和一个自变量时,我们称为简单线性回归。当只有一个预测变量,但同时包含变量的幂(比如,\(X\)、\(X^2\)、\(X^3\))时,我们称之为多项式回归。当有不止一个预测变量时,则称为多元线性回归。现在,我们首先从一个简单的线性回归例子开始,然后逐步展示多项式回归和多元线性回归,最后还会介绍一个包含交互项的多元线性回归的例子。
car包提供了大量函数,大大增强了拟合和评价回归模型的能力(参见表8-4)。
函 数 | 目 的 |
---|---|
qqPlot() | 分位数比较图 |
durbinWatsonTest() | 对误差自相关性做Durbin-Watson检验 |
crPlots() | 成分与残差图 |
ncvTest() | 对非恒定的误差方差做得分检验 |
spreadLevelPlot() | 分散水平检验 |
outlierTest() | Bonferroni离群点检验 |
avPlots() | 添加的变量图形 |
inluencePlot() | 回归影响图 |
scatterplot() | 增强的散点图 |
scatterplotMatrix() | 增强的散点图矩阵 |
vif() | 方差膨胀因子 |
值得注意的是,car包的2.x版本相对1.x版本作了许多改变,包括函数的名字和用法。本章基于2.x版本。