Announcement

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

  • How can I keep firms have at least 2 years of pre and post-event financial data

    Hi,

    I have an unbalanced panel data, which firms have a different number of year-observations. However, for my research, I want to keep firms have at least 2 years of pre and post-event financial data. The year that event occurs is 0. One-year pre, two-year pre are -1 and -2, etc. One-year post, two-year post are 1 and 2, etc...

    Thank you very much in advance.

    Regards,
    Anh


  • #2
    There is probably a few ways to do this (I'd have to see a copy of what your data looks like to get this to work:
    1. Do all firms that have at least 5 yrs of data have -2, -1, 0, 1, and 2? (Or could a firm have 5 yrs of data, but enter at event_year==+2?). If it's the first, then you could do something like this
    Code:
    bysort firm_id (year): gen years_in_data = _N  
    drop if years_in_data < 5
    * NOTE: Above I assume year is an event_year (-2, -1, 0, +1, +2, etc), not 2005, 2006, 2007, etc
    2. Alternatively, if a firm is in your sample at event_year==-2 and event_year==+2 does that mean it is also in your data for all years in between (i.e. it somehow isn't missing -1 or +1 so something like that?

    Code:
    bysort firm_id: egen first_year = min(year)
    bysort firm_id: egen last_year = max(year)
    keep if first_year<=-2 and last_year>=2 & last_year!=.
    Hope that helps!
    Last edited by David Benson; 27 Oct 2018, 23:27.

    Comment


    • #3

      Dear David,

      Thank you very much for your help. However, it is not the one I need. I would like to investigate, for example, firm performance before and after an event (such as, global crisis - year 0). My sample is unbalanced, however I need that each firm must have at least two-year financial data before and after that event. Therefore, firms which have only one-year before event and more than one-year financial data; or more than one-year before event and only one-year after event, must be remove. Please ignore missing value.


      For example: My sample is something like that:

      id year
      1 -2
      1 -1
      1 0
      1 1
      1 2
      1 3
      1 4
      2 -3
      2 -2
      2 -1
      2 0
      2 1
      2 2
      3 -1
      3 0
      3 1
      3 2
      3 3
      4 -3
      4 -2
      4 -1
      4 0
      4 1

      I want to keep only firm id1 and firm id 2 because they have at least two-year financial data around year 0. Firm id 3 and 4 should be dropped from my sample because it has only one-year financial data before year 0 and only one-year financial data after event, respectively.

      Thank you very much.
      Last edited by Celine Tran; 28 Oct 2018, 01:56.

      Comment


      • #4
        Hi Celine,

        Actually, I think that second set of code should work (with one modification):

        Code:
        bysort id: egen first_year = min(year)
        bysort id: egen last_year = max(year)
        gen to_keep=1 if first_year<=-2 & last_year>=2  // in your example above, to_keep==1 for firms 1 & 2, and missing for 3 & 4
        
        * I don't like to drop things until I know it is what I want, once you've verified everything:
        keep if to_keep==1
        I've also posted the dataex stuff so you can copy and paste this to the General Forum page.
        Code:
        * Example generated by -dataex-. To install: ssc install dataex
        clear
        input byte(id year)
        1 -2
        1 -1
        1  0
        1  1
        1  2
        1  3
        1  4
        2 -3
        2 -2
        2 -1
        2  0
        2  1
        2  2
        3 -1
        3  0
        3  1
        3  2
        3  3
        4 -3
        4 -2
        4 -1
        4  0
        4  1
        end

        Comment


        • #5
          Dear David,

          Thank you very much. I have saved me . The code works through.

          Regards,
          Anh.

          Comment


          • #6
            David Benson

            Hi David,

            Today, I am writing to ask you some questions related to the one above. If I want to keep firms have at least two firm-year observations before and after an event with ignoring the consecutiveness of year, what should I do?

            For example:

            Code:
                   id      year
              1. 1 -2
              2. 1 -1
              3. 1 0
              4. 1 1
              5. 1 2
              6. 1 3
              7. 1 4
              8. 2 -4
              9. 2 -2
             10. 2 0
             11. 2 1
             12. 2 2
             13. 3 -1
             14. 3 0
             15. 3 1
             16. 3 2
             17. 3 3
             18. 4 -4
             19. 4 -1
             20. 4 0
             21. 4 1

            I want to keep firm 1 and firm 2 because they have at least two firm-year observations around year =0.

            Thank you very much in advance !
            Last edited by Celine Tran; 29 Nov 2019, 22:08.

            Comment


            • #7
              Celine:
              please re-post your query to the General forum, as this one is intended for practising purposes only. Thanks.
              Kind regards,
              Carlo
              (Stata 15.1 SE)

              Comment

              Working...
              X