5.0 KiB
party2d
Code and processed model inputs for generating two-dimensional party-position estimates from text and expert data. The model combines manifesto and media text indicators with expert survey placements in a Bayesian dynamic item-response framework.
Repository contents
data-setup/— source download, source-file checks, and rebuild workflow for raw files that cannot be redistributed here.src/julia/— Stan data preparation, model fitting, post-estimation, enrichment, and validation.models/— Stan model specification.data/— processed party-level inputs used by the Julia/Stan model.metadata/— data dictionary and source-support documentation.diagnostics/— repository diagnostics report regenerated after model estimation.data/releases/— release-ready data files, checksums, and diagnostics report.
Processed inputs needed by the model are included in data/ so the estimation step can be reproduced from the model-ready data.
Source data and redistribution
The public repository does not contain the original raw/source files. Several inputs are third-party datasets with their own terms of use, and the Morgan historical file is a local OCR/transcription source. Instead, this repository provides:
- committed model-ready inputs in
data/, sufficient for fitting the Julia/Stan model; and data-setup/, an R/Shell workflow that downloads script-accessible sources, checks locally supplied raw sources, and rebuilds comparable model-ready inputs locally.
data-setup/ downloads script-accessible sources and checks locally supplied sources for:
- PolDem
- PartyFacts crosswalk
- CHES family files
- POPPA from Harvard Dataverse
- Global Party Survey 2019 from Harvard Dataverse
- V-Party through the provider's download form
Two inputs require user-provided access/material:
- Manifesto Project: users must obtain the source data through their own Manifesto Project access.
- Morgan historical expert data:
morgan_positions_raw.csvis not publicly downloadable; it can be provided on request and should be placed locally under_local/raw/morgan/.
The setup workflow never overwrites committed files in data/. See data-setup/README.md for exact commands and source details.
Run the full source-data setup workflow with:
bash data-setup/run_data_setup.sh
This downloads script-accessible source files, checks required local files, rebuilds model-ready inputs locally, and writes a comparison report. Manifesto Project requires your own provider access, and the Morgan OCR/transcription file can be provided on request.
Running the pipeline
Run the full workflow with:
bash run_estimation.sh full
This checks that model-ready inputs are present, then executes the Julia/Stan workflow scripts:
bash scripts/01_prepare_data.sh # checks model-ready inputs; does not rebuild raw data
bash scripts/02_fit_model.sh
bash scripts/03_extract_estimates.sh
bash scripts/04_enrich_estimates.sh
bash scripts/05_validate_estimates.sh
The numbered scripts can also be run manually in that order.
The Bayesian model is computationally expensive. The production run used 4 cores on an AMD Ryzen 9 7945HX and took 60,372 seconds, approximately 16 hours 46 minutes.
If model output is already available, rebuild estimates without refitting Stan:
bash run_estimation.sh reuse
reuse verifies the model-ready inputs, then reruns post-estimation, enrichment, and validation while skipping the Stan fitting step.
To check the local setup without fitting the model, run:
bash run_estimation.sh dry-run
After estimation and validation have been run, regenerate the diagnostics report with:
Rscript diagnostics/generate_diagnostics.R
The report is written to diagnostics/generated/diagnostics_report.pdf and copied to data/releases/party_2d_diagnostics_report_v0.pdf.
Data inputs
The model-ready inputs are included under data/:
text_data.csvexpert.csvlr_data.csvunion_mapping.csvparty_families.csv
Original raw source files are not redistributed. Rebuilding inputs from raw files is separate from the normal estimation workflow and never replaces committed data/ inputs automatically.
Output dimensions
The two position dimensions are scaled from 0 to 1:
- Economic left-right: economic left to economic right.
- Cultural cosmopolitan--traditionalist: cosmopolitan to traditionalist.
Column definitions are in metadata/data_dictionary.csv.
Release files
The public release assets are:
party_2d_election_year_panel_v0.zipparty_2d_annual_model_output_v0.zipparty_2d_diagnostics_report_v0.pdfSHA256SUMS
SHA256SUMS hashes the release assets listed above.
License
This release uses the Creative Commons Attribution 4.0 International License
(CC BY 4.0), the standard open license expected for Scientific Data data
descriptors. The license applies to release materials created for this
repository; third-party source data remain governed by their own terms. See
LICENSE.