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


R formula.gam GAM公式


R语言 formula.gam 位于 mgcv 包(package)。

说明

gam 公式的说明(请参阅详细信息),以及如何从拟合的 gam 对象中提取它。

用法

## S3 method for class 'gam'
formula(x,...)

参数

x

gam() 生成的 gam 类拟合模型对象(请参阅 gamObject )。

...

在本例中为un-used

细节

gam 将接受一个公式,或者对于某些系列,接受一个公式列表。其他 mgcv 建模函数不接受列表。列表形式提供了一种指定多个线性预测变量的机制,并允许它们共享术语:见下文。

提供给 gam 的公式与提供给 glm 的公式完全相同,只是平滑项 stetit2 可以添加到右侧(并且 .gam 公式不支持)。

平滑项由以下形式的表达式指定:
s(x1,x2,...,k=12,fx=FALSE,bs="tp",by=z,id=1)
其中x1,x2等是平滑函数的协变量,并且k是用于表示平滑项的基的维数。如果k未指定则使用基础特定默认值。请注意,这些默认值本质上是任意的,重要的是要检查它们是否太小而导致过度平滑(太大只会减慢计算速度)。有时,建模上下文会建议合理的值k,但如果不是非正式检查很容易:参见choose.kgam.check.

fx 用于指示该术语是否应该不受惩罚,因此具有由 k 设置的固定数量的自由度(几乎总是 k-1 )。 bs 表示平滑使用的基础:内置选项在 smooth.terms 中说明,并且可以添加用户定义的平滑(请参见 user.defined.smooth )。如果未提供bs,则使用默认的"tp" (tprs) 基础。 by 可用于指定平滑度应乘以的变量。例如gam(y~s(x,by=z)) 将指定模型 ,其中 是平滑函数。 by 选项对于每个因子水平需要同一变量的不同函数的模型以及“变化系数模型”特别有用:请参阅 gam.modelsid 用于给出平滑恒等式:具有相同恒等式的平滑具有相同的基础、惩罚和平滑参数(但系数不同,因此它们是不同的函数)。

指定多个协变量的平滑的另一种替代方法是:
te(x,z,bs=c("tp","tp"),m=c(2,3),k=c(5,10))
这将指定两个协变量的张量积平滑xz由边际 t.p.r.s. 构建5 维和 10 维的基,边际惩罚为 2 和 3 阶。基类型的任何组合都是可能的,协变量的数量也是如此。te提供更多信息。ti术语是一种变体,设计用于当存在主效应(以及任何低阶交互作用)时用作交互项。t2生成张量积平滑,它是平滑样条方差分析模型的自然低阶模拟。

stetit2 项接受所提供平滑参数的 sp 参数:正值被视为要使用的固定值,负值表示应估计参数。如果提供了 sp ,则它会覆盖 gamsp 参数中的任何内容,如果未提供,则默认为全部负数,但不会覆盖 gamsp 参数 .

公式可以涉及嵌套或“overlapping”术语,例如
y~s(x)+s(z)+s(x,z)或者y~s(x,z)+s(z,v)
但嵌套模型确实应该使用来设置ti条款:参见gam.side了解更多详细信息和示例。

gam 公式中的平滑项将接受矩阵参数作为协变量(以及相应的 by 变量),在这种情况下将调用“求和约定”。考虑 s(X,Z,by=L) 的示例,其中 XZL 是 n × m 矩阵。令 F 为 n × m 矩阵,该矩阵是通过评估 XZ 中的值的平滑度而得到的。那么该项对线性预测器的贡献将为rowSums(F*L)(注意逐元素乘法)。此约定允许 GAM 的线性预测器依赖于(离散近似)平滑的任何线性函数:有关更多信息和示例(包括函数线性模型/信号回归),请参阅linear.functional.terms

请注意,gam 允许通过 paraPen 参数对模型公式中的任何项进行惩罚(可能是多重惩罚)。有关详细信息和示例代码,请参阅gam.models

当列表中提供多个公式时,它们可用于为有意义的族指定多个线性预测变量(例如 mvn )。列表中的第一个公式必须包含响应变量,但后面的公式不需要(取决于家庭的要求)。对线性预测变量进行索引,从 1 到 d,其中 d 是线性预测变量的数量,索引按照公式在列表中出现的顺序排列。可以提供额外的公式来指定几个线性预测变量应该共享一些项。为此,提供了一个公式,其中将响应替换为指定线性预测变量索引的数字,该预测变量将分解 r.h.s. 上指定的项。例如,1+3~s(x)+z-1 指定线性预测器 1 和 3 将共享术语 s(x)z(但我们不想要额外的截距,因为这通常无法识别)。请注意,线性预测器可能仅包含共享项:它仍然必须有自己的公式,但 r.h.s.只是 -1 (例如 y ~ -1~ -1 )。有关示例,请参阅multinom

返回模型公式 x$formula 。提供以便 anova 方法打印模型的适当说明。

警告

gam 公式不应引用变量,例如dat[["x"]]

作者

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

也可以看看

gam

相关用法


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