Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Re: st: using subgroup regression coefficients in further regressions
From
Peter Hofmann <[email protected]>
To
[email protected]
Subject
Re: Re: st: using subgroup regression coefficients in further regressions
Date
Sun, 22 Jul 2012 16:42:50 +0200
Thank you for the fast reply, Nick. Your hint improves my first step, however
the original question is still unanswered. Obviously I did not pose the
question clear enough, so I try again:
After the regression I want to use the estimated coefficients (betas) of each
subgroup (control groups) to calculate the y-hat (=expected dependent
variable) of the
treatment observations (each corresponding to its specific subgroup) by:
treatment1:
yhat_1 = beta-hat1 * X1 + beta-hat2 * X2
treatment2:
yhat_2 = beta-hat3 * X3 + beta-hat4 * X4
.....
The calculated y-hats of the treatments can now be compared to the real y's
of the treatments.
Any help is appreciated!
Peter
On Thu, Jul 19, 2012 at 2:00 PM, Nick Cox <[email protected]> wrote:
> That code won't work at all. Apart from some fantasy syntax, the
> second time around the loop the -generate- would fail as the variable
> already exists.
> But as you want residuals, you can get them directly:
> gen res = .
> sum subgroupvar, meanonly
> qui forvalues i = `r(min)'/`r(max)' {
> reg y x1 x2 if subgroupvar==`i'
> predict work, residual
> replace res = work if subgroupvar==`i'
> drop work
> }
> Note, if only as a style point, that putting returned results into
> scalars, and then scalars into locals, is in this case two more steps
> than needed.
On Thu, Jul 19, 2012 at 1:12 PM, Peter Hofmann <[email protected]> wrote:
> Dear all,
>
> Currently I use one regression for each subgroup of my control sample
> and save the subgroup-betas.
> Now I want to use the respective betas for a regression on the
> treatment observations that correspond to the respective subgroup (to
> extract the residuals from these regressions with the treatment
> values).
>
> Currently I use:
> . sum subgroupvar
> . scalar min1=r(min)
> . local j=min1
> . scalar max1=r(max)
> . local k=max1
> . forvalues i=`j'(1)`k' {
> . reg y x1 x2 if subgroupvar==`i'
> . mat bhat = e(b)
> . svmat bhat, names(bhat_`i'_)
> . }
>
> But now I do not know how to proceed:
> I want to use the respective subgroup betas in a regression on the
> treatment observations (treatments are indicated by a dummy).
>
> I supposed it should look similar to:
> . forvalues i=`j'(1)`k' {
> . g yhat = `bhat_*_1' * var1 + `bhat_*_2' * var2 if subgroupvar==`i'
> . }
> But that results in:
> . + invalid name
> . r(198);
>
> I appreciate any help...
> Peter
*
* 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/