Setup initial file structure
This commit is contained in:
101
Modules/ado/plus/m/metareg_p.ado
Normal file
101
Modules/ado/plus/m/metareg_p.ado
Normal file
@ -0,0 +1,101 @@
|
||||
*! version 1.21 March 23, 2007 @ 17:05:47
|
||||
*! Roger Harbord
|
||||
/*
|
||||
code based on example in _pred_se.hlp
|
||||
v1.21 fixed stdxbu
|
||||
*/
|
||||
|
||||
program define metareg_p
|
||||
version 7
|
||||
local myopts "STDF U USTAndard XBU STDXBU Hat"
|
||||
_pred_se "`myopts'" `0' /* handles xp and stdp */
|
||||
if `s(done)' {
|
||||
exit
|
||||
}
|
||||
local typ `s(typ)'
|
||||
local varn `s(varn)'
|
||||
local 0 `"`s(rest)'"'
|
||||
syntax [if] [in] [, `myopts' noOFFset]
|
||||
|
||||
/* concatenate switch options together */
|
||||
local type "`stdf'`u'`ustandard'`xbu'`stdxbu'`hat'"
|
||||
|
||||
/* quickly process default case */
|
||||
if "`type'"=="" {
|
||||
di as txt "(option xb assumed; fitted values)"
|
||||
_predict `typ' `varn' `if' `in', xb `offset'
|
||||
exit
|
||||
}
|
||||
|
||||
/* mark sample */
|
||||
marksample touse
|
||||
|
||||
if "`type'"=="u" | "`type'"=="xbu" | "`type'" == "ustandard" {
|
||||
tempvar xb
|
||||
qui _predict double `xb' if `touse', xb `offset'
|
||||
}
|
||||
|
||||
if "`type'" == "stdf" | "`type'" == "stdxbu" | "`type'" == "ustandard" /*
|
||||
*/ | "`type'" == "hat" {
|
||||
tempvar stdp
|
||||
qui _predict double `stdp' if `touse', stdp `offset'
|
||||
}
|
||||
|
||||
if "`type'" == "u" | "`type'" == "xbu" | "`type'" == "stdxbu" /*
|
||||
*/ | "`type'" =="ustandard" | "`type'" =="hat" {
|
||||
tempvar wsvar
|
||||
if "`e(wsvar)'" !="" {
|
||||
qui gen `wsvar' = `e(wsvar)' if `touse'
|
||||
}
|
||||
else {
|
||||
qui gen `wsvar' = `e(wsse)'^2 if `touse'
|
||||
}
|
||||
}
|
||||
|
||||
if "`type'" == "u" | "`type'" == "xbu" | "`type'" == "stdxbu" {
|
||||
tempvar B /* Bayes shrinkage factor */
|
||||
qui gen double `B' = e(tau2) / ( e(tau2) + `wsvar' ) if `touse'
|
||||
}
|
||||
|
||||
|
||||
if "`type'" == "u" {
|
||||
gen `typ' `varn' = `B' * ( `e(depvar)' - `xb' ) if `touse'
|
||||
label var `varn' "Predicted random effects"
|
||||
exit
|
||||
}
|
||||
|
||||
if "`type'" == "xbu" {
|
||||
gen `typ' `varn' = `B' * `e(depvar)' + (1-`B') * `xb' if `touse'
|
||||
label var `varn' "Prediction including random effects"
|
||||
exit
|
||||
}
|
||||
|
||||
if "`type'" == "stdf" {
|
||||
gen `typ' `varn' = sqrt( `stdp'^2 + e(tau2) ) if `touse'
|
||||
label var `varn' "S.E. of the forecast"
|
||||
exit
|
||||
}
|
||||
|
||||
if "`type'" == "stdxbu" {
|
||||
gen `typ' `varn' = sqrt( `B'^2 * ( `wsvar' + e(tau2) ) ///
|
||||
+ (1-`B'^2) * `stdp'^2 ) if `touse'
|
||||
label var `varn' "S.E. of prediction incl. random effects"
|
||||
exit
|
||||
}
|
||||
|
||||
if "`type'" == "ustandard" {
|
||||
gen `typ' `varn' = ( `e(depvar)' - `xb' ) / /*
|
||||
*/ sqrt( `wsvar' + e(tau2) - `stdp'^2 ) if `touse'
|
||||
label var `varn' "Standardized predicted random effects"
|
||||
exit
|
||||
}
|
||||
|
||||
if "`type'" == "hat" {
|
||||
gen `typ' `varn' = `stdp'^2 / ( `wsvar' + e(tau2) ) if `touse'
|
||||
label var `varn' "Leverage"
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
error 198
|
||||
end
|
Reference in New Issue
Block a user