使用EPCTILE在Stata中使用复杂测量数据查找中值时出错

使用EPCTILE在Stata中使用复杂测量数据查找中值时出错,stata,Stata,我试图计算一个给定变量的中值(fishmonthly-一个给定家庭每月吃鱼的天数。必须介于0和31之间。)我已经使用svyset sitecode[pweight=obsweettStratRoadSite],Strats(onroad)准备了调查数据,并试图计算每个村庄的中值(sitecode)使用epctile和epctile fishmonthly,p(50)超过(sitecode)svy。但是,任何时候给定村庄的fishmonthly的中值为0,代码在第一阶段以以下方式失败: (示例输出

我试图计算一个给定变量的中值(
fishmonthly
-一个给定家庭每月吃鱼的天数。必须介于0和31之间。)我已经使用svyset sitecode[pweight=obsweettStratRoadSite],Strats(onroad)准备了调查数据,并试图计算每个村庄的中值(
sitecode
)使用epctile和
epctile fishmonthly,p(50)超过(sitecode)svy
。但是,任何时候给定村庄的
fishmonthly
的中值为0,代码在第一阶段以以下方式失败:

(示例输出为
epctile fishmonthly,p(50)子页面(如果sitecode==1)svy

我检查了数据集,变量
fishmonthly
没有缺失值

当代码失败时,“mean”几乎总是返回“-.p”,其中p是epctile命令中请求的百分比。(当代码没有失败时——即,据我所知,当实际中值不等于0时,“平均值”在第一阶段以6或7位负数返回,第二阶段报告正确的中值。)

有谁能告诉我为什么会出现这个错误,以及如何修复它


非常感谢!

我也遇到了同样的问题,现在终于解决了。当数据中的第一个百分位大于您要求的值时,它会调用错误。例如,如果您要求p(50),但数据中的最低值的频率为50.1%,它会给出错误。如果您要求p(50.1),你会得到估价的。真烦人

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