Statalist The Stata Listserver


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

RE: st:Dummy varaibles with Oaxaca decomposition


From   "Simo Hansen" <[email protected]>
To   <[email protected]>
Subject   RE: st:Dummy varaibles with Oaxaca decomposition
Date   Sun, 29 Apr 2007 12:52:53 +0300

Dear Ben,
I studied your message and example. It was great help. Thank you very much.
Best regards,
Simo

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Ben Jann
Sent: 26 Nisan 2007 Perşembe 02:31
To: [email protected]
Subject: Re: st:Dummy varaibles with Oaxaca decomposition

Simo, I finally got to look into the Fortin paper. The paper is
interesting but things look more complicated than they really are. I
have several remarks.

1. Do not create the -one- variable. Just use -cnsreg- without the
-nocons- option. It will work fine.

2. -cnsreg- is not really needed. You can estimate your models without
constraints and then apply -devcon- (-ssc descrive devcon-) (also see
the Yun 2003 paper I was citing earlier). The -devcon- approach
produces *exactly* the same results, but is more general then the
approach using constraints.

3. The standard errors for the unexplained part of the decomposition
are generally hard to derive if a pooled model is used. This is why
-oaxaca- does not display the standard errors in this setting.
Luckily, however, in your example you can read the standard error off
the regression output from the pooled model (the unexplained part and
its standard error are equal to the effect and standard error of the
gender dummy in the pooled model in this case).

4. You don't really need constraint 1 (male+femal=0). Simply include a
gender dummy in the pooled model. The -oaxaca- results will be
*exactly* the same. The "advantage" and "disadvantage" components are
each one half of the gender dummy effect (their standard errors are
half the standard error of the gender dummy effect).


Anyhow, here is small example:

. sysuse nlsw88
(NLSW, 1988 extract)

. drop if !inlist(race,1,2)
(26 observations deleted)

. gen byte white = race==1

. gen byte black = race==2

. gen byte nonsmsa = smsa==0

. gen lnw = ln(wage)

. qui reg lnw grade ttl_exp tenure smsa if white

. qui devcon, groups(smsa nonsmsa)

. est sto white

. qui reg lnw grade ttl_exp tenure smsa if black

. qui devcon, groups(smsa nonsmsa)

. est sto black

. qui reg lnw black grade ttl_exp tenure smsa

. qui devcon, groups(smsa nonsmsa, black white)

. est sto pooled2

. estout white black pooled2, cell(b se(par)) style(fixed)

                    white        black      pooled2
                     b/se         b/se         b/se
grade            .0643712     .0804544     .0696486
               (.0051316)   (.0072205)    (.004214)
ttl_exp          .0319889     .0266811     .0302916
               (.0032452)    (.004892)   (.0027194)
tenure           .0136002     .0128803     .0137049
               (.0027101)    (.003906)   (.0022444)
smsa              .106749     .1840221     .1255038
               (.0131051)   (.0215119)   (.0112204)
nonsmsa          -.106749    -.1840221    -.1255038
               (.0131051)   (.0215119)   (.0112204)
black                                     -.0672641
                                         (.0116808)
white                                      .0672641
                                         (.0116808)
_cons            .5375773      .233526     .4134329
               (.0709638)   (.0943398)   (.0569884)
r; t=0.09 1:25:47

. oaxaca white black, ref(pooled2) detail
(high estimates: white; low estimates: black)

                                                 Mean prediction 1 =
1.914267
                                                 Mean prediction 2 =
1.751679
----------------------------------------------------------------------------
--
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf.
Interval]
-------------+--------------------------------------------------------------
--
  difference |   .1625885    .027556     5.90   0.000     .1085797
.2165972
----------------------------------------------------------------------------
--

Linear decomposition
----------------------------------------------------------------------------
--
     pooled2 |      Coef.   Std. Err.      z    P>|z|     [95% Conf.
Interval]
-------------+--------------------------------------------------------------
--
explained    |
       grade |   .0613872   .0095181     6.45   0.000      .042732
.0800424
     ttl_exp |  -.0082454   .0067421    -1.22   0.221    -.0214597
.0049689
      tenure |  -.0093323   .0040515    -2.30   0.021     -.017273
-.0013915
        smsa |  -.0078747   .0027796    -2.83   0.005    -.0133225
-.0024268
     nonsmsa |  -.0078747   .0027796    -2.83   0.005    -.0133225
