如何计算Stata中单尾测试的p值?

时间:2015-02-02 19:01:24

标签: stata

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

我想使用测试命令来测试STATA中$ \ 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

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

但问题在于这是双尾测试。

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

计算p值后,我决定是否拒绝空值。我确信我会拒绝null,而p值会非常小。只需要帮助找出如何以正确的方式编码它。

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

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

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

1 个答案:

答案 0 :(得分:2)

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)))