温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装命令如下:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
⛳ Stata 系列推文:
作者:王维怡 (厦门大学)
邮箱:wangwyda@163.com
目录
在数据分析中有时需要为观测值设置不同的权重,例如以下情形:
weight 表示赋予观测值的不同权重。Stata 提供了 4 种不同的权重设置方式:
fweight
频数权重 (frequency weight),表示某个观测值重复出现的次数。例如,如果某个观测值的 fweight
等于 5,表示实际上有 5 个与该观测值完全相同的观测值;pweight
概率权重/抽样权重 (probability weight),表示根据抽样方法,该样本被抽中的概率的倒数。例如,如果某个观测值的 fweight
等于 5,表示该观测值所属的子总体中每个个体被抽中的概率是 1/5,或该子总体的每一个样本能代表 5 个个体;aweight
分析权重 (analytic weight),通常适用于数据是某个组或某个地理区域的数据均值的情形,aweight
表示计算该均值使用的个体的数量。例如,某 10 万人城市的收入均值为 2500 元,则可以设置该收入均值的 aweight
为 100000;iweight
重要性权重 (importance weight),“重要性” 的含义由用户自行定义,此权重通常为编程所用,本推文里不作介绍。
Stata 中使用 weight 命令的语法结构如下:
command [weightword=exp]
其中,command
是某个支持权重设置的命令,weightword
代入上面的 4 种权重设置方式之一,exp
可以取常数或某个变量。例如,以人口数作为权重:
*加权回归
regress y x1 x2 [pweight=population]
*加权计算描述性统计量
summarize y x1 x2 [aweight=population]
使用倾向得分匹配之后,同一个控制组个体可能被匹配到多个处理组个体上,在对匹配样本回归时需要将次匹配细节反映出来。使用 fweight
表示控制组个体被用到的次数。例如,研究是否四大审计 (BIG4) 对盈余管理 (ABSACC) 的影响。先使用 psmatch2
为四大审计的公司寻找非四大审计的匹配公司。psmatch2
命令会自动生成 _weight 变量,代表匹配次数。在有放回的匹配下,_weight 等于 n 表示该控制组个体匹配是 n 个处理组个体的匹配对象。
一旦获得了 _weight 变量,就相当于对样本的匹配情况进行了标记。本例中 _weight 最大值是 14 ,即有某家非四大审计的公司成为了 14 家四大审计公司的匹配样本。在后续的回归中,需要将此匹配结果反映出来。
. *调入数据
. lxhuse lianxh_psm_data.dta, clear
. *匹配变量
. global indepvar LNASSET LEV ROA GROWTH BM AGE
. global fixvar i.indcode i.year
. *倾向得分匹配
. psmatch2 BIG4 $indepvar $fixvar, out(ABSACC) n(1) common cal(0.03)
. sum _weight
Variable | Obs Mean Std. dev. Min Max
-------------+---------------------------------------------------------
_weight | 2,323 1.151959 .7029404 1 14
. *全样本回归
. reg ABSACC BIG4 $indepvar $fixvar, cluster(stkcd)
. est store full
. *匹配样本回归
. reg ABSACC BIG4 $indepvar $fixvar [fweight=_weight], cluster(stkcd)
. est store matched
. * 对比两个结果
. local m "full matched"
. esttab `m', mtitle(`m') compress nogap ar2 drop(*.indcode *.year)
------------------------------------
(1) (2)
full matched
------------------------------------
BIG4 -0.00491* -0.00681*
(-2.06) (-2.26)
LNASSET -0.00276*** -0.00290
(-3.69) (-1.84)
LEV 0.0343*** 0.0147
(7.99) (1.09)
ROA -0.0193 0.0663
(-1.07) (1.33)
GROWTH 0.0282*** 0.0156*
(14.24) (2.45)
BM -0.0208*** -0.00860
(-5.72) (-0.86)
AGE 0.00000238 0.000290
(0.02) (0.99)
_cons 0.127*** 0.106***
(8.15) (3.47)
------------------------------------
N 19112 2676
adj. R-sq 0.101 0.120
------------------------------------
t statistics in parentheses
* p<0.05, ** p<0.01, *** p<0.001
匹配样本的回归在 regress
命令后加上 [fweight=_weight]
。从全样本和匹配样本的结果比较可以看出,与全样本回归相比,在匹配样本的样本量减少,仅包含了匹配成功的样本, BIG4 对 ABSACC 的影响从 -0.00491 变为 -0.00681。更多详细介绍,请参考推文「Stata:PSM-倾向得分匹配分析的误区」。
pweight
常在调查数据中使用。例如,俄勒冈州 2004 年调查了居民对生态环境的关心程度 (env_con)。由于调查方法的设计,不同组别有不同的抽样概率,抽样概率的倒数由 finalwt 变量记录。分析受教育年限 (educat) 对环境关心程度的影响。在回归分析中,使用 [pweight = finalwt]
反映抽样概率,使结果更为准确。
. *调入数据
. use "http://www.stata-press.com/data/agis4/ops2004.dta", clear
. *不加权的 OLS 回归
. reg env_con educat inclog male
. est store ols
. *加入抽样权重
. reg env_con educat inclog male [pweight = finalwt]
. est store ols_wgt
. * 对比两个结果
. local m "ols ols_wgt"
. esttab `m', mtitle(`m') compress nogap ar2
------------------------------------
(1) (2)
ols ols_wgt
------------------------------------
educat -0.0187*** -0.0366***
(-4.02) (-4.77)
inclog 0.0327* 0.0553
(2.23) (1.95)
male 0.141*** 0.187***
(5.64) (4.31)
_cons 2.702*** 2.596***
(19.38) (9.29)
------------------------------------
N 3856 3856
adj. R-sq 0.012 0.030
------------------------------------
t statistics in parentheses
* p<0.05, ** p<0.01, *** p<0.001
可以看到,加入抽样权重之后 educat 对 env_con 的影响从 -0.0187 变为 -0.0366。
以 1980 年美国 50 个州人口调查数据为例,研究城镇化率对死亡率 (drate) 的影响。其中城镇化率 (urbanrate) 可以视为各州的均值。用 aweight=pop
在回归中加入各州人口权重。
. *调入数据
. webuse census2, clear
. gen urbanrate = popurban/pop //计算城镇化率
. *城镇化率对死亡率的影响,以各州人口数量为权重
. reg drate urbanrate age [aweight=pop]
Source | SS df MS Number of obs = 50
-------------+---------------------------------- F(2, 47) = 54.38
Model | 3725.29569 2 1862.64784 Prob > F = 0.0000
Residual | 1609.72348 47 34.2494357 R-squared = 0.6983
-------------+---------------------------------- Adj R-squared = 0.6854
Total | 5335.01916 49 108.877942 Root MSE = 5.8523
------------------------------------------------------------------------------
drate | Coefficient Std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
urbanrate | -27.476 6.767 -4.06 0.000 -41.091 -13.862
age | 5.282 0.508 10.39 0.000 4.260 6.304
_cons | -51.486 14.567 -3.53 0.001 -80.791 -22.182
------------------------------------------------------------------------------
还可以计算人口数量加权的年龄均值:
. *以各州人口数量为权重,对年龄中位数进行描述性统计
. summarize age [aweight=pop]
Variable | Obs Weight Mean Std. dev. Min Max
-------------+-----------------------------------------------------------------
age | 50 225907472 30.11523 1.731411 24 35
Note:产生如下推文列表的 Stata 命令为:
lianxh psm 权重, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh