首页 > 解决方案 > 由于错误消息而无法计算 sqrt 函数

问题描述

尝试基于对 Stata 15.0 的简单分位数回归进行单边 Wald 测试

qreg volume if period == 2010 

我想测试我的系数(常数)是否qreg <= 10

基于这篇文章,我写了这段代码:

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功能会出现此错误消息?

标签: statahypothesis-test

解决方案


要执行单面测试,您需要先执行相应的双面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

推荐阅读