簡體   English   中英

使用mgcv的GAM對比圖

[英]Contrast plot for GAM using mgcv

當使用visreg軟件包通過對比圖可視化GAM時,當圖形呈U形時,拐點處的置信區間變為零:

# Load libraries
library(mgcv)
library(visreg)

# Synthetic data
df <- data.frame(a = -10:10, b = jitter((-10:10)^2, amount = 10))

# Fit GAM
res <- gam(b ~ s(a), data = df)

# Make contrast figure
visreg(res, type = "contrast")

在此處輸入圖片說明

這看起來像是狡猾的,在進行條件繪圖時不會發生(即visreg(res, type = "conditional") ),所以我正在看mgcv軟件包以進行相同的繪圖。 我可以使用mgcv進行條件繪圖(例如plot.gam(res) ),但是看不到進行對比繪圖的選項。 mgcv軟件包有可能嗎?

這是由於在模型中使用的樣條線基礎上施加了可識別性約束。 這是一個零和約束,可以有效地從每個平滑項使用的基礎中刪除類似攔截器的基礎函數,以使這些不會與模型攔截器混淆。 這使得模型是可識別的,而不是無限的解決方案。

使用標准理論,置信區間必須在y軸與零交叉的地方趨於零(通常是居中效果,但此處顯示為一定變換尺度),因為約束意味着在某點x , effect為0,方差為0。

當然這是胡說八道,最近的研究已經研究了這個問題。 Simon Wood及其同事提供的一種解決方案采用了對Nychka的觀察的擴展,即對於高斯情況,平滑的貝葉斯可信區間具有良好的跨函數解釋, 可以解釋為頻繁的置信區間(因此既非指向性,也非同時性) 。 如果估計的平滑度具有平方偏差,且偏差不小於估計的方差,則Nychka的結果(區間的覆蓋范圍屬性)將失敗。 顯然,當方差達到零時,情況就不會如此,因為估計的平滑度會通過零影響,因為此時的偏差實際上並不完全為零。

Marra and Wood(2012)將這些結果擴展到廣義模型設置,通過假設模型中的所有其他術語均已應用可識別性約束,而不是感興趣的平滑,基本上估計了一個平滑的置信區間。 這將推理的焦點從平滑直接轉移到平滑+截距。 您可以在plot.gam()使用參數seWithMean = TRUE打開此功能。

我看不到讓visreg做到這一點的簡便方法,盡管通過帶有type = 'iterms', se.fit = TRUE選項的type = 'iterms', se.fit = TRUE predict.gam()來獲取所需信息是微不足道的。 在線性預測變量的尺度上,這將返回每個模型平滑項的貢獻以及包括seWithMean所隱含的校正在內的標准誤差。 然后,您可以隨心所欲地擺弄它。 例如,加上模型常數項(截距的估計值)應該可以為您提供與問題中顯示的數字相近的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM