Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Block-Boostrap of Standard Errors in Stata

    Hi,

    I have to run a regression with the need of block-bootstrapping standard errors. I tried to follow Bertrand and Duflo, 2004, but got some issues, so I decided to go with this code. I have a panel of individuals i in year t and I want to block bootstrap at state level (state in which these individuals live).

    reg y treatment i.id i.year, vce(bootstrap, cluster(state) seed( 1 2 3 4) rep(50))

    Could you please tell me if this is the right way of block bootstrapping?

    Thank you everyone for precious help.

  • #2
    Sorry, but there's no block bootstrap command for Stata that I know of. Your code calls the ordinary bootstrap, which is very different. The ordinary bootstrap is for independent observations (which can be groups); replicates are formed by sampling these observations individually. The block bootstrap is for correlated observations. The bootstrap replicates must preserve the correlation structure of the original data; to do this, they are sampled in "blocks" of adjacent observations.

    Please describe your study problem. Why do you need the block bootstrap?
    Last edited by Steve Samuels; 02 Aug 2018, 19:16.
    Steve Samuels
    Statistical Consulting
    [email protected]

    Stata 14.2

    Comment


    • #3
      Thanks! Since the number of clusters I have is too small, following Bertrand and Duflo, I decided to block-bootstrap my standard errors, but I'm not sure how to implement their procedure... Any help in this direction would be very much appreciated.

      Comment


      • #4
        We'd need to know much more about the study design, but first, read FAQ 13:


        13. How should I give literature references

        Please give precise literature references. The literature familiar to you will be not be familiar to all members of Statalist. Do not refer to publications with just author and date, as in Sue, Grabbit, and Runne (1989).

        References should be in a form that you would expect in an academic publication or technical document. Good practice is to give a web link accessible to all or alternatively full author name(s), date, paper title, journal title, and volume and page numbers in the case of a journal article.
        Last edited by Steve Samuels; 03 Aug 2018, 06:57.
        Steve Samuels
        Statistical Consulting
        [email protected]

        Stata 14.2

        Comment


        • #5
          Hi,

          Sure, I totally agreed. So, the problem is that I have a panel with individuals over time. My sample is balanced: I have information for 500 individuals, 30 years each. My source of variation is at regional level. To make it simple, all individuals in given regions are treated, while all individuals in remaining regions are not. I therefore need to cluster se at region level, but I only have 7 regions. I read this paper:

          http://faculty.chicagobooth.edu/mari...in_dif_qje.pdf
          ("How Much Should We Trust Differences-in-Differences Estimates?" (Marianne Bertrand Esther Duflo and Sendhil Mullainathan), The Quarterly Journal of Economics, February 2004, 119(1), pp. 249-75)

          In which the authors suggest to block-bootstrap the standard errors and explain a methodology on pages 265-267. I'm not sure I fully understood how to implement it in Stata.

          I therefore looked at this paper:

          https://papers.ssrn.com/sol3/papers....act_id=1313867
          (“Compulsory Licensing: Evidence from the Trading-with-the Enemy Act” (with Petra Moser), The American Economic Review, 102.1 (2012): 396-427)

          Whose authors claim they block-bootstrap the standard errors, Appendix A3, but they don't provide additional information on how to implement it. The code they provided to the journal does not contain the replication files for the block-boostrap.

          I used: help bootstrap and I see that there is a cluster option and I'm wondering if it is the way to do the block-bootstrap, but you kindly explained this is not the case.

          I would like to receive some guidelines for doing the correct block-bootstrap if anyone here has dealt with this.

          Thanks again for your kind answers.

          Comment


          • #6
            Thanks for the reference.

            However page 266 makes it clear that seven clusters are not enough for the block bootstrap, with nominal p-values bad for 20 clusters and awful for 10.

            This blog "Beware of studies with a small number of clusters"
            https://blogs.worldbank.org/impactev...er-of-clusters

            suggests the wild bootstrap as solution. This is implemented in two commands: clustse and boottest, both at SSC. boottest, at least, will impose the null hhypothesis

            I have no experience with the wild bootstrap, so If you have trouble with these commands, start another topic. I observe that David Roodman, the author of boottest, often responds to questions about it.

            Good luck!
            Last edited by Steve Samuels; 05 Aug 2018, 14:36.
            Steve Samuels
            Statistical Consulting
            [email protected]

            Stata 14.2

            Comment


            • #7
              Thanks you! Final question. If I have cross-sectional data, could I block-bootstrap the standard errors? Or can I go with the option vce(bootstrap, cluster(state)?

              I really appreciated your help!

              Comment


              • #8
                I'm not expert in this area and don't have an answer. Take a look at Cameron's Guide to Cluster-Robust Inference. (The term "block bootstrap" does not appear).

                The second syntax you propose is apparently what is known as the "pairs bootstrap". Cameron criticizes this because standard errors can be under-estimated, leading to test-over-rejection. The recommended alternatives are the percentile-t bootstrap and the wild bootstrap.

                To get an an answer to your question, I suggest that you start another topic. "What is the best method (or bootstrap) for cross-sectional clusters?") Give details about the data. My advice: do not mention "block-bootstrap" ; the term is may not be familiar to the expert econometricians on the list who answer questions about cluster-robust ineference. (I myself had not seen it before except as a technique for time series, the original Efron-Tibshirani example.)

                Good luck!
                Last edited by Steve Samuels; 11 Aug 2018, 13:00.
                Steve Samuels
                Statistical Consulting
                [email protected]

                Stata 14.2

                Comment


                • #9
                  Originally posted by Joshua Smith View Post
                  Thanks! Since the number of clusters I have is too small, following Bertrand and Duflo, I decided to block-bootstrap my standard errors, but I'm not sure how to implement their procedure... Any help in this direction would be very much appreciated.
                  Hi Joshua,

                  I'm not sure if you're still following this thread but there's a footnote on page 267 of Bertrand, Duflo and Mullainathan (2004) that mentions that the code for block bootstrapping is available if you contact them asking for it. I understand that in this particular case block bootstrapping may not have been the preferred method for you, but I believe that this could be of help in the future, because I came across this thread when I was trying to look up block bootstrapping as well!

                  Best regards,
                  Debarun.

                  Comment

                  Working...
                  X