Update: For some reason Poll #2 is the only visualization that comes up, no matter which link is clicked. I’m trying to figure out why…
In June I attended the “Summer Camp for Grownups” at NYU’s Interactive Telecommunications Program. I liked it so much I was able to convince the administration to put me on the wait list for their Master’s program, but alas a space didn’t open up. I am applying again for 2011.
We campers were encouraged to organize our studies around an original project. People came up with amazing ideas, from a tie with embedded infrared LEDs which were invisible to the naked eye but showed up on camera, to a Lego mindstorm vehicle that responded to sound from one side and light from the other, so people on opposite sides could play tug-of-war with their voice and a flashlight.
Since I wanted to gain some programming experience, I decided to dive in and program a data visualization for Range Voting. RV (also known as Score Voting) is a method of voting that we are all familiar with, though it has never been used in a political context. Each candidate is given a score on a numeric scale by each voter, and the candidate with the highest average wins. Each time you rate a book on Amazon (or a hottie on Hot or Not) you are casting an RV ballot. RV solves most of the pathologies that are associated with the Plurality Vote (which we use in most elections) such as the Spoiler Effect – where similar candidates can ‘split the vote’ and throw the election to a candidate with less popular positions.
I had already discovered an online tool for administering Range Voting elections. It’s a nice tool, but the results are presented in a table which is very hard to read. The data that results from a Range Voting election is very rich, and I wanted to present it in a more visually-appealing and useful way. So I wrote the following sketch in Processing. (There is one piece which remains unfinished – scraping the data from the SuperDuperApps site. For the moment, I’m using data from three mock elections I presented to the other ITP campers, and entered by hand into the sketch).
Poll #1: Best President of the past 50 years
I think the visualization is pretty self-explanatory. Each bubble represents one candidate, and the location on the X axis corresponds with that candidate’s average score – the winner is on the far right. Clicking each bubble will give you a histogram of that candidate’s scores.
The slider on the right determines the threshold for drawing a ‘link’ between candidates. By doing a pairwise comparison of each voter’s rating of any two candidates, and taking the average difference, you can see how similar the electorate feels the two candidates are to one another (the lower the average difference, the more similar the candidates are perceived to be). By adjusting the slider bars, you can see which candidates cluster together into natural ‘parties.’
Pressing ‘t’ brings you to a table which can be sorted by column. The standard deviation of each candidate is included as a relative measure of how controversial he is. A candidate who is loved by some and hated by others will have scores which vary widely across the scale, and hence a high StdDv. A candidate who receives the exact same score from every voter has a StdDv of 0 – whether they love him or hate him, the voters are in perfect agreement over his desirability.
Candidates who are crossed out have not received a quorum – their total points are less than half the winner’s. This is a hedge against the (extremely unlikely) victory of a ‘stealth candidate’ – someone unknown to most of the electorate, but who receives a handful of very high scores, and thus the highest average.
With the electorate consisting of students in an arts and technology school in New York City, the Republicans never had a chance. But I was surprised at how cleanly the two clusters of candidates fell. The Democratic and the Republican party clusters are almost completely interconnected before any link ‘crosses the gap’ (Gerald Ford and Jimmy Carter are the most similar of the opposed parties, with an average difference of 21.92 – interestingly, just a touch closer than George H. W. Bush and George W. Bush).
Poll #2: Random Things Poll
I really liked this poll – there were some entertaining results. First, there was a tie – Object-Oriented Programming and Zombies both received exactly 967 points in 16 votes, for an average of 60.44. But Zombies had a much higher standard deviation – they were (not surprisingly) more controversial.
Second, if you move the upper threshold slider to about 15, you see that two very interesting clusters have formed. Slightly more successful in this election is the Zeppelins/Saturn/Winged Monkeys with Fezzes/Zombies axis (which might want to consider formally joining together as the Flash Gordon party). Close behind them is the more staid alliance of Canada/Baseball/Dave Eggers/Object-Oriented Programming. In fact, these four are the least controversial of the field, suggesting a good campaign slogan: We’re Boring, But You Can Trust Us.
I was also amused to see that Eels were better-loved than Small Dogs, and Zombies are associated more closely with Canada than Gothic Horror. Designer Clothes for Children were gratifyingly dumped into the purgatory they deserve.
I did not, by the way, choose these items with any thought of how they might match up. I just rattled off a bunch of random ‘candidates,’ and let the votes fall where they may. The ‘logic’ of these connections resulted entirely from combining the independent impressions the voters.
Poll #3: Best Movie of 2009
This poll suffers from insufficient data. I included twenty movies as candidates, and with only seventeen voters, many of the movies were scored only two or three times. This makes for some weird results, like the tight trifecta of Crazy Heart, Drag Me To Hell, and Adventureland…
(Of course, I should note that all three polls had fewer than 20 voters. I was pleased that any intelligible patterns were able to emerge at all.)
There are still a handful of features I’d like to add when I can find time, but overall I was really pleased with the outcome. I’d like to see it in action on a much larger poll – I think the histogram feature would be much more interesting with thousands of votes cast.