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


R predict.bam 根据拟合的大加法模型进行预测


R语言 predict.bam 位于 mgcv 包(package)。

说明

在大多数情况下,本质上是 predict.gam 的包装器,用于根据 bam 拟合的模型进行预测。可以在并行集群上进行计算。对于使用 discrete=TRUE 的离散方法拟合的模型,则使用离散预测方法。

采用 bam 生成的拟合 bam 对象,并在给定模型协变量的一组新值或用于模型拟合的原始值的情况下生成预测。基于模型系数的后验分布,预测可能伴随有标准误差。该例程可以选择返回矩阵,模型系数必须预先乘以该矩阵,以便在提供的协变量值处产生线性预测变量的值:这对于获得从模型导出的数量的可信区域(例如,平滑),以及 R 之外的查找表预测。

用法

## S3 method for class 'bam'
predict(object,newdata,type="link",se.fit=FALSE,terms=NULL,
        exclude=NULL,block.size=50000,newdata.guaranteed=FALSE,
        na.action=na.pass,cluster=NULL,discrete=TRUE,n.threads=1,gc.level=0,...)

参数

object

bam 生成的拟合 bam 对象。

newdata

包含需要预测的模型协变量值的 DataFrame 或列表。如果未提供,则返回与原始数据相对应的预测。如果提供了newdata,那么它应该包含预测所需的所有变量:如果没有,则会生成警告。

type

当其值为"link"(默认)时,返回线性预测器(可能具有相关的标准误差)。当type="terms" 线性预测器的每个分量单独返回(可能带有标准误差):这包括参数模型分量,后面是每个平滑分量,但不包括任何偏移和任何截距。 type="iterms" 是相同的,只是为平滑分量返回的任何标准误差将包括截距/总体平均值的不确定性。当返回 type="response" 对响应规模的预测时(可能具有近似标准误差)。当 type="lpmatrix" 时,返回一个矩阵,该矩阵在后乘于参数向量时产生线性预测器的值(减去任何偏移)(在这种情况下 se.fit 被忽略)。后一个选项对于获取从模型导出的数量的方差估计最有用:例如积分数量或平滑的导数。线性预测矩阵也可用于在 R 之外实现近似预测(请参见下面的示例代码)。

se.fit

当此值为 TRUE(非默认值)时,将为每个预测返回标准误差估计值。

terms

如果type=="terms"type="iterms" 则仅返回此数组中指定的项(平滑或参数)的结果。否则,该数组中未命名的任何术语都将设置为零。如果NULL则包含所有术语。 "(Intercept)" 是截距项。

exclude

如果 type=="terms"type="iterms" 则不会返回此数组中指定的项(平滑或参数)。否则,该数组中命名的任何术语都将设置为零。如果NULL,则不排除任何术语。为了避免为排除的平滑项提供协变量值,请设置 newdata.guaranteed=TRUE ,但请注意,这会跳过 newdata 的所有检查。

block.size

每次调用底层代码时要处理的最大预测数:越大速度越快,但内存消耗更大。

newdata.guaranteed

设置为 TRUE 以关闭对 newdata 的所有检查,除了因子水平的健全性之外:这可以加快大型预测任务的速度,但 newdata 必须完整,并且不需要预测变量的 NA 值。模型。

na.action

如何处理 newdata 中的 NA 值。使用默认值 na.passnewdata 中包含所需预测变量的 NA 值的任何行都会产生 NA 预测(即使相关术语没有 NA 预测变量)。 na.excludena.omit 会导致删除 newdata 行(如果它们包含所需预测变量的任何 NA 值)。如果 newdata 缺失,则 NA 处理由 object$na.action 确定。

cluster

predict.bam 可以使用 parallel 包中的 parLapply 进行并行计算,前提是它提供了执行此操作的集群(这里的集群可以是单台机器的一些核心)。请参阅 bam 的详细信息和示例代码。

discrete

如果TRUE,则离散预测方法与离散方法拟合的模型一起使用。 FALSE 用于常规预测。查看具体信息。

n.threads

如果使用se.fit=TRUE并使用离散预测,则可以使用并行计算来加速计算。这指定要使用的 htread 数量。

gc.level

如果默认值不够,则从 0 增加垃圾收集级别。

...

其他论点。

细节

predict.gam 产生的标准误差基于拟合 bam 对象中参数 Vp 的贝叶斯后验协方差矩阵。

为了便于使用 termplot 进行绘图,如果 object 拥有属性 "para.only"type=="terms",则仅返回 1 阶参数项(即 termplot 可以处理的参数项)。

请注意,与其他预测函数一样,预测时始终忽略作为参数提供给 bam 的任何偏移量,这与 bam 模型公式中指定的偏移量不同。

请参阅 predict.gam 中的示例,了解如何使用 lpmatrix 获取从模型导出的数量的可信区域。

discrete=TRUE 时,newdata 中的预测数据以与使用 bam 离散拟合方法时相同的方式离散化。然而,离散网格目前与拟合过程中使用的网格并不相同。相反,对预测数据重新进行离散化。这意味着,如果您正在预测相对较小的预测数据集,或者在规则网格上进行预测,那么结果实际上可能与未经离散化获得的结果相同。这种方法的缺点是,如果您使用大数据帧进行预测,然后将其拆分为较小的数据帧再次进行预测,由于离散化误差略有不同,结果可能会略有不同。

如果type=="lpmatrix",则返回一个矩阵,当应用于模型系数向量时,该矩阵将在所提供的协变量值处给出线性预测变量值(减去任何偏移)的向量。否则,如果 se.fitTRUE,则返回 2 项列表,其中项(两个数组)fitse.fit 包含预测和关联的标准误差估计,否则返回预测数组。返回数组的维度取决于 type 是否是 "terms":如果是,则数组是二维的,线性预测器中的每个项都是单独的,否则数组是一维的,包含线性预测器/预测值(或相应的 s.e.s)。按项返回的线性预测器将不包括偏移量或截距。

newdata 可以是 DataFrame 架、列表或 model.frame:如果它是模型框架,则必须提供所有变量。

警告

如果在平滑调用中使用协变量的数据相关变换,则预测可能不正确。请参阅 predict.gam 中的示例。

例子

## for parallel computing see examples for ?bam

## for general useage follow examples in ?predict.gam

作者

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

The design is inspired by the S function of the same name described in Chambers and Hastie (1993) (but is not a clone).

参考

Chambers and Hastie (1993) Statistical Models in S. Chapman & Hall.

Marra, G and S.N. Wood (2012) Coverage Properties of Confidence Intervals for Generalized Additive Model Components. Scandinavian Journal of Statistics.

Wood S.N. (2006b) Generalized Additive Models: An Introduction with R. Chapman and Hall/CRC Press.

也可以看看

bam , predict.gam

相关用法


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