lm
位于 stats
包(package)。 说明
lm
用于拟合线性模型,包括多元模型。它可用于进行回归、单层方差分析和协方差分析(尽管aov
可能为这些提供更方便的接口)。
用法
lm(formula, data, subset, weights, na.action,
method = "qr", model = TRUE, x = FALSE, y = FALSE, qr = TRUE,
singular.ok = TRUE, contrasts = NULL, offset, ...)
## S3 method for class 'lm'
print(x, digits = max(3L, getOption("digits") - 3L), ...)
参数
formula |
|
data |
包含模型中变量的可选 DataFrame 、列表或环境(或由 |
subset |
一个可选向量,指定要在拟合过程中使用的观测子集。 (有关此参数如何与 |
weights |
拟合过程中使用的可选权重向量。应该是 |
na.action |
一个函数,指示当数据包含 |
method |
使用的方法;对于拟合,目前仅支持 |
model , x , y , qr |
逻辑。如果 |
singular.ok |
合乎逻辑的。如果 |
contrasts |
可选列表。请参阅 |
offset |
这可用于指定在拟合期间要包含在线性预测器中的先验已知分量。这应该是 |
... |
对于 |
digits |
|
细节
lm
的模型以符号方式指定。典型模型的形式为 response ~ terms
,其中 response
是(数字)响应向量,terms
是一系列指定 response
线性预测变量的项。 first + second
形式的术语规范指示 first
中的所有术语以及 second
中删除重复项的所有术语。 first:second
形式的规范表示通过 first
中的所有项与 second
中的所有项交互而获得的项集。规范first*second
表示first
和second
的交叉。这与 first + second + first:second
相同。
如果公式包含 offset
,则会对其进行评估并从响应中减去。
如果 response
是矩阵,则通过最小二乘法分别将线性模型拟合到矩阵的每一列,结果继承自 "mlm"
(“multivariate linear model”)。
有关更多详细信息,请参阅model.matrix
。公式中的项将重新排序,以便主效应首先出现,然后是相互作用、所有二阶、所有三阶等等:为了避免这种情况,请传递 terms
对象作为公式(请参阅:以 aov
和 demo(glm.vr)
为例)。
公式具有隐含的截距项。要删除此内容,请使用 y ~ x - 1
或 y ~ 0 + x
。有关允许的公式的更多详细信息,请参阅formula
。
非NULL
weights
可用于指示不同的观测值具有不同的方差(weights
中的值与方差成反比);或者等效地,当 weights
的元素是正整数 时,每个响应 是 unit-weight 观测值的平均值(包括 观测值等于 的情况并对数据进行了汇总)。然而,在后一种情况下,请注意不使用组内变异。因此,西格玛估计和剩余自由度可能不是最优的;在复制权重的情况下,甚至是错误的。因此,应谨慎对待标准误差和方差分析表。
lm
调用较低级别的函数 lm.fit
等,请参见下文,以进行实际的数值计算。仅对于编程,您可以考虑这样做。
所有 weights
、 subset
和 offset
的计算方式与 formula
中的变量相同,即首先在 data
中,然后在 formula
环境中。
值
lm
返回 class
"lm"
的对象或类 c("mlm", "lm")
的多元 (‘multiple’) 响应。
函数summary
和anova
用于获取并打印结果的汇总和方差分析表。通用访问器函数 coefficients
、 effects
、 fitted.values
和 residuals
提取 lm
返回值的各种有用特征。
"lm"
类的对象是至少包含以下组件的列表:
coefficients |
命名的系数向量 |
residuals |
残差,即响应减去拟合值。 |
fitted.values |
拟合平均值。 |
rank |
拟合线性模型的数值等级。 |
weights |
(仅适用于加权配合)指定的重量。 |
df.residual |
剩余自由度。 |
call |
匹配的调用。 |
terms |
使用的 |
contrasts |
(仅在相关时)使用的对比。 |
xlevels |
(仅在相关时)拟合中使用的因子水平的记录。 |
offset |
使用的偏移量(如果没有使用则丢失)。 |
y |
如果有请求,则使用响应。 |
x |
如果需要,使用模型矩阵。 |
model |
如果需要(默认),则使用模型框架。 |
na.action |
(如果相关) |
此外,非空拟合将具有与线性拟合相关的组件 assign
、 effects
和(除非未请求)qr
,供提取器函数使用,例如 summary
和 effects
。
使用时间序列
将 lm
与时间序列一起使用时需要格外小心。
除非 na.action = NULL
,否则在回归完成之前,时间序列属性将从变量中剥离。 (这是必要的,因为省略 NA
会使时间序列属性无效,并且如果在序列中间省略 NA
,则结果将不再是常规时间序列。)
即使保留时间序列属性,它们也不用于排列序列,因此滞后或差分回归量的时间平移将被忽略。最好通过 ts.intersect(..., dframe = TRUE)
准备 data
参数,然后将合适的 na.action
应用于该数据帧,并使用 na.action = NULL
调用 lm
,以便残差和拟合值是时间序列。
例子
require(graphics)
## Annette Dobson (1990) "An Introduction to Generalized Linear Models".
## Page 9: Plant Weight Data.
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2, 10, 20, labels = c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
lm.D90 <- lm(weight ~ group - 1) # omitting intercept
anova(lm.D9)
summary(lm.D90)
opar <- par(mfrow = c(2,2), oma = c(0, 0, 1.1, 0))
plot(lm.D9, las = 1) # Residuals, Fitted, ...
par(opar)
### less simple examples in "See Also" above
作者
The design was inspired by the S function of the same name described in Chambers (1992). The implementation of model formula by Ross Ihaka was based on Wilkinson & Rogers (1973).
参考
Chambers, J. M. (1992) Linear models. Chapter 4 of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.
Wilkinson, G. N. and Rogers, C. E. (1973). Symbolic descriptions of factorial models for analysis of variance. Applied Statistics, 22, 392-399. doi:10.2307/2346786.
也可以看看
summary.lm
用于更详细的摘要,anova.lm
用于方差分析表; aov
用于不同的接口。
通用函数 coef
、 effects
、 residuals
、 fitted
、 vcov
。
predict.lm
(通过 predict
)用于预测,包括置信度和预测区间; confint
用于参数的置信区间。
lm.influence
用于回归诊断,glm
用于广义线性模型。
底层低级函数,lm.fit
用于普通函数,lm.wfit
用于加权回归拟合。
更多 lm()
示例可用,例如 anscombe
、 attitude
、 freeny
、 LifeCycleSavings
、 longley
、 stackloss
、 swiss
。
biglm
包中的 biglm
是一种将线性模型拟合到大型数据集(尤其是具有许多情况的数据集)的替代方法。
相关用法
- R lm.fit 线性模型的拟合函数
- R lm.summaries 访问线性模型拟合
- R lm.influence 回归诊断
- R loglin 拟合对数线性模型
- R loess.control 设置黄土参数
- R ls.diag lsfit 回归结果的计算诊断
- R lag.plot 时间序列滞后图
- R line 坚固的线路配件
- R lag 滞后时间序列
- R loess 局部多项式回归拟合
- R lsfit 找到最小二乘拟合
- R loadings 打印因子分析中的载荷
- R ls.print 打印 lsfit 回归结果
- R lowess 散点图平滑
- R logLik 提取对数似然
- R stlmethods STL 对象的方法
- R medpolish 矩阵的中值波兰(稳健双向分解)
- R naprint 调整缺失值
- R summary.nls 总结非线性最小二乘模型拟合
- R summary.manova 多元方差分析的汇总方法
- R formula 模型公式
- R nls.control 控制 nls 中的迭代
- R aggregate 计算数据子集的汇总统计
- R deriv 简单表达式的符号和算法导数
- R kruskal.test Kruskal-Wallis 秩和检验
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Fitting Linear Models。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。