Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down on April 23, and its replacement, **statalist.org** is already up and running.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
Tim Wade <wadetj@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: -predict , reffects- after -xtmelogit- |

Date |
Mon, 20 Dec 2010 16:47:08 -0500 |

Jeph, I think your example does produce the result you expected, and the calculated random effects agree with results from -predict, reffects-. Maybe there was just a typo. This seems to work: clear use http://www.stata-press.com/data/r11/bangladesh xtmelogit c_use || district: predict re_cons, reffects predict ymu, mu predict yxb, xb gen ywre=logit(ymu) gen re_cons2=ywre-yxb assert round(re_cons2, 0.00001)==round(re_cons, 0.00001) Tim On Mon, Dec 20, 2010 at 2:18 PM, Jeph Herrin <stata@spandrel.net> wrote: > Bobby, > > This is very helpful, thanks. I understand shrinkage, but it didn't > click when I read the documentation that the distinction was made here. > > So is there a way to get the mle random effects? I tried > > predict ymu, mu > predict yxb, xb > gen yrwe=logit(ymu) > gen re_cons=ywre-yfix > > but this doesn't agree with either sd(_cons) nor with the result > of -predict, reffects- > > thanks, > Jeph > > > On 12/20/2010 1:09 PM, Roberto G. Gutierrez, StataCorp wrote: >> >> Jeph Herrin<stata@spandrel.net> asks: >> >>> I am using -xtmelogit- to estimate a random effects model, and am >>> wondering >>> about what is being predicted by -predict, reffects-. >> >>> Example: >> >>> clear >>> use http://www.stata-press.com/data/r11/bangladesh >>> xtmelogit c_use || district: >>> predict re_cons, reffects >> >> When you use -predict, reffects- after -xtmelogit-, you obtain estimates >> of >> the modes of the posterior distribution of the random effects given the >> data >> and estimated parameters; see pg. 277 of [XT] xtmelogit postestimation for >> a >> complete discussion. >> >>> Now, I would expect the standard deviation of the random effect reported >>> by >>> the model: >> >>> -------------------------------------------------------- >>> Random-effects Parameters | Estimate Std. Err. >>> -----------------------------+-------------------------- >>> district: Identity | >>> sd(_cons) | .4995265 .0798953 >>> -------------------------------------------------------- >> >>> To be approximately the standard error of the predicted randome effects, >>> at >>> the district level: >> >>> bys district : gen tolist = _n==1 >>> sum re_cons if tolist >> >>> Variable | Obs Mean Std. Dev. Min Max >>> -------------+-------------------------------------------------------- >>> re_cons | 60 .0069783 .3787135 -.9584643 .9257698 >> >>> But it seems very different, 0.4995 vs .37871. I must be missing >>> something >>> obvious, but what? >> >> The phenomenon you are seeing is known as "shrinkage". Predictions based >> on >> the random-effects posterior distribution tend to be closer in magnitude >> to >> zero because they are incorporating the prior information that the random >> effects have mean zero. That is, if you have a relatively small cluster >> size >> the prior information that the random effect should be zero tends to >> dominate. >> The estimate of sd(_cons) is, in contrast, based on maximum likelihood >> where >> all the clusters are considered jointly. Thus, prior information tends to >> not >> dominate as much because all clusters are pooling what they have to say >> about >> the random-effects standard deviation. >> >> Shrinkage dimishes as cluster size gets larger. To see this, try >> >> . clear >> . set seed 1234 >> . set obs 100 // 100 clusters >> . gen u = sqrt(2)*invnorm(uniform()) // random effects >> . gen id = _n >> . expand 1000 // cluster size is 1000 >> . gen e = log(1/runiform() - 1) // logistic errors >> . gen y = (e + u)> 0 // binary response >> . xtmelogit y || id: >> . predict r, reffects >> . bysort id: gen tolist = _n==1 >> . sum r if tolist >> >> The standard deviations match much more closely -- having a cluster size >> of >> 1,000 helps! >> >> --Bobby >> rgutierrez@stata.com >> * >> * For searches and help try: >> * http://www.stata.com/help.cgi?search >> * http://www.stata.com/support/statalist/faq >> * http://www.ats.ucla.edu/stat/stata/ >> > * > * For searches and help try: > * http://www.stata.com/help.cgi?search > * http://www.stata.com/support/statalist/faq > * http://www.ats.ucla.edu/stat/stata/ > * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**Follow-Ups**:**Re: st: -predict , reffects- after -xtmelogit-***From:*Jeph Herrin <stata@spandrel.net>

**References**:**Re: st: -predict , reffects- after -xtmelogit-***From:*rgutierrez@stata.com (Roberto G. Gutierrez, StataCorp)

**Re: st: -predict , reffects- after -xtmelogit-***From:*Jeph Herrin <stata@spandrel.net>

- Prev by Date:
**Re: st: file name problem with stata2mplus** - Next by Date:
**Re: st:-expand- to adjust according to the sampling weight** - Previous by thread:
**Re: st: -predict , reffects- after -xtmelogit-** - Next by thread:
**Re: st: -predict , reffects- after -xtmelogit-** - Index(es):