- lm()拟合回归模型
在R中,拟合线性模型最基本的函数就是lm()
myfit <- lm(formula,data)
myfit <- lm(formula,data)
formula:指要拟合模型的形式
形式如下:y~ x1 + x2 +...+ xk,左边为响应变量,右边为预测变量,预测之间用符号+分隔
data:数据框,包含了用于拟合模型的数据
myfit:结果对象(比例中的myfit)存储在一个列表中,包含了所拟合模型的大量信息
- R表达式中常用的符号
符号 | 用途 |
~ | 分隔符号,左边为响应变量,右边为解释变量。例如,要通过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) |
- 对拟合线性模型非常有用的其他函数
除了lm(),表8-3,还列出了其他一些对做简单或多元回归分析有用的函数,拟合模型后,将这些应用于lm()返回的对象,可以得到额外的模型信息
函数 | 用途 |
summary() | 展示拟合模型的详细结果 |
coefficients() | 列出拟合模型的模型参数(截距项和斜率) |
confint() | 提供模型带参数的执行区间(默认为95%) |
fitted() | 列出拟合模型的预测值 |
residuals() | 列出拟合模型的残差值 |
anova() | 生成一个拟合模型的方差分析表,或者比较两个或更多拟合模型的方差分析表 |
vcov() | 列出模型参数的协方差矩阵 |
AIC() | 输出赤池信息统计量 |
plot() | 生成评价拟合模型的诊断图 |
predict() | 用拟合模型对新的数据集预测响应变量值 |