我需要修改下面的代码,我在一些 CPS 数据上使用它来捕获保险范围。我需要输出一个包含人口普查区域覆盖百分比的文件(有四个)。它应该看起来像这样:
region n percent
1 xxx xx
2 xxx xx
3 xxx xx
4 xxx xx
如有必要,我可以使用两行来定义每个区域中覆盖和未覆盖的百分比,但我真的只需要覆盖的百分比。
这是我正在使用的代码:
svyset [iw=hinswt], sdrweight(repwt1-repwt160) vce(sdr)
tempname memhold
postfile `memhold' region_rec n prop using Insurance, replace
levelsof region_rec, local(lf)
foreach x of local lf{
svy, subpop(if region_rec==`x' & age>=3 & age<=17): proportion hcovany
scalar forx = `x'
scalar prop = _b[hcovany]
matrix b = e(_N_subp)
matrix c = e(_N)
scalar n = el(c,1,1)
post `memhold' (forx) (n) (prop)
}
postclose `memhold'
use Insurance, clear
list
这是它产生的:
Survey: Proportion estimation Number of obs = 210648
Population size = 291166198
Subpop. no. obs = 10829
Subpop. size = 10965424.5
Replications = 160
_prop_1: hcovany = Not covered
--------------------------------------------------------------
| SDR
| Proportion Std. Err. [95% Conf. Interval]
-------------+------------------------------------------------
hcovany |
_prop_1 | .0693129 .0046163 .0602651 .0783607
Covered | .9306871 .0046163 .9216393 .9397349
--------------------------------------------------------------
[hcovany] not found
r(111);
我不知道如何绕过底部的错误消息并让它保存结果。我认为 SE 和 CV 也是一个理想的功能,但我不确定如何在矩阵框架内处理它。
编辑:附加输出
+----------------------------------+
| region~c n prop se |
|----------------------------------|
| 1 9640 .9360977 2 |
| 2 12515 .9352329 2 |
| 3 14445 .8769684 2 |
| 4 13241 .8846368 2 |
+----------------------------------+