首页 > 解决方案 > 使用 pweight 和置信区间并存储在矩阵中

问题描述

我在调查数据上计算了很多方法,我必须使用比例权重。

不幸的是,weights不允许使用命令ci。我可以使用该mean命令,但我需要存储结果,因此我随后可以将它们放入矩阵中。

我的循环代码如下所示:

local i = 1
foreach var of varlist hinst1 - hinst34 {
  ci varname if `var'==1  
  mat matname[`i',1]=r(mean)
  mat matname[`i',1]=r(lb)  
  mat matname[`i',1]=r(ub)  
  local ++i

}

可以使用aweights,但我需要pweights

标签: statasurvey

解决方案


以 Stata 的nhanes2f玩具数据集为例:

webuse nhanes2f, clear
svyset psuid [pweight=finalwgt], strata(stratid)

svy前缀可以按如下方式使用:

matrix A = J(3,3,.)

local i = 1

foreach var of varlist sex race region {
  svy: mean age if `var'==1 
  matrix res = r(table)
  matrix A[1,`i'] = res[1, 1]
  matrix A[2,`i'] = res[5, 1]
  matrix A[3,`i'] = res[6, 1]  
  local ++i
}

matrix list A

A[3,3]
           c1         c2         c3
r1  41.898222  42.508557  43.133186
r2  41.206209  41.852839  42.034576
r3  42.590235  43.164274  44.231796

推荐阅读