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


R anova.gam 與 GAM 擬合相關的近似假設檢驗


R語言 anova.gam 位於 mgcv 包(package)。

說明

執行與一個或多個擬合的 gam 對象相關的假設檢驗。對於單個擬合的 gam 對象,對每個參數和平滑項的顯著性進行 Wald 檢驗,因此解釋類似於 drop1 而不是 anova.lm(即,它類似於 III 型方差分析,而不是 I 型順序方差分析)方差分析)。否則,使用偏差表分析或 GLRT 測試來比較擬合模型:後一種方法不應用於測試可能被懲罰為零的項的顯著性。要比較的模型應使用相同的平滑參數選擇方法來擬合相同的數據。

用法

## S3 method for class 'gam'
anova(object, ..., dispersion = NULL, test = NULL,
                    freq = FALSE)
## S3 method for class 'anova.gam'
print(x, digits = max(3, getOption("digits") - 3),...)

參數

object , ...

gam() 生成的 gam 類的擬合模型對象。

x

由對 anova.gam() 的單個模型調用生成的 anova.gam 對象。

dispersion

色散參數的值:通常不使用。

test

對 multi-model 調用執行什麽樣的測試。 "Chisq""F""Cp" 之一。對於大家庭和一般家庭,重置為 "Chisq" ,除非 NULL

freq

是否對參數項 p 值使用頻率近似或貝葉斯近似。有關詳細信息,請參閱summary.gam

digits

打印輸出時使用的位數。

細節

如果提供了多個擬合模型,則使用anova.glm,模型自由度的差異被視為有效自由度的差異(如果可能,這是平滑參數不確定性校正版本)。對於大家庭和普通家庭,進行此設置以便使用 GLRT 測試。 multi-model 案例得出的 p 值隻是近似值,必須謹慎使用。當比較涉及未懲罰項或維數大於零的零空間的平滑器時,近似是最準確的。 (本質上,我們要求差分項可以很好地近似為自由度近似於有效自由度的未懲罰項)。在模擬中,p 值通常略低。對於零維零空間項(即可以懲罰為零的項),近似值通常非常差,並且顯著性可能被大大誇大:即 p 值通常太低。這種情況適用於隨機效應項。

另請注意,在 multi-model 對 anova.gam 的調用中,具有更多項的模型很可能最終獲得較低的有效自由度,但比具有較少項的名義上的空模型更好的擬合。在這種情況下,執行任何類型的測試都很少有意義,因為這樣就沒有接受名義零模型的基礎。

如果僅提供一個模型,則使用類似 Wald 的檢驗來評估每個模型項的顯著性,以平滑參數估計為條件:有關詳細信息,請參閱summary.gam 和 Wood (2013a,b)。此處提供的 p 值比多模型情況下的 p 值更合理,並且接近零值下的正確分布,除非平滑參數難以識別。 ML 或 REML 平滑參數選擇可以在模擬中帶來最佳結果,因為它們往往可以避免偶爾出現的嚴重欠平滑。複製 Scheipl 等人的完整模擬研究。 (2008) 這些測試為那裏推薦的方法提供了幾乎無法區分的功效,但在其第 3.1.8 節測試中的空值下,對於平滑交互的 p 值稍微太低了(Scheipl 等人的建議不直接使用,因為它僅適用於高斯情況,並且需要模型改裝,但它在包 RLRsim 中可用)。

在單模型情況下,使用print.anova.gam作為打印方法。

默認情況下,參數模型項的 p 值也基於使用貝葉斯協方差矩陣作為係數的 Wald 檢驗。當存在 "re" 項時,這是適當的,並且在其他方麵與使用頻率協方差矩陣 (freq=TRUE ) 的結果相當相似,因為參數項本身通常不受懲罰。使用 paraPen 參數進行懲罰的參數項的默認 P 值不會很好。

在 multi-model 情況下, anova.gam 生成與 anova.glm 相同的輸出,它實際上使用了 anova.glm

在單模型情況下,會生成 anova.gam 類的對象,它實際上是從 summary.gam 返回的對象。

print.anova.gam 隻是生成表格輸出。

警告

如果模型 'a' 和 'b' 僅在沒有 un-penalized 成分(例如隨機效應)方麵有所不同,則 anova(a,b) 的 p 值不可靠,並且通常太低。

對於使用“paraPen”懲罰的參數項,默認 P 值通常是錯誤的:當懲罰為滿秩並代表傳統隨機效應時,使用 freq=TRUE 可以獲得更好的 p 值。

對於單個模型,解釋類似於 drop1,而不是 anova.lm。

例子

library(mgcv)
set.seed(0)
dat <- gamSim(5,n=200,scale=2)

b<-gam(y ~ x0 + s(x1) + s(x2) + s(x3),data=dat)
anova(b)
b1<-gam(y ~ x0 + s(x1) + s(x2),data=dat)
anova(b,b1,test="F")

作者

Simon N. Wood simon.wood@r-project.org with substantial improvements by Henric Nilsson.

參考

Scheipl, F., Greven, S. and Kuchenhoff, H. (2008) Size and power of tests for a zero random effect variance or polynomial regression in additive and linear mixed models. Comp. Statist. Data Anal. 52, 3283-3299

Wood, S.N. (2013a) On p-values for smooth components of an extended generalized additive model. Biometrika 100:221-228 doi:10.1093/biomet/ass048

Wood, S.N. (2013b) A simple test for random effects in regression models. Biometrika 100:1005-1010 doi:10.1093/biomet/ast038

也可以看看

gam , predict.gam , gam.check , summary.gam

相關用法


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