【问题标题】:How can I get more digits for a p-value?如何为 p 值获得更多位数?
【发布时间】:2012-08-14 17:36:15
【问题描述】:

有人知道在运行 Tobit 回归时让 Stata 显示多于三位数的 p 值的简单方法吗?

Stata 通常会报告 p 值为 .001.065,但我希望看到更多数字,例如 .0011123.065320

明确地说,我不想(必然)改变数据在回归表中的生成方式。

我只想让 Stata 为我感兴趣的那些 p 值显示更多数字。

【问题讨论】:

  • 真的需要多于 3 位数字吗?我猜大多数人会将 p 值报告为 2 位数字,而 3 位数字的输出就绰绰有余了。你能澄清一下为什么你需要更多的数字吗?
  • 使用大型模型(数百个变量)进行 Bonferroni 校正是原因之一。
  • @whuber 这是一个非常好的观点。
  • @suncoolsu 我怀疑 Gunter 的评论是在不同的背景下发表的,可能是有人试图过度解释 p 值 10^-100 左右之类的东西。事实是,解释和使用适度低的 p 值(10^-4 到 10^-6)是一个重要问题:例如,它一直是美国国家法规和联邦诉讼的主题,所以它不是一些轻率的评论可以驳回。感谢您明确表示您提供的报价至少部分是开玩笑的!
  • @whuber .. 我真诚的道歉,评论完全是在开玩笑。我删除了它,因为它不属于这样的严肃讨论。我实际上不知道这么低的 p 值在美国是个大问题。谢谢你让我知道。我想知道除了获得“有问题”的知识之外,他们从信任这么低的 p 值中获得什么好处。

标签: regression stata


【解决方案1】:

使用tobit 命令帮助文件中的第一个示例:

. sysuse auto, clear
. generate wgt = weight / 1000

. tobit mpg wgt, ll(17)

Tobit regression                                Number of obs     =         74
                                                LR chi2(1)        =      72.85
                                                Prob > chi2       =     0.0000
Log likelihood = -164.25438                     Pseudo R2         =     0.1815

------------------------------------------------------------------------------
         mpg |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
         wgt |   -6.87305   .7002559    -9.82   0.000    -8.268658   -5.477442
       _cons |   41.49856    2.05838    20.16   0.000     37.39621     45.6009
-------------+----------------------------------------------------------------
      /sigma |   3.845701   .3663309                      3.115605    4.575797
------------------------------------------------------------------------------
            18  left-censored observations at mpg <= 17
            56     uncensored observations
             0 right-censored observations

您可以轻松地从r() 中的返回结果中获取任何p 值:

. matrix list r(table)

r(table)[9,3]
             model:      model:      sigma:
               wgt       _cons       _cons
     b  -6.8730504   41.498557   3.8457011
    se   .70025591   2.0583803   .36633085
     t  -9.8150552   20.160782          .b
pvalue   5.610e-15   1.471e-31          .b
    ll  -8.2686584   37.396211   3.1156048
    ul  -5.4774424   45.600903   4.5757975
    df          73          73          73
  crit   1.9929971   1.9929971   1.9929971
 eform           0           0           0

然后进行相应的格式化:

. matrix results = r(table)

. display %18.17f results[4,1]
0.00000000000000561

在 Stata 的命令提示符下键入 help format 以获取更多信息。

【讨论】:

    【解决方案2】:

    经过tobit回归后,可以使用test命令从原假设x1=0得到p值:

    sysuse auto
    tobit weight trunk length headroom, ll(1500)
    test trunk
    

    r(p)中返回的结果

    return list
    

    【讨论】:

      【解决方案3】:

      很多时候,如果您知道 p 值的内部名称,就可以获得最大的精度。我通常在我将认真使用的几乎每个命令之后键入return listereturn list,然后获取可能看起来像e(p)r(p)e(p_chi2) 或任何包含p 值的标量的结果可能是。

      【讨论】:

      • 只要有可能,我也会这样做。但是,p 值并不总是在估计命令之后“落后”(ereturn list)。此处描述了一种从这些命令中获取 p 值的好方法 (stata-journal.com/sjpdf.html?articlenum=st0137),并使用了一些基本的 mata 函数。但是,set pformatset tab 解决方案要方便得多。
      【解决方案4】:

      使用

      跟踪tobit命令

      est tab, p(%12.10g)

      (例如)。即使在漂亮的Stata版本中也应该工作。一点点轻松是写自己的输出过程。

      【讨论】:

      • 好主意。我添加了该选项卡 - 内置命令的缩写(stata通过stata理解) - estimates表格。介绍了2003年的STATA 8.0的释放。 span>
      【解决方案5】:

      Stata 11.1 introduced @987654322@ 命令指定系数表中 p 值的输出格式。 (我不知道 STATA 恐怕因为我认为它在 1980 年代的某个时候已经停止了)。

      顺便说一句,您最好在 Statalist 上而不是在这里问这些完全针对 Stata 的问题。

      【讨论】:

      • 为了避免查找格式的需要 - set pformat %5.4f, perm 会将输出表中的显示值从小数点后 3 位增加到 4 位
      猜你喜欢
      • 2018-09-23
      • 2021-02-13
      • 2020-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      • 1970-01-01
      • 2018-06-24
      相关资源
      最近更新 更多