Bookmark and Share

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]

st: Re: Programmatically determining if predictors have been dropped from a model


From   "Joseph Coveney" <jcoveney@bigplanet.com>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: Re: Programmatically determining if predictors have been dropped from a model
Date   Fri, 17 Sep 2010 01:53:37 +0900

Barth Riley wrote:

I am running a series of Monte Carlo simulations using logistic regression.
Occasionally, the regression analysis will drop a variable (due to
collinearity, the variable having only one value, or the variable perfectly
predicting the outcome). I would like to know when a variable has been
dropped in order to prevent my do file from crashing (i.e., when I call test
<indep. Var> and the variable doesn't exit in the model). I have tried using
both logistic and logit functions and neither provide information on the
variables left in the model (i.e., via return list), nor does the confirm
function work with variables as they exist in a model. Does anyone have any
suggestions? 

--------------------------------------------------------------------------------

Isn't that kind of information in the coefficient vector (coefficients fixed to
zero, and column equation names containing the letter "o" for "omitted"), and 
other ereturn matrixes, like e(Cns), e(rules) and so on?

Joseph Coveney

. sysuse auto
(1978 Automobile Data)

. generate byte k = 1

. generate int weight1 = weight - 1

. logistic foreign i.k c.(weight weight1), nolog
note: 1.k omitted because of collinearity
note: weight1 omitted because of collinearity

Logistic regression                               Number of obs   =         74
                                                  LR chi2(1)      =      31.96
                                                  Prob > chi2     =     0.0000
Log likelihood = -29.054002                       Pseudo R2       =     0.3548

------------------------------------------------------------------------------
     foreign | Odds Ratio   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
         1.k |  (omitted)
      weight |    .997416   .0006078    -4.25   0.000     .9962254    .9986079
     weight1 |  (omitted)
------------------------------------------------------------------------------

. foreach matrix in b Cns rules {
  2. matrix list e(`matrix')
  3. }

e(b)[1,4]
       foreign:    foreign:    foreign:    foreign:
            1o.                      o.            
             k      weight     weight1       _cons
y1           0  -.00258739           0   6.2825993

e(Cns)[2,5]
     foreign:  foreign:  foreign:  foreign:     _Cns:
          1o.                  o.                    
           k    weight   weight1     _cons        _r
r1         1         0         0         0         0
r2         0         0         1         0         0

e(rules)[2,4]
         c1  c2  c3  c4
    1.k   4   0   0   0
weight1   4   0   0   0


*
*   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/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index