So I started reading Nate Silver's book and got jealous. I wanted to make my own election model. So I did.
Here's the details: I took all the polls from January in all fifty states and smoothed them using a piecwise cubic interpolation. I then performed a principal components analysis on these data to find states that tended to be correlated (to reduce the number of independent variables). I found there were ~ 7 distinct groupings of states. These 7 groups tended to exhibit similar statistical properties.
Using the last four polls from each state, I estimated the mean spread between Obama and Romney for each state, as well as the standard deviation of these spreads.
I drove each group of 7 with different normal distributions of noise, scaling each noise driving process with the appropriate state based standard dev and adding in the approprate mean spread for each state. To be conservative, I scaled the standard deviation by a factor of two (to increase out uncertainty in each state).
Running the model 1000 times I found the following results:
84% win percentage for Obama.
An average value of 313.6 electoral votes.
A maximum likelihood of 332 electoral votes for Obama (although this likelihood was ~ 15%, so there are clearly many other fairly likely winning combinations for Obama).
If I use the actual standard deviation values, rather than the conservative scaled values, the win percentage goes to 98%.
I'm very happy with the 332 electoral votes as the maximum likelihood projection. I should put up a color graphic of the states. I'm not Nate Silver, but for something I threw together in a few nights it isn't all that bad.
I'll try and work on extending this for the mid terms. Maybe we'll have something to brag about.