2

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

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

我在谈论平滑时迷失了方向:

包 mgcv 中没有 step.gam。
为了促进全自动模型选择,该包实现了两种平滑修改技术,可用于将平滑缩小到零作为平滑选择的一部分。

我会很感激你的帮助。谢谢。

4

1 回答 1

7

您的问题并非特定于“Tweedie”系列;这是模型选择中的一般mgcv特征。

mgcvstep.gam用于模型选择。我认为您的困惑来自另一个包gam,它将用于step.gam顺序添加/删除一个术语并报告 AIC。当你进去?step.gam的时候mgcv,它指的是你?gam.selection?step.gam故意留在那里,以防人们搜索它。但所有细节都在?gam.selection.

没有必要step.gammgcv. 模型估计和模型选择集成在mgcv. 对于惩罚回归/平滑样条曲线,当平滑参数趋于无穷大(非常大)时,其二阶导数被惩罚为零,留下一个简单的线性项。例如,如果我们指定一个模型,如:

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

whiles(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处理方法,因为收缩平滑目前只有 classcsts,而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)

收缩

请注意,p-valuesinsummary.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
于 2016-05-20T17:39:03.880 回答