Thank you very much Austin!!
This is exactly what I was looking for!! Perfect
explanation.
Sincerely,
Vitor
--- Austin Nichols wrote:
> Vitor <[email protected]>:
> As I have pointed out before on this list, e.g.
>
http://www.stata.com/statalist/archive/2007-04/msg00549.html
>
http://www.stata.com/statalist/archive/2006-12/msg00466.html
> -tobit- is inappropriate if the zeros are not
> censored values
> (representing a negative y* that is observed as
> y=0). If the zeros
> are simply a point mass in the distribution of a
> nonnegative dep var,
> then -poisson- or -glm- are better options. In your
> case, the fact
> that many people receive no money from parents does
> not mean that
> their parents would like to take money from them
> (make a negative
> transfer), but are prevented by law from doing so.
> I would use
> -poisson- to estimate the response of ln(y)
> including zeros of y in
> the estimation, and then predict as usual. Why do
> you need a
> prediction conditional on y>0 anyway? Just to
> ensure predictions are
> nonnegative? Bad reason!
>
> Though -poisson- is designed for count variables, it
> works well for
> any model where E(y|x)=exp(xb). See Wooldridge
> (http://www.stata.com/bookstore/cspd.html) p.651 and
> surrounding text:
> "A nice property of the Poisson QMLE is that it
> retains some
> efficiency for certain departures from the Poisson
> assumption."
>
> In any case, the better way to get the predictions
> is to predict over
> the whole estimation sample, but first replace 1)
> AFTER=1, TREAT=1,
> TREAT*AFTER=1, then 2) AFTER=1, TREAT=0,
> TREAT*AFTER=0, etc. to
> generate predictions *for each observation* under
> different
> counterfactuals, then compare the means (the use of
> -poisson- is
> illustrative--any estimation command can be used,
> even -tobit-):
>
> sysuse auto, clear
> replace mpg=max(0,mpg-20)
> g treat=rep78>3 if !mi(rep78)
> la var treat "Fake Treatment Var"
> ren for after
> la var after "Fake After Var"
> g ta=treat*after
> poisson mpg len treat after ta
> predict m if e(sample)
> replace treat =1
> replace after=1
> replace ta=treat*after
> predict m11 if e(sample)
> replace treat =0
> replace ta=treat*after
> predict m01 if e(sample)
> replace after=0
> replace ta=treat*after
> predict m00 if e(sample)
> replace treat =1
> replace ta=treat*after
> predict m10 if e(sample)
> su m01
> local m01=r(mean)
> su m11
> local m11=r(mean)
> di "Effect of treat given after=1 is " `m11'-`m01'
> su m00
> local m00=r(mean)
> su m10
> local m10=r(mean)
> di "DD of treat, after switching 0->1, is "
> `m11'-`m01'-`m10'+`m00'
>
> and so on. Then you could wrap all that in a rclass
> -program- and
> -bootstrap- it for standard errors on the estimated
> treatment effects,
> not that the diff-in-diff will really identify any
> true treatment
> effects.
Alertas do Yahoo! Mail em seu celular. Saiba mais em http://br.mobile.yahoo.com/mailalertas/
*
* 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/