Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down at the end of May, and its replacement, **statalist.org** is already up and running.

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

From |
Jaime Ruiz-Tagle <jaimeruiztagle@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: Bootstrap not reporting observed coefficient as the mean of expression |

Date |
Tue, 19 Apr 2011 11:46:56 -0400 |

Thanks a lot Nick!!! Perfectly clear. Jaime. On Tue, Apr 19, 2011 at 11:35 AM, Nick Cox <njcoxstata@gmail.com> wrote: > It's trivial by comparison, and not even a problem, but note that > > program define myderivative, rclass > version 11 > tempname derivative2 > quietly regress mpg weight weight2 gear foreign > capture drop derivative2 > gen derivative2 =_b[weight] + 2*weight*_b[weight] > quietly summarize derivative2, meanonly > scalar `derivative2' = r(mean) > return scalar derivative2 = `derivative2' > end > > can be slimmed down. You take a saved result, put it into a scalar, > and then save it as another scalar. But the relay race is not needed. > You can do it directly. > > program define myderivative, rclass > version 11 > quietly regress mpg weight weight2 gear foreign > capture drop derivative2 > gen derivative2 =_b[weight] + 2*weight*_b[weight] > summarize derivative2, meanonly > return scalar derivative2 = r(mean) > end > > -summarize, meanonly- is always done quietly. > > On Tue, Apr 19, 2011 at 4:19 PM, Nick Cox <njcoxstata@gmail.com> wrote: >> The problem I think is that you are expecting something that >> -bootstrap- will not and cannot do. You are supplying an expression >> that defines a variable after -regress-, but each such expression fed >> to -bootstrap- should define a constant. >> >> Consider >> >> . regress mpg weight weight2 gear foreign >> >> Source | SS df MS Number of obs = 74 >> -------------+------------------------------ F( 4, 69) = 39.78 >> Model | 1704.4337 4 426.108425 Prob > F = 0.0000 >> Residual | 739.025759 69 10.7105182 R-squared = 0.6975 >> -------------+------------------------------ Adj R-squared = 0.6800 >> Total | 2443.45946 73 33.4720474 Root MSE = 3.2727 >> >> ------------------------------------------------------------------------------ >> mpg | Coef. Std. Err. t P>|t| [95% Conf. Interval] >> -------------+---------------------------------------------------------------- >> weight | -.016404 .0039597 -4.14 0.000 -.0243033 -.0085047 >> weight2 | 1.65e-06 6.25e-07 2.64 0.010 4.04e-07 2.90e-06 >> gear_ratio | 1.772766 1.48421 1.19 0.236 -1.188151 4.733683 >> foreign | -2.919893 1.214474 -2.40 0.019 -5.342702 -.4970839 >> _cons | 50.31328 8.083446 6.22 0.000 34.18724 66.43931 >> ------------------------------------------------------------------------------ >> >> . di (_b[weight] + 2*weight*_b[weight]), >> -96.143738 >> >> . di (_b[weight] + 2*weight[1]*_b[weight]), >> -96.143738 >> >> After -regress- _b[weight] is defined, otherwise this would not work. >> However, -weight- will in this context always be interpreted as >> -weight[1]-, the value in the first observation, which gives the >> results you found. >> >> Compare >> >> FAQ . . . . . . . . . . . . . . . . . . . . . if command vs. if qualifier >> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J. Wernow >> 6/00 I have an if or while command in my program that >> only seems to evaluate the first observation, >> what's going on? >> http://www.stata.com/support/faqs/lang/ifqualifier.html >> >> for a different but also similar problem. >> >> Nick >> >> On Tue, Apr 19, 2011 at 2:52 PM, Jaime Ruiz-Tagle >> <jaimeruiztagle@gmail.com> wrote: >>> Hi all, >>> >>> I found a problem in bootstrap, which is not reporting the "mean" of >>> an expression as the "observed coefficient". >>> >>> Here comes an example where bootstrap gives the correct "observed >>> coefficient" only when invoked through a user defined program. >>> >>> Hopefully somebody can help me since I'm very puzzled. >>> >>> Thanks, >>> >>> Jaime. >>> >>> >>> // ////////////////////////////////////////// >>> use http://www.stata-press.com/data/r11/auto, clear >>> >>> gen weight2=weight^2 >>> >>> regress mpg weight weight2 gear foreign >>> >>> gen derivative1 = (_b[weight] + 2*weight*_b[weight]) >>> sum derivative1, detail >>> >>> // Using bootstrap with expression: >>> bootstrap derivative = (_b[weight] + 2*weight*_b[weight]), reps(100) >>> seed(1): regress mpg weight weight2 gear foreign >>> >>> // The "observed coefficient" is reported as -96.14374, but the mean >>> is -99.07872 >>> >>> // Now using a user defined program that does the same as expression above >>> >>> capture pr drop myderivative >>> program define myderivative, rclass >>> version 11 >>> tempname derivative2 >>> quietly regress mpg weight weight2 gear foreign >>> capture drop derivative2 >>> gen derivative2 =_b[weight] + 2*weight*_b[weight] >>> quietly summarize derivative2, meanonly >>> scalar `derivative2' = r(mean) >>> return scalar derivative2 = `derivative2' >>> end >>> >>> bootstrap r(derivative2), reps(100) seed(1): myderivative >>> >>> // The "observed coefficient" is now reported as equal to the mean = -99.07872 >>> >> > > * > * 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/ > -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Jaime Ruiz-Tagle V. Profesor Centro de Microdatos, Departamento de Economía, Universidad de Chile Diagonal Paraguay 257, Torre 26, Oficina 1603 A Santiago - CHILE Tel: (56 2) 978 3586 / 978 3421 Fax: (56 2) 634 7342 jaimert@econ.uchile.cl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * 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/

**References**:**st: Bootstrap not reporting observed coefficient as the mean of expression***From:*Jaime Ruiz-Tagle <jaimeruiztagle@gmail.com>

**Re: st: Bootstrap not reporting observed coefficient as the mean of expression***From:*Nick Cox <njcoxstata@gmail.com>

**Re: st: Bootstrap not reporting observed coefficient as the mean of expression***From:*Nick Cox <njcoxstata@gmail.com>

- Prev by Date:
**st: Creating square matrix with obs counts from 2 non unique id variables** - Next by Date:
**Re: st: need graph help** - Previous by thread:
**Re: st: Bootstrap not reporting observed coefficient as the mean of expression** - Next by thread:
**st: need graph help** - Index(es):