Affective Partisanship – Why do you hate me?

Affective Partisanship – Why do you hate me?

I hope you had a great 4th of July.  As a true nerd, I spent some time looking at American National Election Studies (ANES) data.  For those unfamiliar with the data, it began at the University of Michigan and now is a jointly done with Stanford.  The survey research is conducted prior and after Presidential elections – often asking the same questions over multiple series.

It is a treasure trove of data, open to the public, and if you are unfamiliar with the data set, check it out.

Because, if you find yourself with a free weekend and a curiosity, you may be able to tease out some interesting finds.

This is where I found myself.  I was thinking again about the hyper-partisan political times we find ourselves in and playing around with ANES data.

ANES has used a feeling thermometer to measure how people feel about the political parties.  On a scale of 0 – 100, how do you feel about the _____ party?

I looked at a panel that collapsed party identification to inlclude those that leaned towards one party or the other. 

 

Observations

Just a couple of quick observations:

  • On average, Republicans like their own party slightly less than Democrats like theirs.
  • Independents are really just going to independent – they don’t really like either party.  (makes sense, if they did like one, they’d likely join one…)
  • After 2000, that seems to be the date things really changed.  
  • The hyper-partisanship appears mostly driven by negative partisanship. 

Big picture, on average – how we feel about our own party hasn’t changed THAT much.  It wouldn’t explain what we see in today’s politics. 

However, how we feel about the OTHER party has nose-dived after 2000.  And it is / has happened on both sides of the aisle. 

It appears the parties have sorted, closed ranks, and now the change in our politics is defined by what we don’t like. 

Ranked Choice Voting – a final verdict and a “Winner”

Ranked Choice Voting – a final verdict and a “Winner”

My flirtation with Ranked Choice Voting has ended as many of my flirtations end: bewildered and alone with my thoughts.

As I disclosed early in the process, I went into this project thinking the United States isn’t ready for RCV, and this exercise and the recent stories from NYC confirm it.

exhibit A:

NYC Board of Elections throws mayoral primary into chaos by counting test ballots

Here is my working hypothesis, at this time, America’s Democracy is not strong enough to adopt Ranked Choice Voting.  It is too complex and that complexity invites doubts and questions.  Given that America can’t seem to handle counting first past the post ballots well, RCV is a ‘luxury’ that will do more harm than good.

ICE CREAM and RANKED CHOICE VOTING

This began as a simple weekend project.  Noting NYC was preparing the use RCV in their NYC Mayor’s race, we should practice polling and writing the code to tabulate / allocate the votes.

In theory, it should be easy.

1)  Test, does one “vote getter” receive more than 50% of the vote?  If so, declare winner, if not continue.

2)  Tabulate and rank vote getters.

3)  Eliminate lowest vote getter.

4)  Re-allocate votes of eliminated voter getter to next choice.

5)  Goto  Step 1.

Easy, right?

It has proven to be a challenge.

In part because I am not an expert.  In part because RCV has been implemented slightly differently in different jurisdictions.  In part because the press doesn’t understand or report the details past the superficial Steps 1-5.

Here are some of the challenges I ran into:

When presenting the ballot, which format do we use?  An array or multi-screen selection?  Both are used.  Do we program in error detection to stop people from making errors like repeating choices?  Paper ballots don’t, so we chose to allow people taking the poll to make errors.

When ranking, the first issue is write-ins.  Is ‘Peanut Butter Cup’ the same as ‘Peanutbutter Cup’?  We immediately have a classification issue.  I think best to avoid trying to interpret voter intent, so I ignored capitalization, but not spelling or spacing.  Not a huge deal, but a decision.

When ranking, how does one handle ties?  If three candidates / flavors are ranked and all tied – in what order does one eliminate the ties?  Turns out, my research showed there are three ways in use now.

In our case study, we had 219 respondents.  You can download the datafile here. Each respondent had up to 5 choices, each choice included the opportunity for a write in.  Some opted to make no choice or turned in a blank ballot.  Some used all 5 choices, some used 1 choice.  Some didn’t follow the rules and voted the same choice 5 times or repeated choices.

So essentially, we have a array of 219 rows x 5 choices.

When eliminating, how do we eliminate ?

For example, if we eliminate ‘Lemon’ in the first round, is ‘Lemon’ only eliminated for Round 1 OR is ‘Lemon’ eliminated from the entire array?  Meaning if ‘Lemon’ is eliminated in round 1, ‘Lemon’ is eliminated as a choice in all ballots in all subsequent rounds.

When spoiling a ballot, when do you spoil it and for how long?

I can write code in the beginning that can test for errors.  Did a voter rank ‘Lemon’ more than once?  If so, is the ballot spoiled at the beginning of counting completely – OR does it become spoiled at the time of counting the second erroneous “Lemon”?  Furthermore, if someone doesn’t follow the instructions in their 3rd ranking, is their ballot spoiled for all further counting?  or do we eliminate the error and move the the next ‘valid’ choice after the error?

If a choice is eliminated in a round and removes a ballot with an error, is the ballot still good? Do we ignore the error and keep the additional choices?

Say, a ranking of:

Butter Pecan, Lemon, Lemon, Chocolate, Vanilla.

Clearly this voter didn’t follow instructions.  They ranked Lemon twice.

If Lemon is eliminated in the very first round, does that allow become Butter Pecan, Chocolate, Vanilla and remain in the mix or do we throw it out at the beginning? Is the ballot spoiled or a vote for Chocolate?

Finally, how do we define WINNER? Do I use a fraction (any % over 50%) or whole numbers?  What is the denominator?  If a person’s ballot is exhausted, are they still counted in the denominator or are they now an under-vote?

It is exhausting. Can you imagine the Cyber Ninjas involved in this mess?

An Experiment in Ranked Choice Voting

So, here we go.  Here are my assumptions / decisions:

I erred on the side of trying to count votes.

I grouped write-ins only if they matched, but didn’t consider capitalization.

I did no error checking in the beginning, except for removing blank ballots.  They were undervotes and not counted in the calculations.

So, we began with 219 respondents.  Removing 11 blank ballots.  208 votes cast.  This is the first challenge, when testing if someone gets >50%, do we divide by 219 or 208?  In this case, I am using 208.

 Initial Tally – Rank Choice for Ice Cream

Initial Tally – RCV

So let’s go through our steps?

Step 1 – Test, does one candidate have over 50%?

As we see, we have NA or blank at 5%. We will filter those out moving forward.
AND we have a 11 way tie for “last place”.

But no one flavor exceeds 50%.

However, if the denominator is 219, Mint Chocolate Chip is at 20%, if the denominator is 208, Mint Chocolate chip is 21%.  We will see, this becomes a bigger deal as ballots become exhausted.

Step 2 – Tabulate and Rank Candidates

See above.

Step 3 – eliminate lowest vote getter.

At this early stage, we have 11 vote getters tied for the lowest (all write ins).

In what order do we eliminate these and re-allocate votes?

In my case, I am going to randomize the bottom 11 and eliminate them – BUT this could have material effects later as we may see. Is random better than another way? I don’t know. But, would this lead to replication issues in some type of audit? Maybe.

So in this case, let’s say I eliminate ‘Tiger tail’ (whatever flavor that is…must be a radical socialist).  The voter’s second selection after Tiger Tail was “Mint Chocolate Chip” so I eliminate Tiger Tail, replace with MCC and goto step 1.

Step 1-2 – no change.

Step 3 – our next randomized selection to eliminate “New York Super Fudge Chunk”  Now this respondent, is completely dedicated to “New York Super Fudge Chunk”.  In fact so much so, they ranked it 5 times.  Their ballot is invalid. 

So, I spoil the ballot.  Ok.  Is the denominator 207 now?  Yes.  New York Super Fudge Chunk is now an ‘under vote’. 

There are no votes to re-allocate. 

Goto step 1…..

So, you can see we are making lots of “micro” steps.  If we do it this way, (which I did, we end up with over 50 rounds of voting). 

There is another way.  For example, we will eventually eliminate “Neapolitan” which isn’t even a ‘flavor’ – it’s three flavors dumped into a box for those who can’t make up their minds, but I am off track)  Once I eliminate “Neapolitan” should I remove it from the entire array OR do I just remove it for that round – allowing it to come back in later rounds if it is the next choice of a voter?  I don’t know the answer and need a collaborator in math.  I chose NOT to delete it from the entire array and go round by round, allowing for a come back. 

The ramification of this decision was an ebb and flow of “major” eliminations then a series of “clean” up rounds.  Each clean up round had randomization due to the ties. 

An Ending to Ranked Choice Voting

Using this method, we are well into 50 plus “rounds”.

Towards, the end, we end up with a three way race:

A death match between:

  • Mint Chocolate Chip
  • Chocolate Chip Cookie Dough, and
  • Chocolate

At this point, we have 186 ballots still remaining that have not been “exhausted”  This means 219-186 = 33 ballots or 15% of ballots are no longer in play.  Whether error or dedication to third-party flavors, these ballots are now on the scrap bin.

In our case study, we eliminate Chocolate, and immediately have to do clean up.    Since I didn’t remove a flavor from the entire array and I am allowing comebacks – some Chocolate voters like “Birthday Cake”.  etc.

This is where my decision to allocate randomly could have an effect.   What vote pushes a candidate past 50%?

In our sample, we end up with

  • Mint Chocolate Chip at 48%
  • Chocolate Chip Cookie Dough at 45%.
  • And a three way tie at the bottom of :Cookies and Cream, Neapolitan (not a flavor), and Strawberry.
  • We also have Vanilla, Rocky Road, and chocolate chip in slightly more numbers.

