使用EPCTILE在Stata中使用复杂调查数据查找中值的错误

时间:2016-07-26 15:58:22

标签: stata

我试图计算给定变量的中值(fishmonthly - 每个月给定家庭吃鱼的天数。必须在0到31之间。)我已准备好调查数据使用svyset sitecode [pweight= obsweightstratroadsite], strata(onroad),我尝试使用带有sitecode的epctile计算每个村庄的中位数值(epctile fishmonthly, p(50) over(sitecode) svy)。但是,只要给定村庄的fishmonthly的中间值为0,代码就会在第一阶段以下列方式失败:

(为epctile fishmonthly, p(50) subpop(if sitecode==1) svy提供的示例输出)

             |             Linearized
             |       Mean   Std. Err.     [95% Conf. Interval]
-------------+------------------------------------------------
    __000007 |        -.5          .             .           .
--------------------------------------------------------------
estimates post: matrix has missing values
r(504);

我已检查过我的数据集,变量fishmonthly没有遗漏值。

当代码失败时,'表示'几乎总是以" - 。p"其中p是epctile命令中请求的百分位数。 (当代码没有失败时 - 即当实际中位数不等于0时,据我所知 - 在第一阶段中,'意味着返回为6或7位数的负数,并且第二阶段报告正确的中位数。)

任何人都可以告诉我为什么我会收到此错误以及如何解决此问题?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,现在终于明白了。当数据中的第一个百分位数大于您要求的数字时,它会调用错误。例如。如果您要求p(50),但数据中的最低值的频率为50.1%,则会出现错误。如果你要求p(50.1),你将获得估计。相当讨厌。