當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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