我正在运行多项中介分析,需要针对多重比较进行更正。但是,中介包提供的 p 值似乎已经四舍五入了,正如@Roland 在这个问题上的非常有用的回答中所观察到的那样:
R mediation package : digit behind comma
有没有人找到解决方法来实际为 pvalues 提取更多有效数字?
最佳答案
这些是用 2 位数字打印的,因为这是所有方法计算的。这是一项随机分析,因此 p 值只是 50 个(在引用答案中)满足某些条件的模拟的分数。如果您想要更多位数,则需要将 sims
设置为比 50 大得多的值。之后,您可以使用与该帖子中相同的技术更改位数设置,或更简单地如下:
执行这个:
print.summary.mediate <- 调解:::print.summary.mediate
使用 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
不是整数,
你会看到更多的数字:但后面的数字将毫无值(value),除了像 123/456 这样的分数没有很好的小数扩展这一事实之外,它们实际上没有任何意义。
你的会有所不同,因为它是随机分析。
关于r - 调解 R 包 p 值 : workaround to get more significant digits?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64829727/