Announcement

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

  • Propensity S.M.

    Dear Experts,

    Sorry for bothering you. I have an issue with Propensity score matching. What I am doing is that I am matching each firm that had a cds initiation (1-initiated or 0-no) with a firm that has never experienced initiation. I insure that the sample of treated firms starts with the period of available info (min =2003q1) up until the first quarter of initiation. I insure that matched firm is of the same year and industry. For that, I use the following code:

    egen industry_year=group(sic1 fdate)
    probit cds x1 x2 x3... i.sic1 i.fdate, vce(cluster cusip61)
    predict pscore if e(sample), pr
    gen pscore2=industry_year*10+pscore
    psmatch2 cds, pscore(pscore2) outcome(y) neighbor(1) caliper(0.2)

    What I need is one-to-one matching. However, after I run this code what I have is that control firms are matched with many treated firms. Say treated firm A had initiation of CDS in 2004q1 and firm B in 2005q4. So, it finds a match for firm A and B = control firm C. Firm A (2004q1)= Firm C(2004q1) and Firm B (2005q4)= Firm C (2005q4). Or sometimes it even merges two firms with cds initiation say Firm A (2004q1) =Firm B (2004q1).

    How can I cope with this issue?

    Please, advise me this issue.

    Best regards,
    Alberto



  • #2
    This query got no reply so far, and that may be due to several reasons.

    First, I kindly remind the FAQ recommendations.

    Particularly, the topic 12.3 on how to share commands and output under CODE delimiters. You may also prefer to user-written command - dataex - as suggested in topic 12.4.

    Second, the topic 12.1 on how to underline the user-written commands:

    If you are using user-written commands, explain that and say where they came from: the Stata Journal, SSC, or other archives. This helps (often crucially) in explaining your precise problem, and it alerts readers to commands that may be interesting or useful to them.
    In this case, you probably meant the SSC psmatch2 (by Leuven and Sianesi).

    These words being said, and going directly to the issue related to the core of your query

    What I need is one-to-one matching
    and reckoning that "by" is not an option to consider (neither with psmatch2 nor with teffects), and just speculating: if I understood correctly your query (and I'm not sure), you wish to match according to a quarterly time period. Less elegant as that may sound, maybe you could perform the matching either by using the "if" clause, then selecting each time period you wish, or performing for each time period in a separed dataset and appending afterwards.

    On second thoughts, and (probably) a more elegant strategy (albeit not tried by me), I wonder whether you may further play with the recommendation of the help file of psmatch2, where we read the commands (and options) for a one-to-one matching:

    Detailed Syntax

    One-to-one matching:

    psmatch2 depvar [indepvars] [if exp] [in range] , [outcome(varlist) pscore(varname) ai(integer k>1) mahalanobis(varlist) caliper(real) noreplacement descending common trim(real)
    odds index logit ties nowarnings quietly ate]
    Shall you still face misplaced matchings (in terms of quarterly date), the "if" clause may still apply, hopefully. If not, I wish you get further (and better) advice.
    Last edited by Marcos Almeida; 19 Jan 2017, 12:54.
    Best regards,

    Marcos

    Comment


    • #3
      Thank you very much for your response. I will make one more post with the corrections you suggested.

      Best regards,
      Alberto

      Comment

      Working...
      X