-.0024268
       Total |   .0280602   .0163397     1.72   0.086    -.0039651
.0600854
-------------+--------------------------------------------------------------
--
unexplained  |
       grade |  -.2048692          .        .       .            .
.
     ttl_exp |   .0672244          .        .       .            .
.
      tenure |   .0047396          .        .       .            .
.
        smsa |  -.0569454          .        .       .            .
.
     nonsmsa |   .0203276          .        .       .            .
.
       _cons |   .3040513          .        .       .            .
.
       Total |   .1345283          .        .       .            .
.
----------------------------------------------------------------------------
--

The "advantage" and "disadvantage" parts are .0672641 (.0116808) and
-.0672641 (.0116808), respectively (standard errors in parentheses).
In total, the unexplained part is .1345283 with a standard error of
2*.0116808 = .0233616.

Hope this helps.
ben


On 4/25/07, Simo Hansen <[email protected]> wrote:
> Dear Ben,
> With your help, I use the following command lines and it worked:
> cnsreg lwage one ed1 ed2 ed3 ed4 ed5 ed6  if female==0,
> noconst c(2);
> estimates store male;
> cnsreg lwage one ed1 ed2 ed3 ed4 ed5 ed6   if female==1,
> noconst c(2);
> estimates store female;
> cnsreg lwage male female one ed1 ed2 ed3 ed4 ed5 ed6 if
inlist(female,0,1),
> noconst c(1-2);
> estimates store pooled;
> oaxaca male female, ref(pooled);
>
> My question is that how I can retrieve the standard errors in this
setting?
> Thanks for your kind help.
> Simo
>
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Ben Jann
> Sent: 19 Nisan 2007 Perşembe 00:06
> To: [email protected]
> Subject: Re: st:Dummy varaibles with Oaxaca decomposition
>
> Use the reference() option instead of weight(omega). The omega method
> is a special case that only works with straight standard OLS, I think.
> That is, do something like
>
> cnsreg lwage ... if female==0 ...
> estimates store male
> cnsreg lwage ... if female==1 ...
> estimates store female
> cnsreg lwage ... if inlist(female,0,1) ...
> estimates store pooled
> oaxaca male female, ref(pooled) detail
>
> However, is your approach with the constraints not equivalent to
> applying the normalization proposed by Yun (2003)?
>
> ben
>
> Yun, M.-S. (2003). A Simple Solution to the Identification Problem in
>         Detailed Wage Decompositions. IZA Discussion Paper No. 836.
>
>
>
> On 4/18/07, Simo Hansen <[email protected]> wrote:
> > Dear All,
> > I am using "oaxaca" program to estimate the decomposition of the gender
> gap.
> > My most important aim is to estimate the contribution of each
educational
> > category to the gender gap. This method also provides a novel solution
to
> > the sensitivity of the results to the choice of the reference education
> > category:
> > constraint def 1 ed1+ed2+ed3+ed4+ed5+ed6=0;
> > generating a variable of ones's and use the noconst option in the
> > regressions;
> > gen one=1;
> > cnsreg lwage one ed1 ed2 ed3 ed4 ed5 ed6 age if female==0,
> > noconst c(1);
> > estimates store male;
> > cnsreg lwage one ed1 ed2 ed3 ed4 ed5 ed6 age if female==1,
> > noconst c(1);
> > estimates store female;
> > oaxaca male female, weight (omega) detail;
> >
> > I need to have some thoughts whether I am at the right track. My concern
> is
> > whether by using omega option my pooled regression is based on the
> following
> > regression:
> > cnsreg lwage one ed1 ed2 ed3 ed4 ed5 ed6 age for all sample
> >
> > Furthermore, I want to impose another restriction on the pooled
regression
> > model that is:
> > gen male=1-female;
> > constraint def 2 male+female=0;
> > cnsreg lwage one female male ed1 ed2 ed3 ed4 ed5 ed6 age, noconst
c(1-2);
> > How can I use the parameters of the above the pooled regression model as
> > weights when I implement the "oaxaca programs"?
> > Thanks for your kind concern in advance.
> > Best regards,
> > Simo.
> >
> >
> >
> >
> > *
> > *   For searches and help try:
> > *   http://www.stata.com/support/faqs/res/findit.html
> > *   http://www.stata.com/support/statalist/faq
> > *   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



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