Stata代码整理

01-数据预处理篇

// 数据排序
sort id year


// 数据合并
merge 1:1 IDind wave using "C:\Users\Lotus\Desktop\edu.dta"
merge m:1 hhid wave using "C:\Users\Lotus\Desktop\income.dta"


// 数据运算
    // 按照id纵向运算
bys id year : egen x = sum(V39)
duplicates drop IDind wave foodcode,force

    // 横向运算(将缺失值当作0处理)
egen grain = rowtotal(grain1 grain2)
egen gra=max(grain)
egen veg=min(veg)

    // 缩尾处理
winsor income ,gen (income_wins) p(0.01)    // 1% 缩尾处理

02-数据描述

// 时空趋势分析
tabstat carbon_emission,by(wave)
tabstat total,by(wave)
tabstat cb if urban==1,by(wave)
tabstat cb if urban==2,by(wave)

03-多元回归篇

// 基础多元回归
reg perc lnavginc age gender edu fmlnum urban i.province i.wave
reg animal lnavginc age gender edu fmlnum urban i.province i.wave
reg plant lnavginc age gender edu fmlnum urban i.province i.wave

// 逐步回归(向前/向后逐步)
    // pr(#):significance level for removal from the model
    // pe(#):significance level for addition to the model
stepwise,pe(.05):reg bwght mage meduc monpre npvis fage feduc cigs drink male mwhte mblck fwhte fblck magesq npvissq

// 中介效应模型
    // iv(independent variable)  mv(mediator variable)  cv(control variable)
sgmediation cb, iv(lnavginc) mv(perc) cv(age gender edu fmlnum urban)
sgmediation cb, iv(lnavginc) mv(animal) cv(age gender edu fmlnum urban)
sgmediation cb, iv(lnavginc) mv(plant) cv(age gender edu fmlnum urban)

// 中介效应逐步回归
    // 总效应
reg cb lnindinc age gender edu fmlnum urban i.province i.wave,cluster(IDind)
est store m1
    // m1
reg total lnindinc age gender edu fmlnum urban i.province i.wave,cluster(IDind)
est store m2
    // m2
reg perc lnindinc age gender edu fmlnum urban i.province i.wave,cluster(IDind)
est store m3
    // iv+m1
reg cb lnindinc total age gender edu fmlnum urban i.province i.wave,cluster(IDind)
est store m4
    // iv+m2
reg cb lnindinc perc age gender edu fmlnum urban i.province i.wave,cluster(IDind)
est store m5
    // iv+m1+m2
reg cb lnindinc total perc age gender edu fmlnum urban i.province i.wave,cluster(IDind)
est store m6
    // 输出
logout, save(test1) word dec(3) replace: esttab m1 m2 m3 m4 m5 m6 , b(%12.3f) se(%12.3f) nogap compress s(N r2 r2_a) star(* 0.1 ** 0.05 *** 0.01)


// 检验中介效应 bootstrap自抽样1000次 输出抽样过程
xi:bootstrap r(ind_eff) r(dir_eff),reps(1000): sgmediation cb,iv(lnindinc) mv(total) cv(age gender edu fmlnum urban i.wave i.province)
estat bootstrap, all


// 分位数回归

sqreg cb lnindinc age gender edu fmlnum urban i.province i.wave,quantile(0.2 0.4 0.6 0.8) reps(100) 
grqreg , cons  ci ols olsci

sqreg cb lnindinc age gender edu fmlnum urban ,quantile(0.2 0.4 0.6 0.8) reps(100) 
grqreg ,  ci ols olsci

    // bootstrap回归
bsqreg cb lnindinc age gender edu fmlnum urban i.province i.wave,quantile(0.2) reps(100)
est store b1
bsqreg cb lnindinc age gender edu fmlnum urban i.province i.wave,quantile(0.4) reps(100)
est store b2
bsqreg cb lnindinc age gender edu fmlnum urban i.province i.wave,quantile(0.6) reps(100)
est store b3
bsqreg cb lnindinc age gender edu fmlnum urban i.province i.wave,quantile(0.8) reps(100)
est store b4
logout,save(bs) word dec(3) replace:esttab b1 b2 b3 b4, b(%12.3f) se(%12.3f) nogap compress s(N r2 r2_a) star(* 0.1 ** 0.05 *** 0.01)
grqreg , cons ci ols olsci

04-模型设定检验

// BP检验:异方差问题
estat hettest mage  monpre npvis cigs magesq npvissq
logout, save(BP检验) word dec(3) replace: estat hettest mage  monpre npvis cigs magesq npvissq

// wald检验:是否存在异方差问题
xtset IDind year
qui: xtreg cb total perc lnindinc age gender edu fmlnum urban,fe 
xttest3

