调解 R 包 p 值:获得更多有效数字的解决方法?

Mediation R package p-values: workaround to get more significant digits?

我是运行多重中介分析,需要更正多重比较。然而,调解包提供的 p 值似乎已经四舍五入了,正如@Roland 在这个问题上的非常有用的回答中所观察到的那样:

有没有人找到解决方法来真正为 pvalues 提取更多有效数字?

这些是用 2 位数字打印的,因为这是所有计算方法。这是一项随机分析,因此 p 值只是 50 个(在参考答案中)满足某些条件的模拟的分数。如果你想要更多的数字,你需要将 运行 和 sims 设置为比 50 大得多的值。在你这样做之后,你可以使用相同的技术更改数字设置post,或者更简单的如下:

  1. 执行这个:

    print.summary.mediate <- 调解:::print.summary.mediate

  2. 使用fix(print.summary.mediate)编辑源码,修改行

    printCoefmat(smat, digits = 3)

到你想要的任何数字位数。我选了6.

然后运行代码:

data(jobs)
b <- lm(job_seek ~ treat + econ_hard + sex + age, data=jobs)
c <- lm(depress2 ~ treat + job_seek + econ_hard + sex + age, data=jobs)
 
contcont <- mediate(b, c, sims=1000, treat="treat", mediator="job_seek")
summary(contcont)

我得到了这个输出:

Causal Mediation Analysis 

Quasi-Bayesian Confidence Intervals

                 Estimate 95% CI Lower 95% CI Upper p-value
ACME           -0.0166933   -0.0404983      0.00735   0.168
ADE            -0.0412011   -0.1278011      0.04465   0.348
Total Effect   -0.0578944   -0.1449898      0.02716   0.196
Prop. Mediated  0.2313315   -1.7557486      1.89099   0.288

Sample Size Used: 899 


Simulations: 1000 

您只能在 p 值上看到 3 位数字,因为这是您通过 1000 次模拟得到的全部结果:n/1000 始终有 3 位数字。如果您选择 sims 不是整数, 你会看到更多的数字:但后面的数字将毫无价值,除了像 123/456 这样的分数没有很好的小数扩展这一事实之外,它们并没有真正表示任何意义。

你的会有所不同,因为它是随机分析。