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


R predict.lm 線性模型擬合的預測方法


R語言 predict.lm 位於 stats 包(package)。

說明

基於線性模型對象的預測值。

用法

## S3 method for class 'lm'
predict(object, newdata, se.fit = FALSE, scale = NULL, df = Inf,
        interval = c("none", "confidence", "prediction"),
        level = 0.95, type = c("response", "terms"),
        terms = NULL, na.action = na.pass,
        pred.var = res.var/weights, weights = 1,
        rankdeficient = c("warnif", "simple", "non-estim", "NA", "NAwarn"),
        tol = 1e-6, verbose = FALSE,
        ...)

參數

object

繼承自"lm"的類的對象

newdata

一個可選的 DataFrame ,用於查找用於預測的變量。如果省略,則使用擬合值。

se.fit

指示是否需要標準錯誤的開關。

scale

std.err 的標度參數。計算。

df

規模的自由度。

interval

區間計算的類型。可以縮寫。

level

容忍度/置信度。

type

預測類型(響應或模型項)。可以縮寫。

terms

如果 type = "terms" ,哪些術語(默認為所有術語),則為 character 向量。

na.action

函數確定應如何處理 newdata 中的缺失值。默認是預測 NA

pred.var

為預測區間假設的未來觀測值的方差。查看具體信息'。

weights

用於預測的方差權重。這可以是數值向量或片麵模型公式。在後一種情況下,它被解釋為在 newdata 中計算的表達式。

rankdeficient

character 字符串,指定在排名不足模型的情況下應該發生什麽,即當 object$rank < ncol(model.matrix(object)) 時。

"warnif"

僅在預測“不可估計”情況下給出 warning,即向量與原始數據不在同一預測子空間中(具有容差 tol )。在這種情況下,不可估計的索引也會作為屬性 "non-estim" 返回(請參閱 rankdeficient="non-estim" )。

"simple"

恢複兼容R< 4.3.0,在不可估計的情況下可能給出可疑的預測,並且總是發出信號warning.

"non-estim"

給出相同的預測,沒有 warning ,並且具有屬性 attr(*, "non-estim") ,其中新數據觀測值的 1:nrow(newdata) 中的索引被認為是不可估計的。

"NA"

默默地預測NA 不可估計的新數據。經常在新代碼中推薦。

"NAwarn"

使用 warning 預測不可估計的新數據 NA

tol

非負數決定了在秩不足的情況下如何確定不可估計性。

verbose

logical 指示是否應生成有關等級不足處理的消息。

...

傳入或傳出其他方法的進一步參數。

細節

predict.lm 生成預測值,通過評估框架 newdata 中的回歸函數獲得(默認為 model.frame(object) )。如果邏輯 se.fitTRUE ,則計算預測的標準誤差。如果設置了數字參數 scale (帶有可選的 df ),則將其用作標準誤差計算中的殘餘標準差,否則從模型擬合中提取。設置 intervals 指定在指定的 level 處計算置信度或預測(容差)間隔,有時稱為窄間隔與寬間隔。

如果擬合為 rank-deficient,則在 lm 計算期間將刪除設計矩陣的某些列,並將相應的 coef() 組件設置為 NA 。僅當 newdata 包含在與原始數據相同的子空間中時,這種擬合的預測才有意義。其他 newdata 條目(行)是 non-estimable 。現在對此進行檢查(高達數值公差 tol ),除非對應於先前行為的 rankdeficient == "simple" 始終發出警告並使用非 NA 係數與設計矩陣的相應列進行預測。新的默認選項 rankdeficient == "warnif" 檢查是否存在 “non-estimable” 情況(最多容差 tol ),並且僅在這種情況下發出警告。所有其他 rankdeficient 選項也會檢查並預測 NA 或以不同方式標記不可估計的情況。

如果省略newdata,則預測基於用於擬合的數據。在這種情況下,如何處理原始擬合中缺失值的情況由該擬合的 na.action 參數確定。如果 na.action = na.omit 省略的情況不會出現在預測中,而如果 na.action = na.exclude 則會出現(在預測、標準誤差或區間限製中),且值為 NA 。另請參閱napredict

預測區間針對 newdata 中每種情況的單個觀察(或默認情況下,用於擬合的數據),誤差方差為 pred.var 。這可以是 res.var 的倍數,即 的估計值:默認情況是假設未來的觀測值與用於擬合的觀測值具有相同的誤差方差。如果提供weights,則將其倒數用作比例因子。對於加權擬合,如果預測針對原始數據幀,weights 默認為用於模型擬合的權重,並會出現警告,因為它可能不是預期結果。如果對擬合進行加權並給出newdata,則默認情況下假設預測方差恒定,並帶有警告。

predict.lm 生成預測向量或預測矩陣和列名稱為 fitlwrupr (如果設置了 interval )。對於 type = "terms" 來說,這是一個每項有一列的矩陣,並且可能具有屬性 "constant"

如果 se.fitTRUE ,則返回包含以下組件的列表:

fit

向量或矩陣如上

se.fit

預測平均值的標準誤差

residual.scale

殘餘標準差

df

殘差自由度

注意

首先在 newdata 中查找變量,然後以通常的方式搜索(其中包括擬合中使用的公式的環境)。如果找到的變量長度與 newdata 中提供的變量長度不同,則會發出警告。

請注意,預測方差和預測區間始終指未來的觀測值,可能對應於用於擬合的相同預測變量。殘差的方差會更小。

嚴格來說,用於預測極限的公式假設擬合的自由度與殘差方差的自由度相同。如果res.var不是從擬合中獲得的,情況可能並非如此。

例子

require(graphics)

## Predictions
x <- rnorm(15)
y <- x + rnorm(15)
predict(lm(y ~ x))
new <- data.frame(x = seq(-3, 3, 0.5))
predict(lm(y ~ x), new, se.fit = TRUE)
pred.w.plim <- predict(lm(y ~ x), new, interval = "prediction")
pred.w.clim <- predict(lm(y ~ x), new, interval = "confidence")
matplot(new$x, cbind(pred.w.clim, pred.w.plim[,-1]),
        lty = c(1,2,2,3,3), type = "l", ylab = "predicted y")

## Prediction intervals, special cases
##  The first three of these throw warnings
w <- 1 + x^2
fit <- lm(y ~ x)
wfit <- lm(y ~ x, weights = w)
predict(fit, interval = "prediction")
predict(wfit, interval = "prediction")
predict(wfit, new, interval = "prediction")
predict(wfit, new, interval = "prediction", weights = (new$x)^2)
predict(wfit, new, interval = "prediction", weights = ~x^2)

##-- From  aov(.) example ---- predict(.. terms)
npk.aov <- aov(yield ~ block + N*P*K, npk)
(termL <- attr(terms(npk.aov), "term.labels"))
(pt <- predict(npk.aov, type = "terms"))
pt. <- predict(npk.aov, type = "terms", terms = termL[1:4])
stopifnot(all.equal(pt[,1:4], pt.,
                    tolerance = 1e-12, check.attributes = FALSE))

也可以看看

模型擬合函數lmpredict

SafePrediction 用於根據(單變量)多項式和樣條擬合進行預測。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Predict method for Linear Model Fits。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。