// hausman检验:选择随机效应还是固定效应
xtset IDind wave
xtreg cb total perc lnindinc age gender edu fmlnum urban ,fe    // 固定效应
est store result_fe
xtreg cb total perc  lnindinc age gender edu fmlnum urban ,re    // 随机效应
est store result_re
hausman result_fe result_re

// 时间固定效应:是否需要考虑时间固定效应
xtset IDind wave
xtreg cb total  lnindinc age gender edu fmlnum urban ,fe i(wave)
est store result_fe
xtreg cb total  lnindinc age gender edu fmlnum urban ,re
est store result_re
hausman result_fe result_re

// wooldridge:检验序列相关问题
xtset IDind year
xtserial cb total perc lnindinc age gender edu fmlnum urban province1-province9


// chowtest:分组均值差异检验
chowtest bwght npvis cigs mwhte fage monpre mage magesq , group( male ) het /*所有参数一致*/
chowtest bwght npvis cigs mwhte fage monpre mage magesq male, group( male ) het /*允许截距不同*/

05-熵权法

//cd "C:\Users\Administrator\Desktop"
//import excel using experiencedata.xlsx,first clear x16 x17 x18 x19 x23 x24
///标准差标准化
global positive_var x1 x4 x6 x7 x8 x10 x12 x14 x15 
global negative_var x2 x3 x5 x9 x11 x13

//下面的不变,包括正负项指标
global all_var $positive_var $negative_var
	foreach i in $positive_var {
		qui sum `i'
		gen x_`i'=(`i'-r(min))/(r(max)-r(min))
	}
	foreach i in $negative_var {
		qui sum `i'
		gen x_`i'=(r(max)-`i')/(r(max)-r(min))
	}
	//计算各指标的比重
	foreach i in $all_var {
		egen `i'_sum=sum(x_`i')
		gen y_`i'=x_`i'/`i'_sum
	}
	
	//根据比重计算各分量的信息熵
	gen n=_N

	foreach i in $all_var {
		gen y_lny_`i'=y_`i'*ln(y_`i')
		replace y_lny_`i'=0 if x_`i'==0
	}
	//求和
	foreach i in $all_var {
		egen y_lny_`i'_sum=sum(y_lny_`i')
	}
	//计算各指标的贡献总量。熵值ej
	foreach i in $all_var {
		gen E_`i'= -1/ln(n)*y_lny_`i'_sum
	}
	//计算各指标的权重,差异系数d
	foreach i in $all_var {
		gen d_`i'= 1-E_`i'
	}
	
	egen d_sum = rowtotal(d_*)
	foreach i in $all_var {
		gen W_`i'= d_`i'/d_sum
		
	}
	egen W=rowtotal(W_*)
	//计算综合得分
	foreach i in $all_var {
		gen Score_`i'= x_`i'*W_`i'
	}
	egen Score=rowtotal(Score_*)

06-全要素生产率(SFA)

// 使用SFA计算TFP
// TFP = TC + TEC + SE + AE
// 参考文献:农业保险能否促进粮食全要素生产率增长

// 整体效率测算
frontier lnprod lns lnk lnl lns2 lnk2 lnl2 lnsk lnsl lnkl tlns tlnk tlnl t, dis(e)
predict te,te    // 技术效率
predict u, u     // 残差项

// 保留系数
matrix b1 = e(b)

// 计算技术进步TC
gen TC = _b[t]+_b[tlns]*lns+_b[tlnl]*lnl+_b[tlnk]*lnk

// 计算技术效率进步TEC
sort id 
by id:gen TEC = -(u - u[_n-1])/ u[_n-1]

// 计算规模效率SE
gen eta_s = _b[lns]+_b[lnsk]*lnk+_b[lnsl]*lnl+2*_b[lns2]*lns
gen eta_k = _b[lnk]+_b[lnsk]*lns+_b[lnkl]*lnl+2*_b[lnk2]*lnk
gen eta_l = _b[lnl]+_b[lnsl]*lns+_b[lnkl]*lnk+2*_b[lnl2]*lnl

gen RTS = eta_s + eta_k + eta_l

gen phi_s = eta_s / RTS
gen phi_k = eta_k / RTS
gen phi_l = eta_l / RTS

sort id 
by id: gen x_s = (size - size[_n-1]) / size[_n-1]
by id: gen x_k = (k - k[_n-1]) / k[_n-1]
by id: gen x_l = (labour - labour[_n-1]) / labour[_n-1]

gen z = phi_s * x_s+ phi_k * x_k+ phi_l * x_l
gen SE = ( RTS - 1) * z

// 计算配置效率AE
gen cost = land+lab+cap
gen cost_s = land / cost
gen cost_k = cap / cost
gen cost_l = lab / cost

sort id
by id:gen AE = (eta_s-cost_s)*x_s + (eta_k-cost_k)*x_k + (eta_l-cost_l)*x_l

gen TFP = TC+TEC+SE+AE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值