R

您所在的位置:网站首页 gam英文意思 R

R

2024-07-13 14:38| 来源: 网络整理| 查看: 265

gam.models 指定广义加法模型 Description

本页旨在提供有关如何指定 GAM 的更多信息。GAM 是一种 GLM,其中线性预测器部分取决于预测器的平滑函数和(可能是虚拟)预测器的平滑函数的(可能)线性函数之和。

Specifically lety_i表示具有均值的独立随机变量mu_i和指数族分布,或者不适合使用拟似然方法的已知均值方差关系。那么 GAM 的线性预测器具有类似的结构

g(mu_i)=X_i b + f_1(x_1i,x_2i) + f_2(x_3i) + L_i f_3(x_4) + ...

whereg是已知的平滑单调“链接”函数,X_i b是线性预测器的参数部分,x_j是预测变量,f_j是光滑函数并且L_i是某个线性函数f_3。当然,可能有多个线性函数项,也可能没有。

这里的关键思想是,响应对预测变量的依赖性可以表示为参数子模型加上一个或多个预测变量的一些平滑函数(的泛函)之和。因此,该模型相对于严格参数线性或广义线性模型相当灵活,但仍然比完全通用模型具有更多的结构,后者表示响应只是所有协变量的一些平滑函数。

请注意重要的一点。为了使模型可识别,平滑函数通常必须被限制为具有零均值(通常接管协变量值的集合)。如果涉及平滑的项在其跨度中包含常数函数,则需要该约束。 gam 始终应用此类约束,除非存在 by 变量,在这种情况下,将评估是否需要约束(见下文)。

以下部分讨论指定 gam 的模型结构。分配和链接函数的规范是使用 gam 的 family 参数完成的,其工作方式与 glm 相同。因此,本页重点介绍 gam 的模型公式。

具有简单平滑项的模型

考虑示例模型。

g(mu_i) = b_0 + b_1 x_1i + b_2 x_2i + f1(x_3i) + f2(x_4i,x_5i)

其中响应变量y_ihas expectationmu_iandg是一个链接函数。

gam 的公式为 y ~ x1 + x2 + s(x3) + s(x4,x5) 。这将使用平滑的默认基础(每个平滑的薄板回归样条基础),并自动选择两个平滑的有效自由度。平滑基础的维度也被赋予默认值(基础的维度设置基础的最大可能自由度的上限 - 该限制通常比基础维度小一)。 s 和 te 中给出了如何控制平滑的完整细节,并且可以在 choose.k 中找到基本尺寸选择的进一步讨论。目前假设我们希望将第一个平滑的基础更改为维度为 20 的三次回归样条基础,同时将第二项固定为 25 自由度。适当的公式是: y ~ x1 + x2 + s(x3,bs="cr",k=20) + s(x4,x5,k=26,fx=TRUE) 。

上面假设x_4andx_5自然地处于相似的尺度上(例如,它们可能是坐标),因此各向同性平滑是合适的。如果此假设为 false ,则张量积平滑可能会更好(请参阅 te )。 y ~ x1 + x2 + s(x3) + te(x4,x5)将生成一个平滑的张量积x_4andx_5。默认情况下,该平滑的基础维度为 25,并使用三次回归样条边际。改变默认值很容易。例如 y ~ x1 + x2 + s(x3) + te(x4,x5,bs=c("cr","ps"),k=c(6,7))指定张量积应使用 6 阶三次回归样条边际和 7 阶 P 样条边际来创建基本维度为 42 的平滑。

嵌套项/函数方差分析

有时,指定具有主效应+交互结构的平滑模型很有趣,例如

E(y) = f1 (x) + f2(z) + f3(x,z)

or

E(y) = f1(x) + f2(z) + f3(v) + f4(x,z) + f5(z,v) + f6(z,v) + f7(x,z,v)

