使用抽样权重计算观察次数
Counting number of observations with sampling weights
我在 Stata 中有一个 time-id 调查数据集,其采样权重如下:
ID time var1 var2 weight
1 1997 1 10 400
1 1998 2 1 200
1 1999 4 . 50.3
2 1997 2 . 13.2
2 1998 3 5 150
我想计算所有每年 var1==1
或 var1==2
的人,考虑上面给出的 'weight' 的抽样权重。我知道如何在不考虑重量的情况下计算观察结果,如下所示:
gen var1count = .
foreach i of numlist 1997/1999 {
count if (var1==1 | var1==2) & time==`i'
replace var1count = r(N) if time==`i'
但是,我不确定在计算满足特定条件的观测值数量时如何合并抽样权重 (pweight)。
这有帮助吗?
clear
input ID time var1 var2 weight
1 1997 1 10 400
1 1998 2 1 200
1 1999 4 . 50.3
2 1997 2 . 13.2
2 1998 3 5 150
end
egen wanted = total(weight * inlist(var1, 1, 2)), by(time)
tabdisp time, c(wanted)
----------------------
time | wanted
----------+-----------
1997 | 413.2
1998 | 200
1999 | 0
----------------------
我在 Stata 中有一个 time-id 调查数据集,其采样权重如下:
ID time var1 var2 weight
1 1997 1 10 400
1 1998 2 1 200
1 1999 4 . 50.3
2 1997 2 . 13.2
2 1998 3 5 150
我想计算所有每年 var1==1
或 var1==2
的人,考虑上面给出的 'weight' 的抽样权重。我知道如何在不考虑重量的情况下计算观察结果,如下所示:
gen var1count = .
foreach i of numlist 1997/1999 {
count if (var1==1 | var1==2) & time==`i'
replace var1count = r(N) if time==`i'
但是,我不确定在计算满足特定条件的观测值数量时如何合并抽样权重 (pweight)。
这有帮助吗?
clear
input ID time var1 var2 weight
1 1997 1 10 400
1 1998 2 1 200
1 1999 4 . 50.3
2 1997 2 . 13.2
2 1998 3 5 150
end
egen wanted = total(weight * inlist(var1, 1, 2)), by(time)
tabdisp time, c(wanted)
----------------------
time | wanted
----------+-----------
1997 | 413.2
1998 | 200
1999 | 0
----------------------