2024-election-modelling/README.md

110 lines
4.7 KiB
Markdown
Raw Normal View History

2024-04-14 18:06:02 +00:00
# Nuño's simple electoral college simulator
2024-04-14 18:06:02 +00:00
## About
2024-04-14 18:06:02 +00:00
This is a simple model of the US electoral college. It aims to be conceptually simple and replicable. Currently, it incorporates data from the electoral history in each state, since the 2000 election, as well as polls, if they exist.
Other projects, like [538](https://en.wikipedia.org/wiki/FiveThirtyEight), [Nate Silver's substack](https://www.natesilver.net/) or [Gelman's model](https://github.com/TheEconomist/us-potus-model) are to this project as a sportscar is to a walking stick. They are much more sophisticated, and probably more accurate. However, they are also more difficult to understand and to design.
## How to run
### Prerequisites
This model is written in go, an elegant language developed by Rob Pike, Ken Thompson and Robert Griesemer at Google. You can find installation instructions for all major platforms [here](https://go.dev/dl/). The website this
Once you have go and git, you install the model with
```
git clone [repo]
cd 2024-election-modelling
go install
```
And run the model with:
```
go run main.go
```
In addition, on Linux you can update the polls with make:
```
make polls
```
## What stories does the model tell?
### The naïve baserate story
2024-04-14 18:06:02 +00:00
Consider Ohio. Bush won the state in 2000 and 2004, Obama in 2008 and 2012, and Trump again in 2016 and 2020. The base rate, the historical frequency for republicans in Ohio is therefore 4/6.
2024-04-14 18:06:02 +00:00
A straightforward way of getting at a probability of an electoral college win is to just take the historical frequency for each state, and sample from it many times, and then build up the different electoral college results from those samples.
2024-04-14 18:06:02 +00:00
If we do so, however, Republicans end up with only a 25% chance of winning the 2024 election.
2024-04-14 18:06:02 +00:00
Why is this? Well, consider the number of electoral college votes in the last few elections:
2024-04-14 18:06:02 +00:00
| Year | Republican electoral college votes | Democrat electoral college votes |
| ---- | --- | --- |
| 2000 | 271 | 266 |
| 2004 | 286 | 251 |
| 2008 | 173 | 365 |
| 2012 | 206 | 332 |
| 2016 | 304 | 227 |
| 2020 | 232 | 232 |
2024-04-14 18:06:02 +00:00
Essentially, Obama won by much more than Bush, Trump or Biden. But our naïve model doesn't see that those results were correlated.
So the story here is that our model is not very sophisticated. But another might be that Obama was much more popular than Biden, and if Democrats can tap into that again, they will do better.
### The polls story
If we only look at polls (and use baserates when there are no polls—which happens for states like Alabama, which lean strongly towards one party already), this time the Republicans win by a mile: with 95% probability.
What's happening here is that:
- There aren't that many polls yet
- For the polls that do exist, Trump polling very well in Pennsylvania, Wisconsin, Arizona, Michigan, Florida, Nevada, Georgia, North Carolina
- Trump is also polling decently in Minessota; Biden is polling well in Colorado
- In part, this is because Biden is just [unpopular](https://projects.fivethirtyeight.com/biden-approval-rating/), or at least more than [Trump](https://projects.fivethirtyeight.com/polls/favorability/donald-trump/)
- In part though, polls currently also ask about the third party vote: for Robert F. Kennedy, Kayne West and Jill Stein (Green party).
- In a normal democracy, like in Spain, a protest party could amass some electors, and use them as bargaining chips to govern together with one of the other major parties. For instance, this is what happened with Ciudadanos in Spain. Perhaps third parties performing strongly could conceivably, create pressure to reform the US electoral system.
- In the US, with the system as currently exists, these votes seem to favour Trump.
## Roadmap
### To do
- [ ] Print states & polls separately
- [ ] Add graphs
- [ ] Consider conditional probabilities
- See how other models account for the correlation
- [ ] Add uncertainty using Laplace's law of succession?
- Maybe only do this for contested states? Alabama is not going to turn Democratic?
2024-04-14 18:06:02 +00:00
- [ ] Exclude partisan polls => not that many of them
- [ ] Histogram distributions of electoral college votes
2024-04-14 18:06:02 +00:00
### Done
Incorporate base rates:
- [x] Get past electoral college results since 2000
- [x] Get number of electors for each state with the new census
- [x] Combine the two to get an initial base rates analysis
Consider polls:
2024-04-14 13:58:18 +00:00
- [x] Download and format
- [x] Read
- [x] Add date of poll
2024-04-14 16:03:27 +00:00
- [x] Consider what the standards error should be
- [x] Consider how to aggregate polls?
- One extreme: Just look at the most recent one
- [x] Another extreme: Aggregate very naïvely, add up all samples together?
2024-04-14 16:03:27 +00:00
- [x] Aggregate polls?
- [x] Exclude polls older than one month?
2024-04-14 18:06:02 +00:00
General
2024-04-14 16:03:27 +00:00
2024-04-14 18:06:02 +00:00
- [x] Work on README