如何计算 Stata 中单尾检验的 p 值?

How do I calculate the p-value of a one-tailed test in Stata?

我有以下模型:ln(MPG_{i}) = \beta _{0} + \beta {1}WEIGHT{i} + \beta {1}FOREIGN{i} + \beta {3}FOREIGN{i} * WEIGHT_{i} + \varepsilon_{i,j}

我想在STATA中用test命令测试$\beta_{3}上的系数是否>0.5$。

我使用了以下代码并得到了这个结果:

测试1.foreign#c.weight = 0.5001

( 1) 1.foreign#c.weight = .5001

   F(  1,    70) = 4.9e+07
        Prob > F =    0.0000

所以我们拒绝了我们的空值,因为 p 值非常小。

但问题是,这是一个双尾测试。

我的目标是获取此左尾检验的 t 检验值,然后将其存储。然后使用 t 检验计算其 p 值。

计算 p 值后,我决定是否拒绝原假设。我确信我会拒绝 null 并且 p 值会非常小。只需要一些帮助来弄清楚如何以正确的方式对其进行编码。

编辑: 我试过使用这些命令:

lincom _b[forweight] - 0.5
display invttail(71, 0.5)

最后一个命令吐出值 0。现在这是左侧 t 检验的 p 值吗?

this FAQ.

中对此进行了介绍

下面是测试系数为0.5的相关代码:

sysuse auto, clear
gen ln_mpg = ln(mpg)
regress ln_mpg i.foreign##c.weight
test _b[1.foreign#c.weight]=.5 
local sign_wgt = sign(1.foreign#c.weight)
display "Ho: coef <= 0.5  p-value = " ttail(r(df_r),`sign_wgt'*sqrt(r(F)))
display "Ho: coef >= 0.5  p-value = " 1-ttail(r(df_r),`sign_wgt'*sqrt(r(F)))