#delimit; set matsize 400; /************************************************/ /* Do file for Adams et al. Niche Parties paper */ /* prepared for Slava Mikhaylov and Ken Benoit */ /* March 23, 2007 */ /************************************************/ log using AJPS.log, t replace; use AJPS; iis partnum; tis electnum; egen clnum = group(ctrynum electnum); /* rescale to 1-10 */ /* This gives me *shifts* on 1-10 scale */ /* partyshift2 corrects a minor data problem */ generate pshift2 = (partyshift2 * (9/200)); generate pshiftt12 = (partyshiftprev * (9/200)); generate pshiftt22 = (partyshiftminustwo * (9/200)); generate pshift2a = abs(pshift2); generate vshift = vshiftidparty + vshiftmsparty; generate idvshift = idparty * vshift; generate idpshift = idparty * pshift2a; generate msparty = 0; replace msparty = 1 if idparty==0; generate msvshift = msparty * vshift; generate dir = 0; replace dir = 1 if leftwingparty==1; replace dir = -1 if rightwingparty==1; generate centpart = 0; replace centpart = 1 if dir==0; generate cconverge = centpart * diffANCPun; generate dirpshift = dir * pshift2; generate moderate = 0; replace moderate = 1 if dirpshift>0; /*replace moderate = -1 if dirpshift<0;*/ generate modid = moderate * idparty; generate pshiftmod = moderate * pshift2a; generate idpshiftmod = moderate * pshift2a * idparty; generate iddpshift = idparty * dirpshift; generate dir2 = 0; replace dir2 = -1 if leftwingparty==1; replace dir2 = 1 if rightwingparty==1; generate dirvshift = dir2 * vshift; sort clnum; by clnum: generate lvotec = ln(votecurrent); by clnum: generate lvotec1 = ln(voteminusone); by clnum: generate lvotec2 = ln(voteminustwo); by clnum: generate votec = votecurrent - voteminusone; by clnum: generate votec1 = voteminusone - voteminustwo; by clnum: egen converge = sum(pshiftmod); /*replace converge = converge * unweighted_AN;*/ generate idconverge = idparty * converge; generate lvgain = lvotec - lvotec1; generate lvgainone = lvotec1 - lvotec2; generate cgovunemp = ingovnow * changeunemp3; generate cgovgdp = ingovnow * changegdp3; generate federal = 0; replace federal = 1 if fedundim>0; generate logmag = ln(magnitude); /* these just pick up Communists in Spain */ generate idfederal = idparty * federal; generate idlogmag = idparty * logmag; by clnum: generate numgov = sum(ingovnow); generate coalgov = 0; replace coalgov = 1 if numgov > 1; generate ccogovun = changeunemp3 * coalgov; generate ccogovgdp = changegdp3 * coalgov; generate Gunemp = Green * changeunemp3; generate pshiftAN = unweighted_AN * pshift2a; generate vshiftAN = unweighted_AN * vshift; generate dirid = dir * idparty; generate pvoteshift = votec1 * pshiftt12; /*****************************/ /******** Table 1 ************/ /*****************************/ tsset partnum electnum; regress pshift2 vshift idparty idvshift votec1 pshiftt12 pvoteshift Italy Britain Greece Luxembourg Denmark Netherlands Spain, cluster(clnum); /**************************************/ /************** Table 2 ***************/ /**************************************/ generate wingconv = wing * converge; generate modshft = 0; replace modshft = pshift2a if dirpshift>0; generate extshft = 0; replace extshft = pshift2a if dirpshift<0; generate idmod = idparty * modshft; generate idext = idparty * extshft; regress votec votec1 modshft extshft idparty idmod idext dirvshift ingovnow coalgov changeunemp3 changegdp3 cgovunemp cgovgdp converge wing wingconv Italy Britain Greece Luxembourg Denmark Netherlands Spain if dirpshift!=0, cluster(clnum);