if "`type'"=="abse" {
generate `ee' = abs(`e')
local eetype " type: proportional to abs(e)"
}
if "`type'"=="e2" {
generate `ee' = (`e')^2
local eetype " type: proportional to e^2"
}
if "`type'"=="loge2" {
generate `ee' = log((`e')^2 )
local eetype " type: proportional to log(e^2)"
}
if "`type'"=="xb2" {
local eetype " type: proportional to xb^2 "
}
if "`type'"~="xb2" {
quietly regress `ee' `wvars', `noconst'
quietly predict `p1'
}
else {
gen `p1' = `p3'
}
generate _wls_wgt = 1/`p1'^2
label variable _wls_wgt "wls weights"
display
display in green "WLS regression - `eetype'"
display
regress `varlist' `if' `in' [aw = _wls_wgt], `robust' `hc2' `hc3'