smooth.construct.ds.smooth.spec
位于 mgcv
包(package)。 说明
薄板样条平滑器是 Duchon (1977) 中讨论的各向同性样条的一个特例。这个更通用类的子集可以通过 gam
模型公式中的 s(x,z,bs="ds",m=c(1,.5)
等术语来调用。在 Duchon (1977) 的表示法中,m 由 m[1]
给出(默认值 2),而 s 由 m[2]
给出(默认值 0)。
Duchon (1977) 的构造将通常的薄板样条惩罚概括如下。通常的 TPS 惩罚是由函数 w.r.t. 的混合偏 m 阶导数向量的欧几里德范数平方的积分给出的。它的论点。 Duchon 在傅里叶域中重新表达该惩罚,然后通过傅里叶频率的欧几里得范数对积分中的平方范数进行加权,并提高到 2s 次方。 s 是用户选择的常量,取整数值除以 2。如果 d 是平滑参数的数量,则要求 -d/2 < s < d/2。为了获得连续函数,我们进一步要求 m + s > d/2。如果 s=0,则恢复通常的薄板样条。
该构造完全符合 Wood (2003) 中针对薄板样条给出的低阶近似方法,具有类似的最优性属性,因此这里使用这种低阶平滑方法。对于大型数据集,此处采用与tprs
情况中使用的相同的子采样方法来降低计算成本。
这些平滑器允许在惩罚中使用比传统薄板样条更低阶的导数,同时仍然产生连续函数。例如,我们可以设置 m = 1 和 s = d/2 - .5,以便对任何 d 使用一阶导数惩罚(其优点是未惩罚函数的零空间维数仅为 d+1)。
用法
## S3 method for class 'ds.smooth.spec'
smooth.construct(object, data, knots)
## S3 method for class 'duchon.spline'
Predict.matrix(object, data)
参数
object |
平滑的规范对象,通常由术语 |
data |
仅包含该术语所需的数据(包括任何 |
knots |
包含为基础设置提供的任何结的列表 - 与 |
细节
此类的默认基本维度是 k=M+k.def
,其中 M
是零空间维度(未惩罚函数空间的维度),k.def
对于维度 1 为 10,对于维度 2 为 30,对于更高维度为 100。这本质上是任意的,应该进行检查,但与所有惩罚回归平滑器一样,结果在统计上对确切的选择不敏感,只要它不是小到强制过度平滑(平滑器的自由度主要由其平滑参数控制) )。
构造函数通常不直接调用,而是由 gam
在内部使用。要用于基础设置,建议使用 smooth.construct2
。
对于这些类,规范 object
将包含有关如何在其 xt
字段中处理大型数据集的信息。默认情况下,如果唯一预测变量组合的数量超过 2000,则对 2000 ‘knots’ 进行随机子采样,从中生成完整基础的降级特征值近似。默认值可以通过 xt
参数修改为 s
。它作为一个列表提供,其中包含元素 max.knots
和 seed
,其中包含用于代替 2000 的数字,以及要使用的随机数种子(两者都可以缺失)。请注意,随机采样不会影响 R 的 RNG 的状态。
对于这些基础 knots
有两个用途。首先,如前所述,对于大型数据集,tp
基础的计算可能非常耗时。用户可以通过提供一组精简的协变量值来保留该方法的大部分优点,从中获取基础 - 通常使用的协变量值的数量将大大小于数据的数量,并且远大于基础维度,k
。如果唯一协变量值(组合)的数量超过 max.knots
,则自动采用此方法。第二种可能性是避免用于完全查找样条基础的特征分解,而仅使用所选结隐含的基础:如果提供的结数量与基础尺寸 k
匹配,就会发生这种情况。对于给定的基本尺寸,第二个选项速度更快,但结果较差(用户在选择结位置时必须非常小心)。
值
类 "duchon.spline"
的对象。除了 smooth.construct
下记录的平滑类的常见元素之外,该对象还将包含:
shift |
应用于每个协变量的移位记录,以便将其以零为中心,并避免在该项的惩罚零空间基础中可能发生的任何 co-linearity 问题。 |
Xu |
此平滑的唯一协变量组合的矩阵(通过首先删除重复位置来构建基础)。 |
UZ |
将平滑参数映射回完整 Duchon 样条参数的矩阵。 |
null.space.dimension |
根据此项的摆动惩罚,摆动为零的函数空间的维数。 |
例子
require(mgcv)
eg <- gamSim(2,n=200,scale=.05)
attach(eg)
op <- par(mfrow=c(2,2),mar=c(4,4,1,1))
b0 <- gam(y~s(x,z,bs="ds",m=c(2,0),k=50),data=data) ## tps
b <- gam(y~s(x,z,bs="ds",m=c(1,.5),k=50),data=data) ## first deriv penalty
b1 <- gam(y~s(x,z,bs="ds",m=c(2,.5),k=50),data=data) ## modified 2nd deriv
persp(truth$x,truth$z,truth$f,theta=30) ## truth
vis.gam(b0,theta=30)
vis.gam(b,theta=30)
vis.gam(b1,theta=30)
detach(eg)
作者
Simon N. Wood simon.wood@r-project.org
参考
Duchon, J. (1977) Splines minimizing rotation-invariant semi-norms in Solobev spaces. in W. Shemp and K. Zeller (eds) Construction theory of functions of several variables, 85-100, Springer, Berlin.
Wood, S.N. (2003) Thin plate regression splines. J.R.Statist.Soc.B 65(1):95-114
也可以看看
相关用法
- 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.re.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.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大神的英文原创作品 Low rank Duchon 1977 splines。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。