*! version 1.0.0  06sep2005
* Giovanni S.F. Bruno
program define xtlsdvc_p
	version 8.0
      syntax newvarname  [if] [in], [XB XBU U UE E]



	tempname touse
	mark `touse' `if' `in'

	local stat "`xb'`xbu'`u'`ue'`e'"

	if "`stat'"=="xb" | "`stat'" == "" {
		_predict `typlist' `varlist' if `touse'
	}
	else if "`stat'"=="ue" {
		tempname xb
		qui _predict double `xb' if `touse'
		gen `typlist' `varlist'=`e(depvar)'-`xb'
	}

	// statistics from from the estimation sample

	else if "`stat'"=="xbu" {
		tempname xb res eta
		qui _predict double `xb' if e(sample)
		qui gen double `res'=`e(depvar)'-`xb'
		qui egen double `eta'=mean(`res') if e(sample),by(`e(ivar)')
		gen `typlist' `varlist'=`xb' + `eta' if `touse'
	}

	else if "`stat'"=="u"  {
		tempname xb res eta
		qui _predict double `xb' if e(sample)
		qui gen double `res'=`e(depvar)'-`xb'
		qui egen double `eta'=mean(`res') if e(sample),by(`e(ivar)')
		gen `typlist' `varlist'=`eta' if `touse'
	}
	else if "`stat'"=="e" {
		tempname xb res eta
		qui _predict double `xb' if e(sample)
		qui gen double `res'=`e(depvar)'-`xb'
		qui egen double `eta'=mean(`res') if e(sample),by(`e(ivar)')
		gen `typlist' `varlist'=`res'- `eta' if `touse'

	}
	else {
		di as err "You can only predict one statistic at a time."
		exit 198
	}
end