尝试基于Stata 15.0的简单分位数回归进行单面Wald检验
qreg volume if period == 2010
我要测试我的qreg <= 10
的系数(常数)
基于此post,我编写了以下代码:
local to_test = sign(_b[_cons]-1 )
display "H0: volume <=10 p-value=" ttail(r(df_r),`to_test' * sqrt(r(F)))
我最终收到此错误消息:
H0: volume <=10 p-value=unknown function *sqrt()
r(133);
为什么对于简单的sqrt
函数会出现此错误消息?
答案 0 :(得分:1)
要执行单面测试,您需要首先执行相应的双面 Wald测试。然后,您可以使用结果来计算单面测试的测试统计量和p值。
您的代码不起作用,因为您没有进行Wald测试,因此未定义r(df_r)和r(F)。当您尝试取尚未计算的量的平方根时,Stata会为您带来神秘的错误。还有其他问题,例如在符号计算中使用1而不是10。
我认为在进行给您带来问题的计算之前,分解问题并display
分解所有部分是解决此问题的好方法。
下面是在汽车数据集上显示此示例的示例(代替使用dataex
的示例):
. sysuse auto, clear
(1978 Automobile Data)
. qreg price weight length i.foreign, nolog
Median regression Number of obs = 74
Raw sum of deviations 71102.5 (about 4934)
Min sum of deviations 54411.29 Pseudo R2 = 0.2347
------------------------------------------------------------------------------
price | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
weight | 3.933588 1.328718 2.96 0.004 1.283543 6.583632
length | -41.25191 45.46469 -0.91 0.367 -131.9284 49.42456
|
foreign |
Foreign | 3377.771 885.4198 3.81 0.000 1611.857 5143.685
_cons | 344.6489 5182.394 0.07 0.947 -9991.31 10680.61
------------------------------------------------------------------------------
. local sign_cons = sign(_b[_cons] - 10)
. display "`sign_cons'"
1
. display r(df_r)
.
. display r(F)
.
. test _b[_cons] = 10
( 1) _cons = 10
F( 1, 70) = 0.00
Prob > F = 0.9487
. display r(df_r)
70
. display r(F)
.00416983
. display "Ho: _cons <= 10 p-value = " ttail(r(df_r),`sign_cons'*sqrt(r(F)))
Ho: _cons <= 10 p-value = .47434855