gam.side
位于 mgcv
包(package)。 说明
具有重复变量的 GAM 公式可能仅对应于给定某些附带条件的可识别模型。该例程基于将冗余参数归零来计算出适当的辅助条件。它是从 mgcv:::gam.setup
调用的,不适合由用户调用。
该方法通过名称识别嵌套和重复的变量,但以数字方式评估需要施加哪些约束。约束总是优先应用于较多变量的平滑,而不是较少变量的平滑。数值方法允许将适当的约束应用于使用任何平滑(包括用户定义的平滑)构建的模型。
用法
gam.side(sm,Xp,tol=.Machine$double.eps^.5,with.pen=FALSE)
参数
sm |
|
Xp |
严格参数化模型组件的模型矩阵。 |
tol |
评估平滑的线性相关性时使用的公差。 |
with.pen |
依赖性的计算是否应该考虑惩罚。这样做会减少限制。 |
细节
诸如 y~s(x)+s(z)+s(x,z)
之类的模型可以通过 gam
进行估计,但需要应用可识别性约束,以使它们可识别。该例程执行此操作,有效地将冗余参数设置为零。当冗余存在于较少数量变量和较多数量变量的平滑之间时,约束始终应用于较多数量变量的平滑。
从属平滑以符号方式进行标识,但需要哪些约束来确保这些平滑的可识别性是使用 fixDependence
以数字方式确定的。这使得例程相当通用,并且不依赖于任何特定基础。
Xp
用于检查模型中是否存在常数项(或可以线性组合以给出常数的列)。这是因为,如果模型中存在常数,则中心平滑可能会显得独立,而实际上它们会是相关的,因此相关性测试需要考虑到这一点。
值
平滑列表,其中模型矩阵和惩罚矩阵经过调整以自动施加所需的约束。任何已修改的平滑都将具有属性 "del.index"
,列出其模型矩阵中已删除的列。该索引用于创建该术语的预测矩阵。
警告
使用 y~s(x)+s(z)+ti(x,z)
或 y~ti(x)+ti(z)+ti(x,z)
等模型而不是 y~s(x)+s(z)+s(x,z)
可以获得更好的统计稳定性,因为前者被设计为不需要进一步的约束。
例子
## The first two examples here iluustrate models that cause
## gam.side to impose constraints, but both are a bad way
## of estimating such models. The 3rd example is the right
## way....
set.seed(7)
require(mgcv)
dat <- gamSim(n=400,scale=2) ## simulate data
## estimate model with redundant smooth interaction (bad idea).
b<-gam(y~s(x0)+s(x1)+s(x0,x1)+s(x2),data=dat)
plot(b,pages=1)
## Simulate data with real interation...
dat <- gamSim(2,n=500,scale=.1)
old.par<-par(mfrow=c(2,2))
## a fully nested tensor product example (bad idea)
b <- gam(y~s(x,bs="cr",k=6)+s(z,bs="cr",k=6)+te(x,z,k=6),
data=dat$data)
plot(b)
old.par<-par(mfrow=c(2,2))
## A fully nested tensor product example, done properly,
## so that gam.side is not needed to ensure identifiability.
## ti terms are designed to produce interaction smooths
## suitable for adding to main effects (we could also have
## used s(x) and s(z) without a problem, but not s(z,x)
## or te(z,x)).
b <- gam(y ~ ti(x,k=6) + ti(z,k=6) + ti(x,z,k=6),
data=dat$data)
plot(b)
par(old.par)
rm(dat)
作者
Simon N. Wood simon.wood@r-project.org
也可以看看
ti
, gam.models
相关用法
- R gam.selection 广义加性模型选择
- R gam.check 拟合 gam 模型的一些诊断
- R gam.reparam 寻找平方根惩罚的稳定正交重新参数化。
- R gam.fit3 使用 GCV、UBRE/AIC 或 RE/ML 导数计算进行 P-IRLS GAM 估计
- R gam.fit5.post.proc gam.fit5 的后处理输出
- R gam.fit GAM P-IRLS 估计与 GCV/UBRE 平滑度估计
- R gam.mh 具有 gam 拟合的简单后验模拟
- R gam.control 设置 GAM 拟合默认值
- R gam.outer 使用“外部”迭代最小化 GAM 的 GCV 或 UBRE 分数
- R gam.vcomp 将 gam 平滑度估计报告为方差分量
- R gam.models 指定广义加性模型
- R gamm 广义加性混合模型
- R gamlss.gH 计算回归系数的对数似然导数
- R gam 具有集成平滑度估计的广义加性模型
- R gam2objective GAM 平滑参数估计的目标函数
- R gamlss.etamu 将 mu 的导数转换为线性预测器的导数
- R gammals 伽玛位置比例模型系列
- R gamSim 模拟 GAM 的示例数据
- R gaulss 高斯位置尺度模型族
- R gfam 分组家庭
- R gumbls Gumbel 位置比例模型族
- R gevlss 广义极值位置比例模型族
- R ginla GAM 集成嵌套拉普拉斯逼近牛顿增强
- R get.var 从列表或 data.frame 中获取命名变量或计算表达式
- R vcov.gam 从 GAM 拟合中提取参数(估计器)协方差矩阵
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Identifiability side conditions for a GAM。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。