smooth.construct.re.smooth.spec
位于 mgcv
包(package)。 说明
gam
可以处理简单的独立随机效应,通过利用平滑和随机效应之间的链接将随机效应视为平滑。 s(x,bs="re")
实现了这一点。这些项可以有任意数量的预测变量,这些预测变量可以是数值变量或因子变量的任意混合。这些项产生预测变量的参数交互,并用单位矩阵的倍数来惩罚相应的系数,这对应于 i.i.d 的假设。常态。查看具体信息。
用法
## S3 method for class 're.smooth.spec'
smooth.construct(object, data, knots)
## S3 method for class 'random.effect'
Predict.matrix(object, data)
参数
object |
对于 |
data |
仅包含该术语所需的数据(包括任何 |
knots |
通常包含为基础设置提供的任何结的列表 - 目前未使用。 |
细节
通过示例可以最好地了解随机效应是如何实现的。考虑模型术语 s(x,z,bs="re")
。这将导致与 ~x:z-1
对应的模型矩阵分量被添加到整个模型的模型矩阵中。假设与模型矩阵分量相关的系数是独立同分布的。正常,方差未知(待估计)。这个假设相当于系数上的恒等惩罚矩阵(即岭惩罚)。因为这样的惩罚是满等级的,所以随机效应项不需要居中约束。
如果随机效应规范的性质不清楚,请考虑更多示例:s(x,bs="re")
导致 model.matrix(~x-1)
被附加到整个模型矩阵,而 s(x,v,w,bs="re")
会导致 model.matrix(~x:v:w-1)
被附加到模型矩阵。在这两种情况下,相应的模型系数均假设为独立同分布。正常,因此会受到山脊处罚。
一些模型要求同一随机效应的不同水平对应的系数之间存在差异。有关如何实现这一点,请参阅linear.functional.terms
。
如果已知矩阵 s
的 xt
参数中提供包含 的列表。在这种情况下,还应在 xt
中提供数组 rank
,给出 矩阵的排名。请参阅下面的简单示例。 和未知参数 的随机效应精度矩阵的形式为 ,则可以在
请注意,随机效应项不支持平滑id
。与大多数平滑项不同,在嵌套情况下,附带条件永远不会应用于随机效应项(因为它们无需附带条件即可识别)。
以这种方式实现的随机效应不会利用许多随机效应的稀疏结构,因此对于具有大量随机效应的模型来说可能相对低效,而 gamm4
或 gamm
可能是更好的选择。另请注意,gam
将不支持系数多于数据的模型。
因子变量随机效应故意具有不可观察水平的情况需要特殊处理。您应该在模型拟合函数中设置 drop.unused.levels=FALSE
gam
、 bam
或 gamm
,首先确保任何固定效应因子不包含未观察到的水平。
该实现的设计是为了向 predict.gam
提供随机效应因子水平(拟合时不是因子水平),将导致相应的随机效应(或涉及它的交互作用)设置为零(标准误差为零)以进行预测。有关示例,请参阅random.effects
。这是通过 Predict.matrix
方法将涉及 NA
因子的预测矩阵的任何行归零来实现的。如果拟合数据中不存在水平,predict.gam
会将任何因子观察值设置为 NA
。
值
类 "random.effect"
的对象或将随机效应系数映射到随机效应本身的矩阵。
例子
## see ?gam.vcomp
require(mgcv)
## simulate simple random effect example
set.seed(4)
nb <- 50; n <- 400
b <- rnorm(nb)*2 ## random effect
r <- sample(1:nb,n,replace=TRUE) ## r.e. levels
y <- 2 + b[r] + rnorm(n)
r <- factor(r)
## fit model....
b <- gam(y ~ s(r,bs="re"),method="REML")
gam.vcomp(b)
## example with supplied precision matrices...
b <- c(rnorm(nb/2)*2,rnorm(nb/2)*.5) ## random effect now with 2 variances
r <- sample(1:nb,n,replace=TRUE) ## r.e. levels
y <- 2 + b[r] + rnorm(n)
r <- factor(r)
## known precision matrix components...
S <- list(diag(rep(c(1,0),each=nb/2)),diag(rep(c(0,1),each=nb/2)))
b <- gam(y ~ s(r,bs="re",xt=list(S=S,rank=c(nb/2,nb/2))),method="REML")
gam.vcomp(b)
summary(b)
作者
Simon N. Wood simon.wood@r-project.org
参考
Wood, S.N. (2008) Fast stable direct fitting and smoothness selection for generalized additive models. Journal of the Royal Statistical Society (B) 70(3):495-518
也可以看看
相关用法
- R smooth.construct.cr.smooth.spec GAM 中的惩罚三次回归样条
- R smooth.construct.bs.smooth.spec GAM 中的惩罚 B 样条
- R smooth.construct.sz.smooth.spec GAM 中的约束因子平滑交互
- R smooth.construct.mrf.smooth.spec 马尔可夫随机场平滑
- R smooth.construct.gp.smooth.spec 低阶高斯过程平滑
- R smooth.construct.tp.smooth.spec GAM 中的惩罚薄板回归样条
- R smooth.construct.ad.smooth.spec GAM 中的自适应平滑
- R smooth.construct.so.smooth.spec 皂膜平滑剂
- R smooth.construct.ds.smooth.spec 低阶 Duchon 1977 样条
- R smooth.construct.fs.smooth.spec GAM 中平滑交互的因子
- R smooth.construct.ps.smooth.spec GAM 中的 P 样条
- R smooth.construct.sos.smooth.spec 球体上的样条线
- R smooth.construct.tensor.smooth.spec 张量积平滑构造函数
- R smooth.construct.t2.smooth.spec 张量积平滑构造函数
- R smooth.construct GAM 中平滑项的构造函数
- R smooth.info 提供有关平滑规范的额外信息的通用函数
- R smooth.terms GAM 中的平滑术语
- R smooth2random 将平滑转换为适合估计随机效应的形式
- R smoothCon GAM 平滑项的预测/构造包装函数
- R scat 用于重尾数据的 GAM 缩放 t 系列
- R slanczos 计算对称矩阵的截断特征分解
- R single.index 具有 mgcv 的单指数模型
- R sp.vcov 从 (RE)ML GAM 拟合中提取平滑参数估计器协方差矩阵
- R shash Sinh-arcsinh 位置比例和形状模型族
- R s 在 GAM 公式中定义平滑
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Simple random effects in GAMs。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。