stata--异方差处理(3种方法比较)

(无任何处理:y11)

1、取对数y12

2、加r--y13

3、WLS加权最小二乘法y14

1、取对数

gen lny=log(y)                /*生成新变量lny*/

gen lnfdi=log(fdi)           /*生成新变量lnfdi*/

reg lny lnfdi                    /*取对数后的自变量因变量进行回归*/

est sto  yl2

2、robust稳健标准误

reg y fdi,r         

est sto  yl3

3、加权(一般用这个,是前面两个的结合)

【使用估计的方差作为权重】

reg y fdi

predict e,r         /*生成残差residual,e*/

gen ln_e2=log(e*e)

reg ln_e2 fdi

predict ghat,xb        /*前面四步都是为了这一步*/

/*这一步是在预测拟合值,xb可以删掉*/

gen se=exp(ghat)    /*去对数,即得到权重*/

reg y fdi[aw=1/se]   /*权重为aw*/

est sto  yl4

最终合并的结果:

(1)

(2)

(3)

(4)

y

lny

y

y

fdi

0.0188***

0.0188**

0.0383***

(0.0056)

(0.0079)

(0.0088)

lnfdi

0.2097***

(0.0422)

_cons

8.7e+03***

6.9371***

8.7e+03***

6.7e+03***

(1.7e+03)

(0.4628)

(1.1e+03)

(983.5200)

N

30

30

30

30

adj. R2

0.263

0.450

0.263

0.383

Standard err

s

* p < 0.1, ** p < 0.05, *** p < 0.01

完整代码:
ssc install whitetst
findit esttat
findit esttab 

/*异方差检验方法一,残差图*/
reg y fdi
rvfplot, yline(0)  
rvpplot fdi , yline(0)  

/*异方差检验方法二,white检验*/
estat imtest, white

/*未处理*/
reg y fdi
est sto  yl1  

/*处理一,取对数*/
gen lny=log(y)    
gen lnfdi=log(fdi)    
reg lny lnfdi
est sto  yl2 

/*处理二,稳健标准误*/
reg y fdi,r        
est sto  yl3 

/*处理三,加权,是前两者的结合*/
reg y fdi
predict e,r
gen ln_e2=log(e*e)
reg ln_e2 fdi
predict ghat,xb
gen se=exp(ghat)
reg y fdi[aw=1/se]     
est sto  yl4 

/*导出结果*/
local d  "using D:\Stata17\结果.rtf"        
local a  "yl1 yl2 yl3 yl4 "                   
esttab `a' `d', b(%6.4f) se(%6.4f) nogap compress  
    star(* 0.1 ** 0.05 *** 0.01)  
    ar2 scalar(N) replace         
 

你可能感兴趣的:(p2p,网络协议,网络)