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


R predict.bam 根據擬合的大加法模型進行預測


R語言 predict.bam 位於 mgcv 包(package)。

說明

在大多數情況下,本質上是 predict.gam 的包裝器,用於根據 bam 擬合的模型進行預測。可以在並行集群上進行計算。對於使用 discrete=TRUE 的離散方法擬合的模型,則使用離散預測方法。

采用 bam 生成的擬合 bam 對象,並在給定模型協變量的一組新值或用於模型擬合的原始值的情況下生成預測。基於模型係數的後驗分布,預測可能伴隨有標準誤差。該例程可以選擇返回矩陣,模型係數必須預先乘以該矩陣,以便在提供的協變量值處產生線性預測變量的值:這對於獲得從模型導出的數量的可信區域(例如,平滑),以及 R 之外的查找表預測。

用法

## S3 method for class 'bam'
predict(object,newdata,type="link",se.fit=FALSE,terms=NULL,
        exclude=NULL,block.size=50000,newdata.guaranteed=FALSE,
        na.action=na.pass,cluster=NULL,discrete=TRUE,n.threads=1,gc.level=0,...)

參數

object

bam 生成的擬合 bam 對象。

newdata

包含需要預測的模型協變量值的 DataFrame 或列表。如果未提供,則返回與原始數據相對應的預測。如果提供了newdata,那麽它應該包含預測所需的所有變量:如果沒有,則會生成警告。

type

當其值為"link"(默認)時,返回線性預測器(可能具有相關的標準誤差)。當type="terms" 線性預測器的每個分量單獨返回(可能帶有標準誤差):這包括參數模型分量,後麵是每個平滑分量,但不包括任何偏移和任何截距。 type="iterms" 是相同的,隻是為平滑分量返回的任何標準誤差將包括截距/總體平均值的不確定性。當返回 type="response" 對響應規模的預測時(可能具有近似標準誤差)。當 type="lpmatrix" 時,返回一個矩陣,該矩陣在後乘於參數向量時產生線性預測器的值(減去任何偏移)(在這種情況下 se.fit 被忽略)。後一個選項對於獲取從模型導出的數量的方差估計最有用:例如積分數量或平滑的導數。線性預測矩陣也可用於在 R 之外實現近似預測(請參見下麵的示例代碼)。

se.fit

當此值為 TRUE(非默認值)時,將為每個預測返回標準誤差估計值。

terms

如果type=="terms"type="iterms" 則僅返回此數組中指定的項(平滑或參數)的結果。否則,該數組中未命名的任何術語都將設置為零。如果NULL則包含所有術語。 "(Intercept)" 是截距項。

exclude

如果 type=="terms"type="iterms" 則不會返回此數組中指定的項(平滑或參數)。否則,該數組中命名的任何術語都將設置為零。如果NULL,則不排除任何術語。為了避免為排除的平滑項提供協變量值,請設置 newdata.guaranteed=TRUE ,但請注意,這會跳過 newdata 的所有檢查。

block.size

每次調用底層代碼時要處理的最大預測數:越大速度越快,但內存消耗更大。

newdata.guaranteed

設置為 TRUE 以關閉對 newdata 的所有檢查,除了因子水平的健全性之外:這可以加快大型預測任務的速度,但 newdata 必須完整,並且不需要預測變量的 NA 值。模型。

na.action

如何處理 newdata 中的 NA 值。使用默認值 na.passnewdata 中包含所需預測變量的 NA 值的任何行都會產生 NA 預測(即使相關術語沒有 NA 預測變量)。 na.excludena.omit 會導致刪除 newdata 行(如果它們包含所需預測變量的任何 NA 值)。如果 newdata 缺失,則 NA 處理由 object$na.action 確定。

cluster

predict.bam 可以使用 parallel 包中的 parLapply 進行並行計算,前提是它提供了執行此操作的集群(這裏的集群可以是單台機器的一些核心)。請參閱 bam 的詳細信息和示例代碼。

discrete

如果TRUE,則離散預測方法與離散方法擬合的模型一起使用。 FALSE 用於常規預測。查看具體信息。

n.threads

如果使用se.fit=TRUE並使用離散預測,則可以使用並行計算來加速計算。這指定要使用的 htread 數量。

gc.level

如果默認值不夠,則從 0 增加垃圾收集級別。

...

其他論點。

細節

predict.gam 產生的標準誤差基於擬合 bam 對象中參數 Vp 的貝葉斯後驗協方差矩陣。

為了便於使用 termplot 進行繪圖,如果 object 擁有屬性 "para.only"type=="terms",則僅返回 1 階參數項(即 termplot 可以處理的參數項)。

請注意,與其他預測函數一樣,預測時始終忽略作為參數提供給 bam 的任何偏移量,這與 bam 模型公式中指定的偏移量不同。

請參閱 predict.gam 中的示例,了解如何使用 lpmatrix 獲取從模型導出的數量的可信區域。

discrete=TRUE 時,newdata 中的預測數據以與使用 bam 離散擬合方法時相同的方式離散化。然而,離散網格目前與擬合過程中使用的網格並不相同。相反,對預測數據重新進行離散化。這意味著,如果您正在預測相對較小的預測數據集,或者在規則網格上進行預測,那麽結果實際上可能與未經離散化獲得的結果相同。這種方法的缺點是,如果您使用大數據幀進行預測,然後將其拆分為較小的數據幀再次進行預測,由於離散化誤差略有不同,結果可能會略有不同。

如果type=="lpmatrix",則返回一個矩陣,當應用於模型係數向量時,該矩陣將在所提供的協變量值處給出線性預測變量值(減去任何偏移)的向量。否則,如果 se.fitTRUE,則返回 2 項列表,其中項(兩個數組)fitse.fit 包含預測和關聯的標準誤差估計,否則返回預測數組。返回數組的維度取決於 type 是否是 "terms":如果是,則數組是二維的,線性預測器中的每個項都是單獨的,否則數組是一維的,包含線性預測器/預測值(或相應的 s.e.s)。按項返回的線性預測器將不包括偏移量或截距。

newdata 可以是 DataFrame 架、列表或 model.frame:如果它是模型框架,則必須提供所有變量。

警告

如果在平滑調用中使用協變量的數據相關變換,則預測可能不正確。請參閱 predict.gam 中的示例。

例子

## for parallel computing see examples for ?bam

## for general useage follow examples in ?predict.gam

作者

Simon N. Wood simon.wood@r-project.org

The design is inspired by the S function of the same name described in Chambers and Hastie (1993) (but is not a clone).

參考

Chambers and Hastie (1993) Statistical Models in S. Chapman & Hall.

Marra, G and S.N. Wood (2012) Coverage Properties of Confidence Intervals for Generalized Additive Model Components. Scandinavian Journal of Statistics.

Wood S.N. (2006b) Generalized Additive Models: An Introduction with R. Chapman and Hall/CRC Press.

也可以看看

bam , predict.gam

相關用法


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