例如。此类模型应使用模型公式中的 ti 项来建立。例如: y ~ ti(x) + ti(z) + ti(x,z) ,或 y ~ ti(x) + ti(z) + ti(v) + ti(x,z) + ti(x,v) + ti(z,v)+ti(x,z,v) 。ti 项与适当排除的分量主效应产生交互作用。(实际上这里的主效应不需要使用 ti 术语,也可以使用 s 术语。)

gam 允许 te 和 s 平滑嵌套(或“重叠”),并自动生成边条件以使此类模型可识别,但生成的模型比使用 ti 项构建的模型稳定性和可解释性要差得多。

‘by’ variables

by 变量是构建“变系数模型”(地理回归模型)以及让平滑与因子或参数项“交互”的方法。它们也是指定平滑的一般线性函数的关键。

用于指定平滑的 s 和 te 术语接受参数 by ,该参数是与平滑协变量具有相同维度的数值或因子变量。如果 by 变量是数值变量,则其ith元素乘以ith模型矩阵的行对应于相关的平滑项。

影响平滑交互(另请参阅 factor.smooth.interaction )。如果 by 变量是 factor ,则它会为因子的每个级别生成指示向量,除非它是 ordered 因子。在无序情况下,然后为每个因子水平复制平滑项的模型矩阵,并且每个副本的行与其指示变量的相应行相乘。每个因子级别的平滑度惩罚也会重复。简而言之,为每个因子级别生成不同的平滑( s 和 te 的 id 参数可用于强制所有此类平滑具有相同的平滑参数)。 ordered by 变量以相同的方式处理,只是不会为有序因子的第一级生成平滑(请参见下面的 b3 示例)。当相同的平滑在具有不同因子 by 变量的模型中多次出现时,这对于设置可识别模型非常有用。

作为一个例子,考虑模型

E(y_i) = b_0 + f(x_i)z_i

wheref是一个光滑函数,并且z_i是一个数值变量。适当的公式是: y ~ s(x,by=z)- by 参数确保平滑函数乘以协变量 z 。请注意,当使用因子变量时,中心约束将应用于平滑,这通常意味着因子变量也应作为参数项包含在内。

下面的示例代码还说明了因子 by 变量的使用。

by 变量可以作为数值矩阵提供,作为指定一般线性函数项的一部分。

如果 by 变量存在并且是数值(而不是因子),则相应的平滑仅在以下情况下受到可识别性约束:(i) by 变量是常量向量,或者 (ii) 对于矩阵 by 变量 L ,如果 L%*%rep(1,ncol(L)) 是常量或 (iii) 如果用户定义的平滑构造函数显式提供可识别性约束,并且该约束具有属性 "always.apply" 。

与“id”的链接平滑

有时需要坚持不同的平滑项具有相同的平滑度。这可以通过使用 s 或 te 术语的 id 参数来完成。共享 id 的平滑将具有相同的平滑参数。实际上,只有当平滑使用相同的基函数时,这才有意义,并且默认行为是强制发生这种情况:共享 id 的所有平滑都具有与 id 发生的第一个平滑相同的基函数。请注意,如果您希望每个平滑函数具有完全相同的函数,那么最好通过使用“线性函数项”下涵盖的求和约定来实现。

举个例子,假设E(y_i)=mu_iand

g(mu_i) = f1(x_1i) + f2(x_2i,x_3i) + f3(x_4i)

but thatf1andf3应具有相同的平滑参数(并且x_2andx_3是在不同的尺度上)。然后是 gam 公式 y ~ s(x1,id=1) + te(x_2,x3) + s(x4,id=1)就会达到想要的结果。 id 可以是数字或字符串。将 id 赋予具有因子 by 变量的项会导致因子每个级别的平滑具有相同的平滑参数。

gamm 不支持平滑项 id 。

线性泛函项

一般线性函数项在样条文献中有着悠久的历史,包括在惩罚 GLM 环境中(例如参见 Wahba 1990)。这些术语涵盖变化系数模型/地理回归、函数GLM(即具有函数预测变量的GLM)、GLASS模型等,并且允许例如关于聚合协变量值的平滑。

