簡體   English   中英

更改默認plot.gam圖的Y軸

[英]Changing the Y axis of default plot.gam graphs

我使用mgcv包在R中運行GAM,格式如下:

shark.gamFINAL <- gam(ln.raw.CPUE...0.1 ~ Year + Month + 
                      s(Mean.Temp, bs = "cr") + s(Mean.Chl.a, bs = "cr") + 
                      s(Mean.Front.density, bs = "cr"), data=r, family=gaussian)

運行此模型並計算每個變量解釋的百分比偏差后,我想繪制每個變量對響應的影響

但是,當我在R中使用plot.gam函數時,我的圖形出現了一個"s(predictor variable, edf)""s(predictor variable, edf)"

我不確定y軸的這個比例代表什么?

有沒有辦法可以將y軸范圍更改為代表響應的范圍,如本文所述:Walsh和Kleiber(2001),'藍鯊(Prionace glauca)捕獲的廣義加性模型和回歸樹分析圖3中基於夏威夷的商業延繩釣漁業的費率。

我會發布一些我正在描述的情節的例子,但由於這是我的第一篇文章,我沒有至少10個聲望,所以它不會讓我這樣做!

我搜索了許多網站和論壇試圖找到答案,但無濟於事,因此非常感謝任何幫助!

軸是居中平滑所取的值。 它是對該平滑函數的擬合值的貢獻(在協變量的值處)。

更改y軸標簽很容易 - 提供您想要的ylab參數。 這當然意味着如果您想為每個繪圖分別設置y軸標簽,則必須單獨繪制每個平滑圖。 在這種情況下,還可以使用select參數繪制特定的平滑函數,例如:

layout(matrix(1:4, ncol = 2, byrow = TRUE)
plot(shark.gamFINAL, select = 1, ylab = "foo")
plot(shark.gamFINAL, select = 2, ylab = "bar")
plot(shark.gamFINAL, select = 3, ylab = "foobar")
layout(1)

我知道更改y軸刻度的唯一方法是手動構建繪圖。 這些圖沒有模型常數項的貢獻,加上其他參數項。 如果您的模型只有一個截距和一個平滑,您可以在該協變量范圍內生成新數據,然后從模型中predict這些新數據值,但使用type = "terms"來獲得平滑的貢獻。 然后,繪制從返回的值predict加上價值"constant"通過返回的屬性 predict

在您的情況下,您需要在預測時控制其他變量。 一種方法是將所有其他協變量設置為它們的均值或典型值,但允許感興趣的協變量在其范圍內變化,如前所述。 然后,你總結了由predict(shark.gamFINAL, newdata = NEW, type = "terms")返回的矩陣的每一行中的值predict(shark.gamFINAL, newdata = NEW, type = "terms") (其中NEW是要預測的新數據幀,改變一個協變量,但保留其余的一些典型值),再加上常數。 您必須依次為每個協變量重復此操作(即每個繪圖一次),因為您需要將其他協變量保持在典型值。

所有這一切都是在軸上移動比例 - 模型中沒有任何平滑與模型中的其他平滑或項相互作用,因此可能更容易將y軸視為對每個平滑的響應的影響?

暫無
暫無

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

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