有人知道如何在R中使用Tweedie进行逐步回归吗?

我找到了mgcv软件包,该软件包显然将Tweedie的功率参数视为另一个要估计的参数。这似乎在必须使用tweedie.profile估算glm之外的功效时有所改善,因此使用自动逐步函数进行回归似乎令人鼓舞。但我无法弄清楚该软件包是否还提供了逐步功能。包装手册上有这句话。

我在谈论平滑方面迷路了:


软件包mgcv中没有step.gam。
为了便于全自动选择模型,该软件包采用了两种平滑的修改技术
作为平滑度选择的一部分,可用于使平滑度缩小为零。


多谢您的协助。谢谢。

最佳答案

您的问题并非专门针对“ Tweedie”家庭;这是模型选择中的常规mgcv功能。

mgcv不使用step.gam进行模型选择。我认为您的困惑来自另一个软件包gam,该软件包将使用step.gam顺序添加/删除术语并报告AIC。当您在?step.gam中进入mgcv时,它会将您引向?gam.selection。故意将?step.gam留在那里,以防人们搜索它。但是所有详细信息都在?gam.selection中提供。

无需在step.gam中执行mgcv。模型估计和模型选择集成在mgcv中。对于惩罚式回归/平滑样条,当平滑参数达到无穷大(非常大)时,其二阶导数被惩罚为零,剩下一个简单的线性项。例如,如果我们指定类似的模型:

y ~ s(x1, bs = 'cr') + s(x2, bs = 'cr')


虽然s(x2)是伪造的模型项,并且不应包含在模型中,但是mgcv:::gam/bam会在估算后将s(x2)缩小为x2,从而得到如下模型:

y ~ s(x1) + x2


这意味着,当您使用plot.gam()检查每个模型项的估计平滑函数时,s(x1)是一条曲线,而s(x2)是一条直线。

现在,这并不完全令人满意。为了完整,成功地选择模型,我们还希望将x2删除,即将s(x2)缩小为0,以便从概念上获得模型:

y ~ s(x1)


但这并不难实现。我们可以使用收缩平滑类bs = 'ts'(收缩薄板回归样条,而不是普通的tp)或bs = cs'(收缩立方回归样条,而不是普通的“ cr”),并且mgcv:::gam/bam应该能够将s(x2)缩小为0。其背后的数学原理是mgcv会将线性项(即零空间)的本征值从0修改为0.1,这是一个很小的但为正数,因此会受到惩罚对线性项生效。结果,当您执行plot.gam()时,您将看到s(x2)是一条位于0处的水平线。

bs = 'cs'bs = 'ts'应该放在函数s()中;但是mgcv还允许您在bs = 'cr'中保留bs = 'tp's()不变,而将select = TRUE放在gam()bam()中。 select = TRUE是更一般的处理方法,因为收缩平滑目前仅具有csts类,而select = TRUE适用于所有平滑规范。通过将0的本征值增加到0.1,它们本质上是做同样的事情。

以下示例摘自?gam.selection下的示例。请注意select = TRUE如何将几个项缩小为0,以提供信息丰富的模型选择。

library(mgcv)
set.seed(3);n<-200
dat <- gamSim(1,n=n,scale=.15,dist="poisson") ## simulate data
dat$x4 <- runif(n, 0, 1);dat$x5 <- runif(n, 0, 1) ## spurious
b <- gam(y~s(x0)+s(x1)+s(x2)+s(x3)+s(x4)+s(x5),data=dat,
        family=poisson,select=TRUE,method="REML")
summary(b)
plot.gam(b,pages=1)


r - mgcv:如何使用Tweedie响应模型进行逐步回归?-LMLPHP

请注意,p-values中的summary.gam()也为选择提供了证据:

Approximate significance of smooth terms:
            edf Ref.df  Chi.sq p-value
s(x0) 1.7655119      9   5.264  0.0397 *
s(x1) 1.9271039      9  65.356  <2e-16 ***
s(x2) 6.1351372      9 156.204  <2e-16 ***
s(x3) 0.0002618      9   0.000  0.4088
s(x4) 0.0002766      9   0.000  1.0000
s(x5) 0.1757146      9   0.195  0.2963
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.545   Deviance explained = 51.6%
-REML = 430.78  Scale est. = 1         n = 200

关于r - mgcv:如何使用Tweedie响应模型进行逐步回归?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37351338/

10-12 23:31