factor.smooth
位于 mgcv
包(package)。 说明
一个或多个因子与平滑效果的相互作用,会为每个因子水平产生单独的平滑效果。这些平滑可以具有不同的平滑参数,或者全部具有相同的平滑参数。有几种方法可以设置它们。
- 因子
by
变量。 -
如果平滑的
by
变量(使用s
、te
、ti
或t2
指定)是一个因子,则为每个因子级别生成单独的平滑。如果因子是有序的,则不会为其第一个级别生成平滑:这对于设置具有参考级别平滑然后除第一个(参考)之外的每个因子级别的参考平滑差异的模型很有用。为平滑指定id
会强制对因子的所有级别使用相同的平滑参数。例如,s(x,by=fac,id=1)
将为fac
的每个级别生成单独的平滑x
,每个平滑具有相同的平滑参数。有关更多信息,请参阅gam.models。 - 总和为零平滑交互
-
bs="sz"
这些因子平滑交互是使用s(...,bs="sz")
指定的。可能提供多个因子,并且为因子水平的每个组合生成平滑。平滑的构造是为了排除“主效应”平滑,或为因子水平的低阶组合产生的单个平滑的影响。例如,对于单个因子,不同因子级别的平滑受到很大限制,以致等效样条系数的所有因子级别的总和均为零。这允许有意义且可识别的模型构建,其中主效应平滑加上每个因子水平与主效应之间差异的平滑。这种构造通常比具有有序因子构造的by
变量更自然。请参阅smooth.construct.sz.smooth.spec
。 - 随机摆动曲线
-
bs="fs"
此方法为单个因子的每个水平生成一条平滑曲线,将曲线视为完全随机的。这意味着原则上可以使用主效应加上因子水平平滑偏离该效应来构建模型。但是,模型不会像"sz"
方法那样强制让主效应完成尽可能多的工作。这种方法对于gamm
来说非常有效,因为它利用了lme
中可用的嵌套估计。请参阅smooth.construct.fs.smooth.spec
。
例子
library(mgcv)
set.seed(0)
## simulate data...
f0 <- function(x) 2 * sin(pi * x)
f1 <- function(x,a=2,b=-1) exp(a * x)+b
f2 <- function(x) 0.2 * x^11 * (10 * (1 - x))^6 + 10 *
(10 * x)^3 * (1 - x)^10
n <- 500;nf <- 25
fac <- sample(1:nf,n,replace=TRUE)
x0 <- runif(n);x1 <- runif(n);x2 <- runif(n)
a <- rnorm(nf)*.2 + 2;b <- rnorm(nf)*.5
f <- f0(x0) + f1(x1,a[fac],b[fac]) + f2(x2)
fac <- factor(fac)
y <- f + rnorm(n)*2
## so response depends on global smooths of x0 and
## x2, and a smooth of x1 for each level of fac.
## fit model...
bm <- gamm(y~s(x0)+ s(x1,fac,bs="fs",k=5)+s(x2,k=20))
plot(bm$gam,pages=1)
summary(bm$gam)
bd <- bam(y~s(x0)+ s(x1) + s(x1,fac,bs="sz",k=5)+s(x2,k=20),discrete=TRUE)
plot(bd,pages=1)
summary(bd)
## Could also use...
## b <- gam(y~s(x0)+ s(x1,fac,bs="fs",k=5)+s(x2,k=20),method="ML")
## ... but its slower (increasingly so with increasing nf)
## b <- gam(y~s(x0)+ t2(x1,fac,bs=c("tp","re"),k=5,full=TRUE)+
## s(x2,k=20),method="ML"))
## ... is exactly equivalent.
作者
Simon N. Wood simon.wood@r-project.org with input from Matteo Fasiolo.
也可以看看
smooth.construct.fs.smooth.spec
, smooth.construct.sz.smooth.spec
相关用法
- R fs.test FELSPLINE 测试函数
- R full.score 用于 nlm 内的 GCV/UBRE 分数
- R formXtViX GAMM 协方差矩阵的形式分量
- R fix.family.link 修改族以用于 GAM 拟合和检查
- R formula.gam GAM公式
- R fixDependence 检测一个矩阵与另一个矩阵的线性相关性
- R vcov.gam 从 GAM 拟合中提取参数(估计器)协方差矩阵
- R gam.check 拟合 gam 模型的一些诊断
- R null.space.dimension TPRS 未惩罚函数空间的基础
- R gam.reparam 寻找平方根惩罚的稳定正交重新参数化。
- R extract.lme.cov 从 lme 对象中提取数据协方差矩阵
- R scat 用于重尾数据的 GAM 缩放 t 系列
- R choldrop 删除并排名第一 Cholesky 因子更新
- R smooth.construct.cr.smooth.spec GAM 中的惩罚三次回归样条
- R bandchol 带对角矩阵的 Choleski 分解
- R gam.side GAM 的可识别性边条件
- R cox.ph 附加 Cox 比例风险模型
- R mgcv.parallel mgcv 中的并行计算。
- R gamm 广义加性混合模型
- R pdTens 实现张量积平滑的 pdMat 类的函数
- R Predict.matrix GAM 中平滑项的预测方法
- R Predict.matrix.soap.film 皂膜光滑度预测矩阵
- R smooth.construct.bs.smooth.spec GAM 中的惩罚 B 样条
- R gamlss.gH 计算回归系数的对数似然导数
- R plot.gam 默认 GAM 绘图
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Factor smooth interactions in GAMs。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。