这些项在 mgcv 中使用平滑项的简单“求和约定”来实现:如果平滑的协变量作为矩阵提供,则隐含了矩阵列上评估的平滑度的求和。每个协变量矩阵和任何 by 变量矩阵必须具有相同的维度。例如,考虑术语 s(X,Z,by=L)其中 X 、 Z 和 L 是n × pmatrices. Letf表示指定的薄板回归样条。由此产生的贡献ith线性预测器的元素是

sum_j^p L_ij f(X_ij,Z_ij)

如果未提供 L ,则其所有元素均视为 1。在 R 代码术语中,让 F 表示n × p通过评估 X 和 Z 中的值的平滑度获得矩阵。那么该项对线性预测器的贡献是 rowSums(L*F) (请注意,这里是逐个元素相乘!)。

求和约定适用于 te 术语以及 s 术语。 linear.functional.terms 中提供了更多详细信息和示例。

Random effects

可以使用 s(...,bs="re") 术语(请参阅 smooth.construct.re.smooth.spec )或下面介绍的 gam 的 paraPen 参数将随机效应添加到 gam 模型中。请参阅 gam.vcomp 、 random.effects 和 smooth.construct.re.smooth.spec 了解更多详细信息。另一种方法是使用 gamm 的方法。

惩罚参数项

如果添加平滑类、平滑恒等式、 by 变量和求和约定的能力仍不足以准确实现您所需的惩罚 GLM, gam 还允许您惩罚模型公式中的参数项。这对于允许在公式中包含一个或多个矩阵项以及每个矩阵项的一系列二次罚矩阵非常有用。

假设你已经建立了一个模型矩阵X,并想要惩罚相应的系数,b并有两项处罚b'S1 bandb'S2 b。那么像下面这样的东西是合适的: gam(y ~ X - 1,paraPen=list(X=list(S1,S2)))paraPen 参数应该是一个列表,其中元素的名称与被惩罚的术语相对应。 paraPen 的每个元素本身就是一个列表,具有可选元素 L 、 rank 和 sp :所有其他元素必须是惩罚矩阵。如果存在, rank 是一个向量,给出每个惩罚矩阵的排名(如果不存在,则以数字方式确定)。 L 是一个矩阵,它将基础对数平滑参数映射到实际乘以各个二次罚分的对数平滑参数:如果未提供,则将其视为恒等式。 sp 是(基础)平滑参数值的向量:正值被视为固定值,负值表示应估计平滑参数。若不提供则视为全部阴性。

paraPen 的一个明显应用是合并随机效应,下面提供了一个示例。在这种情况下,提供的惩罚矩阵将是随机效应的(广义)逆协方差矩阵——即精度矩阵。对应于这些惩罚之一的协方差矩阵的最终估计由惩罚矩阵的(广义)逆乘以估计的尺度参数并除以惩罚的估计的平滑参数给出。例如,如果您使用单位矩阵来惩罚某些被视为独立同分布高斯随机效应的系数,则对于此惩罚,它们的估计方差将是估计的尺度参数除以平滑参数的估计。请参阅下面的“铁路”示例。

应谨慎对待惩罚参数项的 P 值。如果您必须拥有它们,请使用 anova.gam 和 summary.gam 中的选项 freq=TRUE ,这往往会为以这种方式实现的随机效应提供合理的结果,但不适用于具有排名低效罚分的项(或具有宽特征谱的罚分)。

Author(s)

西蒙·伍德 [email protected]

References

Wahba (1990) 观测数据 SIAM 样条模型。

Wood SN (2017) 广义加法模型: R 简介(第二版)。查普曼和 Hall/C R C 出版社。

Examples require(mgcv) set.seed(10) ## 模拟 y = f(x2)*x1 + 错误的日期 dat


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3