I randomized, the bottom three for elimination.

ICE CREAM: RANK CHOICE VOTING

AND THE WINNER IS……

MINT CHOCOLATE CHIP!

 

In the end, of the 219 who turned in a ballot, 144 of them remained as non-exhausted or non-disqualified for a “rule” violation.   We lost one third of the ‘voters’.

However “51%” of the ballots choose Mint Chocolate Chip.

In the end, RCV remains confusing and complex.  The devil is in the details.

I am 100% positive that I have messed this up 10 different ways – yet I still declared a “winner.”

THAT, my friends, is the challenge.  As we have seen in New York – complexity can cast a shadow and lead to questions.    And that shadow leads to candidates and their teams casting doubts on the process.

How does that manifest itself?  Just like this statement from Adams in NYC:

CONCLUSION

The United States with its low trust in government and its institutions, is not ready for Ranked Choice Voting. 

RCV’s complexity and delays in counting could cast further doubts on the election process at a time when we just can’t afford it.

I look forward to your corrections, comments, because Lord knows, this is a mess.

Ranked Choice Voting – I am starting over!

As with some projects, and especially some coding projects, it is better to shut the lap – top and go for a walk.  Then start all over. That is where I find myself now. I was doing some additional research in how to account for ties: There are three ways – three different ways jurisdictions are handling this issue, and honestly, that is going to be an issue for RCV in moving forward.
  • Decided by lot
  • Most votes in previous round
  • Predetermined tie-breaking order and include in configuration or algorithm.
In fact, we have different jurisdictions defining ‘winner’ differently.  Does a candidate win when they hit 50% + X.  With X being a fractional amount or a whole number. Anyway, I am starting over after learning a lot – it is crucial to account for the ‘exceptions’ because democracy is messy as hell., and ain’t as easy as 1-2-3.
Ranked Choice Voting – I am about to give up

Ranked Choice Voting – I am about to give up

I am frustrated.  What should have been an easy 1-2-3 project has turned into a mess.

It seems by offering people ranking, people are getting to the point of “throwing” away their votes – even may be enjoying it.

Just when I think we are making progress towards declaring a winner, the dreaded write-ins come into play AND we are losing people along the way with their votes becoming spoiled or exhausted.   We are at the point were we are exhausting ballots of those who picked 5 – and none of them are cracking the top 10.

Take for example this round, we eliminated “Pitstachio” (which is a damn fine flavor, sorry to see it go….) however, Pitaschio voters are a non-compromising bunch – writing in “Green Tea” and “Birthday Cake” (which had already been eliminated).

In attempting to code this, I seem to be spending an incredibly inordinate amount of time dealing with write ins and “exceptions”.  While this is not abnormal for coding, it is reducing my enthusiam…and we persist.

But really – damn it, I want to know the “answer” not continue to deal with Pistachio’s garbage.

I am at the point, were I am going to run the code and not paste each round.  Next post will declare the winner….

Stay tuned….

Ranked Choice Voting – NOW WHAT

Ranked Choice Voting – NOW WHAT

WE ALL SCREAM FOR ICE CREAM!

I thought this was going to be easy….it is not.  It is complicated and it goes back to the old saying “those who county the votes…..”

Here is the challenge, again suppose to be easy….you eliminate the bottom vote getter and re-allocate their next choice.

Great – from last round we eliminate

Chocolate Peanut Butter

Then Neapolitan….

OK

Then we have a tie….again….in this case the random number generator says we should eliminate Strawberry.

Side / authors note:  Neapolitan.  It isn’t even a FLAVOR – it is a trash “flavor” for those who can’t make a decision. Come one, cowboy up and make yup your mind!

So we eliminate Strawberry.   We should be moving on and making progress – next for elimination is Chocolate Chip.  RIGHT?

DARN IT – Now we have another issue.  These Strawberry ranked choice voters are making my life hellish.

Eliminated Next Vote
Strawberry Chocolate
Strawberry Chocolate Chip Cookie Dough
Strawberry Cookies and Cream
Strawberry Rocky Road
Strawberry Cookies and Cream
Strawberry Vanilla
Strawberry Butter Pecan
Strawberry Mint Chocolate Chip

Some of the Strawberry’s next votes are for flavors that have already been eliminated!

What to do now?

Do I add these flavors back into the count and start eliminating from the smallest again?

Do I spoil those ballots, if you insist on voting for a crazy flavor with zero chance of winning, do I spoil your ballot now since that choice has already been eliminated? OR do I keep on applying them until the ballot is exhausted (remember, you only get 5 choices).

In this case, because I am a kind and benevolent dictator, I am NOT going to spoil the ballot and play it out to the end, but know this – I don’t like you.

Stay tuned…..