Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

# Re: st: bootstrap weighted mean

 From Joseph Coveney <[email protected]> To [email protected] Subject Re: st: bootstrap weighted mean Date Wed, 2 Oct 2013 16:32:14 +0900

```Shuaizhang Feng wrote:

I was trying to bootstrap standard errors for the mean of two
variables. When I do so for simple means, i use the following ado
file.

program myratio, rclass
summarize `1'
local a1 = r(mean)
summarize `2'
local a2 = r(mean)
return scalar ratio = `a1'/`a2'
end

and then do the following:

.bootstrap r(ratio), reps(100) saving(cratio, replace): myratio u1 u2, detail

and this gives the results as expected.

however, when i wanted to do ratio of weighted means, i modified the

program myratio_w, rclass
summarize `1'[iw=`3']
local a1 = r(mean)
summarize `2'[iw=`3']
local a2 = r(mean)
return scalar ratio = `a1'/`a2'
end

and then use:

bootstrap r(ratio), reps(100) saving(cratio, replace): myratio_w u1 u2
weight, detail

then stata does not work properly and gives me the following message:

invalid syntax
an error occurred when bootstrap executed myratio_w
r(198);

I am wondering if anyone from the list can help me out. the difference

--------------------------------------------------------------------------------

The return code is pretty nonspecific.  You can try a couple of
things.  First, turn on tracing:  -set trace on-.  Then, try running
the called command (-myratio_w-) by itself to see where the code
balks.  The message from -bootstrap- implies that the called program
is the problem, but if you don't see any problem running it alone,
then leave tracing on and run the -bootstrap- command in its entirety.

By the way, what's with the -detail- option?  I don't see that option
defined for either your nonweighted command -myratio- or for the
weighted command -myratio_w-.  Neither should have worked . . .

As an alternative, you can always have importance weights as an option
using Stata's syntax (-help syntax-) and that way have a single more
general command.  You'll need to use the -force- option for
-bootstrap- to use importance weights in the called command, but

Joseph Coveney

. version 13.0

.
. clear *

. set more off

.
. program define myratio, rclass
1.         version 13.0
2.         syntax varlist(min=2 max=2 numeric) [iweight]
3.
.         local weight = cond("`weight'" == "", "", "[`weight'`exp']")
4.
.         gettoken left right : varlist
5.
.         summarize `left' `weight', meanonly
6.         tempname top
7.         scalar define `top' = r(mean)
8.
.         summarize `right' `weight', meanonly
9.         return scalar ratio = `top' / r(mean)
10. end

.
. set seed `=date("2013-10-02", "YMD")'

. sysuse auto, clear
(1978 Automobile Data)

.
. bootstrap ratio = r(ratio), reps(100) nodots nowarn: myratio weight length

Bootstrap results                               Number of obs      =        74
Replications       =       100

command:  myratio weight length
ratio:  r(ratio)

------------------------------------------------------------------------------
|   Observed   Bootstrap                         Normal-based
|      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
ratio |   16.06673    .275616    58.29   0.000     15.52653    16.60693
------------------------------------------------------------------------------

.
. generate double iweight = runiform()

. bootstrap ratio = r(ratio), reps(100) nodots nowarn force: ///
>         myratio weight length [iw=iweight]

Bootstrap results                               Number of obs      =        36
Replications       =       100

command:  myratio weight length [iweight= iweight]
ratio:  r(ratio)

------------------------------------------------------------------------------
|   Observed   Bootstrap                         Normal-based
|      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
ratio |   15.81428   .3546588    44.59   0.000     15.11916    16.50939
------------------------------------------------------------------------------

.
. exit

end of do-file
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/
```