Announcement

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

  • Coarsened Exact Matching (CEM) on panel data

    Dear all,

    I much enjoyed the Stata journal article on Coarsened Exact Matching (CEM) available at http://www.stata-journal.com/article...article=st0176. By reading it, however, I could figure out how to do a match with a panel database.

    Let me give you a brief example and explain my problem. In the table below which describes firm acquisitions, ID is unique firm identifier, X is the matching variable, M&A is 1 in the year a firm participates to an acquisition, Acquirer is 1 when an acquisition participant is the acquirer, DealID is a deal identifier. M&A is my treatment variable. Based on that, I would like to identify firms that, in the year of the acquisition, match acquisition participants. For any acquisition participant, I would like to identify a pool of 10 matched firms who have never taken part to an acquisition. I believe I am able to do that on a cross-sectional dataset. But how to proceed with a panel dataset?


    ID year X M&A Acquirer DealID
    1 2006 23 0 0 .
    1 2007 32 1 1 1
    2 2006 12 0 0 .
    2 2007 . 1 0 1
    3 2006 24 0 0 .
    3 2007 30 0 0 .
    4 2006 10 0 0 .
    4 2007 11 0 0 .

    Any help will be greatly appreciated.

    Riccardo

  • #2
    Ricardo,

    The first thing you would need to do is to generate a variable that indicates whether a firm was involved in an acquisition. Start with something like: bysort ID: egen count=total(MnA), The variable count will contain the number of acquisitions in which the firm was involved, and if it is 0 then the firm is a potential control match. From this, along with the MnA variable, you can generate a treatment variable that is 1 in the year when the acquisition happened, missing during other years, and 0 for firms that were never involved in acquisitions. Then do you CEM matching on X and year. To summarize:

    Code:
    bysort ID: egen count=total(MnA)
    gen trt=MnA
    replace trt=. if trt=0 & count>1
    replace trt=0 if count==0
    cem year X, treatment(trt)...
    To avoid confusion, you might even want to consider dropping the observations with missing treatments (i.e., observations for firms involved in acquisitions in the years when they weren't involved).

    Be aware, of course, that you could end up with control firms being matched with more than one treatment firm (because the control firms are available as matches for different years). I can't comment on the potential statistical issues associated with this. In general, sampling with replacement is a well-studied option, but since cem is not designed to do sampling with replacement, it's hard to say whether there are any pitfalls to be aware of.

    Regards,
    Joe

    Comment


    • #3
      Dear Joe,

      thanks a lot for the answer. It's a very clear solution and I am going to try it straight away.

      One option available in CEM is to define the cutoff points by adding them within parentheses after the name of the variable e.g. year (2006 2007 2008). I could not understand however whether this option actually requires an exact matching on that variable. Other types of matching (such as the matching estimator nnmatch) have an exact() option which tells the program that on certain variables the match must be precise. Is it the case that if I give cem the cutoff points the match is strict? For my analysis to work, I would need acquisition participants to match non-participants in a certain year. Is specifying the cutoff points the right way to get the program behave accordingly?

      Many thanks again for your support!

      Best wishes,
      Riccardo

      Comment


      • #4
        Hi Riccardo,
        I guess you are Italian but to be sure I will write it in English. I wonder if you finally solved your issue whether it is possible to use CEM for panel data. I also have panel data and I need to use this methodology, but I cannot understand how to do it with a panel setting. Grazie Francesco

        Comment


        • #5
          Originally posted by Joe Canner View Post

          Be aware, of course, that you could end up with control firms being matched with more than one treatment firm (because the control firms are available as matches for different years). I can't comment on the potential statistical issues associated with this. In general, sampling with replacement is a well-studied option, but since cem is not designed to do sampling with replacement, it's hard to say whether there are any pitfalls to be aware of.

          Regards,
          Joe
          This suggestion works but with the mentioned caveat. So treatment firms are matched with different control firms for different periods. And this leads to other problems (e.g. firm fixed effects do not make any sense since the firms matching a particular treatment firm may differ each year). So is there a way to match the firms rather than the yearly observations? Meaning that:

          I have firm a treatment firm A with pre-treatment periods: 2005, 2006, 2007 and post-treatment 2008, 2009, and 2010

          Above method might match Firm A with B in 2005, C in 2006, and D in 2007.

          My question is: Is there a way to match Firm A with a single firm (based on specified matching criteria) in the pre-treatment period. Say Firm C s the matched one and I get all matching obserrvations from Firm C. and then look at the difference in differences again between Firm A and C in the post-treatment period?

          Comment

          Working...
          X