* 1. 打开你自己的面板数据
use 面板数据_总.dta, clear
* 2. 生成所有需要的对数变量(关键!先跑这一步)
gen ln_income = ln(income + 1)
gen ln_transfer = ln(transfer + 1)
gen ln_asset = ln(asset + 1)
gen ln_edu = ln(edu_exp + 1)
gen ln_med = ln(med_exp + 1)
* 3. 设定三条贫困线
global pl19 = 4600 // 1.9美元/天
global pl32 = 7800 // 3.2美元/天
global pl40 = 4000 // 国家4000元/年
* 4. 收入均值方程(如果没有age/head_edu变量,直接删掉)
reg ln_income ln_transfer ln_asset ln_edu ln_med rural, robust
predict ln_income_hat, xb
* 5. 估计收入波动方差
predict e, residual
gen e2 = e^2
reg e2 ln_transfer ln_asset ln_edu ln_med rural, robust
predict var_hat, xb
gen sd_hat = sqrt(var_hat)
* 6. 计算三种贫困线下的VEP脆弱性
gen vep_19 = normal( (ln(${pl19}) - ln_income_hat) / sd_hat )
gen vep_32 = normal( (ln(${pl32}) - ln_income_hat) / sd_hat )
gen vep_40 = normal( (ln(${pl40}) - ln_income_hat) / sd_hat )
* 7. 生成和文献一样的表格
estimates clear
mean vep_19 vep_32 vep_40
est store m_total
mean vep_19 vep_32 vep_40 if rural == 0
est store m_urban
mean vep_19 vep_32 vep_40 if rural == 1
est store m_rural
esttab m_total m_urban m_rural using VEP结果表.rtf, replace ///
cells("mean(fmt(4)) sd(fmt(4))") ///
mlabels("全部样本" "城镇" "农村") ///
title("不同贫困线标准下家庭贫困脆弱性(VEP)测度结果") ///
varlabels(vep_19 "1.9美元/天" vep_32 "3.2美元/天" vep_40 "4000元/年")
如果不想装esttab,可以用 Stata 自带的outreg2,先安装:
stata
ssc install outreg2, replace然后运行:
stata
mean vep_19 vep_32 vep_40, over(rural) outreg2 using "VEP结果表.xls", replace样本 | 1.9 美元3.2 美元4000 元 | |||||
均值 标准差 均值 标准差 均值 标准差 | ||||||
总样本 | 0.0060 | 0.0602 | 0.0182 | 0.0799 | 0.0044 | 0.0521 |
城镇 | 0.0044 | 0.0295 | 0.0147 | 0.0396 | 0.0032 | 0.0257 |
农村 | 0.0077 | 0.0801 | 0.0223 | 0.1043 | 0.0058 | 0.0670 |
下面是将2018-2020-2022分别测算
第一步:分开 3 年数据
stata
use 面板数据_总.dta, clear * 生成对数变量 gen ln_income = ln(income+1) gen ln_transfer = ln(transfer+1) gen ln_asset = ln(asset+1) gen ln_edu = ln(edu_exp+1) gen ln_med = ln(med_exp+1)第二步:2018 年单独测算 VEP
stata
preserve keep if year == 2018 reg ln_income ln_transfer ln_asset ln_edu ln_med rural, robust predict ln_income_hat18, xb predict e18, residual gen e2_18 = e18^2 reg e2_18 ln_transfer ln_asset ln_edu ln_med rural predict var18, xb gen sd18 = sqrt(var18) gen vep18_19 = normal((ln(4600)-ln_income_hat18)/sd18) gen vep18_32 = normal((ln(7800)-ln_income_hat18)/sd18) gen vep18_40 = normal((ln(4000)-ln_income_hat18)/sd18) save vep2018.dta, replace restore第三步:2020 年单独测算 VEP
stata
preserve keep if year == 2020 reg ln_income ln_transfer ln_asset ln_edu ln_med rural, robust predict ln_income_hat20, xb predict e20, residual gen e2_20 = e20^2 reg e2_20 ln_transfer ln_asset ln_edu ln_med rural predict var20, xb gen sd20 = sqrt(var20) gen vep20_19 = normal((ln(4600)-ln_income_hat20)/sd20) gen vep20_32 = normal((ln(7800)-ln_income_hat20)/sd20) gen vep20_40 = normal((ln(4000)-ln_income_hat20)/sd20) save vep2020.dta, replace restore第四步:2022 年单独测算 VEP
stata
preserve keep if year == 2022 reg ln_income ln_transfer ln_asset ln_edu ln_med rural, robust predict ln_income_hat22, xb predict e22, residual gen e2_22 = e22^2 reg e2_22 ln_transfer ln_asset ln_edu ln_med rural predict var22, xb gen sd22 = sqrt(var22) gen vep22_19 = normal((ln(4600)-ln_income_hat22)/sd22) gen vep22_32 = normal((ln(7800)-ln_income_hat22)/sd22) gen vep22_40 = normal((ln(4000)-ln_income_hat22)/sd22) save vep2022.dta, replace restore第五步:把三年结果合并
stata
use 面板数据_总.dta, clear merge 1:1 fid year using vep2018.dta drop _merge merge 1:1 fid year using vep2020.dta drop _merge merge 1:1 fid year using vep2022.dta drop _merge * 最终生成一个统一的 VEP 变量 gen vep_19 = . replace vep_19 = vep18_19 if year == 2018 replace vep_19 = vep20_19 if year == 2020 replace vep_19 = vep22_19 if year == 2022 gen vep_32 = . replace vep_32 = vep18_32 if year == 2018 replace vep_32 = vep20_32 if year == 2020 replace vep_32 = vep22_32 if year == 2022 gen vep_40 = . replace vep_40 = vep18_40 if year == 2018 replace vep_40 = vep20_40 if year == 2020 replace vep_40 = vep22_40 if year == 2022六、现在你可以看2018→2020→2022 脆弱性趋势
修正后的代码,直接就能看逐年脆弱性趋势:
stata
* 看2018-2022年,4000元标准下的脆弱性变化 mean vep_40, over(year) * 同样可以看其他两个标准 mean vep_19, over(year) mean vep_32, over(year)年份 | 4000 元标准脆弱性 | 1.9 美元标准脆弱性 | 3.2 美元标准脆弱性 |
2018 | 0.0172 | 0.0211 | 0.0453 |
2020 | 0.0012 | 0.0019 | 0.0088 |
2022 | 0.0001 | 0.0002 | 0.0020 |