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


R smooth.construct.cr.smooth.spec GAM 中的惩罚三次回归样条


R语言 smooth.construct.cr.smooth.spec 位于 mgcv 包(package)。

说明

gam 可以使用单变量惩罚三次回归样条平滑,通过 s(x,bs="cr") 等术语指定。 s(x,bs="cs") 指定惩罚三次回归样条,其惩罚已修改为在足够高的平滑参数下收缩到零(当平滑参数达到无穷大时,普通三次样条趋于直线。)s(x,bs="cc") 指定循环惩罚样条三次回归样条曲线平滑。

使用“Cardinal”样条底座:Wood (2017) 第 5.3.1 和 5.3.2 节提供了完整的详细信息。这些基地的设置成本非常低。对于给定的基本尺寸 k ,它们的性能通常比薄板回归样条稍差,但比 p-splines 好一点。请参阅te 在多个变量的张量积平滑中使用这些基数。

默认 k 为 10。

用法

## S3 method for class 'cr.smooth.spec'
smooth.construct(object, data, knots)
## S3 method for class 'cs.smooth.spec'
smooth.construct(object, data, knots)
## S3 method for class 'cc.smooth.spec'
smooth.construct(object, data, knots)

参数

object

平滑规范对象,通常由术语 s(...,bs="cr",...)s(...,bs="cs",...)s(...,bs="cc",...) 生成

data

仅包含该术语所需的数据(包括任何 by 变量)的列表,其名称对应于 object$term (和 object$by )。 by 变量是最后一个元素。

knots

包含为基础设置提供的任何结的列表 - 与 data 具有相同的顺序和相同的名称。可以是 NULL 。查看具体信息。

细节

构造函数通常不直接调用,而是由 gam 在内部使用。要用于基础设置,建议使用 smooth.construct2

如果未提供,则样条线的结将均匀地放置在该术语所指的整个协变量值中:例如,如果使用 x 的 11 结样条线拟合 101 个数据,则每 10 个处就会有一个结 (已排序)x 值。使用的参数化根据其在节点处的值来表示样条线。相邻结处的值由三次多项式的部分连接,三次多项式的部分被约束为连续直至并包括结处的二阶导数。生成的曲线是通过节点处的值的自然三次样条(给定两个额外条件,指定曲线的二阶导数在两端节点处应为零)。

平滑的收缩版本,eigen-decomposes 摆动惩罚矩阵,并将其 2 个零特征值设置为最小严格正特征值的小倍数。然后将惩罚设置为矩阵,其特征向量与原始惩罚的特征向量相对应,但特征值设置为扰动版本。该惩罚矩阵具有满秩,并且在足够高的平滑参数下将曲线收缩到零。

请注意,除非提供结,否则循环平滑器将在最小和最大协变量值处包。如果仅提供两个结,则将它们作为平滑器的端点(假设所有数据都位于它们之间),并自动生成剩余的结。

循环平滑不受二阶导数在第一个和最后一个节点处为零的条件的影响。

"cr.smooth" "cs.smooth""cyclic.smooth" 的对象。除了 smooth.construct 下记录的平滑类的常见元素之外,该对象还将包含:

xp

给出用于生成基础的结位置。

F

对于类 "cr.smooth""cs.smooth" 对象,t(F) 将节点处的函数值转换为节点处的二阶导数。

BD

"cyclic.smooth" 类对象包括矩阵 BD,它将节点处的函数值转换为节点处的二阶导数。

例子

## cyclic spline example...
  require(mgcv)
  set.seed(6)
  x <- sort(runif(200)*10)
  z <- runif(200)
  f <- sin(x*2*pi/10)+.5
  y <- rpois(exp(f),exp(f)) 

## finished simulating data, now fit model...
  b <- gam(y ~ s(x,bs="cc",k=12) + s(z),family=poisson,
                      knots=list(x=seq(0,10,length=12)))
## or more simply
   b <- gam(y ~ s(x,bs="cc",k=12) + s(z),family=poisson,
                      knots=list(x=c(0,10)))

## plot results...
  par(mfrow=c(2,2))
  plot(x,y);plot(b,select=1,shade=TRUE);lines(x,f-mean(f),col=2)
  plot(b,select=2,shade=TRUE);plot(fitted(b),residuals(b))
  

作者

Simon N. Wood simon.wood@r-project.org

参考

Wood S.N. (2017) Generalized Additive Models: An Introduction with R (2nd edition). Chapman and Hall/CRC Press.

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Penalized Cubic regression splines in GAMs。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。