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

Re: st: retain indvar in -regress-

From   "Eric A. Booth" <>
Subject   Re: st: retain indvar in -regress-
Date   Sun, 13 Sep 2009 22:24:10 -0500

I'm not aware of anything built into -regress- that does what you describe, but you could use - _rmcoll- to identify (and -macro lists- commands to remove) the collinear variables.

E.g., let's say that I *always* want to retain rep78 & price when they are collinear:

cap est clear
webuse auto

           //generate some collin vars
g collin1  = rep78*2
g collin2 = price*2
local all rep78 price collin1 collin2 turn foreign
regress mpg `all'
est store ALL

         //identify collin vars & remove
_rmcoll `all'
di "`r(varlist)'"
local collinear `r(varlist)'
di "`collinear'"
local new_all: list all & collinear
       // will keep the intersection of two lists //

or, to keep collin1 and collin2:
local new_all: list all - collinear

di "`new_all'"

now the collinear vars are gone & you keep rep78 & price
regress mpg `new_all'
est store NOCOLLIN

combinations of variables in varlist 'new_all' without the collinear vars (collin1 collin2)
tokenize `new_all'
     while "`1'" !="" {
        qui regress mpg `1' `2' `3'
        est store `1'`2'`3'
        macro shift
est table *, b(%5.3f) se(%5.3f)  stats(N r2_a)

Note that the order of the variables in the local macro that you use in -_rmcoll- makes a difference for which one it assigns the "o." prefix & therefore the first of the collinear variables in the list remains in the model ((that is, if the -local- `all' read:

   local all collin1 collin2 rep78 price  turn foreign

instead of:

   local all rep78 price collin1 collin2 turn foreign

then collin1 and collin2 would be retained & rep78 and price discarded.


Eric A. Booth
Public Policy Research Institute
Texas A&M University
Office: +979.845.6754

On Sep 11, 2009, at 10:58 AM, Jeph Herrin wrote:

This must be doable - I am running a large
number of models using -regress-, often with
a large number of independent variables. There
is one variable I would like to always be retained;
however, -regress- is omitting it in some cases
for collinearity. It seems there should be a
way to force regress to lock in a certain term,
and omit something else?


*   For searches and help try:

*   For searches and help try:

© Copyright 1996–2015 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index