Saturday, December 31, 2005

Re: st: suest for intreg

Bart Vanneste <> asks,

> Is it possible to use suest for intreg when some of the intervals > are not bounded (i.e. < -&#8734; , a] or [b, &#8734; > )? > > I am trying to test differences in coefficients across two intreg > models. In both models I have censored data, i.e. only a maximum or > minimum value is specified. > > When using suest I get the following error message: Score variables > for model X contain missing values > > Even though suest seems possible when using intreg, see example: > > > suest requires the predict, score option to give non-missing values, > so I guess that's where it goes wrong. [...]

This is indeed a bug in -predict- after -intreg- and, as Bart surmised, it occurs whenever any of the intervals is unbounded (specified by a missing value). In such cases, -predict- sets the scores to missing. It shouldn't.

This will be fixed in the next ado update, which I expect out during the second week of January.

Working around this is rather tricky. I have provided two little ado files below my signature that should do what's needed. They are not heavily tested, but worked for my test case and I believe they handle all syntax options. Bart will need to copy these to his PERSONAL directory on his ado path (type -adopath- to find this directory).

Bart will then need to use the command -intregscr- in place of -intreg-, and he will need to add the option -sc(<name>)- to each model he wishes to supply to -suest-. <name> should be replaced with a valid Stata name (less than 28 characters) and the name must be different for each estimation that Bart wishes to compare. For example,

. intregscr y1 y2 x1s ... , ... sc(mod1) . est store one

. intregscr y1 y2 x2s ... , ... sc(mod2) . est store two

. suest one two

The supplied ado files are poster children for the term "kludge", so don't look too closely under the hood and switch back to -intreg- quickly after the next ado update.

-- Vince

---------------------------------- BEGIN --- intregscr.ado --- CUT HERE ------- *! version 1.0.0 30dec2005

program intregscr, eclass syntax [varlist] [if] [in] [aw fw iw pw] [, SCores(string) *]

if ("`weight'" != "") local wgt "[`weight'`exp']"

capture drop _`scores'_* intreg `varlist' `if' `in' `wgt', `options' score(_`scores'_*)

ereturn local predict "intregscrprd" ereturn local scorestub "_`scores'_" end ---------------------------------- END --- intregscr.ado --- CUT HERE -------

---------------------------------- BEGIN --- intregscrprd.ado --- CUT HERE ---- *! version 1.0.0 30dec2005

program intregscrprd syntax [anything] [if] [in] [, SCores *]

if "`scores'" == "" { intreg_p `anything' `if' `in', `options' exit }

local stub : subinstr local anything "*" "" gen `stub'1 = `e(scorestub)'1 `if' `in' gen `stub'2 = `e(scorestub)'2 `if' `in' end ---------------------------------- END --- intregscrprd.ado --- CUT HERE ----

* * For searches and help try: * * *


Links to this post:

Create a Link

<< Home

This page is powered by Blogger. Isn't yours?