Bookmark and Share

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: st: Program syntax for svy bootstrap or bs4rw


From   Stas Kolenikov <[email protected]>
To   [email protected]
Subject   Re: st: Program syntax for svy bootstrap or bs4rw
Date   Tue, 26 Jun 2012 09:27:15 -0500

May be Jeff P can reply and clarify what's missing from this syntax.

On Mon, Jun 25, 2012 at 5:45 PM, Mark McGovern <[email protected]> wrote:
> Thank you Steve and Stas for your suggestions. For now I can work with
> bs4rw, although at some point I think I might need to use some of the
> functionality of svy, so I may have to return to this in the future.
>
> As you pointed out Steve, from the Stata 12 programming manual (p.326):
>
> 1. Command must be eclass and allow iweights and accept the standard
> estimation syntax.
> 2. Command must save the model coefficients and ancillary parameters
> in e(b) and the estimation sample size in e(N), and it must identify
> the estimation subsample in e(sample);
> 3. svy’s vce(bootstrap), vce(brr), and vce(sdr) require that command
> have svyb as a property.
>
> I thought these were satisfied as the original code below does return
> results in e() in the usual way from "regress". For example,
> specifically overwriting e() does not help as in the below.
>
> Regards,
>
> Mark
>
> webuse nmihs_bs, clear
> svyset _n [pweight=finwgt], bsrweight(bsrw1-bsrw5) vce(bootstrap)
> singleunit(missing)
>
> capture program drop test1
> program define test1, eclass properties(svyb)
> syntax [if] [in] [pw iw]
> marksample touse
> tempvar b V
> qui xi:reg age race [`weight'`exp'] if `touse'
> capture drop re1
> predict re1
> qui xi:reg birthwgt re1 [`weight'`exp'] if `touse'
> local nobs = e(N)
> matrix `b' = e(b)
> matrix `V' = e(V)
> ereturn post `b' `V', esample(`touse')
> ereturn local cmd="test1"
> ereturn scalar N = `nobs'
> ereturn display
> end
>
> svy : test1
>
> On Sat, Jun 23, 2012 at 2:07 PM, Stas Kolenikov <[email protected]> wrote:
>> As a short cut, you can try to omit -eclass-, so that your program
>> leaves the last estimates in the memory, treat the weights as [iw],
>> and run -bs4rw _b- to produce the standard errors.
>>
>> On Sat, Jun 23, 2012 at 12:26 PM, Steve Samuels <[email protected]> wrote:
>>> Sorry for the double post.  I had two drafts of the original message and forgotten that I had sent one.
>>>
>>> S.
>>>
>>> The Programming manual entry "Writing programs for use with svy" says that to use a command with a svy prefix it must return e(b), e(N), and e(sample). Even though you use none of these, perhaps their absence is causing the error.
>>>
>>>
>>> Steve
>>> [email protected]
>>>
>>> On Jun 22, 2012, at 8:09 PM, Mark McGovern wrote:
>>>
>>> Thank you very much for the suggestion, I will look again at cmp. The
>>> point of this is to use interviewer effects for selection. There are
>>> some alternative approaches, however they all involve a similar two
>>> step procedure which would require a similar bootstrap for the
>>> standard errors. I have added weights to the program commands, however
>>> I must still be omitting something else. Error: "last estimates not
>>> found" Any further thoughts would be appreciated.
>>>
>>> webuse nmihs_bs
>>> svyset _n [pweight=finwgt], bsrweight(bsrw1-bsrw5) vce(bootstrap)
>>> singleunit(missing)
>>>
>>> program define test1, eclass properties(svyb)
>>> syntax [if] [pw iw] [, NULLOPT]
>>> xi:reg age race [`weight'`exp']
>>> capture drop re1
>>> predict re1
>>> xi:reg birthwgt re1 [`weight'`exp']
>>> ereturn local cmd="test1"
>>> end
>>>
>>> svy : test1
>>>
>>> Regards,
>>>
>>> Mark
>>>
>>> On Fri, Jun 22, 2012 at 3:35 PM, Stas Kolenikov <[email protected]> wrote:
>>>> Your program does not use the weights anywhere. It accepts them, as
>>>> the -svy- requirements specify, but it just absorbs them without
>>>> passing them on to the estimation commands. So it does run the same
>>>> commands on the same data set, even though -svy bootstrap- does the
>>>> best job it can in giving the right weights to you.
>>>>
>>>> In general, I would find it questionable that you make point
>>>> predictions of the random effects and use them in any serious way
>>>> later. The random effects must be integrated over, and you need to
>>>> find a way to do that within your convoluted version of the Heckman
>>>> model. May be you can cast this as a -cmp- model -- check David
>>>> Roodman's work on that.
>>>>
>>>> On Fri, Jun 22, 2012 at 11:59 AM, Mark McGovern <[email protected]> wrote:
>>>>> Dear all,
>>>>>
>>>>> I am attempting to write a simple program for a bootstrap in which
>>>>> predicted values (random effects) are estimated in a first stage and
>>>>> then used in a heckman selection model in the second.
>>>>>
>>>>> This works fine when I use the standard bootstrap command, however I
>>>>> am using survey data and would like to account for this with SVY as
>>>>> discussed on this list previously.
>>>>>
>>>>> I have tried to meet the syntax requirements for SVY as outlined in
>>>>> the programming manual, and have tried various additions but I am
>>>>> having trouble with the program. I noted the discussion on
>>>>> http://www.stata.com/statalist/archive/2011-03/msg01442.html and also
>>>>> tried the bs4rw command. I would appreciate your advice. I am using
>>>>> Stata 12 MP.
>>>>>
>>>>> Here is a simple illustration with the NHIMES data. I find that the
>>>>> same sample is used in each bootstrap.
>>>>>
>>>>> I svyset the data and run the command (with just 5 replications for testing).
>>>>>
>>>>> webuse nmihs_bs
>>>>> svyset _n [pweight=finwgt], bsrweight(bsrw1-bsrw5) vce(bootstrap)
>>>>> singleunit(missing)
>>>>>
>>>>> program define test1, eclass properties(svyb)
>>>>> syntax [if] [pw iw] [, NULLOPT]
>>>>> xi:reg age race
>>>>> capture drop re1
>>>>> predict re1
>>>>> xi:reg birthwgt re1
>>>>> ereturn local cmd="test1"
>>>>> end
>>>>>
>>>>> svy : test1
>>>>>
>>>>> bs4rw , rw(bsrw1-bsrw5) noisily: test1 [pweight=finwgt]
>>>>>
>>>>> Regards,
>>>>>
>>>>> Mark
>>>>> *
>>>>> *   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/
>>>>
>>>>
>>>>
>>>> --
>>>> ---- Stas Kolenikov
>>>> -- http://stas.kolenikov.name
>>>> ---- Senior Survey Statistician, Abt SRBI
>>>> -- Opinions stated in this email are mine only, and do not reflect the
>>>> position of my employer
>>>>
>>>> *
>>>> *   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/
>>>
>>> *
>>> *   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/
>>>
>>>
>>> *
>>> *   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/
>>
>>
>>
>> --
>> ---- Stas Kolenikov
>> -- http://stas.kolenikov.name
>> ---- Senior Survey Statistician, Abt SRBI
>> -- Opinions stated in this email are mine only, and do not reflect the
>> position of my employer
>>
>> *
>> *   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/
>
> *
> *   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/



-- 
---- Stas Kolenikov
-- http://stas.kolenikov.name
---- Senior Survey Statistician, Abt SRBI
-- Opinions stated in this email are mine only, and do not reflect the
position of my employer

*
*   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index