测量中的Stata输出文件

测量中的Stata输出文件,stata,survey,Stata,Survey,我有一些调查数据,我正在使用Stata进行分析。我想按组计算一个变量的平均值,并将这些平均值保存到Stata文件中。我的代码如下所示: svyset [iw=wtsupp], sdrweight(repwtp1-repwtp160) vce(sdr) svy: mean x 我试过了 svy: by grp: mean x 但这并不奏效。我只需简单地说一下,就可以将每个意思保存到一个单独的文件中 svy: mean x if grp==1 但这是低效的。有更好的办法吗 还需要将结果保存到文

我有一些调查数据,我正在使用Stata进行分析。我想按组计算一个变量的平均值,并将这些平均值保存到Stata文件中。我的代码如下所示:

svyset [iw=wtsupp], sdrweight(repwtp1-repwtp160) vce(sdr)
svy: mean x
我试过了

svy: by grp: mean x
但这并不奏效。我只需简单地说一下,就可以将每个意思保存到一个单独的文件中

svy: mean x if grp==1
但这是低效的。有更好的办法吗

还需要将结果保存到文件中,就像可以使用SAS ODS捕获结果一样。我不是在说日志。我需要方法和相关组。我在想

estimates save [path],replace

但我不确定这是否会给我一个Stata文件,或者如果我能通过处理找到如何使用的组。

编辑10/28 此版本包含易读性改进,结果变量和保存的数据集在本地宏中指定。因此,分析员无需触摸foreach块。使用更易于编写和读取的矩阵下标表达式代替
el
矩阵函数:因此
m[1,1]
代替
el(“m”,1,1)


于2008年10月编辑 此版本包含易读性改进,结果变量和保存的数据集在本地宏中指定。因此,分析员无需触摸foreach块。使用更易于编写和读取的矩阵下标表达式代替
el
矩阵函数:因此
m[1,1]
代替
el(“m”,1,1)


这里有一个更简单的方法,可以创建显示的估计结果的数据集:估计平均值、标准误差、置信限、z统计和p值
svy:mean
通过
over()
选项调用,它消除了对
foreach
循环的需要,并计算适合于子种群分析的标准误差。估计结果包含在返回的矩阵
r(表)
中,该矩阵由
svmat
命令转换为Stata数据集。虽然
svmat
维护列名,但它不保留行(组)名,因此有必要
将它们合并到创建的数据集中

set more off

use http://www.stata-press.com/data/r13/ss07ptx, clear
svyset _n [pw= pwgtp], sdrweight(pwgtp*) vce(sdr)

    ************************************************ *
    * Set name of grouping variable in double quotes *
    *  in  the  next line.                           *
    * ************************************************
local gpname  "sex"
tempvar gp
egen `gp' = group(`gpname')

preserve
tempfile t1
bys `gp': keep if _n==1
keep `gp' `gpname'
save `t1'
restore

svy: mean agep   , over(`gp')
matrix a = r(table)'
clear
qui svmat double a, names(col)
gen `gp'=_n

merge 1:1  `gp' using `t1'
keep `gpname' b se z pvalue ll ul
order `gpname'
save results, replace
list

这里有一个更简单的方法,可以创建显示的估计结果的数据集:估计平均值、标准误差、置信限、z统计和p值
svy:mean
通过
over()
选项调用,它消除了对
foreach
循环的需要,并计算适合于子种群分析的标准误差。估计结果包含在返回的矩阵
r(表)
中,该矩阵由
svmat
命令转换为Stata数据集。虽然
svmat
维护列名,但它不保留行(组)名,因此有必要
将它们合并到创建的数据集中

set more off

use http://www.stata-press.com/data/r13/ss07ptx, clear
svyset _n [pw= pwgtp], sdrweight(pwgtp*) vce(sdr)

    ************************************************ *
    * Set name of grouping variable in double quotes *
    *  in  the  next line.                           *
    * ************************************************
local gpname  "sex"
tempvar gp
egen `gp' = group(`gpname')

preserve
tempfile t1
bys `gp': keep if _n==1
keep `gp' `gpname'
save `t1'
restore

svy: mean agep   , over(`gp')
matrix a = r(table)'
clear
qui svmat double a, names(col)
gen `gp'=_n

merge 1:1  `gp' using `t1'
keep `gpname' b se z pvalue ll ul
order `gpname'
save results, replace
list

collapse
允许
pweights
并直接生成新的数据集。对不起,我不知道SAS的咒语是干什么的。但只是在记忆中。我需要它在磁盘上。如果我说save,replace,它可能会被保存。在任何情况下,我都有复制权重,所以我不认为折叠是合适的。如果有办法也能得到简历,那就好了。如果你把你的数据集压缩成一个新的数据集,那么显然你也可以
保存它。您也可以
折叠
标准偏差,从而计算变异系数。你需要(向我)解释一下你所说的复制重量是什么意思。如上所述,
collapse
支持
pweights
。复制权重伴随着要使用
引导法
折刀法
brr
(平衡重复复制)分析的数据集。每个复制都有一个权重变量,不在复制中的观察值为零,原始权重的膨胀版本弥补了零权重。复制权重只影响标准错误,因此Nick的带有概率权重的
折叠
解决方案将用于保存方法。@威廉·莎士比亚:请注意,如果grp==1,则
行将产生错误的标准错误。它应该是
svy,subop(如果grp==1):平均值x
。原因见第页。《Stata 13调查手册》第81条(“子种群估计”)。另外,
estimates store
不会保存到Stata数据集中,因此也不会工作。
collapse
允许
pweights
并直接生成新的数据集。对不起,我不知道SAS的咒语是干什么的。但只是在记忆中。我需要它在磁盘上。如果我说save,replace,它可能会被保存。在任何情况下,我都有复制权重,所以我不认为折叠是合适的。如果有办法也能得到简历,那就好了。如果你把你的数据集压缩成一个新的数据集,那么显然你也可以
保存它。您也可以
折叠
标准偏差,从而计算变异系数。你需要(向我)解释一下你所说的复制重量是什么意思。如上所述,
collapse
支持
pweights
。复制权重伴随着要使用
引导法
折刀法
brr
(平衡重复复制)分析的数据集。每个复制都有一个权重变量,不在复制中的观察值为零,原始权重的膨胀版本弥补了零权重。复制权重只影响标准错误,因此Nick的带有概率权重的
折叠
解决方案将用于保存方法。@威廉·莎士比亚:请注意,如果grp==1,则
行将产生错误的标准错误。它应该是
svy,subop(如果grp==1):平均值x
。原因见第页。《Stata 13调查手册》第81条(“子种群估计”)。而且,
估计存储
不会保存到Stata数据集中,所以这也不起作用。@SteveSamuel