Well, I can't answer the "accuracy" question with any certainty. However, being the database geek that I am, I can crunch numbers.
I took the poll data from RealClearPolitics and tossed them into an SQLite database; you can download the database itself here. Taking the latest poll data, here's what the election results look like if the percentage points are skewed in one direction or another.
| Skew | Obama | McCain | Undecided | Result |
| McCain +6 | 263 | 276 | 0 | McCain |
| McCain +5 | 263 | 215 | 61 | No winner |
| McCain +4 | 324 | 182 | 33 | Obama |
| McCain +3 | 357 | 182 | 0 | Obama |
| McCain +2 | 357 | 182 | 0 | Obama |
| McCain +1 | 357 | 182 | 0 | Obama |
| No Skew | 357 | 168 | 14 | Obama |
| Obama +1 | 371 | 168 | 0 | Obama |
| Obama +2 | 371 | 168 | 0 | Obama |
| Obama +3 | 371 | 168 | 0 | Obama |
| Obama +4 | 371 | 168 | 0 | Obama |
| Obama +5 | 371 | 158 | 10 | Obama |
| Obama +6 | 381 | 132 | 26 | Obama |
In case you want to play with the database:
ELECTORAL_VOTES contains a mapping from state to number of electoral votes for that state (state, votes).
POLLS contains a listing of each poll; the rows contain: state, poll_date, poll_name, obama, mccain.
LATEST_POLLS is a view containing the latest polls from POLLS.
SKEW is a table containing the integers from -6 to 6.
The query to produce the above table is:
select skew, sum(obama_votes), sum(mccain_votes), ifnull(sum(undecided_votes), 0)
from (select skew, (mccain - obama > skew) * votes mccain_votes,
(mccain - obama < skew) * votes obama_votes,
(mccain - obama = skew) * votes undecided_votes
from latest_polls
cross join skew order by skew) group by skew;
No comments:
Post a Comment