当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。