This is a Stan implementation of Drew Linzer's dynamic Bayesian election forecasting model, with some tweaks to incorporate national poll data, pollster house effects, correlated priors on state-by-state election results and comovement of public opinion across states.
The model is presented briefly at the end of report.html
.
runmodel.R
downloads poll data from the HuffPost Pollster API, processes the data, and runs the Stan model in state and national polls.stan
.
report.Rmd
is a Rmarkdown document used to automatically generate the graphs/tables/maps in report.html
and relies on graphs.R
.
- Clone this repository.
- Install the required R packages (listed below)
- Remove or comment out the lines in
graphs.R
,runmodel.R
andreport.Rmd
that readsetwd("~/GitHub/polls")
. - Optionally, modify line 2 of
runmodel.R
to use a number of cores that is less than all available (e.g., `options(mc.cores = parallel::detectCores()
- 1)` to leave one core free for multitasking
- In an R session, run
source("runmodel.R")
curl
dplyr
DT
ggplot2
ggrepel
knitr
lubridate
mapproj
maps
mvtnorm
purrr
reshape2
rmarkdown
rstan
shinystan
stringr
tidyr