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


R vis.gam GAM 對象的可視化


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

說明

生成 gam 模型預測的透視圖或等高線圖視圖,將 view 中除值之外的所有值固定為 cond 中提供的值。

用法

vis.gam(x,view=NULL,cond=list(),n.grid=30,too.far=0,col=NA,
        color="heat",contour.col=NULL,se=-1,type="link",
        plot.type="persp",zlim=NULL,nCol=50,lp=1,...)

參數

x

gam() 生成的 gam 對象

view

包含要在圖的 x 和 y 維度上顯示的兩個主要效應項的名稱的數組。如果省略,將使用前兩個合適的術語。請注意,強製轉換為模型公式中的因子的變量將無法用作視圖變量,並且 vis.gam 在設置默認值時無法檢測到這種情況發生。

cond

用於其他預測項的值的命名列表(不在 view 中)。此列表中省略的變量將具有最接近連續變量中位數的觀察值,或最常出現的因子水平。參數矩陣變量將每列中的所有條目設置為最接近列中位數的觀察到的列條目。

n.grid

用於計算繪製曲麵的每個方向的網格節點數。

too.far

距離 view 中給出的變量定義的點太遠的繪圖網格節點可以從繪圖中排除。 too.far 確定什麽是太遠了。網格與 view 變量一起縮放到單位正方形,然後排除預測變量中超過 too.far 的網格節點。

col

繪圖各個方麵的顏色。如果這是 NA,則如果 se >0,則麵是透明的,否則使用 color 中指定的配色方案。如果 col 不是 NA,則將其用作麵顏色。

color

se <=0 時用於繪圖的配色方案。 "topo""heat""cm""terrain""gray""bw" 之一。方案 "gray""bw" 也會修改 se >0 時使用的顏色。

contour.col

使用 plot.type="contour" 時設置輪廓的顏色。如果 NULL 使用默認方案。

se

如果小於或等於 0,則僅繪製預測表麵,但如果大於 0,則繪製 3 個表麵,一個在預測值減去 se 標準誤差處,一個在預測值處,一個在預測值處加上 se 標準錯誤。

type

"link" 在線性預測尺度上繪製,"response" 在響應尺度上繪製。

plot.type

"contour""persp" 之一。

zlim

給出 z 軸刻度的下限和上限的兩項數組。 NULL 自動選擇。

nCol

配色方案中使用的顏色數量。

lp

為具有多個的模型選擇線性預測器。

...

其他選項傳遞給 perspimagecontour 。特別是 ticktype="detailed" 將為繪圖添加適當的軸標簽。

細節

x 和 y 限製由 view 中命名的術語的範圍確定。如果se <= 0,則生成單個(默認情況下高度顏色編碼)表麵,否則以平均值和+/-se標準誤差生成三個(默認情況下see-through)網格。通過設置 too.far 可以排除距離數據太遠的 x-y 平麵部分

底層圖形函數的所有選項都可以通過將它們作為額外參數傳遞來重置 ... :此類提供的值將始終覆蓋 vis.gam 使用的默認值。

隻是產生一個情節。

警告

該例程無法檢測到某個變量已被強製分解為模型公式中的因子,因此如果將此類變量用作view 變量,該例程將會失敗。設置默認 view 變量時,它也無法檢測到這種情況,如果強製變量是第一個遇到的合適變量,則可能會導致失敗。

例子

library(mgcv)
set.seed(0)
n<-200;sig2<-4
x0 <- runif(n, 0, 1);x1 <- runif(n, 0, 1)
x2 <- runif(n, 0, 1)
y<-x0^2+x1*x2 +runif(n,-0.3,0.3)
g<-gam(y~s(x0,x1,x2))
old.par<-par(mfrow=c(2,2))
# display the prediction surface in x0, x1 ....
vis.gam(g,ticktype="detailed",color="heat",theta=-35)  
vis.gam(g,se=2,theta=-35) # with twice standard error surfaces
vis.gam(g, view=c("x1","x2"),cond=list(x0=0.75)) # different view 
vis.gam(g, view=c("x1","x2"),cond=list(x0=.75),theta=210,phi=40,
        too.far=.07)
# ..... areas where there is no data are not plotted

# contour examples....
vis.gam(g, view=c("x1","x2"),plot.type="contour",color="heat")
vis.gam(g, view=c("x1","x2"),plot.type="contour",color="terrain")
vis.gam(g, view=c("x1","x2"),plot.type="contour",color="topo")
vis.gam(g, view=c("x1","x2"),plot.type="contour",color="cm")


par(old.par)

# Examples with factor and "by" variables

fac<-rep(1:4,20)
x<-runif(80)
y<-fac+2*x^2+rnorm(80)*0.1
fac<-factor(fac)
b<-gam(y~fac+s(x))

vis.gam(b,theta=-35,color="heat") # factor example

z<-rnorm(80)*0.4   
y<-as.numeric(fac)+3*x^2*z+rnorm(80)*0.1
b<-gam(y~fac+s(x,by=z))

vis.gam(b,theta=-35,color="heat",cond=list(z=1)) # by variable example

vis.gam(b,view=c("z","x"),theta= -135) # plot against by variable

作者

Simon Wood simon.wood@r-project.org

Based on an original idea and design by Mike Lonergan.

也可以看看

perspgam

相關用法


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