r - 调解 R 包 p 值 : workaround to get more significant digits?

标签 r trace

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

R mediation package : digit behind comma

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

最佳答案

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

  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 不是整数, 你会看到更多的数字:但后面的数字将毫无值(value),除了像 123/456 这样的分数没有很好的小数扩展这一事实之外,它们实际上没有任何意义。

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

关于r - 调解 R 包 p 值 : workaround to get more significant digits?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64829727/

相关文章:

r - tidyr::spread tidyr::pivot_wider 每个键有多个不同的值

linux - 在 Bash 中显示调用堆栈

javascript - 在 javascript 应用程序中跟踪执行

asp.net-mvc - 看不到来 self 的 SignalR 集线器的跟踪输出

c# - Trace.WriteLine 线程安全吗?

R 时间段重叠

Rstudio 全局更改 : show chunk output in console via CLI?

r - 将传播数据添加到 R 中的点图

r - 使用 as.Date 和 as_date 将 `dttm` 格式转换为 `date` 会在 R 中给出不同的结果

c# - 如何使用公共(public)跟踪标识?