稳定器

该软件包的目标是提供灵活的应用方法不同模型的稳定性选择(Meinshausen和Buhlmann,2010)类型和三角剖分多个结果的框架模型(Lima等人,2021)。

安装

您可以从CRAN安装此软件包,如下所示:

安装.包(“稳定器”)

或使用开发版本,如下所示:

开发工具::安装github(“罗伯特·海德/稳定器”)

用法

stabilizer_example是一个50以下变量的观测结果:

图书馆(稳定器)
数据(“稳定器_示例”)

稳定()

试图确定哪些变量是真正的“因果”变量数据集使用选择稳定性方法,使用稳定()功能如下:

stable_enet(&E)<- 稳定(数据=稳定器_示例,
                         结果= “y”)

访问稳定性(给定变量由给定模型选择)弹性网的结果跟随:

stable_enet(&E)$埃内特$稳定性
#>#A tibble:100 x 7
#>可变平均有效ci低ci高bootstrapp稳定性稳定
#><chr><dbl><dbl
#>因果关系2.58 0.207 5.45 0 90*
#>原因2 2.59 0.222 6.49 0 78.5*
#>原因2 2.12 0.0803 5.01 0 78*
#>4垃圾14 2.58 0.0695 7.31 0 71<不适用>
#>5垃圾45 2.54 0.0526 5.76 0 63.5<不适用>
#>6垃圾13 2.55 0.136 6.07 0 60.5<不适用>
#>7垃圾88 1.88 0.0300 4.87 0 58<不适用>
#>8垃圾86 1.59 0.110 4.98 0 57<不适用>
#>9垃圾90 1.98 0.161 5.20 0 56<不适用>
#>10号垃圾65-1.25-3.65-0.0244 0 46.5<NA>
#> # ... 还有90行

这将根据稳定性对变量进行排名,并显示平均值系数、95%置信区间和bootstrap p值。它还可以显示变量是否被视为“稳定”,在本例中为3这4个真正的因果变量被确定为“稳定”,没有错误积极因素。

默认情况下,它在多个数据集的引导重采样(小数据集重采样200次)。然后将每个变量的稳定性计算为bootstrap会重复在模型中选择该变量的位置。

稳定()也会对结果进行多次排列(10默认情况下,对于小型数据集),并对每个数据集执行相同的过程置换数据集(默认情况下每个数据集有20个引导重采样)。

这允许计算置换阈值。变量高于该阈值的非稀释稳定性%被视为“稳定”他们被选中的bootstrap重采样比例高于置换数据集,我们知道它们之间没有关联变量和结果。

置换阈值可用如下:

stable_enet(&E)$埃内特$perm_thresh(永久阈值)
#> [1] 74

三角剖分()

我们相信给定的变量与给定的如果在多个模型中确定,结果可能会增加类型。

为指定多个模型类型(弹性网、mbic和mcp)使用稳定()功能如下:

stable_combi(马厩)<- 稳定(数据=稳定器_示例,
                         结果= “y”,
                         模型= c(c)(“内特”,
                                    “mbic”,
                                    “mcp”))

变量的稳定性适用于所有模型类型之前。

稳定性由存储在stable_combi(马厩)可以使用三角测量如下:

三角化<- 三角测量(stable_combi)
三角化
#>$combi美元
#>$combi$稳定性
#>#A字型:100 x 4
#>可变稳定性bootstrapp稳定
#><chr><dbl><dbl><chr>
#>原因62.3 0.00292*
#>原因2 46.5 0*
#>3原因3 45.3 0*
#>4垃圾13 38 0<不适用>
#>5垃圾14 37.8 0<不适用>
#>6垃圾88 34.5 0<不适用>
#>7垃圾45 29.5 0<不适用>
#>8垃圾90 28.8 0<不适用>
#>9垃圾86 28 0.0204<不适用>
#>10垃圾65 19.8 0<不适用>
#> # ... 还有90行
#>
#>$组合$perm_thresh
#> [1] 43

这表明变量始终被确定为稳定的跨多种模型类型,从而提高我们的信心它们确实与结果相关。

将稳定性选择结果三角化模型类型通常在识别真正的因果变量比单一模型方法(Lima等人,2021)。作为如本例所示,三角剖分方法确定了4个真正的因果变量是“稳定的”,并且很可能与结果相关.

稳定点()

两者都有稳定()三角剖分()输出可以使用绘制stab_plot()如下,带有因果关系和本例中突出显示的垃圾变量:

插入_插槽(稳定器_对象=三角形)

模拟数据()

为了确定最佳统计方法模拟与在研究项目,但结果已知。

该软件包包括simulate_data()函数,其中允许用户如下模拟数据集:

例如,模拟一个5行数据集,其中有5个解释变量,其中2个变量与使用下面的代码将执行8的信号强度。注释与结果真正相关的模拟变量如下标记为“true”,随机生成的变量标记为“垃圾”。

模拟_数据(n行=5,
              ncol公司=5,
              n_真=2,
              振幅=8)
#>结果junk_V1真_V2真_V3 junk_V4 junk_V5
#> 1  0.221365 -1.4714379  0.1265166 -0.2050986 -1.9603030  0.74586529
#> 2 -4.524082  0.8873447 -0.6569296 -0.4972537  1.0603469  1.03974907
#> 3 -3.948917  0.4930688 -0.4016229 -0.7191238 -0.7291698 -0.79151647
#> 4 -2.617451 -0.2217698 -0.6222874 -0.1586967  0.9645390 -0.03753633
#> 5  4.613613  0.1590784 -0.3425437  1.6222826  1.4840578  0.15464136

模拟没有变量的数据集也很有趣与结果相关(并非偶然)。这可以通过以下方式完成设置n_真为零(或默认为零)。

模拟_数据(n行=5,
              ncol公司=5,
              n_真=0)
#>结果垃圾_V1垃圾_V2垃圾_V3垃圾_V4垃圾_V5
#> 1  2.2007843 -0.8401319 -1.52055028 -1.1568187  1.94737237 -0.12843586
#> 2 -0.1496611  0.7128174  0.50553131  0.8950869  0.02989857 -0.51574352
#> 3 -0.9676750  1.2115235  0.88489231  0.6895640 -0.39529438 -0.16517106
#> 4  0.3468111  1.3880437 -0.31587319  1.2727221  0.29985638  0.06233299
#> 5 -0.9533052 -1.0614021  0.09315892 -0.4079483 -0.17326474 -0.98466363

通过使用没有信号的模拟数据集可以探索各种建模方法来确定假阳性变量可以用给定的方法选择。

工具书类

利马,E.,海德,R.,格林,M.,2021年。推理的模型选择高维数据模型:综合与图形多种技术的表示。科学。代表11、412。https://doi.org/10.1038/s41598-020-79317-8

Meinshausen,N.,Buhlmann,P.,2010年。稳定性选择。J.R.统计。Soc.系列。B(统计方法72,417–473。https://doi.org/10.1111/j.1467-9868.2010.00740.x