由于错误消息无法计算 sqrt 函数

unable to compute sqrt function due to error message

尝试在 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 函数会出现此错误消息?

要进行单侧检验,需要先进行相应的双侧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