当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R lm 拟合线性模型


R语言 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

"formula" 类的对象(或可以强制转换为该类的对象):要拟合的模型的符号说明。型号规格的详细信息在“详细信息”下给出。

data

包含模型中变量的可选 DataFrame 、列表或环境(或由 as.data.frame 强制转换为 DataFrame 的对象)。如果在 data 中找不到,则从 environment(formula) 中获取变量,通常是调用 lm 的环境。

subset

一个可选向量,指定要在拟合过程中使用的观测子集。 (有关此参数如何与 model.frame 文档的“详细信息”部分中的 data-dependent 碱基交互的更多详细信息。)

weights

拟合过程中使用的可选权重向量。应该是 NULL 或数值向量。如果非 NULL,则使用带有权重 weights 的加权最小二乘法(即最小化 sum(w*e^2) );否则使用普通最小二乘法。另请参阅“详细信息”,

na.action

一个函数,指示当数据包含 NA 时应该发生什么。默认值由 optionsna.action 设置设置,如果未设置,则为 na.fail。 ‘factory-fresh’默认为na.omit。另一个可能的值是 NULL ,不执行任何操作。值 na.exclude 可能很有用。

method

使用的方法;对于拟合,目前仅支持method = "qr"method = "model.frame" 返回模型框架(与 model = TRUE 相同,见下文)。

model , x , y , qr

逻辑。如果TRUE,则返回拟合的相应组件(模型框架、模型矩阵、响应、QR 分解)。

singular.ok

合乎逻辑的。如果FALSE(S 中默认,但不是R) 奇异拟合是一个错误。

contrasts

可选列表。请参阅 model.matrix.defaultcontrasts.arg

offset

这可用于指定在拟合期间要包含在线性预测器中的先验已知分量。这应该是 NULL 或与响应的范围匹配的数值向量或矩阵。公式中可以包含一个或多个 offset 项,或者也可以包含在公式中,如果指定了多个项,则使用它们的总和。请参阅model.offset

...

对于 lm() :要传递给低级回归拟合函数的附加参数(见下文)。

digits

print() 时要传递给 format(coef(x), .) 的有效位数。

细节

lm 的模型以符号方式指定。典型模型的形式为 response ~ terms,其中 response 是(数字)响应向量,terms 是一系列指定 response 线性预测变量的项。 first + second 形式的术语规范指示 first 中的所有术语以及 second 中删除重复项的所有术语。 first:second 形式的规范表示通过 first 中的所有项与 second 中的所有项交互而获得的项集。规范first*second表示firstsecond的交叉。这与 first + second + first:second 相同。

如果公式包含 offset ,则会对其进行评估并从响应中减去。

如果 response 是矩阵,则通过最小二乘法分别将线性模型拟合到矩阵的每一列,结果继承自 "mlm" (“multivariate linear model”)。

有关更多详细信息,请参阅model.matrix。公式中的项将重新排序,以便主效应首先出现,然后是相互作用、所有二阶、所有三阶等等:为了避免这种情况,请传递 terms 对象作为公式(请参阅:以 aovdemo(glm.vr) 为例)。

公式具有隐含的截距项。要删除此内容,请使用 y ~ x - 1y ~ 0 + x 。有关允许的公式的更多详细信息,请参阅formula

NULL weights可用于指示不同的观测值具有不同的方差(weights中的值与方差成反比);或者等效地,当 weights 的元素是正整数 时,每个响应 unit-weight 观测值的平均值(包括 观测值等于 的情况并对数据进行了汇总)。然而,在后一种情况下,请注意不使用组内变异。因此,西格玛估计和剩余自由度可能不是最优的;在复制权重的情况下,甚至是错误的。因此,应谨慎对待标准误差和方差分析表。

lm 调用较低级别的函数 lm.fit 等,请参见下文,以进行实际的数值计算。仅对于编程,您可以考虑这样做。

所有 weightssubsetoffset 的计算方式与 formula 中的变量相同,即首先在 data 中,然后在 formula 环境中。

lm 返回 class "lm" 的对象或类 c("mlm", "lm") 的多元 (‘multiple’) 响应。

函数summaryanova 用于获取并打印结果的汇总和方差分析表。通用访问器函数 coefficientseffectsfitted.valuesresiduals 提取 lm 返回值的各种有用特征。

"lm" 类的对象是至少包含以下组件的列表:

coefficients

命名的系数向量

residuals

残差,即响应减去拟合值。

fitted.values

拟合平均值。

rank

拟合线性模型的数值等级。

weights

(仅适用于加权配合)指定的重量。

df.residual

剩余自由度。

call

匹配的调用。

terms

使用的terms 对象。

contrasts

(仅在相关时)使用的对比。

xlevels

(仅在相关时)拟合中使用的因子水平的记录。

offset

使用的偏移量(如果没有使用则丢失)。

y

如果有请求,则使用响应。

x

如果需要,使用模型矩阵。

model

如果需要(默认),则使用模型框架。

na.action

(如果相关)model.frame 返回的有关 NA 的特殊处理的信息。

此外,非空拟合将具有与线性拟合相关的组件 assigneffects 和(除非未请求)qr ,供提取器函数使用,例如 summaryeffects

使用时间序列

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 用于不同的接口。

通用函数 coefeffectsresidualsfittedvcov

predict.lm (通过 predict )用于预测,包括置信度和预测区间; confint 用于参数的置信区间。

lm.influence 用于回归诊断,glm 用于广义线性模型。

底层低级函数,lm.fit 用于普通函数,lm.wfit 用于加权回归拟合。

更多 lm() 示例可用,例如 anscombeattitudefreenyLifeCycleSavingslongleystacklossswiss

biglm 包中的 biglm 是一种将线性模型拟合到大型数据集(尤其是具有许多情况的数据集)的替代方法。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Fitting Linear Models。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。