Well, the new, improved tsspell is so handy, it will force me to retire my
Harry Potter jokes about the older -spell- routine. Instead we can turn to
Florida elections jokes (were that they were). Absent from the otherwise
copious help in tsspell is an example of how a macroeconomist may detect
recessions (using a crude form of the NBER's recession-dating methodology).
Whatever your political leanings (or if you are merely an amused observer
of these shenanigans from afar), tsspell makes it very easy indeed to
perform these calculations:
g str3 party = "Rep" if tin(,1960q4) | tin(1969q1,1976q4) /*
*/ | tin(1981q1,1992q4) | tin(2001q1,)
replace party = "Dem" if party==""
* define a recession as two quarters' decline in real GDP
g sign = sign(D.realGDP)
egen qtrs = max(_seq), by(_spell)
gen recession = (D.realGDP<0 & qtrs>=2)
list yq realGDP qtrs party if recession
* what were the longest expansions, and who was in charge
* when they ended?
keep if _end & sign
list qtrs party yq in 1/5
If we had a multi-country panel data set of GDP figures for, say, the G7,
the logic above would work just as well; as tsspell's help indicates, one
would merely modify the egen to include the 'iis' variable.