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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。