Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Arne Risa Hole <arnehole@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | st: Re: st: BOOTSTRAP: the standard errors of marginal effects of MIXLOGIT |
Date | Sun, 3 Jun 2012 13:09:57 +0100 |
Dear Kayo Your procedure is incorrect as the model needs to be re-estimated for each bootstrap sample. In other words your “marginal_inc” program should include the call to -mixlogit-. Whether this is practical or not depends on how long it takes to estimate your model – you may be in for a long wait! See this thread <http://www.stata.com/statalist/archive/2010-11/msg01025.html> for an example of how -bootstrap- can be used with -mixlogit-. Arne PS Note that you can bootstrap several statistics in one go – you don’t need to run -bootstrap- for each marginal effect. On 3 June 2012 09:01, nagi kayo <kayonagi@hotmail.co.jp> wrote: > Dear Professor Arne Risa Hole and all > > I estimated mixed logit model using the command -mixlogit- and > calculated the marginal effects using the command -mixlpred-. > (Once again, I greatly appreciate that professor Arne Risa Holl > > gave me advice on how to calculate the marginal effects using > > "mixlpred" last february) > > However, now I am having trouble obtaining the standard errors and > p-value of marginal effects using the bootstrap. > > First, please let me explain the data. > My data set is like below. > (Actually, my data set inlude 10,000 id, but here I show you the data only on two id > for simplicity. In addition, the data I used in the estimation include > > the data on many household characteristics such as age, wealth, education level.) > > id alt d d1 d2 d3 d1inc d2inc d3inc d4inc p > 1 1 1 1 0 0 665 0 0 0 0.214 > 1 2 0 0 1 0 0 665 0 0 0.186 > 1 3 0 0 0 1 0 0 665 0 0.381 > 1 4 0 0 0 0 0 0 0 665 0.219 > 2 1 0 1 0 0 779 0 0 0 0.553 > 2 2 1 0 1 0 0 779 0 0 0.301 > 2 3 0 0 0 1 0 0 779 0 0.107 > 2 4 0 0 0 0 0 0 0 779 0.039 > > > > id: households > alt: 1=households are worried about their retirement life > because the pension benefit is NOT enough. > 2=households are worried about their retirement life > for some reasons other than pension. > 3=households are NOT worried about their retirement life > because the pension benefit is enough. > 4=households are NOT worried about their retirement life > for some reasons other than pension. > d: dummy which equals one if households choose "alt" in the same row. > (so id 1 chose alt 1, and id 2 chose alt 2.) > d1-d3: intercepts > d1inc-d4inc: real households income > p: an alternative specific variable > > > > using the above data, i did the estimation as follows: > > > > ********************************************************************** > mixlogit d d1 d2 d3 d1inc d2inc d3inc, group(id) rand(p) > mixlpred prep_base > preserve > quietly replace d1inc=d1inc+1 if alt==1 > quietly replace d2inc=d2inc+1 if alt==2 > quietly replace d3inc=d3inc+1 if alt==3 > quietly replace d4inc=d4inc+1 if alt==4 > mixlpred prep_inc > cap program drop marginal_inc > program marginal_inc, rclass > quietly sum prep_base if alt==1 > local av_prep_base1 = r(mean) > quietly sum prep_inc if alt==1 > local av_prep_inc1 = r(mean) > return scalar marge_inc1 = `av_prep_inc1' - `av_prep_base1' > quietly sum prep_base if alt==2 > local av_prep_base2 = r(mean) > quietly sum prep_inc if alt==2 > local av_prep_inc2 = r(mean) > return scalar marge_inc2 = `av_prep_inc2' - `av_prep_base2' > quietly sum prep_base if alt==3 > local av_prep_base3 = r(mean) > quietly sum prep_inc if alt==3 > local av_prep_inc3 = r(mean) > return scalar marge_inc3 = `av_prep_inc3' - `av_prep_base3' > quietly sum prep_base if alt==4 > local av_prep_base4 = r(mean) > quietly sum prep_inc if alt==4 > local av_prep_inc4 = r(mean) > return scalar marge_inc4 = `av_prep_inc4' - `av_prep_base4' > end > bootstrap r(marge_inc1), reps(1000): marginal_inc > bootstrap r(marge_inc2), reps(1000): marginal_inc > bootstrap r(marge_inc3), reps(1000): marginal_inc > bootstrap r(marge_inc4), reps(1000): marginal_inc > restore > ************************************************************************ > > > The results of bootstrap is as follows: > > Standard errors P-value > marge_inc1 -0.0011 4.44e-06 0.000 > marge_inc2 -0.0008 2.70e-06 0.000 > marge_inc3 0.0013 5.41e-06 0.000 > marge_inc4 0.0007 3.36e-06 0.000 > ************************************************************************ > > > Apparently, there is no problem in the above results. > However, all the standard errors of marginal effects of ANY explanatory variable > (e.g. age, education level, risk aversion) are very small, > and all p-values of marginal effects of ANY explanatory variables are 0.000. > I am wondering if my program has something wrong. > > Could anyone give me any comments? > I greatly appreciate it. > > with best wishes, > KAYO > > * > * 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/