Announcement

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

  • Calculating a polarization index using Stata

    Hi all. I need to calculate a measure called “polarization index” - for each Brazilian state - for a paper I’m writing using electoral returns at the state level in Brazil plus an ideology score for each party. This ideology score ranges from 0 to 10 (left-to-right).

    The polarization index to be calculated was devised by the political scientist Russell Dalton [source: Russell Dalton, “The Quantity and the Quality of Party Systems: Party System Polarization, its Measurement and its Consequences,” Comparative Political Studies (July 2008) 41: 899-920]. It uses the ideology score’s mean perception of a party’s Left-Right position in each nation, weighted by the vote share for each party. Values range from 0) no polarization to 10) fully polarized at opposite poles on the Left-Right scale.

    At this webpage, I found an spreadsheet showing how to manually calculate the index in Excel (link titled “Party System Polarization Index for CSES Modules 1-4”):

    https://cses.org/data-download/downl...s-modules-1-4/


    The problem: I tried to calculate the index and do not know whether I did it correctly.

    Can someone go through the data sample below and let me know whether I calculated the polarization index correctly?

    For the data available below (i.e., the Brazilian state of Acre, denoted by “AC”), I obtained the polarization index’s value of 6.22878.


    My command lines:


    Code:
    bysort uf year : egen sum_vote_perc = sum(vote_perc)
    
    clonevar total_party_perc = sum_vote_perc
    
    bysort uf year : gen lr_score_x_vote_perc = lr_score*vote_perc
    
    bysort uf year : gen r_mean = lr_score_x_vote_perc/total_party_perc
    
    bysort uf year : egen sum_r_mean = sum(r_mean)
    
    bysort uf year : gen r_minus_r_mean = (lr_score - sum_r_mean)
    
    bysort uf year : gen r_minus_r_mean_div_5 = (r_minus_r_mean/5)
    
    bysort uf year : gen sq_r_minus_r_mean_div_5 = r_minus_r_mean_div_5*r_minus_r_mean_div_5
    
    bysort uf year : gen x_vote_perc = vote_perc*sq_r_minus_r_mean_div_5
    
    bysort uf year : egen sum_x_vote_perc = sum(x_vote_perc)
    
    bysort uf year : gen polar_index = sqrt(sum_x_vote_perc)

    Main variables:

    ibge_uf_code - state’s ID
    uf - state’s label
    numero_partido - party’s number
    sigla_partido - party’s label
    qtde_votos - number of party votes
    lr_score - ideology score
    vote_perc - party’s vote share


    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input int year float ibge_uf_code str2 uf byte numero_partido str7 sigla_partido long qtde_votos float(lr_score vote_perc)
    1999 12 "AC" 45 "PSDB"    23209      5.634537  10.557992
    1999 12 "AC" 25 "PFL"     25322      8.777918  11.519216
    1999 12 "AC" 13 "PT"      29970      .4234993  13.633635
    1999 12 "AC" 70 "PT do B"  1431      7.826671   .6509753
    1999 12 "AC" 65 "PC do B"  5186 2.1571732e-07    2.35916
    1999 12 "AC" 43 "PV"       1675     1.8244084   .7619732
    1999 12 "AC" 40 "PSB"      6428     1.5222048  2.9241576
    1999 12 "AC" 56 "PRONA"    2186     9.0885515   .9944319
    1999 12 "AC" 33 "PMN"     26159      7.826671  11.899975
    1999 12 "AC" 11 "PPB"     42824     9.0885515   19.48104
    1999 12 "AC" 22 "PL"       7224      7.965582  3.2862654
    1999 12 "AC" 14 "PTB"      2143      7.687761   .9748708
    1999 12 "AC" 15 "PMDB"    41312      5.149113  18.793217
    1999 12 "AC" 12 "PDT"      3879     2.1266093  1.7645935
    1999 12 "AC" 23 "PPS"       831     1.7856863   .3780297
    1999 12 "AC" 17 "PSL"        45      7.826671 .020470923
    end
Working...
X