使用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);