Announcement

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

  • Code taking too long to run when performing synthetic control method

    Currently working on a paper for class where I'm estimating the effects of natural disasters on birth rates. I'm using the synthetic control method to analyze these effects using the stata package "synth2." The data is clean, the code (I think) is all correct, the only problem is that it just takes eons to run – and in some instances – just won't run at all. Let me share the code:

    synth2 loggedbirths loggedbirths(`=tm(2009m1)') loggedbirths(`=tm(2009m2)') loggedbirths(`=tm(2009m3)') loggedbirths(`=tm(2009m4)') loggedbirths(`=tm(2009m5)') loggedbirths(`=tm(2009m6)') loggedbirths(`=tm(2009m7)') loggedbirths(`=tm(2009m8)') loggedbirths(`=tm(2009m9)') loggedbirths(`=tm(2009m10)') loggedbirths(`=tm(2009m11)') loggedbirths(`=tm(2009m12)') loggedbirths(`=tm(2010m1)') loggedbirths(`=tm(2010m2)') loggedbirths(`=tm(2010m3)') loggedbirths(`=tm(2010m4)') loggedbirths(`=tm(2010m5)') loggedbirths(`=tm(2010m6)') loggedbirths(`=tm(2010m7)') loggedbirths(`=tm(2010m8)') loggedbirths(`=tm(2010m9)') loggedbirths(`=tm(2010m10)') loggedbirths(`=tm(2010m11)') loggedbirths(`=tm(2010m12)') loggedbirths(`=tm(2011m1)') loggedbirths(`=tm(2011m2)') loggedbirths(`=tm(2011m3)') loggedbirths(`=tm(2011m4)') loggedbirths(`=tm(2011m5)') loggedbirths(`=tm(2011m6)') loggedbirths(`=tm(2011m7)') loggedbirths(`=tm(2011m8)') loggedbirths(`=tm(2011m9)') loggedbirths(`=tm(2011m10)') loggedbirths(`=tm(2011m11)') loggedbirths(`=tm(2011m12)') loggedbirths(`=tm(2012m1)') loggedbirths(`=tm(2012m2)') loggedbirths(`=tm(2012m3)') loggedbirths(`=tm(2012m4)') loggedbirths(`=tm(2012m5)') loggedbirths(`=tm(2012m6)') loggedbirths(`=tm(2012m7)') loggedbirths(`=tm(2012m8)') loggedbirths(`=tm(2012m9)') loggedbirths(`=tm(2012m10)') loggedbirths(`=tm(2012m11)') loggedbirths(`=tm(2012m12)') loggedbirths(`=tm(2013m1)') loggedbirths(`=tm(2013m2)') loggedbirths(`=tm(2013m3)') loggedbirths(`=tm(2013m4)') loggedbirths(`=tm(2013m5)') loggedbirths(`=tm(2013m6)') loggedbirths(`=tm(2013m7)') loggedbirths(`=tm(2013m8)') loggedbirths(`=tm(2013m9)') loggedbirths(`=tm(2013m10)') loggedbirths(`=tm(2013m11)') loggedbirths(`=tm(2013m12)') loggedbirths(`=tm(2014m1)') loggedbirths(`=tm(2014m2)') loggedbirths(`=tm(2014m3)') loggedbirths(`=tm(2014m4)') loggedbirths(`=tm(2014m5)') loggedbirths(`=tm(2014m6)') loggedbirths(`=tm(2014m7)') loggedbirths(`=tm(2014m8)') loggedbirths(`=tm(2014m9)') loggedbirths(`=tm(2014m10)') loggedbirths(`=tm(2014m11)') loggedbirths(`=tm(2014m12)') loggedbirths(`=tm(2015m1)') loggedbirths(`=tm(2015m2)') loggedbirths(`=tm(2015m3)') loggedbirths(`=tm(2015m4)') loggedbirths(`=tm(2015m5)') loggedbirths(`=tm(2015m6)') loggedbirths(`=tm(2015m7)') loggedbirths(`=tm(2015m8)') loggedbirths(`=tm(2015m9)') loggedbirths(`=tm(2015m10)') loggedbirths(`=tm(2015m11)') loggedbirths(`=tm(2015m12)') loggedbirths(`=tm(2016m1)') loggedbirths(`=tm(2016m2)') loggedbirths(`=tm(2016m3)') marriages(`=tm(2009m1)') marriages(`=tm(2009m2)') marriages(`=tm(2009m3)') marriages(`=tm(2009m4)') marriages(`=tm(2009m5)') marriages(`=tm(2009m6)') marriages(`=tm(2009m7)') marriages(`=tm(2009m8)') marriages(`=tm(2009m9)') marriages(`=tm(2009m10)') marriages(`=tm(2009m11)') marriages(`=tm(2009m12)') marriages(`=tm(2010m1)') marriages(`=tm(2010m2)') marriages(`=tm(2010m3)') marriages(`=tm(2010m4)') marriages(`=tm(2010m5)') marriages(`=tm(2010m6)') marriages(`=tm(2010m7)') marriages(`=tm(2010m8)') marriages(`=tm(2010m9)') marriages(`=tm(2010m10)') marriages(`=tm(2010m11)') marriages(`=tm(2010m12)') marriages(`=tm(2011m1)') marriages(`=tm(2011m2)') marriages(`=tm(2011m3)') marriages(`=tm(2011m4)') marriages(`=tm(2011m5)') marriages(`=tm(2011m6)') marriages(`=tm(2011m7)') marriages(`=tm(2011m8)') marriages(`=tm(2011m9)') marriages(`=tm(2011m10)') marriages(`=tm(2011m11)') marriages(`=tm(2011m12)') marriages(`=tm(2012m1)') marriages(`=tm(2012m2)') marriages(`=tm(2012m3)') marriages(`=tm(2012m4)') marriages(`=tm(2012m5)') marriages(`=tm(2012m6)') marriages(`=tm(2012m7)') marriages(`=tm(2012m8)') marriages(`=tm(2012m9)') marriages(`=tm(2012m10)') marriages(`=tm(2012m11)') marriages(`=tm(2012m12)') marriages(`=tm(2013m1)') marriages(`=tm(2013m2)') marriages(`=tm(2013m3)') marriages(`=tm(2013m4)') marriages(`=tm(2013m5)') marriages(`=tm(2013m6)') marriages(`=tm(2013m7)') marriages(`=tm(2013m8)') marriages(`=tm(2013m9)') marriages(`=tm(2013m10)') marriages(`=tm(2013m11)') marriages(`=tm(2013m12)') marriages(`=tm(2014m1)') marriages(`=tm(2014m2)') marriages(`=tm(2014m3)') marriages(`=tm(2014m4)') marriages(`=tm(2014m5)') marriages(`=tm(2014m6)') marriages(`=tm(2014m7)') marriages(`=tm(2014m8)') marriages(`=tm(2014m9)') marriages(`=tm(2014m10)') marriages(`=tm(2014m11)') marriages(`=tm(2014m12)') marriages(`=tm(2015m1)') marriages(`=tm(2015m2)') marriages(`=tm(2015m3)') marriages(`=tm(2015m4)') marriages(`=tm(2015m5)') marriages(`=tm(2015m6)') marriages(`=tm(2015m7)') marriages(`=tm(2015m8)') marriages(`=tm(2015m9)') marriages(`=tm(2015m10)') marriages(`=tm(2015m11)') marriages(`=tm(2015m12)') marriages(`=tm(2016m1)') marriages(`=tm(2016m2)') marriages(`=tm(2016m3)'), trunit(43) trperiod(`=tm(2016m4)') counit(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,1 8,19,20,21,23,24,25,26,27,28,29,30,31,32,33,34,35, 36,37,39,47) nested allopt placebo(unit cut(2)) sigf(6) loo frame(kum) savegraph(kum) postperiod(`=tm(2016m4)' `=tm(2016m5)',`=tm(2016m6)',`=tm(2016m7)',`=tm(201 6m8)',`=tm(2016m9)',`=tm(2016m10)',`=tm(2016m11)', `=tm(2016m12)',`=tm(2017m1)',`=tm(2017m2)',`=tm(20 17m3)',`=tm(2017m4)',`=tm(2017m5)',`=tm(2017m6)',` =tm(2017m7)',`=tm(2017m8)',`=tm(2017m9)',`=tm(2017 m10)',`=tm(2017m11)',`=tm(2017m12)',`=tm(2018m1)', `=tm(2018m2)',`=tm(2018m3)',`=tm(2018m4)',`=tm(201 8m5)',`=tm(2018m6)')

    Yeah, I know it's a lot. The "marriages" and past values of logged births are my covariates, for context. The only code I run before this is just cd'ing into the file with the dataset anad declaring the model as a panel data sorted by month and ID (my unit of analysis is a Japanese Prefecture). I have tried removing "allopt" but doesn't seem to speed things up. Does anyone have any advice on how I can make this code run faster?


  • #2
    Cross-posted at https://stackoverflow.com/questions/...control-method and https://www.reddit.com/r/stata/comme...en_performing/

    Telling people about cross-posting elsewhere is a rule on Reddit, a request here and a good idea on Stack Overflow.

    I have never run this command. To get an idea of how slow it is being. you could try with a smaller dataset and/or simpler command.

    Comment


    • #3
      try creating a time index and using marriages(1/50) or whatever.

      Comment

      Working...
      X