Publish party-position estimates and validation materials
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# Predeclared case-selection rules
|
||||
|
||||
These rules were recorded before inspecting the selected parties' position estimates.
|
||||
|
||||
## Trajectory figure
|
||||
|
||||
The figure will use parties selected for cross-national recognition, family diversity, long election coverage, and relevance to interpreting movement on the two scales. Selection is not based on the magnitude of the estimated movement.
|
||||
|
||||
Preselected parties:
|
||||
|
||||
- Germany: Social Democratic Party of Germany (PartyFacts 383)
|
||||
- Germany: Christian Democratic Union (PartyFacts 1375)
|
||||
- United Kingdom: Labour Party (PartyFacts 1516)
|
||||
- United Kingdom: Conservative Party (PartyFacts 1567)
|
||||
- Denmark: Social Democratic Party, short name SD (PartyFacts 379)
|
||||
- Sweden: Sweden Democrats (PartyFacts 409)
|
||||
- United States: Democratic Party (PartyFacts 432)
|
||||
- United States: Republican Party (PartyFacts 809)
|
||||
|
||||
The final display may use a subset only to preserve legibility, but exclusions must be based on panel layout or insufficient coverage rather than unattractive results. Both posterior means and 95% latent-position credible intervals will be shown. Text will not infer a cause of movement from the estimates alone.
|
||||
|
||||
## Two-dimensional landmarks
|
||||
|
||||
Landmarks will be selected from recognizable party-election cases, with representation of economically left/right, culturally cosmopolitan/traditionalist, and moderate combinations. Target years are declared before checking exact positions; if the requested year is absent, the nearest election within three years will be used and disclosed.
|
||||
|
||||
- German Social Democratic Party: 1972 and 2021
|
||||
- German Christian Democratic Union: 1983 and 2021
|
||||
- UK Labour Party: 1983 and 1997
|
||||
- UK Conservative Party: 1979 and 2019
|
||||
- Swedish Social Democratic Labour Party (PartyFacts 487): 1994 and 2022
|
||||
- Sweden Democrats: 2010 and 2022
|
||||
- French National Front (PartyFacts 433): 1988 and 2022
|
||||
- German The Left (PartyFacts 1545): 2021
|
||||
- US Democratic Party: 2020
|
||||
- US Republican Party: 2020
|
||||
|
||||
Labels may be pruned only to avoid overlap. The plotting-data table will retain all declared cases, including missing cases and substitutions.
|
||||
@@ -0,0 +1,13 @@
|
||||
id,topic,input,output,status
|
||||
1,country coverage,release v0 election-year panel,metadata/country_coverage_v0.csv,complete
|
||||
2,scale trajectories,release v0 election-year panel,validation/figures/party_trajectories.pdf,complete
|
||||
3,landmark party space,release v0 election-year panel,validation/figures/party_landmarks.pdf,complete
|
||||
4,research workflow,documented source and release workflow,validation/figures/research_workflow.pdf,complete
|
||||
5,party-blocked validation,guarded blocked fit with 82 parties and completed post-estimation extraction,validation/outputs/blocked_validation_summary.csv,complete_with_convergence_limitation
|
||||
6,predictive coverage,production posterior run run_2026-06-12_09-34-03,validation/outputs/ppc/posterior_predictive_by_dimension_item.csv,complete
|
||||
7,predictive calibration curve,production posterior run run_2026-06-12_09-34-03,validation/outputs/ppc/posterior_predictive_calibration_curve.csv,complete
|
||||
8,predictive residual patterns,production posterior predictive observations,validation/outputs/ppc/posterior_predictive_residual_patterns.csv,complete
|
||||
9,V-Party sensitivity,completed no-V-Party fit ending 2026-06-05_14-57-17,validation/outputs/vparty_sensitivity_groups.csv,complete
|
||||
10,V-Party subgroup sensitivity,completed no-V-Party fit ending 2026-06-05_14-57-17,validation/outputs/vparty_sensitivity_groups.csv,complete
|
||||
11,pooled source-support balance,release v0 election-year panel,validation/outputs/source_support_pooled.csv,complete
|
||||
12,partially pooled source-support heterogeneity,release v0 election-year panel,validation/outputs/source_support_interactions.csv,complete
|
||||
|
@@ -0,0 +1,30 @@
|
||||
# Validation materials
|
||||
|
||||
This directory contains reproducible validation code, party-blocked sensitivity analyses, posterior predictive checks, subgroup balance diagnostics, and figure-generation scripts for the party-position panel.
|
||||
|
||||
All analyses preserve the production release (`v0`, production run `run_2026-06-12_09-34-03`). Existing posterior draws and completed sensitivity fits are reused wherever possible. The party-blocked expert validation tests prediction for parties whose expert evidence is entirely excluded from estimation.
|
||||
|
||||
## Inputs
|
||||
|
||||
- `data/releases/party_2d_election_year_panel_v0.csv.gz`
|
||||
- `data/releases/party_2d_annual_model_output_v0.csv.gz`
|
||||
- production posterior run `run_2026-06-12_09-34-03`
|
||||
- completed no-V-Party sensitivity output `party_positions_2026-06-05_14-57-17.csv`
|
||||
- model-ready input files in `data/`
|
||||
|
||||
Large model runs and their chains remain outside Git. This package contains the scripts, manifests, diagnostics, grouped summaries, plotting data, and figures needed to inspect and reproduce the published validation results. Two large row-level intermediate tables used during post-estimation are intentionally excluded; the retained grouped summaries and scripts document all reported calculations.
|
||||
|
||||
## Computational notes
|
||||
|
||||
The validation fit retains the production warmup length and four-chain design but uses 1,000 retained iterations per chain (4,000 draws total), rather than 2,000 for the production release. The scripts record immutable train/test identifiers and input hashes before fitting and use existing posterior draws for descriptive and posterior-predictive analyses where applicable.
|
||||
|
||||
## Reproduction Entry Points
|
||||
|
||||
- `run_postprocessing.R`: country coverage, scale illustrations, V-Party sensitivity and partially pooled source-support diagnostics.
|
||||
- `validate_uncertainty.jl`: production-chain predictive coverage, calibration and source/item/country/decade breakdowns.
|
||||
- `prepare_blocked_validation.jl`: deterministic party-blocked train/test construction.
|
||||
- `run_blocked_validation.sh`: guarded low-priority fit with disk, duplicate-process, toolchain and logging checks.
|
||||
- `monitor_long_run.sh`: non-invasive status, child-process, disk and recent-log monitoring.
|
||||
- `finalize_blocked_validation.sh`: guarded post-estimation, held-out summaries and compact diagnostic-manifest collection after the fit succeeds.
|
||||
- `summarize_blocked_validation.jl`: held-out prediction records and grouped performance summaries after the fit.
|
||||
- `plot_workflow.R`: data-processing workflow schematic.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Executable
+68
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)"
|
||||
cd "$repo_root"
|
||||
|
||||
if [[ "${PARTY2D_APPROVE_POSTESTIMATION:-}" != "YES" ]]; then
|
||||
echo "Refusing to read chains or run post-estimation without explicit approval." >&2
|
||||
echo "After approval, rerun with PARTY2D_APPROVE_POSTESTIMATION=YES." >&2
|
||||
exit 64
|
||||
fi
|
||||
|
||||
run_dir="${1:-$repo_root/_local/validation/blocked_party}"
|
||||
summary_dir="${2:-$repo_root/validation/outputs}"
|
||||
estimation_dir="$run_dir/estimations"
|
||||
|
||||
if [[ ! -f "$run_dir/model_fit.complete" ]]; then
|
||||
echo "Refusing to finalize: the guarded fit is not marked complete." >&2
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -f "$run_dir/model_fit.exit_code" ]] || [[ "$(tr -dc '0-9' < "$run_dir/model_fit.exit_code")" != "0" ]]; then
|
||||
echo "Refusing to finalize: the guarded fit has no successful exit code." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mapfile -t model_runs < <(find "$run_dir/model_run/latest" -mindepth 1 -maxdepth 1 -type d -name 'run_*' 2>/dev/null | sort)
|
||||
if [[ "${#model_runs[@]}" -eq 0 ]]; then
|
||||
# The production saver currently writes its run under the repository-level
|
||||
# output directory even when --data-dir points at a validation workspace.
|
||||
# Match the completed fit by timestamp instead of relying on "latest" alone.
|
||||
fit_started="$(tr -d '\r\n' < "$run_dir/model_fit.started")"
|
||||
fit_completed="$(tr -d '\r\n' < "$run_dir/model_fit.complete")"
|
||||
mapfile -t model_runs < <(find "$repo_root/outputs/model_outputs/latest" -mindepth 1 -maxdepth 1 -type d -name 'run_*' -newermt "$fit_started" ! -newermt "$fit_completed" | sort)
|
||||
fi
|
||||
if [[ "${#model_runs[@]}" -ne 1 ]]; then
|
||||
echo "Expected exactly one blocked model run; found ${#model_runs[@]}." >&2
|
||||
printf '%s\n' "${model_runs[@]}" >&2
|
||||
exit 1
|
||||
fi
|
||||
model_run="${model_runs[0]}"
|
||||
|
||||
mkdir -p "$estimation_dir" "$summary_dir/blocked_fit_diagnostics"
|
||||
nice -n 10 julia --project=. src/julia/02_post_estimation.jl \
|
||||
--run-dir "$model_run" --output-dir "$estimation_dir" \
|
||||
2>&1 | tee "$run_dir/post_estimation.log"
|
||||
|
||||
mapfile -t position_files < <(find "$estimation_dir" -maxdepth 1 -type f -name 'party_positions_*.csv' | sort)
|
||||
if [[ "${#position_files[@]}" -ne 1 ]]; then
|
||||
echo "Expected exactly one blocked position file; found ${#position_files[@]}." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
julia --project=. validation/summarize_blocked_validation.jl \
|
||||
"${position_files[0]}" "$run_dir" "$summary_dir" \
|
||||
2>&1 | tee "$run_dir/blocked_summary.log"
|
||||
|
||||
cp "$model_run/metadata.json" "$summary_dir/blocked_fit_diagnostics/metadata.json"
|
||||
cp "$model_run/diagnostics/run_metrics.json" "$summary_dir/blocked_fit_diagnostics/run_metrics.json"
|
||||
cp "$run_dir/blocked_validation_manifest.csv" "$summary_dir/blocked_fit_diagnostics/blocked_validation_manifest.csv"
|
||||
cp "$run_dir/blocked_validation_strata.csv" "$summary_dir/blocked_fit_diagnostics/blocked_validation_strata.csv"
|
||||
cp "$run_dir/blocked_parties.csv" "$summary_dir/blocked_fit_diagnostics/blocked_parties.csv"
|
||||
cp "$run_dir/input_sha256sums.txt" "$summary_dir/blocked_fit_diagnostics/input_sha256sums.txt"
|
||||
cp "$run_dir/model_fit.environment" "$summary_dir/blocked_fit_diagnostics/model_fit.environment"
|
||||
cp "$run_dir/stanc_version.txt" "$summary_dir/blocked_fit_diagnostics/stanc_version.txt"
|
||||
|
||||
echo "Blocked validation finalized from: $model_run"
|
||||
echo "Position file: ${position_files[0]}"
|
||||
echo "Summary directory: $summary_dir"
|
||||
@@ -0,0 +1,146 @@
|
||||
============================================================
|
||||
UNCERTAINTY VALIDATION: Posterior Predictive Coverage
|
||||
============================================================
|
||||
Following Claassen (2019) validation framework
|
||||
Posterior predictive intervals account for both position
|
||||
uncertainty AND observation-level measurement noise.
|
||||
|
||||
Using specified run directory: /projects/party4d/archive/party2d_replication/outputs/model_outputs/latest/run_2026-06-12_09-34-03
|
||||
Loaded expert_dim.csv: 22994 observations
|
||||
Unique rr values: 4261
|
||||
Item indices (var_exp_dim): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
|
||||
Dimensions (dim_idx_exp): [1, 2]
|
||||
|
||||
Loading 4 chain files (selective columns)...
|
||||
Need 8547 columns (4261 rr × 2 dims + 24 item params + 1 phi)
|
||||
Found 8547/8547 columns in chains
|
||||
Loading chain 1: chain_1.csv... 2000 samples, 39.3s
|
||||
Loading chain 2: chain_2.csv... 2000 samples, 22.4s
|
||||
Loading chain 3: chain_3.csv... 2000 samples, 24.5s
|
||||
Loading chain 4: chain_4.csv... 2000 samples, 16.7s
|
||||
Combined: 8000 total posterior draws
|
||||
|
||||
V5 detected: using Beta(phi*K*mu, phi*K*(1-mu)) with per-observation K
|
||||
Computing posterior predictive coverage (95% level)
|
||||
Expert observations: 22994
|
||||
Posterior draws: 8000
|
||||
|
||||
Progress: 5.0% (1149 / 22994)
|
||||
Progress: 10.0% (2298 / 22994)
|
||||
Progress: 15.0% (3447 / 22994)
|
||||
Progress: 20.0% (4596 / 22994)
|
||||
Progress: 25.0% (5745 / 22994)
|
||||
Progress: 30.0% (6894 / 22994)
|
||||
Progress: 35.0% (8043 / 22994)
|
||||
Progress: 40.0% (9192 / 22994)
|
||||
Progress: 45.0% (10341 / 22994)
|
||||
Progress: 50.0% (11490 / 22994)
|
||||
Progress: 55.0% (12639 / 22994)
|
||||
Progress: 60.0% (13788 / 22994)
|
||||
Progress: 65.0% (14937 / 22994)
|
||||
Progress: 70.0% (16086 / 22994)
|
||||
Progress: 75.0% (17235 / 22994)
|
||||
Progress: 80.0% (18384 / 22994)
|
||||
Progress: 84.9% (19533 / 22994)
|
||||
Progress: 89.9% (20682 / 22994)
|
||||
Progress: 94.9% (21831 / 22994)
|
||||
Progress: 99.9% (22980 / 22994)
|
||||
Progress: 100.0% (22994 / 22994)
|
||||
|
||||
============================================================
|
||||
POSTERIOR PREDICTIVE COVERAGE (95%)
|
||||
============================================================
|
||||
|
||||
economic left-right : 89.8% [89.1%, 90.5%] (6698/7455)
|
||||
|
||||
By survey source:
|
||||
Project N PPC
|
||||
V-Party 5645 87.5%
|
||||
CHES 1177 97.3%
|
||||
POPPA 384 98.7%
|
||||
GPS 249 94.0%
|
||||
|
||||
By decade:
|
||||
Decade N PPC
|
||||
1970 658 88.1%
|
||||
1980 712 88.9%
|
||||
1990 1454 88.0%
|
||||
2000 1758 89.4%
|
||||
2010 2407 90.2%
|
||||
2020 466 99.1%
|
||||
|
||||
cultural cosmopolitan--traditionalist : 84.8% [84.2%, 85.3%] (13170/15539)
|
||||
|
||||
By survey source:
|
||||
Project N PPC
|
||||
V-Party 14114 83.8%
|
||||
CHES 1176 94.3%
|
||||
GPS 249 91.2%
|
||||
|
||||
By decade:
|
||||
Decade N PPC
|
||||
1970 1633 86.2%
|
||||
1980 1772 87.9%
|
||||
1990 3485 85.5%
|
||||
2000 3965 84.3%
|
||||
2010 4426 82.1%
|
||||
2020 258 97.7%
|
||||
Saved detailed posterior-predictive results to: revision/outputs/ppc
|
||||
|
||||
============================================================
|
||||
RECOMPUTING WITH 80% LEVEL (Claassen comparison)
|
||||
============================================================
|
||||
|
||||
V5 detected: using Beta(phi*K*mu, phi*K*(1-mu)) with per-observation K
|
||||
Computing posterior predictive coverage (80% level)
|
||||
Expert observations: 22994
|
||||
Posterior draws: 8000
|
||||
|
||||
Progress: 5.0% (1149 / 22994)
|
||||
Progress: 10.0% (2298 / 22994)
|
||||
Progress: 15.0% (3447 / 22994)
|
||||
Progress: 20.0% (4596 / 22994)
|
||||
Progress: 25.0% (5745 / 22994)
|
||||
Progress: 30.0% (6894 / 22994)
|
||||
Progress: 35.0% (8043 / 22994)
|
||||
Progress: 40.0% (9192 / 22994)
|
||||
Progress: 45.0% (10341 / 22994)
|
||||
Progress: 50.0% (11490 / 22994)
|
||||
Progress: 55.0% (12639 / 22994)
|
||||
Progress: 60.0% (13788 / 22994)
|
||||
Progress: 65.0% (14937 / 22994)
|
||||
Progress: 70.0% (16086 / 22994)
|
||||
Progress: 75.0% (17235 / 22994)
|
||||
Progress: 80.0% (18384 / 22994)
|
||||
Progress: 84.9% (19533 / 22994)
|
||||
Progress: 89.9% (20682 / 22994)
|
||||
Progress: 94.9% (21831 / 22994)
|
||||
Progress: 99.9% (22980 / 22994)
|
||||
Progress: 100.0% (22994 / 22994)
|
||||
|
||||
============================================================
|
||||
POSTERIOR PREDICTIVE COVERAGE (80%)
|
||||
============================================================
|
||||
|
||||
economic left-right : 75.9% [74.9%, 76.8%] (5655/7455)
|
||||
|
||||
By survey source:
|
||||
Project N PPC
|
||||
V-Party 5645 71.5%
|
||||
CHES 1177 90.1%
|
||||
POPPA 384 92.2%
|
||||
GPS 249 82.7%
|
||||
|
||||
By decade:
|
||||
Decade N PPC
|
||||
1970 658 69.3%
|
||||
1980 712 73.5%
|
||||
1990 1454 73.8%
|
||||
2000 1758 74.1%
|
||||
2010 2407 77.0%
|
||||
2020 466 95.7%
|
||||
|
||||
cultural cosmopolitan--traditionalist : 67.9% [67.1%, 68.6%] (10544/15539)
|
||||
|
||||
By survey source:
|
||||
Project N PPC
|
||||
Executable
+50
@@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
run_dir="${1:-_local/validation/blocked_party}"
|
||||
pid_file="$run_dir/model_fit.pid"
|
||||
log_file="$run_dir/model_fit.log"
|
||||
|
||||
if [[ ! -f "$pid_file" ]]; then
|
||||
echo "No PID file at $pid_file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pid="$(tr -dc '0-9' < "$pid_file")"
|
||||
echo "Run directory: $run_dir"
|
||||
echo "PID: $pid"
|
||||
date --iso-8601=seconds
|
||||
|
||||
if ps -p "$pid" >/dev/null 2>&1; then
|
||||
echo "Status: running"
|
||||
ps -o pid,ppid,etimes,%cpu,%mem,rss,vsz,stat,cmd -p "$pid"
|
||||
echo "Model processes:"
|
||||
julia_pid="$(pgrep -P "$pid" -f 'julia.*01_run_model[.]jl' | head -1 || true)"
|
||||
if [[ -n "$julia_pid" ]]; then
|
||||
process_ids="$pid,$julia_pid"
|
||||
while IFS= read -r child_pid; do
|
||||
[[ -n "$child_pid" ]] && process_ids="$process_ids,$child_pid"
|
||||
done < <(pgrep -P "$julia_pid" || true)
|
||||
ps -o pid,ppid,etimes,%cpu,%mem,rss,ni,stat,cmd -p "$process_ids"
|
||||
else
|
||||
ps -eo pid,ppid,etimes,%cpu,%mem,rss,ni,stat,cmd | awk -v p="$pid" '$2 == p || $1 == p'
|
||||
fi
|
||||
else
|
||||
echo "Status: not running"
|
||||
fi
|
||||
|
||||
echo "Latest sampler progress:"
|
||||
grep 'Iteration:' "$log_file" 2>/dev/null | tail -12 || true
|
||||
|
||||
echo "Recorded sampler events:"
|
||||
printf ' rejected-proposal exceptions: '
|
||||
grep -c '^Exception:' "$log_file" 2>/dev/null || true
|
||||
printf ' divergence messages: '
|
||||
grep -ci 'divergent transition' "$log_file" 2>/dev/null || true
|
||||
|
||||
echo "Disk use:"
|
||||
du -sh "$run_dir" _local/tmp/blocked_validation 2>/dev/null || true
|
||||
df -h "$run_dir" | tail -1
|
||||
|
||||
echo "Recent log:"
|
||||
tail -40 "$log_file" 2>/dev/null || true
|
||||
@@ -0,0 +1,83 @@
|
||||
party_id,country,region,first_expert_year,last_expert_year,expert_period,text_years,expert_rows,lr_rows,stratum,selected
|
||||
42,HU,Europe,2010,2024,2010s,3,33,6,Europe / 2010s,true
|
||||
96,SI,Europe,1992,2019,1990s,7,31,4,Europe / 1990s,true
|
||||
172,NL,Europe,1999,1999,1990s,5,2,1,Europe / 1990s,true
|
||||
216,MX,Latin America,1991,2020,1990s,8,74,1,Latin America / 1990s,true
|
||||
232,CA,North America,1972,2000,pre-1990,18,63,0,North America / pre-1990,true
|
||||
237,LT,Europe,2004,2019,2000s,4,36,4,Europe / 2000s,true
|
||||
281,BE,Europe,1971,1974,pre-1990,6,14,2,Europe / pre-1990,true
|
||||
284,PT,Europe,1987,2024,pre-1990,9,88,9,Europe / pre-1990,true
|
||||
292,BA,Europe,2002,2019,2000s,6,37,0,Europe / 2000s,true
|
||||
298,NL,Europe,2006,2024,2000s,5,42,7,Europe / 2000s,true
|
||||
306,TR,Europe,2002,2024,2000s,5,32,1,Europe / 2000s,true
|
||||
363,IS,Europe,1971,2024,pre-1990,23,103,9,Europe / pre-1990,true
|
||||
441,ES,Europe,1977,2024,pre-1990,15,116,9,Europe / pre-1990,true
|
||||
447,IL,Other,2021,2022,2020s,4,4,2,Other / 2020s,true
|
||||
466,CZ,Europe,1992,2024,1990s,8,72,8,Europe / 1990s,true
|
||||
472,SI,Europe,1990,2024,1990s,9,72,8,Europe / 1990s,true
|
||||
487,SE,Europe,1970,2024,pre-1990,24,123,18,Europe / pre-1990,true
|
||||
500,BE,Europe,1978,2024,pre-1990,12,102,9,Europe / pre-1990,true
|
||||
537,BA,Europe,1998,2019,1990s,8,51,0,Europe / 1990s,true
|
||||
557,IL,Other,1999,2003,1990s,3,14,0,Other / 1990s,true
|
||||
633,BE,Europe,1971,2024,pre-1990,16,114,9,Europe / pre-1990,true
|
||||
705,NO,Europe,1973,2024,pre-1990,19,90,11,Europe / pre-1990,true
|
||||
714,NL,Europe,2014,2023,2010s,3,8,4,Europe / 2010s,true
|
||||
848,ES,Europe,1999,2024,1990s,15,56,8,Europe / 1990s,true
|
||||
910,HU,Europe,1990,2010,1990s,5,41,3,Europe / 1990s,true
|
||||
934,IT,Europe,1972,1992,pre-1990,14,42,7,Europe / pre-1990,true
|
||||
946,ES,Europe,1999,1999,1990s,6,2,1,Europe / 1990s,true
|
||||
950,EC,Latin America,1979,2019,pre-1990,4,100,0,Latin America / pre-1990,true
|
||||
953,IL,Other,2003,2022,2000s,4,18,2,Other / 2000s,true
|
||||
986,GB,Europe,1999,2024,1990s,7,25,9,Europe / 1990s,true
|
||||
1004,CA,North America,2004,2023,2000s,7,46,1,North America / 2000s,true
|
||||
1036,IL,Other,1973,2022,pre-1990,17,104,2,Other / pre-1990,true
|
||||
1055,IE,Europe,1973,2024,pre-1990,20,102,9,Europe / pre-1990,true
|
||||
1060,TR,Europe,1973,2024,pre-1990,15,67,1,Europe / pre-1990,true
|
||||
1072,NO,Europe,1973,2024,pre-1990,19,88,11,Europe / pre-1990,true
|
||||
1096,FI,Europe,1970,1987,pre-1990,13,42,9,Europe / pre-1990,true
|
||||
1123,CH,Europe,2023,2024,2020s,13,3,2,Europe / 2020s,true
|
||||
1126,IT,Europe,1972,2006,pre-1990,10,11,7,Europe / pre-1990,true
|
||||
1138,LU,Europe,1984,2023,pre-1990,7,48,3,Europe / pre-1990,true
|
||||
1157,NL,Europe,1977,2024,pre-1990,14,109,9,Europe / pre-1990,true
|
||||
1166,BA,Europe,1996,2014,1990s,10,49,0,Europe / 1990s,true
|
||||
1219,ZA,Other,1994,2019,1990s,6,44,0,Other / 1990s,true
|
||||
1241,MX,Latin America,2019,2020,2010s,7,4,1,Latin America / 2010s,true
|
||||
1242,SK,Europe,1994,1998,1990s,4,14,0,Europe / 1990s,true
|
||||
1249,IS,Europe,1971,1995,pre-1990,15,50,8,Europe / pre-1990,true
|
||||
1274,SE,Europe,1970,2024,pre-1990,24,114,18,Europe / pre-1990,true
|
||||
1331,MX,Latin America,2006,2020,2000s,5,25,1,Latin America / 2000s,true
|
||||
1359,PT,Europe,1975,2024,pre-1990,18,114,9,Europe / pre-1990,true
|
||||
1386,SK,Europe,2010,2024,2010s,3,33,6,Europe / 2010s,true
|
||||
1388,GB,Europe,1999,2024,1990s,9,32,9,Europe / 1990s,true
|
||||
1415,CH,Europe,2011,2011,2010s,3,7,0,Europe / 2010s,true
|
||||
1428,CA,North America,1993,2023,1990s,10,60,1,North America / 1990s,true
|
||||
1431,HR,Europe,1992,2024,1990s,9,59,5,Europe / 1990s,true
|
||||
1450,EC,Latin America,1984,2009,pre-1990,3,84,0,Latin America / pre-1990,true
|
||||
1454,BA,Europe,1996,2019,1990s,9,51,0,Europe / 1990s,true
|
||||
1459,NL,Europe,2002,2024,2000s,7,16,8,Europe / 2000s,true
|
||||
1467,NL,Europe,2010,2024,2010s,5,12,6,Europe / 2010s,true
|
||||
1508,MK,Europe,1998,2019,1990s,9,44,0,Europe / 1990s,true
|
||||
1540,AU,Asia-Pacific,1972,1972,pre-1990,10,7,0,Asia-Pacific / pre-1990,true
|
||||
1567,GB,Europe,1970,2024,pre-1990,22,109,9,Europe / pre-1990,true
|
||||
1665,BG,Europe,1991,2024,1990s,8,75,6,Europe / 1990s,true
|
||||
1673,BA,Europe,2000,2019,2000s,5,16,0,Europe / 2000s,true
|
||||
1691,HU,Europe,1990,2024,1990s,9,70,8,Europe / 1990s,true
|
||||
1715,RO,Europe,1990,2014,1990s,7,43,4,Europe / 1990s,true
|
||||
1759,CH,Europe,2011,2024,2010s,4,18,3,Europe / 2010s,true
|
||||
1804,JP,Asia-Pacific,1996,2014,1990s,7,49,0,Asia-Pacific / 1990s,true
|
||||
1808,CH,Europe,1971,2024,pre-1990,19,95,1,Europe / pre-1990,true
|
||||
1824,NZ,Asia-Pacific,1972,2019,pre-1990,26,114,0,Asia-Pacific / pre-1990,true
|
||||
2159,GE,Europe,1999,1999,1990s,3,7,0,Europe / 1990s,true
|
||||
2168,GE,Europe,1995,2003,1990s,3,21,0,Europe / 1990s,true
|
||||
2203,RS,Europe,2000,2000,2000s,6,7,0,Europe / 2000s,true
|
||||
2211,UA,Europe,1998,2006,1990s,5,21,0,Europe / 1990s,true
|
||||
2228,UA,Europe,2002,2012,2000s,3,28,0,Europe / 2000s,true
|
||||
2235,RU,Europe,1993,1993,1990s,3,7,0,Europe / 1990s,true
|
||||
2256,RU,Europe,2003,2019,2000s,3,30,0,Europe / 2000s,true
|
||||
2307,KR,Asia-Pacific,2000,2012,2000s,5,28,0,Asia-Pacific / 2000s,true
|
||||
3162,ME,Europe,1998,2019,1990s,8,51,0,Europe / 1990s,true
|
||||
3171,BA,Europe,2010,2019,2010s,3,23,0,Europe / 2010s,true
|
||||
3185,ME,Europe,1998,2016,1990s,5,49,0,Europe / 1990s,true
|
||||
3916,CO,Latin America,2020,2020,2020s,4,2,1,Latin America / 2020s,true
|
||||
3955,IL,Other,2019,2019,2010s,4,7,0,Other / 2010s,true
|
||||
5453,AU,Asia-Pacific,2019,2019,2010s,3,2,0,Asia-Pacific / 2010s,true
|
||||
|
@@ -0,0 +1,15 @@
|
||||
field,value
|
||||
created_at,2026-08-12T17:24:30.781
|
||||
seed,20260812
|
||||
holdout_share,0.2
|
||||
eligible_parties,388
|
||||
blocked_parties,82
|
||||
text_rows_train,38202
|
||||
expert_rows_train,21162
|
||||
expert_rows_test,3916
|
||||
lr_rows_train,1897
|
||||
lr_rows_test,310
|
||||
text_sha256,8ba73dc9d378037333cc4ef1629d59350237f911b4fcd3dfd319cefb4769e23a
|
||||
expert_full_sha256,30b53244055c18ae480197cfde4cdd86f30e0c9bd5af60d371caa5647b2a362a
|
||||
lr_full_sha256,66912cc39d63b4bf63506220268e2eee2d5d94fc9c8b861eb0e25d7e79f492d2
|
||||
union_mapping_sha256,3861d65e279458e339a220df6040c98f0f5237476065d01c855e38ad2164fe5c
|
||||
|
@@ -0,0 +1,23 @@
|
||||
stratum,eligible_parties,blocked_parties
|
||||
Asia-Pacific / pre-1990,12,2
|
||||
Europe / 1990s,121,24
|
||||
Europe / pre-1990,103,21
|
||||
Europe / 2010s,34,7
|
||||
Europe / 2000s,47,9
|
||||
North America / pre-1990,6,1
|
||||
Latin America / pre-1990,10,2
|
||||
Latin America / 1990s,2,1
|
||||
Latin America / 2000s,7,1
|
||||
Other / 2000s,6,1
|
||||
Asia-Pacific / 2010s,4,1
|
||||
Other / 2020s,2,1
|
||||
Other / 1990s,9,2
|
||||
Asia-Pacific / 1990s,5,1
|
||||
Other / pre-1990,3,1
|
||||
Europe / 2020s,3,1
|
||||
North America / 2000s,2,1
|
||||
Asia-Pacific / 2000s,4,1
|
||||
Other / 2010s,5,1
|
||||
Latin America / 2010s,1,1
|
||||
North America / 1990s,1,1
|
||||
Latin America / 2020s,1,1
|
||||
|
@@ -0,0 +1,5 @@
|
||||
8ba73dc9d378037333cc4ef1629d59350237f911b4fcd3dfd319cefb4769e23a _local/revision/blocked_party/text_data.csv
|
||||
a1b5031df7754ba33234e8e2ec40bb0f0d10b0aed12b277a8ea1f7876fb0f658 _local/revision/blocked_party/expert.csv
|
||||
8129e85cd13877c7a5c8698430be279265d1bb9b9dd16438f55b7159597b5af7 _local/revision/blocked_party/lr_data.csv
|
||||
ed05b52f16139ebce88d3d281e19f4b8140fa1b0f0791fa8fb00ac2ccf347c1f _local/revision/blocked_party/expert_test.csv
|
||||
fcf131031e9bac5231fdd829b4d2f0b6ac8d9a2de748175a5fb897be048a7abe _local/revision/blocked_party/lr_data_test.csv
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"year0": 1943,
|
||||
"mean_ess": 3900.832212330333,
|
||||
"num_samples": 1000,
|
||||
"max_depth": 15,
|
||||
"num_chains": 4,
|
||||
"run_id": "run_2026-08-13_00-02-50",
|
||||
"files": {
|
||||
"chain_size_gb": 2.28,
|
||||
"data": [
|
||||
"expert_dim.csv",
|
||||
"expert_lr.csv",
|
||||
"segment_info.csv",
|
||||
"segment_year_map.csv",
|
||||
"stan_data.json",
|
||||
"text_data.csv"
|
||||
],
|
||||
"total_size_gb": 9.12,
|
||||
"chains": [
|
||||
"chains/chain_1.csv",
|
||||
"chains/chain_2.csv",
|
||||
"chains/chain_3.csv",
|
||||
"chains/chain_4.csv"
|
||||
]
|
||||
},
|
||||
"max_rhat": 1.02529,
|
||||
"model_file": "models/stan_model_2dim_v6.stan",
|
||||
"dimensions": [
|
||||
"economic_lr",
|
||||
"galtan"
|
||||
],
|
||||
"convergence_status": "excellent",
|
||||
"mean_rhat": 1.001168748932864,
|
||||
"model_version": "2dim",
|
||||
"min_ess": 136.47,
|
||||
"num_warmup": 1000,
|
||||
"timestamp": "2026-08-13_00-02-50",
|
||||
"adapt_delta": 0.95
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
CMDSTAN_HOME=/opt/agent-tools/cmdstan-2.39.0
|
||||
JULIA_NUM_THREADS=4
|
||||
STAN_NUM_THREADS=1
|
||||
PARTY2D_NUM_CHAINS=4
|
||||
PARTY2D_NUM_WARMUP=1000
|
||||
PARTY2D_NUM_SAMPLES=1000
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
stanc3 v2.39.0 (Unix)
|
||||
@@ -0,0 +1,48 @@
|
||||
dimension,group_type,group,n,parties,pearson_r,mae,rmse,bias_expert_minus_model,latent_interval_overlap_95,latent_interval_overlap_ci_lower,latent_interval_overlap_ci_upper,mean_interval_width,mean_nearest_text_distance
|
||||
economic_lr,overall,All matched held-out ratings,1095,76,0.5475349609862943,0.15659217513079526,0.20393539783060147,-0.05532600480562651,0.5168949771689497,0.4872890521846218,0.5463827709425695,0.26430020129022835,0.16712328767123288
|
||||
economic_lr,decade,1970s,118,23,0.6073768641760265,0.14287929777127256,0.19854739676618133,-0.10205433290640958,0.6101694915254238,0.5200255656951949,0.6933662479382441,0.25169848501186437,0.0
|
||||
economic_lr,decade,2010s,354,57,0.5992779154544512,0.1501300890725984,0.1885321056791222,0.021169532897549623,0.5254237288135594,0.47341101610110464,0.57689056985201,0.26575748477902544,0.2740112994350282
|
||||
economic_lr,decade,2000s,295,55,0.5565144172854626,0.15858892901808844,0.20126848038834502,-0.05233537589313869,0.4847457627118644,0.4282780233542677,0.5416056876150218,0.26056229448652546,0.17288135593220338
|
||||
economic_lr,decade,1990s,208,50,0.6126480905939616,0.16338137608018816,0.21895575578982457,-0.125792230775093,0.5048076923076923,0.43739172918853736,0.5720492871179859,0.27198704433737986,0.15384615384615385
|
||||
economic_lr,decade,1980s,108,20,0.4965786440080896,0.17854227265283956,0.23865365933045032,-0.1349662304081571,0.4722222222222222,0.38064769707967805,0.56570500173722,0.24913035199722225,0.0
|
||||
economic_lr,decade,2020s,12,7,0.7503511986609598,0.11774978066574382,0.1393618688955034,0.0122078457365813,0.75,0.46768966087934005,0.9110599603710386,0.4404074548520834,0.25
|
||||
economic_lr,region,Asia-Pacific,58,5,0.423328443816105,0.17092882695033917,0.20862210989480942,-0.0891987769436264,0.39655172413793105,0.28088568950111137,0.5250701719255011,0.24057815327112078,0.017241379310344827
|
||||
economic_lr,region,Europe,893,59,0.5432249309980023,0.1511392922038456,0.20048220769183805,-0.04801670847392163,0.5397536394176932,0.5069623693775478,0.5722043418900828,0.2582198076309352,0.17245240761478164
|
||||
economic_lr,region,North America,48,3,0.2266003540841267,0.19345335195896976,0.23606823520460213,-0.0729662252491865,0.3333333333333333,0.2167660137089678,0.47460153667527943,0.24118537241145843,0.0
|
||||
economic_lr,region,Latin America,44,4,0.5475305121725508,0.233854863071928,0.26544986189092146,-0.22241677738442417,0.3409090909090909,0.21875632628639946,0.4886113202806049,0.3793346702613636,0.6363636363636364
|
||||
economic_lr,region,Other,52,5,0.7564368993112075,0.13484224995906788,0.16103703074927944,0.014599836243402173,0.5769230769230769,0.4419408497943149,0.7013215209113954,0.3191783834884615,0.0
|
||||
economic_lr,text_distance_class,direct text,971,74,0.5470435275586387,0.15948847158646431,0.20840482347744635,-0.06628643977796411,0.505664263645726,0.47425628054953844,0.537027603929745,0.2590549584609939,0.0
|
||||
economic_lr,text_distance_class,nearby text (1--3 years),124,41,0.6274910136969545,0.1339123053045472,0.16479794566578806,0.030501272276146137,0.6048387096774194,0.5168822918241138,0.686494386815703,0.3053738366707661,1.4758064516129032
|
||||
economic_lr,project,V-Party,914,70,0.5307923250620764,0.1655176264187938,0.21441603701361558,-0.07700198607575016,0.4890590809628009,0.45676497600150245,0.5214447717371051,0.2606530705033918,0.0437636761487965
|
||||
economic_lr,project,GPS,26,26,0.6972897756799338,0.13173814981538515,0.16398882896345623,0.04775018790861701,0.5,0.32060306315002074,0.6793969368499793,0.28959384095,0.8076923076923077
|
||||
economic_lr,project,CHES,129,31,0.8041829585092515,0.10700941979056187,0.13157526424371663,0.044641159665681336,0.6821705426356589,0.5975442490042815,0.7562605832169504,0.2815578695228682,0.7829457364341085
|
||||
economic_lr,project,POPPA,26,21,0.8377220415965767,0.11368900666387213,0.15035280874886425,0.10760098186837214,0.6923076923076923,0.5001138848576876,0.8349887906020732,0.2815926515211539,0.8076923076923077
|
||||
economic_lr,item,lrecon_vparty,457,70,0.6526133931659629,0.12080138892236934,0.1567424568814474,-0.02190935296123517,0.6148796498905909,0.5694819726873812,0.6583620413946809,0.2606530705033917,0.0437636761487965
|
||||
economic_lr,item,welf_vparty,457,70,0.4769148611627237,0.21023386391521848,0.2595771100617617,-0.13209461919026505,0.36323851203501095,0.32045365106651325,0.40830347502626996,0.2606530705033917,0.0437636761487965
|
||||
economic_lr,item,lrecon_gps,26,26,0.6972897756799338,0.13173814981538515,0.16398882896345623,0.04775018790861701,0.5,0.32060306315002074,0.6793969368499793,0.28959384095,0.8076923076923077
|
||||
economic_lr,item,lrecon_ches,129,31,0.8041829585092515,0.10700941979056187,0.13157526424371663,0.044641159665681336,0.6821705426356589,0.5975442490042815,0.7562605832169504,0.2815578695228682,0.7829457364341085
|
||||
economic_lr,item,lrecon_poppa,26,21,0.8377220415965767,0.11368900666387213,0.15035280874886425,0.10760098186837214,0.6923076923076923,0.5001138848576876,0.8349887906020732,0.2815926515211539,0.8076923076923077
|
||||
galtan,overall,All matched held-out ratings,2428,76,0.3879064541660041,0.18914006264912334,0.23816373704876254,-0.013710351768187365,0.4126853377265239,0.39325537210953215,0.4323911667110884,0.258665849890383,0.0914332784184514
|
||||
galtan,decade,1970s,287,23,0.2402564326635899,0.21665443860032066,0.25724972613838026,0.0744907055227787,0.3344947735191638,0.2824119799338199,0.3909497399852015,0.26474203940810126,0.0
|
||||
galtan,decade,2010s,693,57,0.4606647139522965,0.1935411541181932,0.24590414523794452,-0.050660741407812654,0.3838383838383838,0.3483644977339694,0.4205930386702865,0.24824147265028856,0.12265512265512266
|
||||
galtan,decade,2000s,676,55,0.3870265819854018,0.18629380051270433,0.23690167706252432,-0.0468645901306479,0.4275147928994083,0.39073352449867466,0.4651152496863708,0.258417938360392,0.11538461538461539
|
||||
galtan,decade,1990s,499,50,0.41212741006828396,0.17126387793509984,0.2212178226996366,-0.019602997434269034,0.48897795591182364,0.4453697785277533,0.5327545453149837,0.26606359520380773,0.11823647294589178
|
||||
galtan,decade,1980s,266,20,0.3476988123327735,0.18921982830486436,0.2308346130602219,0.08154082475673356,0.37969924812030076,0.3234807111340447,0.4393431084697526,0.2599239549642858,0.0
|
||||
galtan,decade,2020s,7,5,0.6324675234649824,0.17149569493926073,0.20386312323528286,0.030403782877832106,0.8571428571428571,0.48686549668097007,0.9743210440510253,0.49033504546428575,0.0
|
||||
galtan,region,Asia-Pacific,142,5,-0.06990999699587813,0.2028535844559974,0.2421448847066388,-0.04764709776122232,0.43661971830985913,0.3577770958258817,0.5188013289856945,0.31393695714260567,0.007042253521126761
|
||||
galtan,region,Europe,1938,59,0.4006536844413476,0.18821986618869885,0.2391185533726696,-0.007048457123688323,0.4107327141382869,0.3890267037664939,0.4327919244882515,0.24984948892156866,0.07791537667698659
|
||||
galtan,region,North America,117,3,0.15158098770839884,0.2020264962636105,0.24484307272242728,0.04760720430768876,0.2905982905982906,0.21602760266916315,0.37848289702630594,0.23609932028311967,0.0
|
||||
galtan,region,Latin America,110,4,0.510877747351673,0.15390455215418858,0.19797883572628092,-0.07917475272712499,0.6272727272727273,0.5340503169531756,0.7119054672241376,0.3662500658409092,0.6363636363636364
|
||||
galtan,region,Other,121,5,0.3370413394210674,0.20735670781668103,0.24493355112293227,-0.08036162321796078,0.33884297520661155,0.2606254540535898,0.4269786779024248,0.25902643284276866,0.0
|
||||
galtan,text_distance_class,direct text,2293,74,0.3817373914639877,0.1904499145514716,0.23993647489228756,-0.014524078018235874,0.404709986916703,0.38479506099767413,0.42494366891735347,0.25436052910535323,0.0
|
||||
galtan,text_distance_class,nearby text (1--3 years),135,40,0.4399561874640988,0.16689198552257195,0.20573340547684066,0.00011093927893245328,0.5481481481481482,0.46402181812792126,0.6296100616545071,0.3317925207057409,1.6444444444444444
|
||||
galtan,project,V-Party,2273,70,0.3740693791970041,0.1911074338064693,0.24060334153635682,-0.018396438536216624,0.4047514298284206,0.3847495239974894,0.4250747518765987,0.2566477345279916,0.04399472063352398
|
||||
galtan,project,GPS,26,26,0.5443693144157825,0.17671657291477977,0.21780593561007713,0.012007051328791764,0.46153846153846156,0.28755582695234905,0.6454236379556988,0.2777555471798077,0.8076923076923077
|
||||
galtan,project,CHES,129,31,0.5869373239223193,0.15697863700916778,0.19496790336712624,0.06367587104738649,0.5426356589147286,0.456675986048851,0.6261294002156924,0.2903778195740311,0.7829457364341085
|
||||
galtan,item,culsup_vparty,457,70,0.5366188718286774,0.16311644869435024,0.21359963974416982,0.011168223905568687,0.4638949671772429,0.418663126356892,0.5097287549316027,0.25691081806515326,0.0437636761487965
|
||||
galtan,item,gender_vparty,445,70,0.32459509946925547,0.2164337137525867,0.2608755427368426,0.12306040878157333,0.34606741573033706,0.3033546905138159,0.39141513474302303,0.25556702282926974,0.0449438202247191
|
||||
galtan,item,immig_vparty,457,70,0.5004863614572931,0.13311846254318913,0.16732357853899973,-0.011445561652418225,0.5776805251641138,0.5319316389137728,0.6221343134655263,0.25691081806515326,0.0437636761487965
|
||||
galtan,item,lgbt_vparty,457,70,0.46354086621523605,0.15471230984590562,0.18981764808744647,0.04310285191432138,0.474835886214442,0.42945203114163966,0.5206392800594324,0.25691081806515326,0.0437636761487965
|
||||
galtan,item,relig_vparty,457,70,0.4185372751933906,0.288821256864484,0.33467597534992094,-0.25415371263710096,0.15973741794310722,0.12900420700742332,0.19614352271142144,0.25691081806515326,0.0437636761487965
|
||||
galtan,item,libcon_gps,26,26,0.5443693144157825,0.17671657291477977,0.21780593561007713,0.012007051328791764,0.46153846153846156,0.28755582695234905,0.6454236379556988,0.2777555471798077,0.8076923076923077
|
||||
galtan,item,galtan_ches,129,31,0.5869373239223193,0.15697863700916778,0.19496790336712624,0.06367587104738649,0.5426356589147286,0.456675986048851,0.6261294002156924,0.2903778195740311,0.7829457364341085
|
||||
|
@@ -0,0 +1,18 @@
|
||||
"party_id","target_year","label","status","actual_year","party_name","country","economic_lr","economic_lower","economic_upper","galtan","galtan_lower","galtan_upper","source_support_class","era"
|
||||
383,1972,"SPD 1972","exact",1972,"Social Democratic Party of Germany","DE",0.271573270375,0.162936225,0.38761415,0.370199619125,0.2680677,0.473299475,"both_direct_or_nearby","Historical & Cold War Era (1970–1999)"
|
||||
383,2021,"SPD 2021","exact",2021,"Social Democratic Party of Germany","DE",0.2363366825,0.148430575,0.330595375,0.36824540875,0.27656695,0.461600275,"both_direct_or_nearby","Contemporary Era (2000–2022)"
|
||||
1375,1983,"CDU 1983","exact",1983,"Christian Democratic Union","DE",0.704186118875,0.559885375,0.832835125,0.6167079735,0.5088347,0.716463575,"text_only_direct_or_nearby","Historical & Cold War Era (1970–1999)"
|
||||
1375,2021,"CDU 2021","exact",2021,"Christian Democratic Union","DE",0.57714137175,0.45681705,0.69505505,0.536185121875,0.433751725,0.636189175,"text_only_direct_or_nearby","Contemporary Era (2000–2022)"
|
||||
1516,1983,"Labour 1983","exact",1983,"Labour Party","GB",0.259080600525,0.1453436,0.3814767,0.34731692875,0.243851525,0.45443645,"both_direct_or_nearby","Historical & Cold War Era (1970–1999)"
|
||||
1516,1997,"Labour 1997","exact",1997,"Labour Party","GB",0.540093913375,0.45312245,0.63004375,0.50597976425,0.44681665,0.566031675,"both_direct_or_nearby","Historical & Cold War Era (1970–1999)"
|
||||
1567,1979,"Conservatives 1979","exact",1979,"Conservative Party","GB",0.863733304625,0.78370345,0.932120225,0.58421918175,0.47261405,0.691922375,"both_direct_or_nearby","Historical & Cold War Era (1970–1999)"
|
||||
1567,2019,"Conservatives 2019","exact",2019,"Conservative Party","GB",0.734806347125,0.6674518,0.805338225,0.604817389125,0.5601045,0.6518521,"both_direct_or_nearby","Contemporary Era (2000–2022)"
|
||||
487,1994,"Swedish SAP 1994","exact",1994,"Social Democratic Labour Party","SE",0.58329747225,0.45880465,0.706358175,0.323307833,0.22678185,0.42106565,"both_direct_or_nearby","Historical & Cold War Era (1970–1999)"
|
||||
487,2022,"Swedish SAP 2022","exact",2022,"Social Democratic Labour Party","SE",0.271161611625,0.18001335,0.364595125,0.431600183875,0.333020475,0.530597425,"both_direct_or_nearby","Contemporary Era (2000–2022)"
|
||||
409,2010,"Sweden Democrats 2010","exact",2010,"Sweden Democrats","SE",0.57402493025,0.47088145,0.681297275,0.721373298875,0.653960175,0.78768305,"both_direct_or_nearby","Contemporary Era (2000–2022)"
|
||||
409,2022,"Sweden Democrats 2022","exact",2022,"Sweden Democrats","SE",0.609638368125,0.490017925,0.7238046,0.753425659,0.653108875,0.84672335,"both_direct_or_nearby","Contemporary Era (2000–2022)"
|
||||
433,1988,"French FN 1988","exact",1988,"National Front","FR",0.78687783275,0.6924592,0.8758855,0.797982186375,0.7315981,0.86105335,"both_direct_or_nearby","Historical & Cold War Era (1970–1999)"
|
||||
433,2022,"French FN 2022","exact",2022,"National Front","FR",0.524320955125,0.398589175,0.645052275,0.829604491,0.73907015,0.911430725,"both_direct_or_nearby","Contemporary Era (2000–2022)"
|
||||
1545,2021,"The Left 2021","exact",2021,"The Left","DE",0.05463340125125,0.0205853625,0.104672875,0.2266517688,0.13204575,0.336095325,"both_direct_or_nearby","Contemporary Era (2000–2022)"
|
||||
432,2020,"US Democrats 2020","exact",2020,"Democratic Party","US",0.299892256625,0.1963003,0.410606025,0.3345769065,0.263694925,0.405684575,"both_direct_or_nearby","Contemporary Era (2000–2022)"
|
||||
809,2020,"US Republicans 2020","exact",2020,"Republican Party","US",0.8507495345,0.77742365,0.917357075,0.721311676375,0.65728435,0.78442835,"both_direct_or_nearby","Contemporary Era (2000–2022)"
|
||||
|
@@ -0,0 +1,147 @@
|
||||
"party_id","party_label","country","year","source_support_class","dimension","estimate","lower","upper"
|
||||
1567,"United Kingdom: Conservatives","GB",1945,"text_only_direct_or_nearby","Economic",0.7897200205,0.68672145,0.882517725
|
||||
1567,"United Kingdom: Conservatives","GB",1950,"text_only_direct_or_nearby","Economic",0.696324671375,0.58645,0.7999215
|
||||
1567,"United Kingdom: Conservatives","GB",1951,"text_only_direct_or_nearby","Economic",0.648801438125,0.509441425,0.7756712
|
||||
1567,"United Kingdom: Conservatives","GB",1955,"text_only_direct_or_nearby","Economic",0.559596760875,0.4111588,0.696031575
|
||||
1567,"United Kingdom: Conservatives","GB",1959,"text_only_direct_or_nearby","Economic",0.56006642225,0.388645375,0.718084975
|
||||
1567,"United Kingdom: Conservatives","GB",1964,"text_only_direct_or_nearby","Economic",0.713843190625,0.5883803,0.829548525
|
||||
1567,"United Kingdom: Conservatives","GB",1966,"text_only_direct_or_nearby","Economic",0.79834168225,0.6939884,0.890500425
|
||||
1567,"United Kingdom: Conservatives","GB",1970,"both_direct_or_nearby","Economic",0.67897010575,0.55999,0.79320825
|
||||
1567,"United Kingdom: Conservatives","GB",1974,"both_direct_or_nearby","Economic",0.68530368975,0.6022573,0.771763125
|
||||
1567,"United Kingdom: Conservatives","GB",1979,"both_direct_or_nearby","Economic",0.863733304625,0.78370345,0.932120225
|
||||
1567,"United Kingdom: Conservatives","GB",1983,"both_direct_or_nearby","Economic",0.897143095,0.823332125,0.953360675
|
||||
1567,"United Kingdom: Conservatives","GB",1987,"both_direct_or_nearby","Economic",0.864987285375,0.782492075,0.9328753
|
||||
1567,"United Kingdom: Conservatives","GB",1992,"both_direct_or_nearby","Economic",0.80683245025,0.731234925,0.88153825
|
||||
1567,"United Kingdom: Conservatives","GB",1997,"both_direct_or_nearby","Economic",0.815790791,0.741322225,0.886000175
|
||||
1567,"United Kingdom: Conservatives","GB",2001,"both_direct_or_nearby","Economic",0.735943766375,0.64358755,0.825612475
|
||||
1567,"United Kingdom: Conservatives","GB",2005,"both_direct_or_nearby","Economic",0.7468415025,0.657667875,0.8347423
|
||||
1567,"United Kingdom: Conservatives","GB",2010,"both_direct_or_nearby","Economic",0.807639387875,0.737347625,0.877409025
|
||||
1567,"United Kingdom: Conservatives","GB",2015,"both_direct_or_nearby","Economic",0.650294524875,0.582851025,0.72313155
|
||||
1567,"United Kingdom: Conservatives","GB",2017,"both_direct_or_nearby","Economic",0.680683625125,0.607886575,0.758350075
|
||||
1567,"United Kingdom: Conservatives","GB",2019,"both_direct_or_nearby","Economic",0.734806347125,0.6674518,0.805338225
|
||||
1567,"United Kingdom: Conservatives","GB",2024,"both_direct_or_nearby","Economic",0.696441988625,0.611536275,0.7845477
|
||||
383,"Germany: SPD","DE",1949,"text_only_direct_or_nearby","Economic",0.2594422284125,0.124083075,0.416025325
|
||||
383,"Germany: SPD","DE",1953,"text_only_direct_or_nearby","Economic",0.3044620151625,0.172417475,0.44553015
|
||||
383,"Germany: SPD","DE",1957,"text_only_direct_or_nearby","Economic",0.364714905375,0.217271,0.518439625
|
||||
383,"Germany: SPD","DE",1961,"text_only_direct_or_nearby","Economic",0.45071135275,0.3107251,0.58867
|
||||
383,"Germany: SPD","DE",1965,"text_only_direct_or_nearby","Economic",0.40004889475,0.253314775,0.5547562
|
||||
383,"Germany: SPD","DE",1969,"text_only_direct_or_nearby","Economic",0.36430581075,0.234999825,0.496653
|
||||
383,"Germany: SPD","DE",1972,"both_direct_or_nearby","Economic",0.271573270375,0.162936225,0.38761415
|
||||
383,"Germany: SPD","DE",1976,"both_direct_or_nearby","Economic",0.22760841445,0.1408578,0.317522325
|
||||
383,"Germany: SPD","DE",1980,"both_direct_or_nearby","Economic",0.2854944402625,0.176353725,0.402044875
|
||||
383,"Germany: SPD","DE",1983,"both_direct_or_nearby","Economic",0.3201057485,0.198932275,0.449359525
|
||||
383,"Germany: SPD","DE",1987,"both_direct_or_nearby","Economic",0.3082503073875,0.1890146,0.43586885
|
||||
383,"Germany: SPD","DE",1990,"both_direct_or_nearby","Economic",0.2997481731625,0.1826493,0.42186305
|
||||
383,"Germany: SPD","DE",1994,"both_direct_or_nearby","Economic",0.344258320125,0.247450525,0.440361825
|
||||
383,"Germany: SPD","DE",1998,"both_direct_or_nearby","Economic",0.42037938775,0.335025575,0.504438225
|
||||
383,"Germany: SPD","DE",2002,"both_direct_or_nearby","Economic",0.354348980875,0.285402475,0.419218875
|
||||
383,"Germany: SPD","DE",2005,"both_direct_or_nearby","Economic",0.408510935875,0.326714325,0.4912897
|
||||
383,"Germany: SPD","DE",2009,"both_direct_or_nearby","Economic",0.2258038923125,0.154613,0.2986832
|
||||
383,"Germany: SPD","DE",2013,"both_direct_or_nearby","Economic",0.2547526295,0.177729475,0.3305311
|
||||
383,"Germany: SPD","DE",2017,"both_direct_or_nearby","Economic",0.2187940564125,0.150431,0.288139
|
||||
383,"Germany: SPD","DE",2021,"both_direct_or_nearby","Economic",0.2363366825,0.148430575,0.330595375
|
||||
383,"Germany: SPD","DE",2025,"both_direct_or_nearby","Economic",0.24988987125,0.155485225,0.353246025
|
||||
379,"Denmark: Social Democrats","DK",1945,"text_only_direct_or_nearby","Economic",0.39289630125,0.306313775,0.4744366
|
||||
379,"Denmark: Social Democrats","DK",1947,"text_only_direct_or_nearby","Economic",0.4133295765,0.326647125,0.497578325
|
||||
379,"Denmark: Social Democrats","DK",1950,"text_only_direct_or_nearby","Economic",0.402314539625,0.313989,0.48990055
|
||||
379,"Denmark: Social Democrats","DK",1953,"text_only_direct_or_nearby","Economic",0.404059824625,0.31188405,0.492347325
|
||||
379,"Denmark: Social Democrats","DK",1957,"text_only_direct_or_nearby","Economic",0.386770333875,0.2915608,0.4740622
|
||||
379,"Denmark: Social Democrats","DK",1960,"text_only_direct_or_nearby","Economic",0.39128767025,0.30583805,0.46915175
|
||||
379,"Denmark: Social Democrats","DK",1964,"text_only_direct_or_nearby","Economic",0.41323511225,0.3319368,0.490628525
|
||||
379,"Denmark: Social Democrats","DK",1966,"text_only_direct_or_nearby","Economic",0.424408032125,0.348613025,0.502216325
|
||||
379,"Denmark: Social Democrats","DK",1968,"text_only_direct_or_nearby","Economic",0.426020581125,0.346608825,0.502008425
|
||||
379,"Denmark: Social Democrats","DK",1971,"both_direct_or_nearby","Economic",0.3838693815,0.31048555,0.4534922
|
||||
379,"Denmark: Social Democrats","DK",1973,"both_direct_or_nearby","Economic",0.36916859375,0.292048475,0.4383149
|
||||
379,"Denmark: Social Democrats","DK",1975,"both_direct_or_nearby","Economic",0.2551262250375,0.1655264,0.348229075
|
||||
379,"Denmark: Social Democrats","DK",1977,"both_direct_or_nearby","Economic",0.2030203874375,0.11497425,0.301540125
|
||||
379,"Denmark: Social Democrats","DK",1979,"both_direct_or_nearby","Economic",0.1862332029375,0.10144465,0.2859892
|
||||
379,"Denmark: Social Democrats","DK",1981,"both_direct_or_nearby","Economic",0.1919036092625,0.1020977,0.2975764
|
||||
379,"Denmark: Social Democrats","DK",1984,"both_direct_or_nearby","Economic",0.1734391782625,0.08982039,0.2725962
|
||||
379,"Denmark: Social Democrats","DK",1987,"both_direct_or_nearby","Economic",0.1872400464625,0.10188485,0.281978775
|
||||
379,"Denmark: Social Democrats","DK",1988,"both_direct_or_nearby","Economic",0.1844144026,0.10014465,0.278666375
|
||||
379,"Denmark: Social Democrats","DK",1990,"both_direct_or_nearby","Economic",0.1593657011125,0.0820198525,0.250674325
|
||||
379,"Denmark: Social Democrats","DK",1994,"both_direct_or_nearby","Economic",0.18027195025,0.0911998025,0.286319075
|
||||
379,"Denmark: Social Democrats","DK",1998,"both_direct_or_nearby","Economic",0.2332968959625,0.14133775,0.3324363
|
||||
379,"Denmark: Social Democrats","DK",2001,"both_direct_or_nearby","Economic",0.25665459875,0.167550175,0.3497182
|
||||
379,"Denmark: Social Democrats","DK",2005,"both_direct_or_nearby","Economic",0.243111738,0.15668705,0.33332095
|
||||
379,"Denmark: Social Democrats","DK",2007,"both_direct_or_nearby","Economic",0.2504832553,0.1616851,0.347202325
|
||||
379,"Denmark: Social Democrats","DK",2011,"both_direct_or_nearby","Economic",0.277551306,0.187687975,0.3698644
|
||||
379,"Denmark: Social Democrats","DK",2015,"both_direct_or_nearby","Economic",0.2492670365,0.160125675,0.34358355
|
||||
379,"Denmark: Social Democrats","DK",2019,"both_direct_or_nearby","Economic",0.254542113875,0.180740975,0.32727345
|
||||
409,"Sweden: Sweden Democrats","SE",2010,"both_direct_or_nearby","Economic",0.57402493025,0.47088145,0.681297275
|
||||
409,"Sweden: Sweden Democrats","SE",2014,"both_direct_or_nearby","Economic",0.514751535125,0.4326713,0.602047575
|
||||
409,"Sweden: Sweden Democrats","SE",2018,"both_direct_or_nearby","Economic",0.499110805875,0.397517425,0.59893585
|
||||
409,"Sweden: Sweden Democrats","SE",2022,"both_direct_or_nearby","Economic",0.609638368125,0.490017925,0.7238046
|
||||
1567,"United Kingdom: Conservatives","GB",1945,"text_only_direct_or_nearby","Cultural",0.42283955775,0.30617415,0.539308425
|
||||
1567,"United Kingdom: Conservatives","GB",1950,"text_only_direct_or_nearby","Cultural",0.597652829625,0.493804425,0.695553875
|
||||
1567,"United Kingdom: Conservatives","GB",1951,"text_only_direct_or_nearby","Cultural",0.5963407815,0.4953524,0.694196075
|
||||
1567,"United Kingdom: Conservatives","GB",1955,"text_only_direct_or_nearby","Cultural",0.4481433145,0.349619975,0.546246075
|
||||
1567,"United Kingdom: Conservatives","GB",1959,"text_only_direct_or_nearby","Cultural",0.379823589625,0.24070795,0.5271287
|
||||
1567,"United Kingdom: Conservatives","GB",1964,"text_only_direct_or_nearby","Cultural",0.4359372675,0.309309225,0.5597016
|
||||
1567,"United Kingdom: Conservatives","GB",1966,"text_only_direct_or_nearby","Cultural",0.433826746,0.305561125,0.564284875
|
||||
1567,"United Kingdom: Conservatives","GB",1970,"both_direct_or_nearby","Cultural",0.586682156125,0.487144225,0.681696075
|
||||
1567,"United Kingdom: Conservatives","GB",1974,"both_direct_or_nearby","Cultural",0.582726903625,0.512885,0.65400205
|
||||
1567,"United Kingdom: Conservatives","GB",1979,"both_direct_or_nearby","Cultural",0.58421918175,0.47261405,0.691922375
|
||||
1567,"United Kingdom: Conservatives","GB",1983,"both_direct_or_nearby","Cultural",0.54862467925,0.4436958,0.651204175
|
||||
1567,"United Kingdom: Conservatives","GB",1987,"both_direct_or_nearby","Cultural",0.5044723465,0.398577575,0.60606875
|
||||
1567,"United Kingdom: Conservatives","GB",1992,"both_direct_or_nearby","Cultural",0.608807442,0.53829935,0.67952055
|
||||
1567,"United Kingdom: Conservatives","GB",1997,"both_direct_or_nearby","Cultural",0.653249609625,0.5903779,0.719252725
|
||||
1567,"United Kingdom: Conservatives","GB",2001,"both_direct_or_nearby","Cultural",0.62022832225,0.5519112,0.68966615
|
||||
1567,"United Kingdom: Conservatives","GB",2005,"both_direct_or_nearby","Cultural",0.63051460775,0.562743875,0.6984813
|
||||
1567,"United Kingdom: Conservatives","GB",2010,"both_direct_or_nearby","Cultural",0.515056946125,0.464064225,0.5684148
|
||||
1567,"United Kingdom: Conservatives","GB",2015,"both_direct_or_nearby","Cultural",0.53108352025,0.47741145,0.585770875
|
||||
1567,"United Kingdom: Conservatives","GB",2017,"both_direct_or_nearby","Cultural",0.550617655875,0.503622825,0.597269
|
||||
1567,"United Kingdom: Conservatives","GB",2019,"both_direct_or_nearby","Cultural",0.604817389125,0.5601045,0.6518521
|
||||
1567,"United Kingdom: Conservatives","GB",2024,"both_direct_or_nearby","Cultural",0.64147235475,0.568830525,0.717038025
|
||||
383,"Germany: SPD","DE",1949,"text_only_direct_or_nearby","Cultural",0.4562653665,0.29105445,0.6148909
|
||||
383,"Germany: SPD","DE",1953,"text_only_direct_or_nearby","Cultural",0.41201424225,0.239960775,0.59720855
|
||||
383,"Germany: SPD","DE",1957,"text_only_direct_or_nearby","Cultural",0.361933815225,0.2020638,0.530546125
|
||||
383,"Germany: SPD","DE",1961,"text_only_direct_or_nearby","Cultural",0.3403875836625,0.189634975,0.502483725
|
||||
383,"Germany: SPD","DE",1965,"text_only_direct_or_nearby","Cultural",0.349500525125,0.197610625,0.519782425
|
||||
383,"Germany: SPD","DE",1969,"text_only_direct_or_nearby","Cultural",0.367453271375,0.2312429,0.51644905
|
||||
383,"Germany: SPD","DE",1972,"both_direct_or_nearby","Cultural",0.370199619125,0.2680677,0.473299475
|
||||
383,"Germany: SPD","DE",1976,"both_direct_or_nearby","Cultural",0.28787436475,0.21332925,0.364130925
|
||||
383,"Germany: SPD","DE",1980,"both_direct_or_nearby","Cultural",0.346500680875,0.245533525,0.448428875
|
||||
383,"Germany: SPD","DE",1983,"both_direct_or_nearby","Cultural",0.3643932085,0.2585273,0.474535775
|
||||
383,"Germany: SPD","DE",1987,"both_direct_or_nearby","Cultural",0.373242374375,0.266124675,0.479610175
|
||||
383,"Germany: SPD","DE",1990,"both_direct_or_nearby","Cultural",0.354967389625,0.25200245,0.460687325
|
||||
383,"Germany: SPD","DE",1994,"both_direct_or_nearby","Cultural",0.410000861625,0.3313879,0.488224525
|
||||
383,"Germany: SPD","DE",1998,"both_direct_or_nearby","Cultural",0.458140040875,0.389836225,0.525399375
|
||||
383,"Germany: SPD","DE",2002,"both_direct_or_nearby","Cultural",0.442940016,0.3876151,0.4964075
|
||||
383,"Germany: SPD","DE",2005,"both_direct_or_nearby","Cultural",0.456470195875,0.39176415,0.5189629
|
||||
383,"Germany: SPD","DE",2009,"both_direct_or_nearby","Cultural",0.389663805625,0.32557465,0.451253625
|
||||
383,"Germany: SPD","DE",2013,"both_direct_or_nearby","Cultural",0.2109102855,0.15503785,0.268407625
|
||||
383,"Germany: SPD","DE",2017,"both_direct_or_nearby","Cultural",0.40809383225,0.35346185,0.45866175
|
||||
383,"Germany: SPD","DE",2021,"both_direct_or_nearby","Cultural",0.36824540875,0.27656695,0.461600275
|
||||
383,"Germany: SPD","DE",2025,"both_direct_or_nearby","Cultural",0.3699090585,0.27155195,0.46999925
|
||||
379,"Denmark: Social Democrats","DK",1945,"text_only_direct_or_nearby","Cultural",0.367253073125,0.222935775,0.513292475
|
||||
379,"Denmark: Social Democrats","DK",1947,"text_only_direct_or_nearby","Cultural",0.38745918675,0.234832075,0.545806525
|
||||
379,"Denmark: Social Democrats","DK",1950,"text_only_direct_or_nearby","Cultural",0.3968814625,0.2531828,0.544707225
|
||||
379,"Denmark: Social Democrats","DK",1953,"text_only_direct_or_nearby","Cultural",0.42331649125,0.283525625,0.5604742
|
||||
379,"Denmark: Social Democrats","DK",1957,"text_only_direct_or_nearby","Cultural",0.42351804925,0.268476675,0.589941825
|
||||
379,"Denmark: Social Democrats","DK",1960,"text_only_direct_or_nearby","Cultural",0.384011194875,0.24432495,0.52920335
|
||||
379,"Denmark: Social Democrats","DK",1964,"text_only_direct_or_nearby","Cultural",0.362245514375,0.224588175,0.502448675
|
||||
379,"Denmark: Social Democrats","DK",1966,"text_only_direct_or_nearby","Cultural",0.3679157005,0.230511325,0.5031338
|
||||
379,"Denmark: Social Democrats","DK",1968,"text_only_direct_or_nearby","Cultural",0.382175081625,0.25659165,0.507958075
|
||||
379,"Denmark: Social Democrats","DK",1971,"both_direct_or_nearby","Cultural",0.470225764375,0.36279785,0.577130125
|
||||
379,"Denmark: Social Democrats","DK",1973,"both_direct_or_nearby","Cultural",0.501466689875,0.3986878,0.60298055
|
||||
379,"Denmark: Social Democrats","DK",1975,"both_direct_or_nearby","Cultural",0.51072920025,0.41364105,0.608167125
|
||||
379,"Denmark: Social Democrats","DK",1977,"both_direct_or_nearby","Cultural",0.48888551625,0.3865325,0.588461525
|
||||
379,"Denmark: Social Democrats","DK",1979,"both_direct_or_nearby","Cultural",0.469331547625,0.36461055,0.5720459
|
||||
379,"Denmark: Social Democrats","DK",1981,"both_direct_or_nearby","Cultural",0.440505821125,0.334911475,0.544872125
|
||||
379,"Denmark: Social Democrats","DK",1984,"both_direct_or_nearby","Cultural",0.427927746125,0.3199225,0.535149325
|
||||
379,"Denmark: Social Democrats","DK",1987,"both_direct_or_nearby","Cultural",0.42510295375,0.332117075,0.518948075
|
||||
379,"Denmark: Social Democrats","DK",1988,"both_direct_or_nearby","Cultural",0.4189467795,0.3290549,0.51075845
|
||||
379,"Denmark: Social Democrats","DK",1990,"both_direct_or_nearby","Cultural",0.394384283125,0.289929725,0.498693825
|
||||
379,"Denmark: Social Democrats","DK",1994,"both_direct_or_nearby","Cultural",0.365051991,0.259654975,0.469250275
|
||||
379,"Denmark: Social Democrats","DK",1998,"both_direct_or_nearby","Cultural",0.4057949125,0.318039475,0.493913625
|
||||
379,"Denmark: Social Democrats","DK",2001,"both_direct_or_nearby","Cultural",0.377267655375,0.2986888,0.456555875
|
||||
379,"Denmark: Social Democrats","DK",2005,"both_direct_or_nearby","Cultural",0.3840174395,0.296652025,0.472492425
|
||||
379,"Denmark: Social Democrats","DK",2007,"both_direct_or_nearby","Cultural",0.377073825875,0.288222975,0.46642125
|
||||
379,"Denmark: Social Democrats","DK",2011,"both_direct_or_nearby","Cultural",0.44217709925,0.351102525,0.5332076
|
||||
379,"Denmark: Social Democrats","DK",2015,"both_direct_or_nearby","Cultural",0.5274942445,0.44580275,0.608968575
|
||||
379,"Denmark: Social Democrats","DK",2019,"both_direct_or_nearby","Cultural",0.440971318625,0.38293125,0.4998911
|
||||
409,"Sweden: Sweden Democrats","SE",2010,"both_direct_or_nearby","Cultural",0.721373298875,0.653960175,0.78768305
|
||||
409,"Sweden: Sweden Democrats","SE",2014,"both_direct_or_nearby","Cultural",0.750375772125,0.690054075,0.81067825
|
||||
409,"Sweden: Sweden Democrats","SE",2018,"both_direct_or_nearby","Cultural",0.671777804625,0.5936524,0.747156725
|
||||
409,"Sweden: Sweden Democrats","SE",2022,"both_direct_or_nearby","Cultural",0.753425659,0.653108875,0.84672335
|
||||
|
@@ -0,0 +1,131 @@
|
||||
dim_idx,country,n,covered,missed,observed_coverage,coverage_ci_lower,coverage_ci_upper,mean_interval_width,share_of_all_misses
|
||||
2,DK,591,475,116,0.8037225042301185,0.7697822014838583,0.8337398117714353,0.34096506583821323,0.037108125399872044
|
||||
2,SE,502,397,105,0.7908366533864541,0.753115778828177,0.8241400261510892,0.32724096117398543,0.03358925143953935
|
||||
2,FI,441,362,79,0.8208616780045351,0.7823477062456757,0.8538338019585928,0.3521254779175972,0.02527191298784389
|
||||
2,MX,295,219,76,0.7423728813559322,0.6895752975947299,0.7889390725598938,0.23095838836601693,0.02431222008957134
|
||||
2,NO,361,287,74,0.7950138504155124,0.7503670542041302,0.8334479493480963,0.33480773282277126,0.023672424824056303
|
||||
2,IL,363,294,69,0.8099173553719008,0.7663888096836808,0.8469549332287913,0.4807755515181515,0.022072936660268713
|
||||
2,CO,217,153,64,0.7050691244239631,0.6412522930429461,0.7617514888532184,0.29239857298387406,0.020473448496481125
|
||||
1,SE,251,189,62,0.7529880478087649,0.6960862604122187,0.8022625178092335,0.3335369874622401,0.01983365323096609
|
||||
2,ES,387,327,60,0.8449612403100775,0.8055273129985262,0.8776138879381191,0.3107361818602786,0.019193857965451054
|
||||
2,IT,383,325,58,0.8485639686684073,0.8092123043857011,0.8809926787391749,0.3441826985021345,0.018554062699936022
|
||||
2,CL,258,200,58,0.7751937984496124,0.720430827244006,0.8218817770175019,0.31159594428182186,0.018554062699936022
|
||||
2,NL,435,379,56,0.871264367816092,0.836511468769764,0.8995172030790307,0.4367839392800082,0.017914267434420986
|
||||
2,BR,253,198,55,0.782608695652174,0.7277600585652945,0.8290033317889162,0.24562835228921992,0.017594369801663467
|
||||
2,AU,201,146,55,0.7263681592039801,0.6609221915218342,0.7833235085703347,0.36215838398291056,0.017594369801663467
|
||||
2,AT,344,290,54,0.8430232558139535,0.8008177602522767,0.8776519799973083,0.3791623669084359,0.01727447216890595
|
||||
1,IL,153,99,54,0.6470588235294118,0.5685792981324436,0.7183343778310765,0.5109246037503151,0.01727447216890595
|
||||
2,DE,357,305,52,0.8543417366946778,0.813976063945657,0.8871626074270449,0.3340690683828169,0.016634676903390915
|
||||
2,JP,388,337,51,0.8685567010309279,0.8312932037080444,0.8985935668645543,0.4148813702986318,0.016314779270633396
|
||||
2,CA,310,259,51,0.8354838709677419,0.7901543445561301,0.8726003699240408,0.3782700950769002,0.016314779270633396
|
||||
2,SI,308,259,49,0.8409090909090909,0.7958964745844647,0.877522338043485,0.3439481482100814,0.015674984005118364
|
||||
2,HU,257,208,49,0.8093385214007782,0.756893380649556,0.8526719647554714,0.2526512872355091,0.015674984005118364
|
||||
2,EC,335,287,48,0.8567164179104477,0.8151479493922225,0.8901963766881642,0.31209065712944917,0.015355086372360844
|
||||
2,BE,576,529,47,0.9184027777777778,0.8931769082838773,0.9380845948576705,0.45352564314113547,0.015035188739603326
|
||||
2,US,252,207,45,0.8214285714285714,0.769423454713083,0.8637808404445456,0.35592321773190133,0.014395393474088292
|
||||
1,ES,216,171,45,0.7916666666666666,0.7326437318548641,0.8404962016245138,0.28009124799851126,0.014395393474088292
|
||||
2,PT,337,293,44,0.8694362017804155,0.8292615059623852,0.9012831223928391,0.34994401527984337,0.014075495841330775
|
||||
2,AR,263,219,44,0.8326996197718631,0.7828705798229194,0.8729492023999423,0.23254374135152828,0.014075495841330775
|
||||
2,CZ,232,189,43,0.8146551724137931,0.7596723391458756,0.8593872330415587,0.27542780150490975,0.013755598208573257
|
||||
2,CH,281,240,41,0.8540925266903915,0.8080433555086604,0.890590551898123,0.49418992032134257,0.013115802943058221
|
||||
1,DK,295,255,40,0.864406779661017,0.820624444905585,0.8988202374947235,0.31889580286763275,0.012795905310300703
|
||||
2,BG,202,164,38,0.8118811881188119,0.7523552233480405,0.8597659416642799,0.2916225124605349,0.01215611004478567
|
||||
2,NZ,290,253,37,0.8724137931034482,0.8290883168210503,0.906001609179897,0.3441802885816895,0.011836212412028152
|
||||
2,RO,223,186,37,0.8340807174887892,0.7796821754591453,0.8771638351491381,0.3520977133829108,0.011836212412028152
|
||||
2,GR,209,172,37,0.8229665071770335,0.7655271590394533,0.8687473436893366,0.3215915809769824,0.011836212412028152
|
||||
2,RU,148,111,37,0.75,0.6745102200876807,0.812839755149672,0.3104110864331615,0.011836212412028152
|
||||
2,TR,232,196,36,0.8448275862068966,0.7926604826623701,0.8857609663101608,0.3406844407917753,0.011516314779270634
|
||||
2,FR,213,177,36,0.8309859154929577,0.774896736757214,0.8753474968215827,0.35875318414230967,0.011516314779270634
|
||||
2,IE,262,227,35,0.8664122137404581,0.8198790673988694,0.9023555264344509,0.35141007918500533,0.011196417146513116
|
||||
2,UA,136,101,35,0.7426470588235294,0.6632160993617318,0.808746463995667,0.29217432021539236,0.011196417146513116
|
||||
1,SI,160,128,32,0.8,0.7313136012818623,0.8546181767281181,0.3333656098062828,0.010236724248240563
|
||||
1,IT,205,174,31,0.848780487804878,0.7933527545694111,0.8913767246148127,0.3345779215287422,0.009916826615483045
|
||||
2,LT,254,224,30,0.8818897637795275,0.8363971467325418,0.9160027763209918,0.3252855971515445,0.009596928982725527
|
||||
2,SK,236,206,30,0.8728813559322034,0.8243302433439933,0.9094874096403097,0.33529897312785345,0.009596928982725527
|
||||
2,PL,226,196,30,0.8672566371681416,0.8168254685843553,0.9054110630095772,0.27818801218617073,0.009596928982725527
|
||||
2,LV,161,132,29,0.8198757763975155,0.753283905194571,0.8715583676297647,0.38134437390282394,0.009277031349968011
|
||||
1,HU,135,106,29,0.7851851851851852,0.7085254653154678,0.8460633610881463,0.2713613082643666,0.009277031349968011
|
||||
2,GB,279,251,28,0.899641577060932,0.8587770128396208,0.9296501492185771,0.370345303851619,0.008957133717210493
|
||||
2,EE,216,188,28,0.8703703703703703,0.8190268904617041,0.90876985046449,0.3211450537007852,0.008957133717210493
|
||||
2,MK,157,130,27,0.8280254777070064,0.761347791627353,0.8790338011944048,0.3328308552194658,0.008637236084452975
|
||||
2,LK,105,78,27,0.7428571428571429,0.6517287582972721,0.81684208226369,0.34971136623906696,0.008637236084452975
|
||||
2,ZA,95,68,27,0.7157894736842105,0.6180880088754301,0.7967170934296721,0.30306657704867573,0.008637236084452975
|
||||
1,AT,171,146,25,0.8538011695906432,0.793083509290611,0.8989714707599032,0.37001942460440285,0.00799744081893794
|
||||
1,BA,83,58,25,0.6987951807228916,0.5931077009464831,0.7868945099754714,0.6530091786233316,0.00799744081893794
|
||||
2,ME,203,179,24,0.8817733990147784,0.8301131383754015,0.9192525598207062,0.42353003104370995,0.007677543186180422
|
||||
2,IS,366,343,23,0.9371584699453552,0.9074711874187165,0.9577640916845538,0.46607262217429696,0.007357645553422905
|
||||
1,BE,285,264,21,0.9263157894736842,0.889987337420522,0.9513042216900769,0.40310108530566724,0.0067178502879078695
|
||||
2,AZ,40,20,20,0.5,0.35199278797099753,0.6480072120290025,0.2980013360440449,0.006397952655150352
|
||||
1,NL,243,224,19,0.9218106995884774,0.8811167329480407,0.9493753721104259,0.3745567128537068,0.006078055022392835
|
||||
2,RS,183,164,19,0.8961748633879781,0.8435383807295037,0.9325200559355645,0.48057773591470687,0.006078055022392835
|
||||
2,UY,94,76,18,0.8085106382978723,0.7174953172054067,0.8752995675879734,0.3109213794683214,0.005758157389635317
|
||||
1,NO,170,153,17,0.9,0.8456966542360402,0.9366247233858869,0.36682308236936995,0.005438259756877799
|
||||
2,BA,199,183,16,0.9195979899497487,0.8733962313299496,0.9499062864967683,0.6105957548661178,0.005118362124120281
|
||||
1,CH,140,124,16,0.8857142857142857,0.8224079013357011,0.9284180071636483,0.4091358813624531,0.005118362124120281
|
||||
1,MX,127,112,15,0.8818897637795275,0.8142508293208697,0.927103602297209,0.24070792429332802,0.0047984644913627635
|
||||
2,KR,96,81,15,0.84375,0.7580833433259717,0.9029637552782173,0.3501280262251946,0.0047984644913627635
|
||||
2,CR,184,170,14,0.9239130434782609,0.8763482447676944,0.9541387187164326,0.4240691990563173,0.004478566858605247
|
||||
1,MK,64,50,14,0.78125,0.665669836692222,0.8649780253865025,0.3637505042383261,0.004478566858605247
|
||||
2,AM,121,108,13,0.8925619834710744,0.8248333699926145,0.9361309239606832,0.37292993312555567,0.004158669225847729
|
||||
1,AL,56,43,13,0.7678571428571429,0.6423159664807568,0.8590075275434671,0.5186502605516307,0.004158669225847729
|
||||
1,UA,55,42,13,0.7636363636363637,0.6365138127856039,0.8563347841254251,0.3040723953102151,0.004158669225847729
|
||||
2,HR,174,162,12,0.9310344827586207,0.8833348945779347,0.9601123078763842,0.341013473723335,0.003838771593090211
|
||||
1,GR,108,96,12,0.8888888888888888,0.8157742465799382,0.9352879699834871,0.2789163242525437,0.003838771593090211
|
||||
1,IS,171,160,11,0.935672514619883,0.888495316776368,0.9637046173354223,0.6102330906402569,0.0035188739603326936
|
||||
1,CZ,129,118,11,0.9147286821705426,0.8537505978816597,0.9517199776007192,0.25019187582739527,0.0035188739603326936
|
||||
1,EE,111,100,11,0.9009009009009009,0.8312201328230934,0.9437603620498446,0.32454417830607984,0.0035188739603326936
|
||||
2,MD,110,99,11,0.9,0.8297634281701123,0.9432404649585859,0.46023339022640763,0.0035188739603326936
|
||||
2,PE,99,88,11,0.8888888888888888,0.8119092356335661,0.9368150160311298,0.34410418427967504,0.0035188739603326936
|
||||
1,TR,97,86,11,0.8865979381443299,0.8082535953989312,0.9354870830512321,0.34751860404266116,0.0035188739603326936
|
||||
1,LV,85,74,11,0.8705882352941177,0.7829500250687882,0.9261772306312444,0.36322532983792966,0.0035188739603326936
|
||||
1,KR,39,28,11,0.717948717948718,0.5622438267752261,0.8345667498605671,0.3412018490131779,0.0035188739603326936
|
||||
1,JP,157,147,10,0.9363057324840764,0.8867313745947507,0.9650383168283638,0.39560782642414705,0.003198976327575176
|
||||
1,RO,119,109,10,0.9159663865546218,0.8522002206672478,0.9537156905550092,0.3450090838568076,0.003198976327575176
|
||||
1,PL,115,105,10,0.9130434782608695,0.8473013610685256,0.952082019835131,0.28188380039634586,0.003198976327575176
|
||||
1,BR,106,96,10,0.9056603773584906,0.8349975646766294,0.9479480588394156,0.2781748830219968,0.003198976327575176
|
||||
1,RS,75,65,10,0.8666666666666667,0.7716663173307007,0.9259349490058527,0.5238352359916794,0.003198976327575176
|
||||
1,ZA,41,31,10,0.7560975609756098,0.606563693455418,0.8617514424897758,0.31796447495280955,0.003198976327575176
|
||||
1,AR,107,98,9,0.9158878504672897,0.8478290663839783,0.9551185633867938,0.2590492120275288,0.0028790786948176585
|
||||
2,GE,107,98,9,0.9158878504672897,0.8478290663839783,0.9551185633867938,0.3068691997966909,0.0028790786948176585
|
||||
1,MD,47,38,9,0.8085106382978723,0.674557199356223,0.8958418439468988,0.48248726172118933,0.0028790786948176585
|
||||
1,CA,130,122,8,0.9384615384615385,0.883262024591287,0.9684910925262609,0.38864811076419375,0.0025591810620601407
|
||||
1,FR,129,121,8,0.937984496124031,0.8823929248324613,0.9682442249760324,0.3186875483735639,0.0025591810620601407
|
||||
1,BG,111,103,8,0.9279279279279279,0.8641960123478968,0.963030358583891,0.2792821661933207,0.0025591810620601407
|
||||
1,RU,61,53,8,0.8688524590163934,0.761978875735935,0.932020038541319,0.3020174104723059,0.0025591810620601407
|
||||
1,DO,55,47,8,0.8545454545454545,0.7383883791170325,0.9244080098322822,0.3507704119914383,0.0025591810620601407
|
||||
1,GE,44,36,8,0.8181818181818182,0.6803916324485767,0.9048730744174144,0.3134903637928707,0.0025591810620601407
|
||||
2,CY,217,210,7,0.967741935483871,0.9349226644801334,0.9842882088335903,0.5734898387706777,0.0022392834293026233
|
||||
1,FI,229,223,6,0.9737991266375546,0.9440260882227658,0.9879379594388205,0.38491873958615963,0.0019193857965451055
|
||||
1,PT,174,168,6,0.9655172413793104,0.9268205486728962,0.9841024299777683,0.30839086537508603,0.0019193857965451055
|
||||
1,IE,147,141,6,0.9591836734693877,0.9138168781025923,0.9811616954474097,0.3296791743347659,0.0019193857965451055
|
||||
2,DO,137,131,6,0.9562043795620438,0.9077457553614567,0.9797761131773843,0.3121786527987746,0.0019193857965451055
|
||||
1,NZ,119,113,6,0.9495798319327731,0.8943504337593848,0.9766899955414383,0.36970184694787017,0.0019193857965451055
|
||||
1,CR,82,76,6,0.926829268292683,0.8494197580293277,0.9660356854852388,0.4502654149628391,0.0019193857965451055
|
||||
2,BO,67,61,6,0.9104477611940298,0.8180703630060067,0.9583096171186658,0.3867585762329881,0.0019193857965451055
|
||||
1,CO,94,89,5,0.9468085106382979,0.8814619333292169,0.9770685894749891,0.30738835816785365,0.001599488163787588
|
||||
1,AU,84,79,5,0.9404761904761905,0.8681156389946401,0.974309817736567,0.3868366747554773,0.001599488163787588
|
||||
1,MT,51,46,5,0.9019607843137255,0.7902151004554693,0.957392555046923,0.412861442923319,0.001599488163787588
|
||||
2,LU,195,191,4,0.9794871794871794,0.9484521905551939,0.9919948788709221,0.5887031891018235,0.0012795905310300703
|
||||
1,GB,159,155,4,0.9748427672955975,0.9371069914760977,0.9901744894231321,0.3468535073751794,0.0012795905310300703
|
||||
1,SK,136,132,4,0.9705882352941176,0.9268170119919115,0.9885043230042556,0.3001364805853944,0.0012795905310300703
|
||||
2,PA,111,107,4,0.963963963963964,0.9109886133681347,0.9858989256421195,0.44053760146375887,0.0012795905310300703
|
||||
1,CL,108,104,4,0.9629629629629629,0.9086169931912852,0.9855046931937449,0.3361433609582821,0.0012795905310300703
|
||||
2,MT,108,104,4,0.9629629629629629,0.9086169931912852,0.9855046931937449,0.4378735194312487,0.0012795905310300703
|
||||
1,ME,83,79,4,0.9518072289156626,0.8825396981330589,0.9811016903259284,0.43751204937744714,0.0012795905310300703
|
||||
1,AM,49,45,4,0.9183673469387755,0.8081061295851387,0.9677977037582878,0.39260685052353583,0.0012795905310300703
|
||||
1,BO,28,24,4,0.8571428571428571,0.6850982695512267,0.9430108706929821,0.3811838942312988,0.0012795905310300703
|
||||
2,BY,20,16,4,0.8,0.5839782779742401,0.9193436467288,0.3008351252498642,0.0012795905310300703
|
||||
1,US,102,99,3,0.9705882352941176,0.9170680330254163,0.9899477339319994,0.3643205736622997,0.0009596928982725527
|
||||
1,EC,140,138,2,0.9857142857142858,0.9494108358295452,0.996073641540006,0.32508504307508695,0.0006397952655150352
|
||||
2,AL,137,135,2,0.9854014598540146,0.9483358027023897,0.9959874654229369,0.49710422870429904,0.0006397952655150352
|
||||
1,HR,101,99,2,0.9801980198019802,0.930652470326113,0.9945527917072783,0.3649866310600937,0.0006397952655150352
|
||||
1,AZ,17,15,2,0.8823529411764706,0.6566315750229009,0.967120919987079,0.36949713651622773,0.0006397952655150352
|
||||
1,LT,143,142,1,0.993006993006993,0.9614538318329731,0.998764525907613,0.31638979824789865,0.0003198976327575176
|
||||
1,CY,111,110,1,0.990990990990991,0.9507254595746947,0.9984079554944091,0.497761655437717,0.0003198976327575176
|
||||
1,LU,91,90,1,0.989010989010989,0.9403491964093862,0.9980575786766521,0.6116481162424328,0.0003198976327575176
|
||||
1,LK,42,41,1,0.9761904761904762,0.8767851883475174,0.9957847045008997,0.34106251758408546,0.0003198976327575176
|
||||
1,DE,183,183,0,1.0,0.9794392683428103,1.0,0.31953359319260993,0.0
|
||||
1,PA,46,46,0,1.0,0.9229238226702192,1.0,0.47798085651444294,0.0
|
||||
1,PE,42,42,0,1.0,0.9161983874908382,1.0000000000000002,0.3607698524521948,0.0
|
||||
1,UY,40,40,0,1.0,0.9123754607496077,1.0,0.34705297518279504,0.0
|
||||
1,BY,8,8,0,1.0,0.6755843804891231,1.0,0.28189720100301907,0.0
|
||||
|
@@ -0,0 +1,13 @@
|
||||
dim_idx,decade,n,covered,missed,observed_coverage,coverage_ci_lower,coverage_ci_upper,mean_interval_width,share_of_all_misses
|
||||
2,2010,4426,3635,791,0.8212833258020786,0.8097191383350175,0.8322902734687816,0.3388606652193509,0.2530390275111964
|
||||
2,2000,3965,3341,624,0.8426229508196721,0.8309569390844841,0.8536256857297689,0.3664093299406367,0.19961612284069097
|
||||
2,1990,3485,2978,507,0.854519368723099,0.8424226784176309,0.8658353290539608,0.3726416336018931,0.16218809980806143
|
||||
1,2010,2407,2172,235,0.9023680930619028,0.8898612031705257,0.9135926612393135,0.3280651483947886,0.07517594369801664
|
||||
2,1970,1633,1407,226,0.8616044090630741,0.8440053082890357,0.8775061684476257,0.4100766908612706,0.07229686500319897
|
||||
2,1980,1772,1557,215,0.878668171557562,0.8626405756384113,0.8930574550868514,0.3911340626362346,0.06877799104286628
|
||||
1,2000,1758,1572,186,0.89419795221843,0.8789500150085333,0.9077268349421094,0.37352581840447835,0.05950095969289827
|
||||
1,1990,1454,1279,175,0.8796423658872077,0.8619091688241086,0.8953747500872463,0.38904226378561896,0.05598208573256558
|
||||
1,1980,712,633,79,0.8890449438202247,0.863854361551315,0.9100598675183562,0.4071944285210122,0.02527191298784389
|
||||
1,1970,658,580,78,0.8814589665653495,0.8545183231638509,0.9039713214882834,0.4300185935903554,0.02495201535508637
|
||||
2,2020,258,252,6,0.9767441860465116,0.9502000825748488,0.9892992177655097,0.235360349124426,0.0019193857965451055
|
||||
1,2020,466,462,4,0.9914163090128756,0.9781395065563742,0.9966571057487091,0.2480109465949484,0.0012795905310300703
|
||||
|
@@ -0,0 +1,13 @@
|
||||
dim_idx,project,var,n,covered,missed,observed_coverage,coverage_ci_lower,coverage_ci_upper,mean_interval_width,share_of_all_misses
|
||||
2,V-Party,gender_vparty,2802,2119,683,0.7562455389007852,0.7400041833684662,0.7717852205665244,0.40881512947959253,0.21849008317338453
|
||||
2,V-Party,relig_vparty,2828,2262,566,0.7998585572842999,0.7847095841432594,0.8141939703493366,0.2882881086220928,0.18106206014075496
|
||||
1,V-Party,welf_vparty,2818,2261,557,0.8023420865862314,0.787231173137499,0.8166297948204475,0.4001936033568574,0.1781829814459373
|
||||
2,V-Party,culsup_vparty,2828,2387,441,0.844059405940594,0.8302220160564773,0.856963312388447,0.39195419130327286,0.14107485604606526
|
||||
2,V-Party,immig_vparty,2828,2487,341,0.8794200848656294,0.8669005216436195,0.8909102259631675,0.39156281472441545,0.1090850927703135
|
||||
2,V-Party,lgbt_vparty,2828,2579,249,0.9119519094766619,0.9009413114843197,0.921844821751381,0.4007675443770831,0.07965451055662189
|
||||
1,V-Party,lrecon_vparty,2827,2679,148,0.9476476830562434,0.9388125348768209,0.9552678686328632,0.3937581954807973,0.04734484964811261
|
||||
2,CHES,galtan_ches,1176,1109,67,0.9430272108843537,0.9282799190767855,0.9548894826462931,0.26190336027902683,0.02143314139475368
|
||||
1,CHES,lrecon_ches,1177,1145,32,0.9728122344944775,0.9618713612264376,0.9806767332851378,0.2537544114580155,0.010236724248240563
|
||||
2,GPS,libcon_gps,249,227,22,0.9116465863453815,0.8698544742943817,0.940929827023123,0.2281137815345669,0.007037747920665387
|
||||
1,GPS,lrecon_gps,249,234,15,0.9397590361445783,0.9029977562632928,0.9631571802661391,0.23441440673165534,0.0047984644913627635
|
||||
1,POPPA,lrecon_poppa,384,379,5,0.9869791666666666,0.9698853213826314,0.9944258819539885,0.2668966115681637,0.001599488163787588
|
||||
|
@@ -0,0 +1,8 @@
|
||||
dim_idx,project,n,covered,missed,observed_coverage,coverage_ci_lower,coverage_ci_upper,mean_interval_width,share_of_all_misses
|
||||
2,V-Party,14114,11834,2280,0.8384582683859997,0.8322945450978664,0.8444377961971373,0.37621761885573124,0.7293666026871402
|
||||
1,V-Party,5645,4940,705,0.87511071744907,0.8662305886687013,0.883480644161761,0.3969707693328323,0.2255278310940499
|
||||
2,CHES,1176,1109,67,0.9430272108843537,0.9282799190767855,0.9548894826462931,0.26190336027902683,0.02143314139475368
|
||||
1,CHES,1177,1145,32,0.9728122344944775,0.9618713612264376,0.9806767332851378,0.2537544114580155,0.010236724248240563
|
||||
2,GPS,249,227,22,0.9116465863453815,0.8698544742943817,0.940929827023123,0.2281137815345669,0.007037747920665387
|
||||
1,GPS,249,234,15,0.9397590361445783,0.9029977562632928,0.9631571802661391,0.23441440673165534,0.0047984644913627635
|
||||
1,POPPA,384,379,5,0.9869791666666666,0.9698853213826314,0.9944258819539885,0.2668966115681637,0.001599488163787588
|
||||
|
@@ -0,0 +1,9 @@
|
||||
dim_idx,nominal_level,observed_coverage,covered,n
|
||||
1,0.5,0.4886653252850436,3643,7455
|
||||
1,0.8,0.7585513078470825,5655,7455
|
||||
1,0.9,0.848692152917505,6327,7455
|
||||
1,0.95,0.8984574111334674,6698,7455
|
||||
2,0.5,0.4237080893236373,6584,15539
|
||||
2,0.8,0.6785507432910741,10544,15539
|
||||
2,0.9,0.7784928245060815,12097,15539
|
||||
2,0.95,0.8475448870583693,13170,15539
|
||||
|
@@ -0,0 +1,31 @@
|
||||
"dim_idx","group_type","group","n","covered","observed_coverage","mean_interval_width","mean_fitted_value","mean_expert_count"
|
||||
1,"fitted_bin","<0.10",186,173,0.93010752688172,0.201343935349587,0.0742982979906544,6.90860215053763
|
||||
2,"fitted_bin","<0.10",1136,1057,0.930457746478873,0.199591148849266,0.0563123796238274,4.14700704225352
|
||||
1,"fitted_bin","0.10--0.25",1048,951,0.907442748091603,0.314041549598746,0.184525433560757,5.61927480916031
|
||||
2,"fitted_bin","0.10--0.25",2188,1825,0.834095063985375,0.317890840699561,0.178618057950006,5.16499085923218
|
||||
1,"fitted_bin","0.25--0.50",3246,2901,0.893715341959335,0.386906127490127,0.378663668829021,6.03789279112754
|
||||
2,"fitted_bin","0.25--0.50",5968,5095,0.853719839142091,0.398286462549822,0.386935866391175,5.08176943699732
|
||||
1,"fitted_bin","0.50--0.75",2556,2275,0.890062597809077,0.375315993025779,0.611178265471442,6.72339593114241
|
||||
2,"fitted_bin","0.50--0.75",5355,4448,0.83062558356676,0.392888401688966,0.602719664402968,5.07581699346405
|
||||
1,"fitted_bin","0.75--0.90",412,393,0.953883495145631,0.285225609283457,0.795682066295318,8.87621359223301
|
||||
2,"fitted_bin","0.75--0.90",782,647,0.827365728900256,0.325761069731583,0.802604598684315,6.67519181585678
|
||||
1,"fitted_bin",">=0.90",7,5,0.714285714285714,0.16328375744906,0.916229942632867,10.1428571428571
|
||||
2,"fitted_bin",">=0.90",110,98,0.890909090909091,0.152884501861608,0.932790231810077,13.6545454545455
|
||||
1,"expert_count_bin","1",426,349,0.81924882629108,0.65481986066405,0.448917410089667,1
|
||||
2,"expert_count_bin","1",771,720,0.933852140077821,0.639913191413526,0.504472582940748,1
|
||||
1,"expert_count_bin","2--3",1983,1740,0.877458396369138,0.444902409806459,0.421601867407412,2.65708522440746
|
||||
2,"expert_count_bin","2--3",4733,4075,0.860976125079231,0.435003218496791,0.406494180618051,2.56665962391718
|
||||
1,"expert_count_bin","4--5",2194,1936,0.882406563354603,0.354391432832638,0.434501893246095,4.43208751139471
|
||||
2,"expert_count_bin","4--5",5503,4597,0.835362529529348,0.344489930932836,0.411151430784599,4.34017808468108
|
||||
1,"expert_count_bin","6--10",1564,1436,0.918158567774936,0.30087431789946,0.455534718410825,7.46227621483376
|
||||
2,"expert_count_bin","6--10",3122,2531,0.810698270339526,0.291057091853021,0.468603655803318,7.02274183215887
|
||||
1,"expert_count_bin",">10",1288,1237,0.960403726708075,0.226032177926726,0.496678494666528,15.9906832298137
|
||||
2,"expert_count_bin",">10",1410,1247,0.884397163120567,0.225590440713733,0.484677797077863,15.258865248227
|
||||
1,"interval_width_quartile","Q1",2082,1964,0.943323727185399,0.234836823506568,0.427252900199234,12.5168107588857
|
||||
2,"interval_width_quartile","Q1",3667,3137,0.855467684755931,0.224611599610499,0.336836104500498,9.18571038996455
|
||||
1,"interval_width_quartile","Q2",1752,1598,0.912100456621005,0.32623893175719,0.439056079092374,5.82020547945205
|
||||
2,"interval_width_quartile","Q2",3996,3316,0.82982982982983,0.325761369694064,0.451615985560038,5.59934934934935
|
||||
1,"interval_width_quartile","Q3",1868,1641,0.87847965738758,0.387666656091502,0.460880414112048,4.06477516059957
|
||||
2,"interval_width_quartile","Q3",3880,3252,0.838144329896907,0.389151519326864,0.455512300134519,3.92216494845361
|
||||
1,"interval_width_quartile","Q4",1753,1495,0.85282373074729,0.522398307318929,0.463810195053108,2.18824871648602
|
||||
2,"interval_width_quartile","Q4",3996,3465,0.867117117117117,0.510368641582237,0.479130318116811,2.24374374374374
|
||||
|
@@ -0,0 +1,3 @@
|
||||
dimension,cic,cic_pct,ci_lower,ci_upper,n,covered
|
||||
economic_lr,0.7585513078470825,75.9,0.7487048592332345,0.7681314280529844,7455,5655
|
||||
galtan,0.6785507432910741,67.9,0.6711640763491561,0.6858491483111274,15539,10544
|
||||
|
@@ -0,0 +1,3 @@
|
||||
dimension,cic,cic_pct,ci_lower,ci_upper,n,covered
|
||||
economic_lr,0.8984574111334674,89.8,0.8913943427959263,0.9051100366508769,7455,6698
|
||||
galtan,0.8475448870583693,84.8,0.8418071013756855,0.8531108729540536,15539,13170
|
||||
|
@@ -0,0 +1,5 @@
|
||||
project,n,covered,cic
|
||||
V-Party,5645,4940,0.87511071744907
|
||||
CHES,1177,1145,0.9728122344944775
|
||||
POPPA,384,379,0.9869791666666666
|
||||
GPS,249,234,0.9397590361445783
|
||||
|
@@ -0,0 +1,4 @@
|
||||
project,n,covered,cic
|
||||
V-Party,14114,11834,0.8384582683859997
|
||||
CHES,1176,1109,0.9430272108843537
|
||||
GPS,249,227,0.9116465863453815
|
||||
|
@@ -0,0 +1,29 @@
|
||||
"dimension","group_type","group","comparison","group_n","text_only_n","estimate","approximate_se","ci_lower","ci_upper","model_n","singular_fit"
|
||||
"economic_lr","region","Asia-Pacific","Text only",414,157,0.023499613577582,0.0194884624938891,-0.0146977729104407,0.0616970000656046,4918,FALSE
|
||||
"economic_lr","region","Europe","Text only",3518,1150,0.0234974462379077,0.019488462450132,-0.0146999401643511,0.0616948326401665,4918,FALSE
|
||||
"economic_lr","region","Latin America","Text only",527,178,0.0234982664429087,0.0194884625013502,-0.0146991200597376,0.0616956529455551,4918,FALSE
|
||||
"economic_lr","region","North America","Text only",182,65,0.0234984096509199,0.0194884625063241,-0.0146989768614752,0.0616957961633151,4918,FALSE
|
||||
"economic_lr","region","Other","Text only",277,108,0.0234999353063372,0.0194884625020575,-0.0146974511976955,0.0616973218103699,4918,FALSE
|
||||
"economic_lr","decade","1940","Text only",151,151,0.0361702336962241,0.0264169933989952,-0.0156070733658065,0.0879475407582547,4918,FALSE
|
||||
"economic_lr","decade","1950","Text only",290,288,0.0515452173138878,0.0237789826712282,0.00493841127828048,0.0981520233494951,4918,FALSE
|
||||
"economic_lr","decade","1960","Text only",310,301,0.0173768258790806,0.0236362916289398,-0.0289503057136415,0.0637039574718027,4918,FALSE
|
||||
"economic_lr","decade","1970","Text only",468,118,0.0318158385898869,0.0278251134588641,-0.0227213837894868,0.0863530609692606,4918,FALSE
|
||||
"economic_lr","decade","1980","Text only",537,164,0.0811017672950212,0.0260804140172057,0.029984155821298,0.132219378768744,4918,FALSE
|
||||
"economic_lr","decade","1990","Text only",961,242,0.090351969036333,0.0244789559738209,0.042373215327644,0.138330722745022,4918,FALSE
|
||||
"economic_lr","decade","2000","Text only",966,157,0.00199794203598232,0.026319290732969,-0.0495878678006369,0.0535837518726016,4918,FALSE
|
||||
"economic_lr","decade","2010","Text only",1019,169,-0.0377271288552299,0.0260831159721564,-0.0888500361606564,0.0133957784501965,4918,FALSE
|
||||
"economic_lr","decade","2020","Text only",216,68,-0.0611440568032739,0.031816463272324,-0.123504324817029,0.00121621121048109,4918,FALSE
|
||||
"galtan","region","Asia-Pacific","Text only",414,157,-0.0583506874216767,0.0255289688453339,-0.108387466358531,-0.00831390848482223,4918,FALSE
|
||||
"galtan","region","Europe","Text only",3518,1150,0.0280310752712225,0.0215623111509888,-0.0142310545847155,0.0702932051271606,4918,FALSE
|
||||
"galtan","region","Latin America","Text only",527,178,-0.0274044614386924,0.0276182311152612,-0.0815361944246044,0.0267272715472196,4918,FALSE
|
||||
"galtan","region","North America","Text only",182,65,-0.0347638802349499,0.0292448253676695,-0.0920837379555821,0.0225559774856824,4918,FALSE
|
||||
"galtan","region","Other","Text only",277,108,0.00122806156533374,0.0274679779619373,-0.0526091752400633,0.0550652983707308,4918,FALSE
|
||||
"galtan","decade","1940","Text only",151,151,-0.00886963742385274,0.0230507690251292,-0.0540491447131059,0.0363098698654004,4918,FALSE
|
||||
"galtan","decade","1950","Text only",290,288,-0.0261254372163238,0.0223317588503254,-0.0698956845629617,0.017644810130314,4918,FALSE
|
||||
"galtan","decade","1960","Text only",310,301,-0.0423163966136925,0.0222910716791448,-0.0860068971048164,0.00137410387743137,4918,FALSE
|
||||
"galtan","decade","1970","Text only",468,118,0.00112335073405384,0.0233940571942832,-0.0447290013667412,0.0469757028348488,4918,FALSE
|
||||
"galtan","decade","1980","Text only",537,164,-0.0143718371416263,0.0229441471113722,-0.0593423654799158,0.0305986911966632,4918,FALSE
|
||||
"galtan","decade","1990","Text only",961,242,-0.0166570316482948,0.0225348597781818,-0.060825356813531,0.0275112935169415,4918,FALSE
|
||||
"galtan","decade","2000","Text only",966,157,-0.00235707430082799,0.0230142737432502,-0.0474650508375983,0.0427509022359423,4918,FALSE
|
||||
"galtan","decade","2010","Text only",1019,169,-0.0327916901242996,0.0229562136417423,-0.0777858688621145,0.0122024886135154,4918,FALSE
|
||||
"galtan","decade","2020","Text only",216,68,-0.0219020523308627,0.0242056730938077,-0.0693451715947258,0.0255410669330004,4918,FALSE
|
||||
|
@@ -0,0 +1,7 @@
|
||||
"dimension","comparison","category_n","model_n","estimate","clustered_se","ci_lower","ci_upper","p_value"
|
||||
"economic_lr","Text only",1658,4918,0.0146213824427815,0.0194180161980694,-0.0234379293054345,0.0526806941909975,0.451461789942091
|
||||
"economic_lr","Expert only",237,4918,-0.0151752788922033,0.0345235882210866,-0.082841511805533,0.0524909540211264,0.660253918863865
|
||||
"economic_lr","Temporal propagation",84,4918,-0.0507326635318485,0.0585015466678104,-0.165395695000757,0.0639303679370598,0.385831291398033
|
||||
"galtan","Text only",1658,4918,0.0178370523352578,0.0203365901149711,-0.0220226642900856,0.0576967689606011,0.380436887567239
|
||||
"galtan","Expert only",237,4918,0.03967989229365,0.0177110608676138,0.00496621299312706,0.074393571594173,0.0250648508349581
|
||||
"galtan","Temporal propagation",84,4918,-0.0451312946088707,0.0794792780909196,-0.200910679667073,0.110648090449332,0.570145484504212
|
||||
|
@@ -0,0 +1,187 @@
|
||||
"dimension","group_type","group","n","parties","mean_abs_difference","median_abs_difference","p90_abs_difference","p95_abs_difference","mean_signed_difference","mean_interval_width_production","mean_interval_width_no_vparty","mean_interval_width_change"
|
||||
"economic_lr","country","AL",42,9,0.11007115056994,0.1158001133125,0.16388615046625,0.18221207556125,0.109997455530655,0.313384542380952,0.300286733928571,-0.0130978084523809
|
||||
"economic_lr","country","AM",26,8,0.136577217672115,0.150937754875,0.2098864180625,0.2208015980625,-0.113680095763462,0.273092678461538,0.325743899807692,0.0526512213461538
|
||||
"economic_lr","country","AR",22,4,0.0848245688585227,0.0528036060625,0.1669706491625,0.24947483924125,-0.0285713360403409,0.273925635227273,0.321399650568182,0.0474740153409091
|
||||
"economic_lr","country","AT",84,7,0.0357452832340774,0.0176101082499999,0.0902926514125,0.113726891864375,0.0259106200822917,0.198733178065476,0.1805706,-0.0181625780654762
|
||||
"economic_lr","country","AU",123,9,0.0389789289578354,0.0426316946250002,0.0623188192950001,0.06583370092125,-0.0307516726874898,0.213811405,0.209957416239837,-0.0038539887601626
|
||||
"economic_lr","country","AZ",6,3,0.107751395166667,0.0686461146875,0.21379690875,0.21823543815,-0.0978946908333333,0.294933266666667,0.35058399875,0.0556507320833335
|
||||
"economic_lr","country","BA",59,9,0.183242221828814,0.189491590375,0.2311323814975,0.23891121964625,-0.183242221828814,0.277945797457627,0.288832576949152,0.0108867794915254
|
||||
"economic_lr","country","BE",192,20,0.0471656297852865,0.03839504868125,0.10255722729375,0.142219740750625,0.0341510484701823,0.230366942808594,0.228406965273437,-0.00195997753515626
|
||||
"economic_lr","country","BG",43,12,0.0436524454482558,0.035510602375,0.0840780225500001,0.11829644133,0.0381575565238372,0.199575343837209,0.194593854011628,-0.00498148982558139
|
||||
"economic_lr","country","BO",2,1,0.0152565791125,0.0152565791125,0.0213876231425,0.02215400364625,-0.00766380503750001,0.2408585175,0.2971823675,0.0563238499999999
|
||||
"economic_lr","country","BR",57,6,0.0909301161991667,0.0724382820374999,0.1837030251575,0.22917528408,-0.0309207419535965,0.293843987236842,0.592666575657895,0.298822588421053
|
||||
"economic_lr","country","CA",103,8,0.0797441370808253,0.0746296091249999,0.130909846205,0.14530870479,0.0797441370808253,0.213273919902913,0.213908178883495,0.000634258980582522
|
||||
"economic_lr","country","CH",155,16,0.0620204564002177,0.0753673375,0.09888814595,0.112733779525,-0.0580914079873306,0.222262379562903,0.204325304451613,-0.0179370751112903
|
||||
"economic_lr","country","CL",65,9,0.0985104462301923,0.0795227623500002,0.1946132834425,0.2461950214025,-0.0175779041278846,0.319459472346154,0.510955569961538,0.191496097615385
|
||||
"economic_lr","country","CO",19,7,0.171026812829342,0.145873909225,0.353764815529,0.370583245686,-0.169040405891184,0.339858258552632,0.329198671947368,-0.0106595866052632
|
||||
"economic_lr","country","CR",29,7,0.089734318286638,0.0862599801250001,0.139012261675,0.15071204005,-0.0796357983030173,0.258316444655172,0.299839156034483,0.0415227113793103
|
||||
"economic_lr","country","CY",26,7,0.0355882285581731,0.03357419483125,0.0581932515999999,0.0597693573625001,0.00347081207740385,0.284372806057692,0.29219494125,0.0078221351923077
|
||||
"economic_lr","country","CZ",51,12,0.0416522986475245,0.02611716976375,0.118425221125,0.133088304750625,0.020129668983799,0.200504596176471,0.202931402745098,0.00242680656862745
|
||||
"economic_lr","country","DE",115,11,0.0362002712601848,0.0326899967500001,0.0609074848425,0.07168611090375,-0.0061262361326413,0.233190130652174,0.253361735,0.0201716043478261
|
||||
"economic_lr","country","DK",236,17,0.0315638037855233,0.0264479575625,0.0642073684125,0.0799173620878125,0.0222323806043792,0.170082086575212,0.156800063012712,-0.0132820235625
|
||||
"economic_lr","country","DO",26,3,0.108308755271106,0.1162097674375,0.180566614761875,0.188445206470312,-0.100950573878798,0.313018091346154,0.578693447788461,0.265675356442308
|
||||
"economic_lr","country","EC",34,8,0.104469060827574,0.05472827615,0.30181064449875,0.364115936102625,-0.019149705201103,0.224553451838235,0.366670160073529,0.142116708235294
|
||||
"economic_lr","country","EE",47,12,0.0367639715843085,0.0293546955,0.0732533222250002,0.0963995463249999,0.00773731367154253,0.26260537606383,0.303645637765957,0.0410402617021277
|
||||
"economic_lr","country","ES",154,23,0.0419697314485714,0.034778321125,0.0797966612512501,0.139587597329375,0.0347520830605844,0.228406192732143,0.221839988295455,-0.0065662044366883
|
||||
"economic_lr","country","FI",158,11,0.025391188144913,0.0230942415625,0.0474472503025001,0.060238638284375,-0.00264448276315665,0.190053325727848,0.174491852626582,-0.0155614731012658
|
||||
"economic_lr","country","FR",117,16,0.0300885765341496,0.027631916625,0.04978440295,0.0521825793000001,-0.00909068749362819,0.20324627883547,0.185952208630342,-0.0172940702051282
|
||||
"economic_lr","country","GB",106,12,0.0351139170153302,0.0327538877625,0.0658133088125001,0.0698083022499999,-0.0179330420563679,0.233572374481132,0.209952374457547,-0.0236200000235849
|
||||
"economic_lr","country","GE",27,10,0.0627496159777778,0.0635504765000001,0.1109039616,0.1137574115625,-0.0326495973555556,0.238698597222222,0.276201816666667,0.0375032194444444
|
||||
"economic_lr","country","GR",76,13,0.0466875747547599,0.03699753525,0.107495126660625,0.149057029024687,-0.00663695935774013,0.201815768421053,0.214726257233553,0.0129104888125
|
||||
"economic_lr","country","HR",56,13,0.0216331887290179,0.0192554056250001,0.04079897441875,0.0474494019062499,0.00162946180491071,0.270625134508929,0.261465790535714,-0.00915934397321429
|
||||
"economic_lr","country","HU",50,12,0.034063620973375,0.0312945285625,0.067826957475,0.07854682198,-0.017981801867625,0.2061413876,0.1956619919,-0.0104793957
|
||||
"economic_lr","country","IE",100,12,0.0325584840290595,0.0312977130683125,0.0528752880749999,0.0612561507562501,-0.0083871994034405,0.1998869456875,0.1905649233675,-0.00932202232000001
|
||||
"economic_lr","country","IL",205,33,0.0323453465057415,0.0304289876125,0.05511104525,0.0699207876999998,-0.00720137203700243,0.23811353689878,0.232194174317073,-0.00591936258170731
|
||||
"economic_lr","country","IS",116,14,0.024878670020722,0.02636645813125,0.040665053,0.045129911825,-0.00233079205320044,0.214672956659483,0.200108189418103,-0.0145647672413793
|
||||
"economic_lr","country","IT",131,27,0.0384550347146527,0.030526648235,0.0800167845,0.1032152863,-0.0043041046183626,0.236819115677481,0.216809480133588,-0.0200096355438931
|
||||
"economic_lr","country","JP",120,12,0.0521111395156771,0.0421165562812501,0.1037852800275,0.1273282108175,0.0400592055685938,0.230563489375,0.2546656770625,0.0241021876875
|
||||
"economic_lr","country","KR",25,10,0.1800722372657,0.207298413225,0.286409303625,0.340796558625,-0.1770881601433,0.2265815365,0.2879929748,0.0614114383
|
||||
"economic_lr","country","LK",25,4,0.127010465636475,0.12024660958125,0.19786042899575,0.21867235493225,-0.032058705227775,0.5931721741,0.6641143331,0.070942159
|
||||
"economic_lr","country","LT",48,13,0.0369574788627604,0.02678539169375,0.0660540708125,0.13219153721875,0.0086677831549479,0.230708847916667,0.230348236458333,-0.000360611458333317
|
||||
"economic_lr","country","LU",74,7,0.0408906495827027,0.028195260248125,0.07657214892375,0.1020671613125,0.0408906495827027,0.247270854324324,0.236679594324324,-0.01059126
|
||||
"economic_lr","country","LV",51,15,0.0403948588435539,0.036606539375,0.0720219582500001,0.08503949509375,0.0358799856417892,0.339496936323529,0.332931818578431,-0.00656511774509801
|
||||
"economic_lr","country","MD",22,6,0.0686738223443182,0.0686952207500001,0.088051805775,0.0999173052500001,-0.0686738223443182,0.270863578409091,0.277182304545455,0.00631872613636365
|
||||
"economic_lr","country","ME",48,12,0.132519942667448,0.132353787425,0.1815882217375,0.2024935770875,0.132519942667448,0.269754532135417,0.2871611890625,0.0174066569270833
|
||||
"economic_lr","country","MK",54,10,0.147553000233565,0.1310642995625,0.2866342416625,0.299700665088125,-0.147553000233565,0.264768147685185,0.316318243101852,0.0515500954166667
|
||||
"economic_lr","country","MT",14,2,0.0958448099214286,0.110525405875,0.148413522915,0.15306451097375,0.0958448099214286,0.257598525,0.257033301785714,-0.000565223214285734
|
||||
"economic_lr","country","MX",86,10,0.17478032114782,0.1757057356875,0.3096250714625,0.403203369209375,-0.156912426784448,0.214944718837209,0.295603155930233,0.0806584370930232
|
||||
"economic_lr","country","NL",188,23,0.0351796552564295,0.03396489735625,0.0621035189749999,0.0665496120687499,-0.0205030234825332,0.196107085106383,0.172802753803191,-0.0233043313031915
|
||||
"economic_lr","country","NO",129,10,0.0340852373300485,0.0244688347500001,0.0589971969250001,0.0906852002575,0.0322714398273353,0.193193087189922,0.194798939573643,0.00160585238372093
|
||||
"economic_lr","country","NZ",106,10,0.0383664044806604,0.0335064651874999,0.07466594019375,0.103919612865625,-0.015103005229717,0.21757612759434,0.224447923820755,0.00687179622641509
|
||||
"economic_lr","country","PA",9,3,0.0314552191428056,0.0271846555125,0.060789174575,0.061450744475,-0.0260743179655278,0.340715590833333,0.319436834166667,-0.0212787566666668
|
||||
"economic_lr","country","PE",5,3,0.0915656443499999,0.0878025296249999,0.110497171275,0.112399300575,-0.0915656443499999,0.249888855,0.298895545,0.0490066899999999
|
||||
"economic_lr","country","PL",47,11,0.0323987177244681,0.0313787613750001,0.0614713413,0.0730600342375001,-0.0199173610218085,0.259905600319149,0.253731920212766,-0.00617368010638299
|
||||
"economic_lr","country","PT",120,15,0.046502732153875,0.03873114450625,0.0771935396499998,0.107143933440625,0.0237025399809583,0.209094088095833,0.213518586166667,0.00442449807083334
|
||||
"economic_lr","country","RO",31,9,0.0269709120173387,0.0235986892500001,0.058385251625,0.0709555951875,-0.00528427155040322,0.244356083870968,0.230834397580645,-0.0135216862903226
|
||||
"economic_lr","country","RS",78,18,0.0355364045118285,0.027985882725625,0.0799669044125,0.09844555395,0.0250355344559631,0.313620874519231,0.3238933475,0.0102724729807692
|
||||
"economic_lr","country","RU",31,10,0.0538477768296371,0.0346605233749999,0.1405961686,0.1454113791375,0.031158826115121,0.217701461290323,0.277195423225806,0.0594939619354838
|
||||
"economic_lr","country","SE",144,8,0.0349252512510243,0.0227357488,0.07578597635,0.10618125102625,0.029926579027066,0.167298092118056,0.153856607430556,-0.0134414846875
|
||||
"economic_lr","country","SI",65,15,0.0294468383278269,0.024039076325,0.063220933385,0.069052251785,0.0155758895701346,0.209117425423077,0.199425105461538,-0.00969231996153845
|
||||
"economic_lr","country","SK",54,14,0.0307667874860417,0.0283883959625,0.0493755716499999,0.0591523824749998,-0.022317401131088,0.211592315185185,0.195468674907407,-0.0161236402777778
|
||||
"economic_lr","country","TR",61,12,0.122917168341189,0.12966996975,0.23146195425,0.3133821878375,-0.112609913065369,0.241180856967213,0.284646327008197,0.0434654700409836
|
||||
"economic_lr","country","UA",34,11,0.106795582104522,0.0950691133125,0.20925509452,0.222613293515,-0.0554111271668015,0.236908620147059,0.296079208014706,0.059170587867647
|
||||
"economic_lr","country","US",78,2,0.0710312232741987,0.06804420218125,0.107927883225,0.120908558988125,-0.0710312232741987,0.233012808333333,0.295304651602564,0.0622918432692307
|
||||
"economic_lr","country","UY",2,2,0.1485305474375,0.1485305474375,0.1672436379875,0.16958277430625,-0.1485305474375,0.2333957,0.3073380875,0.0739423874999999
|
||||
"economic_lr","country","ZA",22,6,0.119615676452273,0.12440890886875,0.19542664830125,0.205540366459375,-0.114005485023864,0.26104899125,0.297988698295454,0.0369397070454546
|
||||
"galtan","country","AL",42,9,0.0704522200649405,0.06205964125,0.16728827019875,0.182771207428125,-0.0433769539347619,0.249281288511905,0.418424971309524,0.169143682797619
|
||||
"galtan","country","AM",26,8,0.156885378628365,0.147193413375,0.2659054008125,0.28621862675,0.15231911575625,0.190540628846154,0.353907368269231,0.163366739423077
|
||||
"galtan","country","AR",22,4,0.0966980795284091,0.0805891774374999,0.1829151790375,0.19550803133125,0.0910595863738636,0.177685773863636,0.391572377272727,0.213886603409091
|
||||
"galtan","country","AT",84,7,0.0534567563783036,0.04345521319375,0.09941541678625,0.121945006876875,-0.00152879176282738,0.172176601636905,0.249362073482143,0.0771854718452381
|
||||
"galtan","country","AU",123,9,0.255561570288791,0.25569804975,0.386895810125,0.4555959380375,0.255561570288791,0.246695516158537,0.322096266382114,0.0754007502235772
|
||||
"galtan","country","AZ",6,3,0.0798902850833334,0.0716538195,0.1231789115625,0.13144986734375,-0.0798902850833334,0.1505368625,0.355666666666667,0.205129804166667
|
||||
"galtan","country","BA",59,9,0.0924441619872034,0.0633730388750002,0.2246918690825,0.2734107216275,-0.0726442520338136,0.176893208474576,0.318519066313559,0.141625857838983
|
||||
"galtan","country","BE",192,20,0.0670392177504883,0.047235257375,0.14181933514,0.218226514851875,-0.0324804722989128,0.224381034348958,0.344939879257812,0.120558844908854
|
||||
"galtan","country","BG",43,12,0.0681699729784884,0.068065533625,0.11435235325,0.13883956453125,0.0317546728412791,0.17629121744186,0.279385786453488,0.103094569011628
|
||||
"galtan","country","BO",2,1,0.20471749829375,0.20471749829375,0.21862651460875,0.220365141648125,-0.20471749829375,0.1978379625,0.4030904125,0.20525245
|
||||
"galtan","country","BR",57,6,0.0636363830564838,0.0651656310150002,0.11758694085065,0.1245400569246,0.053519691350782,0.233860884210526,0.775947440526316,0.54208655631579
|
||||
"galtan","country","CA",103,8,0.0789215104950121,0.0609540482875001,0.1741205341,0.2354359238125,0.0430318856292597,0.195868034199029,0.313499016771845,0.117630982572816
|
||||
"galtan","country","CH",155,16,0.0429602536658064,0.0422350171624999,0.069541835025,0.0813946223749999,0.00962561467725805,0.19164469183871,0.255529875145161,0.0638851833064516
|
||||
"galtan","country","CL",65,9,0.0783567658483846,0.05649000597,0.2172297409875,0.232577481365,0.00522644211580769,0.225651501192308,0.688987682846154,0.463336181653846
|
||||
"galtan","country","CO",19,7,0.064448885744079,0.0433626189875,0.1236606395475,0.13452806402125,-0.029875283069079,0.213536572368421,0.436617751052632,0.223081178684211
|
||||
"galtan","country","CR",29,7,0.0904870515405173,0.0822419966125,0.2032363278,0.237997193475,0.0584021925508621,0.195923056034483,0.42327616,0.227353103965517
|
||||
"galtan","country","CY",26,7,0.0849285924639423,0.0596764674375,0.18642264986875,0.190305420615625,-0.0554038292447115,0.232170432692308,0.389890825,0.157720392307692
|
||||
"galtan","country","CZ",51,12,0.0548354536139706,0.0464781635375,0.1063859048875,0.114399169875,0.0188919881365196,0.180208400980392,0.310855577941176,0.130647176960784
|
||||
"galtan","country","DE",115,11,0.0541279841322826,0.045797052625,0.10197319735,0.155554950699875,-0.0246618527368478,0.211890772282609,0.350040507586956,0.138149735304348
|
||||
"galtan","country","DK",236,17,0.0691563983918485,0.057464968714375,0.13636853459375,0.163476603203125,-0.0183264268719333,0.22787702190678,0.341826794862288,0.113949772955508
|
||||
"galtan","country","DO",26,3,0.113383287991615,0.0411379226749999,0.33136501926,0.346599871557187,-0.106338057313442,0.184146067307692,0.752618658461538,0.568472591153846
|
||||
"galtan","country","EC",34,8,0.0854912174705699,0.05499583089875,0.23778135263325,0.242079698649312,-0.0175069050896875,0.161315213235294,0.505908294117647,0.344593080882353
|
||||
"galtan","country","EE",47,12,0.0634823647682713,0.0539034190000001,0.1230105138405,0.1765766072915,0.0148863454922607,0.203781159574468,0.388726125265957,0.184944965691489
|
||||
"galtan","country","ES",154,23,0.0498825309327222,0.03545140085625,0.108671440525,0.1491042894625,0.0228178764688038,0.22234551801461,0.319534795863312,0.0971892778487013
|
||||
"galtan","country","FI",158,11,0.0779599888258236,0.0714844948812501,0.153279499425,0.165368963622956,0.0483063180657745,0.212215681724683,0.330984291587025,0.118768609862342
|
||||
"galtan","country","FR",117,16,0.0627609909316453,0.0648092251249999,0.110668077975,0.1280653474,0.0419089747826709,0.210010024978632,0.285312093863248,0.0753020688846154
|
||||
"galtan","country","GB",106,12,0.0497128468819811,0.044931699195625,0.0898687314375,0.0979830263125001,0.00437838328240566,0.189639601132075,0.261924457712264,0.0722848565801887
|
||||
"galtan","country","GE",27,10,0.0693889242203704,0.0628399937499998,0.126705041645,0.14765101975,-0.0277638905537037,0.164775555555556,0.348495847222222,0.183720291666667
|
||||
"galtan","country","GR",76,13,0.0536792889357237,0.0487621760625001,0.0945659740624999,0.156777048,0.0384804754553947,0.188791369309211,0.273674577368421,0.0848832080592105
|
||||
"galtan","country","HR",56,13,0.0570110325064732,0.0491389595749999,0.10512810275,0.14330664115625,0.0342326382283482,0.2097856446875,0.317782183214286,0.107996538526786
|
||||
"galtan","country","HU",50,12,0.06343286196485,0.0417284070625,0.14496557992,0.17019955192675,-0.03540941364785,0.154575533,0.2306249208,0.0760493878
|
||||
"galtan","country","IE",100,12,0.070861912429975,0.0728508408125,0.1334656494375,0.1485163475375,0.061333206750225,0.23504866675,0.3531325805,0.11808391375
|
||||
"galtan","country","IL",205,33,0.0640296083589983,0.058680683995,0.108965265621,0.126780603295,-0.0245658092311934,0.176988887306098,0.217289119051219,0.040300231745122
|
||||
"galtan","country","IS",116,14,0.15243071773042,0.160181720125,0.242988398375,0.26350500090625,0.150605311410744,0.210026215969828,0.31974201625,0.109715800280172
|
||||
"galtan","country","IT",131,27,0.0909343573074712,0.0735022325374999,0.1916091100875,0.2878287392,-0.0815157716053719,0.233726435496183,0.332599117725191,0.0988726822290076
|
||||
"galtan","country","JP",120,12,0.107909672122478,0.095942553939375,0.2152168208875,0.24734994355125,0.0547001172154802,0.2430210538125,0.43185305818125,0.18883200436875
|
||||
"galtan","country","KR",25,10,0.177765476352125,0.19651226836,0.27193665756525,0.28234173270175,-0.119324950806125,0.232323091,0.5862917606,0.3539686696
|
||||
"galtan","country","LK",25,4,0.175971678083972,0.161243805956125,0.2824073165725,0.3077742395025,-0.175971678083972,0.480288736,0.72661653165,0.24632779565
|
||||
"galtan","country","LT",48,13,0.0813507973890625,0.07213512314375,0.1429406531625,0.167625818775,0.0714782421578125,0.190603075,0.3265633303125,0.1359602553125
|
||||
"galtan","country","LU",74,7,0.0594959852205067,0.0569309219625001,0.1108237099935,0.12449893459375,0.0212018170889527,0.269774661452703,0.391768037128378,0.121993375675676
|
||||
"galtan","country","LV",51,15,0.0796751362565196,0.080116713375,0.158808546625,0.164613008015625,0.0310768516890686,0.265005020098039,0.367715245833333,0.102710225735294
|
||||
"galtan","country","MD",22,6,0.0885519457988637,0.0742496407500001,0.1652699040775,0.186330844611875,-0.0254058032534091,0.183960520454545,0.350635190909091,0.166674670454545
|
||||
"galtan","country","ME",48,12,0.059752405075,0.04740883975,0.119182978675,0.1280615055,0.0123398018625,0.1715330484375,0.323111900520833,0.151578852083333
|
||||
"galtan","country","MK",54,10,0.0769147177690509,0.0495197071687501,0.16677841390125,0.20656428578125,0.0248075314036342,0.191804444907407,0.384470122268518,0.192665677361111
|
||||
"galtan","country","MT",14,2,0.036315272,0.0297329325624999,0.0595497147124999,0.0878674508999999,-0.00110741885714287,0.2264540875,0.420496298214286,0.194042210714286
|
||||
"galtan","country","MX",86,10,0.0969902280651163,0.07772093853125,0.217417330625,0.2395366675625,0.064741362575,0.158348759883721,0.326388927063953,0.168040167180233
|
||||
"galtan","country","NL",188,23,0.0521148246466423,0.046166573225,0.094267162875,0.129523389143125,0.00171048192835771,0.192712959401596,0.252123994095745,0.0594110346941489
|
||||
"galtan","country","NO",129,10,0.0745414090338663,0.0700747067499998,0.139510584715,0.174004472485,-0.0318034112825097,0.219965351782946,0.346935125155039,0.126969773372093
|
||||
"galtan","country","NZ",106,10,0.149573495223874,0.1465860698125,0.284350521875,0.32715412284375,0.140047107755136,0.201643114929245,0.325226359551887,0.123583244622641
|
||||
"galtan","country","PA",9,3,0.0301984971919445,0.018087274625,0.0720320454755,0.0879095694265,-0.00293236099749997,0.247901383333333,0.386599255277778,0.138697871944444
|
||||
"galtan","country","PE",5,3,0.019958924,0.017818636125,0.029449596775,0.033131676075,0.00119512489999998,0.18333602,0.440814305,0.257478285
|
||||
"galtan","country","PL",47,11,0.0583398298868351,0.04899842563,0.11508536858,0.1400047581175,-0.0288536495857713,0.194182434095745,0.286884986531915,0.0927025524361702
|
||||
"galtan","country","PT",120,15,0.0589013840949583,0.0530732530625,0.10871108691,0.1319234160725,0.028491267907125,0.2365999399375,0.369802342895833,0.133202402958333
|
||||
"galtan","country","RO",31,9,0.101976054703226,0.062737579125,0.269870755475,0.281506620775,-0.0759611564129032,0.173238150806452,0.273333795806452,0.100095645
|
||||
"galtan","country","RS",78,18,0.0566899753289423,0.04838573486875,0.12882280397875,0.14894020068125,0.0313228374658975,0.203541225737179,0.341410328205128,0.137869102467949
|
||||
"galtan","country","RU",31,10,0.0823772725173387,0.0706485935000001,0.177669660625,0.1911726254375,0.0742536083076613,0.166878729032258,0.333044997580645,0.166166268548387
|
||||
"galtan","country","SE",144,8,0.0779477337775087,0.065282401925,0.14971096477,0.192713488666437,0.00760519412474827,0.197623276006944,0.293993233263889,0.0963699572569444
|
||||
"galtan","country","SI",65,15,0.0661264041638461,0.0445719423750001,0.16110350395,0.1988129118445,-0.0247239681084615,0.188567015,0.291528464115385,0.102961449115385
|
||||
"galtan","country","SK",54,14,0.0502516793186806,0.0501847275000001,0.102417474269625,0.12425404441275,0.00749116253780092,0.167382486435185,0.229228685092593,0.0618461986574074
|
||||
"galtan","country","TR",61,12,0.073720984571373,0.0533070427500001,0.15832579625,0.179094610925,-0.0121620851246516,0.19658379307377,0.34434646397541,0.147762670901639
|
||||
"galtan","country","UA",34,11,0.113488601584559,0.1119919954375,0.1939840840375,0.2112209067625,0.0833224104154412,0.164413496323529,0.328120980147059,0.163707483823529
|
||||
"galtan","country","US",78,2,0.0570046725294872,0.045147282,0.1233196885425,0.1297916708125,-0.0086567002576923,0.177735137820513,0.403358578205128,0.225623440384615
|
||||
"galtan","country","UY",2,2,0.13808531583125,0.13808531583125,0.17447075566625,0.179018935645625,0.13808531583125,0.17999905,0.4755078875,0.2955088375
|
||||
"galtan","country","ZA",22,6,0.09775905798125,0.09211542475,0.1806953853375,0.2005182710625,0.0946672932982955,0.174702580681818,0.340332871590909,0.165630290909091
|
||||
"economic_lr","decade","1940",151,92,0.0371816203678808,0.0292069454999998,0.0742582218750001,0.0912451055624999,-0.000173471055629137,0.189821346683775,0.172437360596026,-0.0173839860877483
|
||||
"economic_lr","decade","1950",290,103,0.0407176971207224,0.033865868875,0.086362646754875,0.09896772440375,-0.00778987169985517,0.202589561812931,0.189039881362931,-0.01354968045
|
||||
"economic_lr","decade","1960",310,120,0.0427885898915454,0.034330352925,0.0896977708749999,0.122006477058125,-0.0025685449944546,0.220079714312097,0.211818625971774,-0.00826108834032258
|
||||
"economic_lr","decade","1970",440,153,0.0502866782806628,0.0314642366875,0.118349408698125,0.149890328475,0.00329100990037017,0.226482275239773,0.231859487863636,0.00537721262386364
|
||||
"economic_lr","decade","1980",454,185,0.05307470873144,0.0412179630312499,0.119116974148,0.1588293852875,0.00790578806827919,0.237694862507159,0.249603410189427,0.0119085476822687
|
||||
"economic_lr","decade","1990",873,371,0.0641986936875508,0.0464593551375,0.14472205606,0.17828758647,0.00287533560658863,0.248898039122279,0.274924678699885,0.026026639577606
|
||||
"economic_lr","decade","2000",900,411,0.0631149535508028,0.0418411898125,0.14411636095,0.20609396516125,-0.0182889110804333,0.238621175438889,0.263199891986111,0.0245787165472222
|
||||
"economic_lr","decade","2010",995,450,0.0538611624244023,0.034718012125,0.127826655375,0.1804660809125,-0.0221962105316555,0.215534625020854,0.222818895102513,0.00728427008165828
|
||||
"economic_lr","decade","2020",216,180,0.0371307902267448,0.029627738125,0.08012091931875,0.112391917778125,-0.0012710929483941,0.226797810039352,0.221887160357639,-0.00491064968171296
|
||||
"galtan","decade","1940",151,92,0.0708290557321523,0.0562137547875,0.14081580895,0.1835157929375,0.0261701161742053,0.263486062102649,0.35838113705298,0.0948950749503311
|
||||
"galtan","decade","1950",290,103,0.0759758618539849,0.058937112361875,0.17380860064,0.23190050096875,0.0206251947466875,0.259375958672414,0.354083490781896,0.0947075321094827
|
||||
"galtan","decade","1960",310,120,0.0843626901791028,0.0676845134375,0.166080884235,0.22069010237,0.0019402298805746,0.25841617908871,0.366428205235484,0.108012026146774
|
||||
"galtan","decade","1970",440,153,0.0986147156691975,0.0788397242125,0.20555214061875,0.25203876564375,-0.0108637360172941,0.221199917153409,0.354920847494886,0.133720930341477
|
||||
"galtan","decade","1980",454,185,0.0808016044734364,0.058811841435,0.173072975875,0.2204824547125,-0.000359151480391218,0.22031273981663,0.368595810490529,0.148283070673899
|
||||
"galtan","decade","1990",873,371,0.0873413504149248,0.0643135031250001,0.19577037354,0.2490063037465,0.0102924923551869,0.198413997671821,0.353932825577892,0.155518827906071
|
||||
"galtan","decade","2000",900,411,0.0798759182483464,0.0574670300500001,0.1859949581375,0.23767782646875,0.0291185818013869,0.191728931302222,0.341912218414444,0.150183287112222
|
||||
"galtan","decade","2010",995,450,0.0672717050724113,0.0496686596250002,0.15014200965,0.2015970361125,0.0356412896617276,0.177604650279648,0.294148019771859,0.116543369492211
|
||||
"galtan","decade","2020",216,180,0.0589089367769583,0.0502599744375,0.1234101119375,0.1486720144375,0.0364686091928843,0.210231471782407,0.306094965694444,0.095863493912037
|
||||
"economic_lr","region","Asia-Pacific",399,45,0.0571219334616526,0.0443660183749999,0.12416155903,0.187599069753375,-0.0145487249648042,0.244419383032581,0.260598511447368,0.016179128414787
|
||||
"economic_lr","region","Europe",3434,516,0.0464743120210818,0.0326595713125001,0.1039714675125,0.141266804764375,0.000913014723246237,0.221488947357091,0.217554286148733,-0.0039346612083576
|
||||
"economic_lr","region","Latin America",356,63,0.117336302214344,0.0935154758875001,0.2506860608625,0.314390097832188,-0.0753651143393638,0.272504908265449,0.414404904780899,0.141899996515449
|
||||
"economic_lr","region","North America",181,10,0.075989400744268,0.0697219131249999,0.12174174215,0.1408082874125,0.0147691199112569,0.22178018121547,0.248985111878453,0.0272049306629834
|
||||
"economic_lr","region","Other",259,50,0.0519685596374595,0.034531058875,0.13885551671,0.173381673425,-0.0290635234477239,0.244889429002896,0.249916611911197,0.00502718290830117
|
||||
"galtan","region","Asia-Pacific",399,45,0.17313647407231,0.164663835875,0.30758002685,0.3407870748375,0.113936503536769,0.247357245119048,0.397836865076441,0.150479619957393
|
||||
"galtan","region","Europe",3434,516,0.0685237842799692,0.0549442329875,0.14452337820625,0.18327854436375,0.00751445234684062,0.207398450992065,0.318306419611881,0.110907968619817
|
||||
"galtan","region","Latin America",356,63,0.084127775017306,0.061753621071875,0.208029392375,0.24112464406,0.0240835342113994,0.195054616369382,0.53504948869382,0.339994872324438
|
||||
"galtan","region","North America",181,10,0.0694766852943992,0.0565289545375,0.1508847962125,0.1849990895,0.0207572464072583,0.188053857859116,0.352223026671271,0.164169168812155
|
||||
"galtan","region","Other",259,50,0.0765835156139755,0.06323538313625,0.147387130125,0.1813591133375,0.00203723883911333,0.177542301921815,0.244660942685328,0.0671186407635135
|
||||
"economic_lr","family_label","Agrarian",152,12,0.0320538710685033,0.0186717304812501,0.0889848963500001,0.0970678048749999,-0.00593539169876645,0.218227728157895,0.206365923651316,-0.0118618045065789
|
||||
"economic_lr","family_label","Christian Democratic",433,39,0.0375033907769919,0.0319368376249999,0.0720206793249999,0.096269401725,-0.0131147804376732,0.23566491443418,0.231489054676674,-0.00417585975750576
|
||||
"economic_lr","family_label","Communist/Far Left",334,48,0.0486644586896976,0.03529525582875,0.10571990613575,0.146860105575,0.0479768514953638,0.155147337715569,0.181992471565868,0.0268451338502994
|
||||
"economic_lr","family_label","Conservative",646,82,0.037674156340044,0.0327651997500001,0.066197402125,0.084930110375,-0.0193102770752036,0.211213435830108,0.202289049549923,-0.00892438628018576
|
||||
"economic_lr","family_label","Green/Ecological",187,29,0.0429328687294586,0.032739016375,0.087422558962,0.0979384956524999,0.0348435589150869,0.215338299772727,0.213619454786096,-0.00171884498663102
|
||||
"economic_lr","family_label","Liberal",576,81,0.0306596129757378,0.024781423125,0.0650074390624999,0.0774783831562499,-0.0101040985020399,0.204604762469618,0.183489200043403,-0.0211155624262153
|
||||
"economic_lr","family_label","Other",9,2,0.0133180642291667,0.00946586175000003,0.0245744710500001,0.0245800339000001,-0.0047759738402778,0.223425625,0.215880991666667,-0.00754463333333332
|
||||
"economic_lr","family_label","Radical Right",257,50,0.0448900349409387,0.0356326438000001,0.0914339091749999,0.1437146432,-0.0339084273444309,0.239075980359922,0.230133361410506,-0.00894261894941635
|
||||
"economic_lr","family_label","Social Democratic",761,86,0.0487425635779379,0.0369901536250001,0.1067683898125,0.12994591825,0.0385901765304346,0.223349851519382,0.220255219645204,-0.00309463187417871
|
||||
"economic_lr","family_label","Special issue",143,25,0.026883424939528,0.0265684387,0.04679836750075,0.0633105665737501,0.0149538624225699,0.251831107465035,0.231985332972028,-0.019845774493007
|
||||
"economic_lr","family_label","Unclassified",1131,230,0.0984837351550462,0.0795355523749999,0.20745169625,0.2510335748,-0.048423238788916,0.272029213213086,0.33404468710389,0.0620154738908046
|
||||
"galtan","family_label","Agrarian",152,12,0.105141823237155,0.0907771423749999,0.1925025656875,0.2213469184625,0.0604336606998191,0.205144194572368,0.29353910087171,0.0883949062993421
|
||||
"galtan","family_label","Christian Democratic",433,39,0.0718250720421449,0.0555694713875,0.14215453213,0.1800220496625,-0.0131192834506264,0.199758031241339,0.317671331662817,0.117913300421478
|
||||
"galtan","family_label","Communist/Far Left",334,48,0.074038310086303,0.0547699002059375,0.162768573325,0.20951525864375,0.0405196851759574,0.235479590085329,0.349722435327695,0.114242845242365
|
||||
"galtan","family_label","Conservative",646,82,0.0983403746741395,0.0776775026875,0.220572271925,0.277122060828125,0.0441218983917196,0.211539288099845,0.335541979530573,0.124002691430728
|
||||
"galtan","family_label","Green/Ecological",187,29,0.0509116802868449,0.0313170713125,0.123042502875,0.1889626426,0.0157630846182353,0.166198087125668,0.251023559705882,0.0848254725802139
|
||||
"galtan","family_label","Liberal",576,81,0.0697021356713967,0.0542307168125,0.14791305325,0.181032452013125,0.00526827062959288,0.218189066197917,0.323725934127604,0.105536867929687
|
||||
"galtan","family_label","Other",9,2,0.0644653042833333,0.0705062719999999,0.0904335059499998,0.0908028820999998,0.0333764893277777,0.147571191666667,0.227039952777778,0.0794687611111111
|
||||
"galtan","family_label","Radical Right",257,50,0.0914724143323103,0.0673691042499999,0.21891551714,0.2641599179,0.0488177438893531,0.197410741536965,0.232469848920233,0.0350591073832685
|
||||
"galtan","family_label","Social Democratic",761,86,0.080105907141705,0.057859077375,0.1730134955475,0.2356013771625,0.0161545037538272,0.207177564181997,0.324027555488173,0.116849991306176
|
||||
"galtan","family_label","Special issue",143,25,0.0534221270324589,0.04043228925,0.10993480277,0.148755378370375,-0.00603089098020367,0.239392236737762,0.291600286743007,0.0522080500052448
|
||||
"galtan","family_label","Unclassified",1131,230,0.0787409936722545,0.058680683995,0.183507806055,0.23208491015,0.00735828626895603,0.200412819792219,0.415722207560787,0.215309387768568
|
||||
"economic_lr","source_support_class","both_direct_or_nearby",2898,572,0.0562311585382358,0.0382146124375001,0.1329329555875,0.173217369964375,-0.00584478889702773,0.215599624201087,0.225627670403468,0.0100280462023809
|
||||
"economic_lr","source_support_class","expert_only_direct_or_nearby",12,11,0.034192924803125,0.022058564,0.07781032056875,0.08212848558875,0.012055191359375,0.24052055625,0.260045897916667,0.0195253416666667
|
||||
"economic_lr","source_support_class","temporal_propagation",62,17,0.101701728419577,0.049888057674375,0.2394404627875,0.312558430265,-0.0740730612826412,0.251171412419355,0.286950409475806,0.0357789970564516
|
||||
"economic_lr","source_support_class","text_only_direct_or_nearby",1657,377,0.0493037907647899,0.03583326690375,0.110562605595,0.1447094538,-0.00782607456147747,0.250712200439801,0.26167930811557,0.0109671076757695
|
||||
"galtan","source_support_class","both_direct_or_nearby",2898,572,0.0831440902163216,0.0609966990937501,0.18544264335,0.24018766278125,0.0212481470172447,0.18549785362431,0.317582449142512,0.132084595518202
|
||||
"galtan","source_support_class","expert_only_direct_or_nearby",12,11,0.0483296314947917,0.0535480428125,0.0841788765275,0.090728015821875,0.0139677355864583,0.19445685,0.368919924583333,0.174463074583333
|
||||
"galtan","source_support_class","temporal_propagation",62,17,0.109246388097642,0.088083927,0.2361952786125,0.2423211530625,0.0324953038705036,0.156761379870968,0.244535198866935,0.0877738189959677
|
||||
"galtan","source_support_class","text_only_direct_or_nearby",1657,377,0.0714829340819805,0.058025915,0.14154745872,0.20812918545,0.0122898534614001,0.247879904557483,0.379876985534671,0.131997080977188
|
||||
|
@@ -0,0 +1,61 @@
|
||||
"dimension","party_id","party_name","party_short","country","year","production","no_vparty","signed_difference","absolute_difference","production_interval_width","no_vparty_interval_width","source_support_class","family"
|
||||
"economic_lr",446,"Mexican Green Ecologist Party","PVEM","MX",2006,0.78331803875,0.302941706325,-0.480376332425,0.480376332425,0.198701025,0.3971359,"text_only_direct_or_nearby","Unclassified"
|
||||
"economic_lr",446,"Mexican Green Ecologist Party","PVEM","MX",2012,0.760635541875,0.2937373089375,-0.4668982329375,0.4668982329375,0.2009882,0.327665875,"text_only_direct_or_nearby","Unclassified"
|
||||
"economic_lr",446,"Mexican Green Ecologist Party","PVEM","MX",2009,0.771687653,0.3095788204125,-0.4621088325875,0.4621088325875,0.1954599,0.351576625,"text_only_direct_or_nearby","Unclassified"
|
||||
"economic_lr",446,"Mexican Green Ecologist Party","PVEM","MX",2003,0.780395189375,0.33433866755,-0.446056521825,0.446056521825,0.21091025,0.424579275,"temporal_propagation","Unclassified"
|
||||
"economic_lr",446,"Mexican Green Ecologist Party","PVEM","MX",2015,0.765128507125,0.3376274813875,-0.4275010257375,0.4275010257375,0.1936747,0.33989315,"temporal_propagation","Unclassified"
|
||||
"economic_lr",1577,"Colombian Conservative Party","PCC","CO",2010,0.839930205875,0.428090524625,-0.41183968125,0.41183968125,0.16999555,0.367937675,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",4373,"Justice Party","AP","TR",1977,0.662219564625,0.2898449586625,-0.3723746059625,0.3723746059625,0.333305125,0.480909195,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",827,"Pachakutik Plurinational Unity Movement - New Country","MUPP-NP","EC",2002,0.13025843815875,0.49914328630125,0.3688848481425,0.3688848481425,0.1970410525,0.845954685,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",827,"Pachakutik Plurinational Unity Movement - New Country","MUPP-NP","EC",2006,0.129486856525,0.49800719580125,0.36852033927625,0.36852033927625,0.216157335,0.874626755,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",362,"Colombian Liberal Party","PLC","CO",2010,0.44652740975,0.08052821246,-0.36599919729,0.36599919729,0.296508575,0.251284637,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",827,"Pachakutik Plurinational Unity Movement - New Country","MUPP-NP","EC",1998,0.137947749675,0.49969208406875,0.36174433439375,0.36174433439375,0.1949734425,0.8040779475,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",2307,"New Frontier Party","NFP","KR",2004,0.78653404975,0.42563784325,-0.3608962065,0.3608962065,0.20216155,0.335555875,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",2307,"New Frontier Party","NFP","KR",2012,0.748232659375,0.393992868,-0.354239791375,0.354239791375,0.2158533,0.30876265,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",431,"Democratic Party of Albanians","DPA/PDSh","MK",2006,0.624241323125,0.270382054725,-0.3538592684,0.3538592684,0.2778642,0.360123525,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",827,"Pachakutik Plurinational Unity Movement - New Country","MUPP-NP","EC",1996,0.1474476632125,0.49872718705,0.3512795238375,0.3512795238375,0.2150713825,0.783277925,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",362,"Colombian Liberal Party","PLC","CO",2006,0.43398183575,0.08327561566125,-0.35070622008875,0.35070622008875,0.303243975,0.2337936175,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",1474,"Institutional Revolutionary Party","PRI","MX",2012,0.694937151875,0.36462675225,-0.330310399625,0.330310399625,0.21584705,0.333578775,"text_only_direct_or_nearby","Unclassified"
|
||||
"economic_lr",1474,"Institutional Revolutionary Party","PRI","MX",2006,0.7406987215,0.4108210867625,-0.3298776347375,0.3298776347375,0.216189275,0.3970175,"text_only_direct_or_nearby","Unclassified"
|
||||
"economic_lr",362,"Colombian Liberal Party","PLC","CO",1998,0.471503588875,0.14373430549125,-0.32776928338375,0.32776928338375,0.30879815,0.3470966,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",1599,"Independent Democratic Union","UDI","CL",2005,0.846619912375,0.520464961775,-0.3261549506,0.3261549506,0.17401525,0.4490288,"temporal_propagation","Unclassified"
|
||||
"economic_lr",5879,"Democratic Center","CD","CO",2014,0.82792676,0.5027692285,-0.3251575315,0.3251575315,0.18418935,0.346853475,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",1674,"VMRO-DPMNE","VMRO-DPMNE","MK",2002,0.747142577125,0.422961616525,-0.3241809606,0.3241809606,0.2459292,0.394813975,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",1190,"Motherland Party","ANAP","TR",1999,0.685513704,0.3654118114875,-0.3201018925125,0.3201018925125,0.26022905,0.342326225,"both_direct_or_nearby","Conservative"
|
||||
"economic_lr",362,"Colombian Liberal Party","PLC","CO",2002,0.407775975,0.08808654867125,-0.31968942632875,0.31968942632875,0.287786025,0.21200674,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",815,"National Salvation Party","MSP","TR",1977,0.63945227325,0.3198877530625,-0.3195645201875,0.3195645201875,0.3167729,0.423142125,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",4373,"Justice Party","AP","TR",1973,0.645414913,0.3320327251625,-0.3133821878375,0.3133821878375,0.2996928,0.41292565,"both_direct_or_nearby","Unclassified"
|
||||
"economic_lr",446,"Mexican Green Ecologist Party","PVEM","MX",2018,0.724924867125,0.412301212125,-0.312623655,0.312623655,0.196557225,0.289393075,"temporal_propagation","Unclassified"
|
||||
"economic_lr",446,"Mexican Green Ecologist Party","PVEM","MX",1997,0.68345350075,0.37213434045,-0.3113191603,0.3113191603,0.373734625,0.4293999,"temporal_propagation","Unclassified"
|
||||
"economic_lr",4405,"Liberal Party","PR","BR",2010,0.805440906125,0.4959839998,-0.309456906325,0.309456906325,0.22779515,0.6460089,"text_only_direct_or_nearby","Unclassified"
|
||||
"economic_lr",1474,"Institutional Revolutionary Party","PRI","MX",2009,0.70526815875,0.397337176125,-0.307930982625,0.307930982625,0.204080825,0.323306525,"text_only_direct_or_nearby","Unclassified"
|
||||
"galtan",990,"Australian Democrats","AD","AU",2001,0.338562057,0.85272370525,0.51416164825,0.51416164825,0.214476075,0.243330675,"both_direct_or_nearby","Social Democratic"
|
||||
"galtan",990,"Australian Democrats","AD","AU",1998,0.413618905125,0.906091827,0.492472921875,0.492472921875,0.181907525,0.13750485,"both_direct_or_nearby","Social Democratic"
|
||||
"galtan",990,"Australian Democrats","AD","AU",1996,0.36119623075,0.84415619475,0.482959964,0.482959964,0.1871557,0.19650735,"both_direct_or_nearby","Social Democratic"
|
||||
"galtan",424,"Australian Labor Party","ALP","AU",1993,0.31780245925,0.787947682375,0.470145223125,0.470145223125,0.22103085,0.401841475,"both_direct_or_nearby","Social Democratic"
|
||||
"galtan",424,"Australian Labor Party","ALP","AU",1998,0.43088434725,0.90042605275,0.4695417055,0.4695417055,0.192973425,0.158486825,"both_direct_or_nearby","Social Democratic"
|
||||
"galtan",424,"Australian Labor Party","ALP","AU",1990,0.318993482875,0.78831252875,0.469319045875,0.469319045875,0.221467575,0.42828265,"both_direct_or_nearby","Social Democratic"
|
||||
"galtan",424,"Australian Labor Party","ALP","AU",1987,0.332828033,0.78906332725,0.45623529425,0.45623529425,0.216371075,0.384759775,"both_direct_or_nearby","Social Democratic"
|
||||
"galtan",424,"Australian Labor Party","ALP","AU",2001,0.479487656,0.929329388125,0.449841732125,0.449841732125,0.19050665,0.12066555,"both_direct_or_nearby","Social Democratic"
|
||||
"galtan",424,"Australian Labor Party","ALP","AU",2007,0.3671275265,0.81184206075,0.44471453425,0.44471453425,0.191143825,0.24396915,"both_direct_or_nearby","Social Democratic"
|
||||
"galtan",424,"Australian Labor Party","ALP","AU",1996,0.35332868725,0.79386454675,0.4405358595,0.4405358595,0.190665825,0.267057925,"both_direct_or_nearby","Social Democratic"
|
||||
"galtan",424,"Australian Labor Party","ALP","AU",2004,0.454032172375,0.894014407375,0.439982235,0.439982235,0.177285525,0.1378716,"both_direct_or_nearby","Social Democratic"
|
||||
"galtan",1966,"United National Party","UNP","LK",1970,0.67440380725,0.235886241525,-0.438517565725,0.438517565725,0.181673275,0.3844404475,"both_direct_or_nearby","Unclassified"
|
||||
"galtan",424,"Australian Labor Party","ALP","AU",1984,0.37090576025,0.790738644625,0.419832884375,0.419832884375,0.185054675,0.244114425,"both_direct_or_nearby","Social Democratic"
|
||||
"galtan",1075,"United Torah Judaism","UTJ","IL",2009,0.646416692625,0.22733472837125,-0.41908196425375,0.41908196425375,0.337046125,0.6495289825,"text_only_direct_or_nearby","Conservative"
|
||||
"galtan",1221,"League","L","IT",1992,0.72339442825,0.3233998345125,-0.3999945937375,0.3999945937375,0.1864393,0.43572915,"both_direct_or_nearby","Radical Right"
|
||||
"galtan",424,"Australian Labor Party","ALP","AU",1983,0.3458623055,0.737733647875,0.391871342375,0.391871342375,0.18553985,0.31302215,"both_direct_or_nearby","Social Democratic"
|
||||
"galtan",1221,"League","L","IT",1994,0.732691392,0.350859984775,-0.381831407225,0.381831407225,0.172051275,0.4147524,"both_direct_or_nearby","Radical Right"
|
||||
"galtan",1049,"New Zealand Labour Party","Labour","NZ",2011,0.307176632875,0.687613138625,0.38043650575,0.38043650575,0.188001825,0.39095055,"both_direct_or_nearby","Social Democratic"
|
||||
"galtan",1697,"Hungarian Democratic Forum","MDF","HU",1990,0.5820039805,0.20511058695,-0.37689339355,0.37689339355,0.191749875,0.3194354275,"both_direct_or_nearby","Conservative"
|
||||
"galtan",1998,"Liberal Party","LP","AU",1969,0.414252437125,0.78124611825,0.366993681125,0.366993681125,0.30239525,0.340995525,"text_only_direct_or_nearby","Conservative"
|
||||
"galtan",284,"Unified Democratic Coalition","CDU","PT",2011,0.286767969375,0.6525784155,0.365810446125,0.365810446125,0.216958075,0.3049402,"both_direct_or_nearby","Communist/Far Left"
|
||||
"galtan",1824,"New Zealand National Party","National","NZ",2002,0.518077548125,0.883790847375,0.36571329925,0.36571329925,0.193445475,0.197484975,"both_direct_or_nearby","Conservative"
|
||||
"galtan",622,"Christian Democratic and Flemish","CD&V","BE",1974,0.532628898625,0.173078888215,-0.35955001041,0.35955001041,0.247636825,0.4395033325,"text_only_direct_or_nearby","Christian Democratic"
|
||||
"galtan",194,"Social Christian Reformist Party","PRSC","DO",1996,0.861104359125,0.5033975994125,-0.3577067597125,0.3577067597125,0.12461655,0.8503037775,"both_direct_or_nearby","Unclassified"
|
||||
"galtan",285,"Liberal National Party of Queensland","LNP","AU",2016,0.48517569125,0.842698982125,0.357523290875,0.357523290875,0.226642625,0.252878475,"both_direct_or_nearby","Liberal"
|
||||
"galtan",1824,"New Zealand National Party","National","NZ",2008,0.4818931305,0.83653531875,0.35464218825,0.35464218825,0.186821275,0.2409097,"both_direct_or_nearby","Conservative"
|
||||
"galtan",1998,"Liberal Party","LP","AU",1958,0.420013153625,0.770361895625,0.350348742,0.350348742,0.229623975,0.2478383,"text_only_direct_or_nearby","Conservative"
|
||||
"galtan",194,"Social Christian Reformist Party","PRSC","DO",1998,0.853912629125,0.50421325068375,-0.34969937844125,0.34969937844125,0.119754,0.8840918725,"both_direct_or_nearby","Unclassified"
|
||||
"galtan",622,"Christian Democratic and Flemish","CD&V","BE",1971,0.5433591915,0.19802355463375,-0.34533563686625,0.34533563686625,0.2790253,0.48100639,"text_only_direct_or_nearby","Christian Democratic"
|
||||
"galtan",357,"Party for Bosnia and Herzegovina","SBiH","BA",2002,0.5879928515,0.2466491241,-0.3413437274,0.3413437274,0.24791075,0.4587310175,"both_direct_or_nearby","Unclassified"
|
||||
|
@@ -0,0 +1,96 @@
|
||||
#!/usr/bin/env Rscript
|
||||
|
||||
script_args <- commandArgs(trailingOnly = FALSE)
|
||||
file_arg <- script_args[grepl("^--file=", script_args)][1]
|
||||
script_path <- normalizePath(sub("^--file=", "", file_arg))
|
||||
repo_root <- normalizePath(file.path(dirname(script_path), ".."))
|
||||
setwd(repo_root)
|
||||
|
||||
dir.create(file.path("revision", "figures"), recursive = TRUE, showWarnings = FALSE)
|
||||
|
||||
library(grid)
|
||||
|
||||
# Draw an overarching section container with a title header
|
||||
draw_section <- function(x, y, width, height, title, bg = "#FAFAFA", border = "#333333") {
|
||||
grid.roundrect(x = unit(x, "npc"), y = unit(y, "npc"),
|
||||
width = unit(width, "npc"), height = unit(height, "npc"),
|
||||
r = unit(.018, "snpc"),
|
||||
gp = gpar(fill = bg, col = border, lwd = .9))
|
||||
|
||||
# Header bar
|
||||
header_h <- .040
|
||||
grid.roundrect(x = unit(x, "npc"), y = unit(y + height/2 - header_h/2, "npc"),
|
||||
width = unit(width, "npc"), height = unit(header_h, "npc"),
|
||||
r = unit(.018, "snpc"),
|
||||
gp = gpar(fill = "#EBEBEB", col = border, lwd = .9))
|
||||
grid.text(title, x = unit(x - width*0.46, "npc"), y = unit(y + height/2 - header_h/2, "npc"),
|
||||
just = "left", gp = gpar(fontsize = 9, fontface = "bold", col = "#111111"))
|
||||
}
|
||||
|
||||
# Sub-box
|
||||
draw_box <- function(x, y, width, height, title, text_items = c(), bg = "#FFFFFF", border = "#555555") {
|
||||
grid.roundrect(x = unit(x, "npc"), y = unit(y, "npc"),
|
||||
width = unit(width, "npc"), height = unit(height, "npc"),
|
||||
r = unit(.015, "snpc"),
|
||||
gp = gpar(fill = bg, col = border, lwd = .75))
|
||||
grid.text(title, x = unit(x, "npc"), y = unit(y + height*0.28, "npc"),
|
||||
gp = gpar(fontsize = 8.2, fontface = "bold", col = "#111111"))
|
||||
|
||||
if (length(text_items) > 0) {
|
||||
txt <- paste(text_items, collapse = "\n")
|
||||
grid.text(txt, x = unit(x, "npc"), y = unit(y - height*0.18, "npc"),
|
||||
gp = gpar(fontsize = 7.4, fontface = "plain", col = "#333333"))
|
||||
}
|
||||
}
|
||||
|
||||
arrow <- function(x0, y0, x1, y1) {
|
||||
grid.lines(x = unit(c(x0, x1), "npc"), y = unit(c(y0, y1), "npc"),
|
||||
arrow = grid::arrow(length = unit(.055, "inches"), type = "closed"),
|
||||
gp = gpar(col = "#222222", fill = "#222222", lwd = .9))
|
||||
}
|
||||
|
||||
cairo_pdf(file.path("revision", "figures", "research_workflow.pdf"),
|
||||
width = 8.2, height = 7.6, onefile = TRUE)
|
||||
grid.newpage()
|
||||
|
||||
# ===========================================================================
|
||||
# Area 1: Data Acquisition
|
||||
# ===========================================================================
|
||||
draw_section(.5, .865, .94, .21, "1. Data Acquisition")
|
||||
draw_box(.27, .84, .42, .12, "Text Data Projects", c("• Manifesto platforms", "• Campaign media text"))
|
||||
draw_box(.73, .84, .42, .12, "Expert Survey Projects", c("• CHES, V-Party, POPPA & GPS", "• Morgan historical survey"))
|
||||
|
||||
arrow(.5, .76, .5, .72)
|
||||
|
||||
# ===========================================================================
|
||||
# Area 2: Data Harmonization
|
||||
# ===========================================================================
|
||||
draw_section(.5, .62, .94, .18, "2. Data Harmonization")
|
||||
draw_box(.20, .595, .30, .10, "Party Identification", c("• PartyFacts harmonization", "• Alliance mapping"))
|
||||
draw_box(.50, .595, .26, .10, "Item Orientation", c("• Directional polarity", "• Inverted item reversal"))
|
||||
draw_box(.80, .595, .28, .10, "Scale Harmonization", c("• Text item counts", "• Expert scale mapping"))
|
||||
|
||||
arrow(.5, .53, .5, .49)
|
||||
|
||||
# ===========================================================================
|
||||
# Area 3: Dynamic Two-Dimensional Modeling
|
||||
# ===========================================================================
|
||||
draw_section(.5, .385, .94, .19, "3. Dynamic Two-Dimensional Modeling", bg = "#F4F4F4", border = "#111111")
|
||||
draw_box(.20, .36, .30, .11, "Latent State Process", c("• Economic & Cultural scales", "• Segment random walks"))
|
||||
draw_box(.50, .36, .26, .11, "Likelihood Functions", c("• Hurdle-binomial text counts", "• Beta-binomial expert means"))
|
||||
draw_box(.80, .36, .28, .11, "Estimation & Anchoring", c("• General left-right mixtures", "• Hamiltonian Monte Carlo"))
|
||||
|
||||
arrow(.5, .29, .5, .25)
|
||||
|
||||
# ===========================================================================
|
||||
# Area 4: Data Extraction & Validation
|
||||
# ===========================================================================
|
||||
draw_section(.5, .135, .94, .20, "4. Data Extraction & Validation")
|
||||
draw_box(.20, .11, .30, .12, "Primary Panel Release", c("• 1944–2025 election panel", "• Posterior means & CIs"))
|
||||
draw_box(.50, .11, .26, .12, "Secondary Output", c("• Annual trajectories", "• Composition metadata"))
|
||||
draw_box(.80, .11, .28, .12, "Validation & Diagnostics", c("• Blocked holdout & PPC", "• Ablation & sensitivity"))
|
||||
|
||||
dev.off()
|
||||
|
||||
message("Wrote validation/figures/research_workflow.pdf")
|
||||
|
||||
Executable
+143
@@ -0,0 +1,143 @@
|
||||
#!/usr/bin/env julia
|
||||
|
||||
using CSV, DataFrames, Random, Dates, SHA
|
||||
|
||||
const SEED = 20260812
|
||||
const HOLDOUT_SHARE = 0.20
|
||||
|
||||
function region_for(country::AbstractString)
|
||||
europe = Set(["AL","AT","BA","BE","BG","BY","CH","CY","CZ","DE","DK","EE","ES","FI","FR","GB","GE","GR","HR","HU","IE","IS","IT","LT","LU","LV","MD","ME","MK","MT","NL","NO","PL","PT","RO","RS","RU","SE","SI","SK","TR","UA"])
|
||||
latin = Set(["AR","BO","BR","CL","CO","CR","DO","EC","MX","PA","PE","UY"])
|
||||
north_america = Set(["CA", "US"])
|
||||
asia_pacific = Set(["AU", "JP", "KR", "LK", "NZ"])
|
||||
country in europe && return "Europe"
|
||||
country in latin && return "Latin America"
|
||||
country in north_america && return "North America"
|
||||
country in asia_pacific && return "Asia-Pacific"
|
||||
return "Other"
|
||||
end
|
||||
|
||||
function sha256_file(path::String)
|
||||
open(path) do io
|
||||
return bytes2hex(sha256(io))
|
||||
end
|
||||
end
|
||||
|
||||
function main(args=ARGS)
|
||||
repo_root = normpath(joinpath(@__DIR__, ".."))
|
||||
output_dir = isempty(args) ? joinpath(repo_root, "_local", "revision", "blocked_party") : abspath(args[1])
|
||||
mkpath(output_dir)
|
||||
mkpath(joinpath(output_dir, "data"))
|
||||
|
||||
text_path = joinpath(repo_root, "data", "text_data.csv")
|
||||
expert_path = joinpath(repo_root, "data", "expert.csv")
|
||||
lr_path = joinpath(repo_root, "data", "lr_data.csv")
|
||||
union_path = joinpath(repo_root, "data", "union_mapping.csv")
|
||||
|
||||
text = CSV.read(text_path, DataFrame)
|
||||
expert = CSV.read(expert_path, DataFrame)
|
||||
lr = CSV.read(lr_path, DataFrame)
|
||||
unions = CSV.read(union_path, DataFrame)
|
||||
|
||||
union_ids = Set(vcat(Int.(unions.manifesto_pf_id), Int.(unions.expert_pf_id)))
|
||||
protected_ids = union(union_ids, Set([1375])) # preserve CDU identification anchor and avoid union leakage
|
||||
|
||||
text_parties = Set(Int.(unique(text.party)))
|
||||
expert_parties = Set(Int.(unique(expert.party)))
|
||||
candidate_ids = sort(collect(intersect(text_parties, expert_parties)))
|
||||
|
||||
candidate_rows = NamedTuple[]
|
||||
for party in candidate_ids
|
||||
party in protected_ids && continue
|
||||
t = text[text.party .== party, :]
|
||||
e = expert[expert.party .== party, :]
|
||||
isempty(e.year) && continue
|
||||
text_years = length(unique(t.year))
|
||||
text_years < 3 && continue
|
||||
has_economic_text = any((t.type_high .== "pro_market") .| (t.type_high .== "pro_welfare"))
|
||||
has_cultural_text = any((t.type_high .== "cosmopolitan") .| (t.type_high .== "traditional"))
|
||||
(has_economic_text && has_cultural_text) || continue
|
||||
country = string(first(e.country))
|
||||
first_expert_year = minimum(e.year)
|
||||
period = first_expert_year < 1990 ? "pre-1990" :
|
||||
first_expert_year < 2000 ? "1990s" :
|
||||
first_expert_year < 2010 ? "2000s" :
|
||||
first_expert_year < 2020 ? "2010s" : "2020s"
|
||||
push!(candidate_rows, (
|
||||
party_id=party,
|
||||
country=country,
|
||||
region=region_for(country),
|
||||
first_expert_year=first_expert_year,
|
||||
last_expert_year=maximum(e.year),
|
||||
expert_period=period,
|
||||
text_years=text_years,
|
||||
expert_rows=nrow(e),
|
||||
lr_rows=count(lr.party .== party)
|
||||
))
|
||||
end
|
||||
candidates = DataFrame(candidate_rows)
|
||||
candidates.stratum = candidates.region .* " / " .* candidates.expert_period
|
||||
|
||||
rng = MersenneTwister(SEED)
|
||||
selected_ids = Int[]
|
||||
for stratum in sort(unique(candidates.stratum))
|
||||
ids = sort(candidates.party_id[candidates.stratum .== stratum])
|
||||
shuffle!(rng, ids)
|
||||
n_select = max(1, round(Int, HOLDOUT_SHARE * length(ids)))
|
||||
n_select = min(n_select, length(ids))
|
||||
append!(selected_ids, ids[1:n_select])
|
||||
end
|
||||
sort!(unique!(selected_ids))
|
||||
selected = candidates[in.(candidates.party_id, Ref(Set(selected_ids))), :]
|
||||
selected.selected = trues(nrow(selected))
|
||||
|
||||
expert_test = expert[in.(Int.(expert.party), Ref(Set(selected_ids))), :]
|
||||
expert_train = expert[.!in.(Int.(expert.party), Ref(Set(selected_ids))), :]
|
||||
lr_test = lr[in.(Int.(lr.party), Ref(Set(selected_ids))), :]
|
||||
lr_train = lr[.!in.(Int.(lr.party), Ref(Set(selected_ids))), :]
|
||||
|
||||
# All text remains in training, which ensures that the held-out parties are
|
||||
# estimated from their text trajectories and the model's shared structure.
|
||||
CSV.write(joinpath(output_dir, "text_data.csv"), text)
|
||||
CSV.write(joinpath(output_dir, "expert.csv"), expert_train)
|
||||
CSV.write(joinpath(output_dir, "lr_data.csv"), lr_train)
|
||||
CSV.write(joinpath(output_dir, "expert_test.csv"), expert_test)
|
||||
CSV.write(joinpath(output_dir, "lr_data_test.csv"), lr_test)
|
||||
CSV.write(joinpath(output_dir, "blocked_parties.csv"), selected)
|
||||
cp(union_path, joinpath(output_dir, "data", "union_mapping.csv"), force=true)
|
||||
|
||||
# Assertions against leakage and accidental loss of the text evidence.
|
||||
@assert isempty(intersect(Set(Int.(expert_train.party)), Set(selected_ids)))
|
||||
@assert isempty(intersect(Set(Int.(lr_train.party)), Set(selected_ids)))
|
||||
@assert Set(selected_ids) ⊆ Set(Int.(text.party))
|
||||
@assert nrow(expert_train) + nrow(expert_test) == nrow(expert)
|
||||
@assert nrow(lr_train) + nrow(lr_test) == nrow(lr)
|
||||
|
||||
manifest = DataFrame(
|
||||
field = [
|
||||
"created_at", "seed", "holdout_share", "eligible_parties", "blocked_parties",
|
||||
"text_rows_train", "expert_rows_train", "expert_rows_test", "lr_rows_train", "lr_rows_test",
|
||||
"text_sha256", "expert_full_sha256", "lr_full_sha256", "union_mapping_sha256"
|
||||
],
|
||||
value = [
|
||||
string(now()), string(SEED), string(HOLDOUT_SHARE), string(nrow(candidates)), string(length(selected_ids)),
|
||||
string(nrow(text)), string(nrow(expert_train)), string(nrow(expert_test)), string(nrow(lr_train)), string(nrow(lr_test)),
|
||||
sha256_file(text_path), sha256_file(expert_path), sha256_file(lr_path), sha256_file(union_path)
|
||||
]
|
||||
)
|
||||
CSV.write(joinpath(output_dir, "blocked_validation_manifest.csv"), manifest)
|
||||
|
||||
stratum_summary = combine(groupby(candidates, :stratum),
|
||||
nrow => :eligible_parties,
|
||||
:party_id => (x -> count(in(Set(selected_ids)), x)) => :blocked_parties)
|
||||
CSV.write(joinpath(output_dir, "blocked_validation_strata.csv"), stratum_summary)
|
||||
|
||||
println("Prepared blocked validation at: $output_dir")
|
||||
println("Eligible parties: $(nrow(candidates))")
|
||||
println("Blocked parties: $(length(selected_ids))")
|
||||
println("Held-out dimension-specific expert rows: $(nrow(expert_test))")
|
||||
println("Held-out general left-right rows: $(nrow(lr_test))")
|
||||
println("No selected party remains in either expert training file.")
|
||||
end
|
||||
|
||||
main()
|
||||
Executable
+76
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)"
|
||||
cd "$repo_root"
|
||||
|
||||
if [[ "${PARTY2D_APPROVE_MODEL_FIT:-}" != "YES" ]]; then
|
||||
echo "Refusing to start a Stan fit without explicit approval." >&2
|
||||
echo "After approval, rerun with PARTY2D_APPROVE_MODEL_FIT=YES." >&2
|
||||
exit 64
|
||||
fi
|
||||
|
||||
run_dir="${1:-$repo_root/_local/validation/blocked_party}"
|
||||
mkdir -p "$run_dir" "$repo_root/_local/tmp/blocked_validation"
|
||||
|
||||
if pgrep -af 'stan_model_2dim_v6.*sample|src/julia/01_run_model.jl' | grep -v "$$" >/dev/null; then
|
||||
echo "Refusing to start: another party2d model process appears to be running." >&2
|
||||
pgrep -af 'stan_model_2dim_v6.*sample|src/julia/01_run_model.jl' >&2 || true
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -f "$run_dir/model_fit.complete" ]]; then
|
||||
echo "Blocked validation already marked complete: $run_dir/model_fit.complete" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
required_kb=$((80 * 1024 * 1024))
|
||||
available_kb="$(df -Pk "$run_dir" | awk 'NR==2 {print $4}')"
|
||||
if (( available_kb < required_kb )); then
|
||||
echo "Refusing to start: less than 80 GiB free on the run volume." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
julia --project=. validation/prepare_blocked_validation.jl "$run_dir"
|
||||
sha256sum "$run_dir"/text_data.csv "$run_dir"/expert.csv "$run_dir"/lr_data.csv \
|
||||
"$run_dir"/expert_test.csv "$run_dir"/lr_data_test.csv \
|
||||
> "$run_dir/input_sha256sums.txt"
|
||||
|
||||
export CMDSTAN_HOME="${CMDSTAN_HOME:-/opt/agent-tools/cmdstan-2.39.0}"
|
||||
export TMPDIR="$repo_root/_local/tmp/blocked_validation"
|
||||
export JULIA_NUM_THREADS="${JULIA_NUM_THREADS:-4}"
|
||||
export STAN_NUM_THREADS=1
|
||||
export STAN_REFRESH="${STAN_REFRESH:-50}"
|
||||
export PARTY2D_NUM_CHAINS="${PARTY2D_NUM_CHAINS:-4}"
|
||||
export PARTY2D_NUM_WARMUP="${PARTY2D_NUM_WARMUP:-1000}"
|
||||
export PARTY2D_NUM_SAMPLES="${PARTY2D_NUM_SAMPLES:-1000}"
|
||||
|
||||
if [[ ! -x "$CMDSTAN_HOME/bin/stanc" ]]; then
|
||||
echo "Refusing to start: no executable stanc compiler at $CMDSTAN_HOME/bin/stanc" >&2
|
||||
exit 1
|
||||
fi
|
||||
"$CMDSTAN_HOME/bin/stanc" --version > "$run_dir/stanc_version.txt"
|
||||
|
||||
date --iso-8601=seconds > "$run_dir/model_fit.started"
|
||||
echo "$$" > "$run_dir/model_fit.pid"
|
||||
echo "CMDSTAN_HOME=$CMDSTAN_HOME" > "$run_dir/model_fit.environment"
|
||||
echo "JULIA_NUM_THREADS=$JULIA_NUM_THREADS" >> "$run_dir/model_fit.environment"
|
||||
echo "STAN_NUM_THREADS=$STAN_NUM_THREADS" >> "$run_dir/model_fit.environment"
|
||||
echo "PARTY2D_NUM_CHAINS=$PARTY2D_NUM_CHAINS" >> "$run_dir/model_fit.environment"
|
||||
echo "PARTY2D_NUM_WARMUP=$PARTY2D_NUM_WARMUP" >> "$run_dir/model_fit.environment"
|
||||
echo "PARTY2D_NUM_SAMPLES=$PARTY2D_NUM_SAMPLES" >> "$run_dir/model_fit.environment"
|
||||
|
||||
set +e
|
||||
nice -n 10 julia --project=. src/julia/01_run_model.jl --data-dir "$run_dir" \
|
||||
2>&1 | tee "$run_dir/model_fit.log"
|
||||
status="${PIPESTATUS[0]}"
|
||||
set -e
|
||||
|
||||
echo "$status" > "$run_dir/model_fit.exit_code"
|
||||
if [[ "$status" -eq 0 ]]; then
|
||||
rm -f "$run_dir/model_fit.failed"
|
||||
date --iso-8601=seconds > "$run_dir/model_fit.complete"
|
||||
else
|
||||
date --iso-8601=seconds > "$run_dir/model_fit.failed"
|
||||
fi
|
||||
exit "$status"
|
||||
Executable
+464
@@ -0,0 +1,464 @@
|
||||
#!/usr/bin/env Rscript
|
||||
|
||||
options(stringsAsFactors = FALSE)
|
||||
|
||||
required_packages <- c("ggplot2", "sandwich", "lme4")
|
||||
missing_packages <- required_packages[!vapply(required_packages, requireNamespace, logical(1), quietly = TRUE)]
|
||||
if (length(missing_packages)) stop("Missing R packages: ", paste(missing_packages, collapse = ", "))
|
||||
|
||||
library(ggplot2)
|
||||
|
||||
script_args <- commandArgs(trailingOnly = FALSE)
|
||||
file_arg <- script_args[grepl("^--file=", script_args)][1]
|
||||
script_path <- normalizePath(sub("^--file=", "", file_arg))
|
||||
repo_root <- normalizePath(file.path(dirname(script_path), ".."))
|
||||
setwd(repo_root)
|
||||
|
||||
output_dir <- file.path("revision", "outputs")
|
||||
figure_dir <- file.path("revision", "figures")
|
||||
dir.create(output_dir, recursive = TRUE, showWarnings = FALSE)
|
||||
dir.create(figure_dir, recursive = TRUE, showWarnings = FALSE)
|
||||
|
||||
panel_file <- file.path("data", "releases", "party_2d_election_year_panel_v0.csv.gz")
|
||||
annual_file <- file.path("data", "releases", "party_2d_annual_model_output_v0.csv.gz")
|
||||
no_vparty_file <- "/projects/party4d_validation_runs/no_vparty/outputs/estimations/latest/party_positions_2026-06-05_14-57-17.csv"
|
||||
|
||||
for (f in c(panel_file, annual_file, no_vparty_file)) {
|
||||
if (!file.exists(f)) stop("Required input not found: ", f)
|
||||
}
|
||||
|
||||
panel <- read.csv(panel_file, check.names = FALSE)
|
||||
annual <- read.csv(annual_file, check.names = FALSE)
|
||||
no_vparty <- read.csv(no_vparty_file, check.names = FALSE)
|
||||
families <- read.csv(file.path("data", "party_families.csv"), check.names = FALSE)
|
||||
names(families)[names(families) == "partyfacts_id"] <- "party_id"
|
||||
|
||||
iso_names <- c(
|
||||
AL="Albania", AM="Armenia", AR="Argentina", AT="Austria", AU="Australia",
|
||||
AZ="Azerbaijan", BA="Bosnia and Herzegovina", BE="Belgium", BG="Bulgaria",
|
||||
BO="Bolivia", BR="Brazil", BY="Belarus", CA="Canada", CH="Switzerland",
|
||||
CL="Chile", CO="Colombia", CR="Costa Rica", CY="Cyprus", CZ="Czechia",
|
||||
DE="Germany", DK="Denmark", DO="Dominican Republic", EC="Ecuador",
|
||||
EE="Estonia", ES="Spain", FI="Finland", FR="France", GB="United Kingdom",
|
||||
GE="Georgia", GR="Greece", HR="Croatia", HU="Hungary", IE="Ireland",
|
||||
IL="Israel", IS="Iceland", IT="Italy", JP="Japan", KR="South Korea",
|
||||
LK="Sri Lanka", LT="Lithuania", LU="Luxembourg", LV="Latvia", MD="Moldova",
|
||||
ME="Montenegro", MK="North Macedonia", MT="Malta", MX="Mexico",
|
||||
NL="Netherlands", NO="Norway", NZ="New Zealand", PA="Panama", PE="Peru",
|
||||
PL="Poland", PT="Portugal", RO="Romania", RS="Serbia", RU="Russia",
|
||||
SE="Sweden", SI="Slovenia", SK="Slovakia", TR="Türkiye", UA="Ukraine",
|
||||
US="United States", UY="Uruguay", ZA="South Africa"
|
||||
)
|
||||
|
||||
region_for <- function(country) {
|
||||
europe <- c("AL","AT","BA","BE","BG","BY","CH","CY","CZ","DE","DK","EE","ES","FI","FR","GB","GE","GR","HR","HU","IE","IS","IT","LT","LU","LV","MD","ME","MK","MT","NL","NO","PL","PT","RO","RS","RU","SE","SI","SK","TR","UA")
|
||||
latin <- c("AR","BO","BR","CL","CO","CR","DO","EC","MX","PA","PE","UY")
|
||||
north_america <- c("CA", "US")
|
||||
asia_pacific <- c("AU", "JP", "KR", "LK", "NZ")
|
||||
out <- rep("Other", length(country))
|
||||
out[country %in% europe] <- "Europe"
|
||||
out[country %in% latin] <- "Latin America"
|
||||
out[country %in% north_america] <- "North America"
|
||||
out[country %in% asia_pacific] <- "Asia-Pacific"
|
||||
out
|
||||
}
|
||||
|
||||
family_names <- c(
|
||||
com="Communist/Far Left", eco="Green/Ecological", soc="Social Democratic",
|
||||
chr="Christian Democratic", agr="Agrarian", lib="Liberal", con="Conservative",
|
||||
right="Radical Right", spec="Special issue", other="Other", nofam="Unclassified"
|
||||
)
|
||||
|
||||
theme_revision <- function() {
|
||||
theme_minimal(base_size = 9) +
|
||||
theme(
|
||||
panel.grid.minor = element_blank(),
|
||||
strip.text = element_text(face = "bold"),
|
||||
legend.position = "bottom",
|
||||
plot.title.position = "plot"
|
||||
)
|
||||
}
|
||||
|
||||
write_clean_csv <- function(x, path) {
|
||||
write.csv(x, path, row.names = FALSE, na = "")
|
||||
message("Wrote ", path, " (", nrow(x), " rows)")
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Versioned country coverage
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
country_rows <- lapply(sort(unique(panel$country)), function(cc) {
|
||||
d <- panel[panel$country == cc, ]
|
||||
tab <- table(d$source_support_class)
|
||||
get_n <- function(label) if (label %in% names(tab)) unname(tab[label]) else 0
|
||||
data.frame(
|
||||
release = "v0", iso2 = cc, country = unname(iso_names[cc]),
|
||||
first_year = min(d$year), last_year = max(d$year),
|
||||
parties = length(unique(d$party_id)), election_year_rows = nrow(d),
|
||||
both_text_expert = get_n("both_direct_or_nearby"),
|
||||
text_only = get_n("text_only_direct_or_nearby"),
|
||||
expert_only = get_n("expert_only_direct_or_nearby"),
|
||||
temporal_propagation = get_n("temporal_propagation")
|
||||
)
|
||||
})
|
||||
country_coverage <- do.call(rbind, country_rows)
|
||||
write_clean_csv(country_coverage, file.path("metadata", "country_coverage_v0.csv"))
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Source-support balance with uncertainty and hierarchical heterogeneity
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
balance <- panel[is.na(panel$pervote) | panel$pervote > 0, ]
|
||||
balance$pervote[is.na(balance$pervote)] <- 0
|
||||
balance$decade <- factor(floor(balance$year / 10) * 10)
|
||||
balance$region <- factor(region_for(balance$country))
|
||||
balance$country <- factor(balance$country)
|
||||
balance$text_only <- as.integer(balance$source_support_class == "text_only_direct_or_nearby")
|
||||
balance$expert_only <- as.integer(balance$source_support_class == "expert_only_direct_or_nearby")
|
||||
balance$temporal <- as.integer(balance$source_support_class == "temporal_propagation")
|
||||
|
||||
class_labels <- c(
|
||||
text_only="Text only", expert_only="Expert only", temporal="Temporal propagation"
|
||||
)
|
||||
|
||||
pooled_rows <- list()
|
||||
interaction_rows <- list()
|
||||
row_i <- 1
|
||||
interaction_i <- 1
|
||||
|
||||
for (dimension in c("economic_lr", "galtan")) {
|
||||
form <- as.formula(paste(dimension, "~ text_only + expert_only + temporal + factor(country) + decade + log1p(pervote)"))
|
||||
model <- lm(form, data = balance)
|
||||
cluster_vcov <- sandwich::vcovCL(model, cluster = balance$country, type = "HC1")
|
||||
for (term in names(class_labels)) {
|
||||
estimate <- unname(coef(model)[term])
|
||||
se <- sqrt(cluster_vcov[term, term])
|
||||
category <- switch(term,
|
||||
text_only="text_only_direct_or_nearby",
|
||||
expert_only="expert_only_direct_or_nearby",
|
||||
temporal="temporal_propagation")
|
||||
pooled_rows[[row_i]] <- data.frame(
|
||||
dimension = dimension, comparison = class_labels[term],
|
||||
category_n = sum(balance$source_support_class == category),
|
||||
model_n = nobs(model), estimate = estimate, clustered_se = se,
|
||||
ci_lower = estimate - 1.96 * se, ci_upper = estimate + 1.96 * se,
|
||||
p_value = 2 * pnorm(abs(estimate / se), lower.tail = FALSE)
|
||||
)
|
||||
row_i <- row_i + 1
|
||||
}
|
||||
|
||||
# Partially pool the well-populated text-only contrast across region and
|
||||
# decade. Expert-only and temporal-propagation contrasts remain pooled
|
||||
# because their samples are too sparse for stable varying slopes.
|
||||
varying_form <- as.formula(paste(
|
||||
dimension,
|
||||
"~ expert_only + temporal + text_only + log1p(pervote) +",
|
||||
"(1 | country) + (0 + text_only | region) + (0 + text_only | decade)"
|
||||
))
|
||||
varying_model <- lme4::lmer(varying_form, data = balance, REML = TRUE,
|
||||
control = lme4::lmerControl(check.nobs.vs.nRE = "ignore"))
|
||||
fixed_text <- lme4::fixef(varying_model)["text_only"]
|
||||
fixed_var <- as.matrix(vcov(varying_model))["text_only", "text_only"]
|
||||
re <- lme4::ranef(varying_model, condVar = TRUE)
|
||||
|
||||
for (group_type in c("region", "decade")) {
|
||||
group_values <- rownames(re[[group_type]])
|
||||
post_var <- attr(re[[group_type]], "postVar")
|
||||
for (group_index in seq_along(group_values)) {
|
||||
g <- group_values[group_index]
|
||||
template <- balance[as.character(balance[[group_type]]) == g, , drop = FALSE]
|
||||
estimate <- fixed_text + re[[group_type]][g, "text_only"]
|
||||
# Approximate conditional interval. Adding fixed-effect and conditional
|
||||
# random-effect variances is conservative because their covariance is
|
||||
# not exposed by ranef().
|
||||
se <- sqrt(fixed_var + post_var[1, 1, group_index])
|
||||
interaction_rows[[interaction_i]] <- data.frame(
|
||||
dimension = dimension, group_type = group_type, group = as.character(g),
|
||||
comparison = "Text only", group_n = nrow(template),
|
||||
text_only_n = sum(template$source_support_class == "text_only_direct_or_nearby"),
|
||||
estimate = unname(estimate), approximate_se = unname(se),
|
||||
ci_lower = unname(estimate - 1.96 * se), ci_upper = unname(estimate + 1.96 * se),
|
||||
model_n = nobs(varying_model), singular_fit = lme4::isSingular(varying_model)
|
||||
)
|
||||
interaction_i <- interaction_i + 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pooled <- do.call(rbind, pooled_rows)
|
||||
interactions <- do.call(rbind, interaction_rows)
|
||||
write_clean_csv(pooled, file.path(output_dir, "source_support_pooled.csv"))
|
||||
write_clean_csv(interactions, file.path(output_dir, "source_support_interactions.csv"))
|
||||
|
||||
interactions$dimension_label <- ifelse(interactions$dimension == "economic_lr", "Economic", "Cultural")
|
||||
interactions$group_type_label <- ifelse(interactions$group_type == "region", "Region", "Decade")
|
||||
p_balance <- ggplot(interactions, aes(x = estimate, y = reorder(group, estimate))) +
|
||||
geom_vline(xintercept = 0, colour = "grey40", linewidth = 0.4, linetype = 2) +
|
||||
geom_errorbar(aes(xmin = ci_lower, xmax = ci_upper), orientation = "y", width = 0, linewidth = 0.4, colour = "grey20") +
|
||||
geom_point(size = 1.6, colour = "black") +
|
||||
facet_wrap(~dimension_label + group_type_label, scales = "free_y", ncol = 2) +
|
||||
labs(x = "Adjusted difference from overlapping text-and-expert support", y = NULL) +
|
||||
theme_revision()
|
||||
ggsave(file.path(figure_dir, "source_support_heterogeneity.pdf"), p_balance,
|
||||
width = 8.2, height = 6.8, device = cairo_pdf)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# V-Party ablation: case and subgroup sensitivity
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
keys <- c("party_id", "country", "year")
|
||||
vparty <- merge(panel, no_vparty, by = keys, suffixes = c("_production", "_no_vparty"))
|
||||
vparty <- merge(vparty, families, by = "party_id", all.x = TRUE)
|
||||
vparty$family[is.na(vparty$family)] <- "nofam"
|
||||
vparty$family_label <- unname(family_names[vparty$family])
|
||||
vparty$region <- region_for(vparty$country)
|
||||
vparty$decade <- floor(vparty$year / 10) * 10
|
||||
|
||||
for (dimension in c("economic_lr", "galtan")) {
|
||||
prod <- vparty[[paste0(dimension, "_production")]]
|
||||
ablated <- vparty[[paste0(dimension, "_no_vparty")]]
|
||||
vparty[[paste0(dimension, "_difference")]] <- ablated - prod
|
||||
vparty[[paste0(dimension, "_abs_difference")]] <- abs(ablated - prod)
|
||||
width_prod <- vparty[[paste0(dimension, "_q975_production")]] - vparty[[paste0(dimension, "_q025_production")]]
|
||||
width_ablation <- vparty[[paste0(dimension, "_q975_no_vparty")]] - vparty[[paste0(dimension, "_q025_no_vparty")]]
|
||||
vparty[[paste0(dimension, "_interval_width_production")]] <- width_prod
|
||||
vparty[[paste0(dimension, "_interval_width_no_vparty")]] <- width_ablation
|
||||
vparty[[paste0(dimension, "_interval_width_change")]] <- width_ablation - width_prod
|
||||
}
|
||||
|
||||
summary_by <- function(data, group_var, dimension) {
|
||||
split_data <- split(data, data[[group_var]], drop = TRUE)
|
||||
rows <- lapply(names(split_data), function(g) {
|
||||
d <- split_data[[g]]
|
||||
absdiff <- d[[paste0(dimension, "_abs_difference")]]
|
||||
diff <- d[[paste0(dimension, "_difference")]]
|
||||
wprod <- d[[paste0(dimension, "_interval_width_production")]]
|
||||
wabl <- d[[paste0(dimension, "_interval_width_no_vparty")]]
|
||||
data.frame(
|
||||
dimension = dimension, group_type = group_var, group = g,
|
||||
n = nrow(d), parties = length(unique(d$party_id)),
|
||||
mean_abs_difference = mean(absdiff), median_abs_difference = median(absdiff),
|
||||
p90_abs_difference = unname(quantile(absdiff, .90)),
|
||||
p95_abs_difference = unname(quantile(absdiff, .95)),
|
||||
mean_signed_difference = mean(diff),
|
||||
mean_interval_width_production = mean(wprod),
|
||||
mean_interval_width_no_vparty = mean(wabl),
|
||||
mean_interval_width_change = mean(wabl - wprod)
|
||||
)
|
||||
})
|
||||
do.call(rbind, rows)
|
||||
}
|
||||
|
||||
vparty_summaries <- do.call(rbind, lapply(c("country", "decade", "region", "family_label", "source_support_class"), function(g) {
|
||||
do.call(rbind, lapply(c("economic_lr", "galtan"), function(d) summary_by(vparty, g, d)))
|
||||
}))
|
||||
|
||||
write_clean_csv(vparty, file.path(output_dir, "vparty_sensitivity_matched_rows.csv"))
|
||||
write_clean_csv(vparty_summaries, file.path(output_dir, "vparty_sensitivity_groups.csv"))
|
||||
|
||||
top_cases <- do.call(rbind, lapply(c("economic_lr", "galtan"), function(dimension) {
|
||||
ord <- order(vparty[[paste0(dimension, "_abs_difference")]], decreasing = TRUE)
|
||||
d <- vparty[head(ord, 30), ]
|
||||
data.frame(
|
||||
dimension = dimension, party_id = d$party_id,
|
||||
party_name = d$party_name_english, party_short = d$party_name_short,
|
||||
country = d$country, year = d$year,
|
||||
production = d[[paste0(dimension, "_production")]],
|
||||
no_vparty = d[[paste0(dimension, "_no_vparty")]],
|
||||
signed_difference = d[[paste0(dimension, "_difference")]],
|
||||
absolute_difference = d[[paste0(dimension, "_abs_difference")]],
|
||||
production_interval_width = d[[paste0(dimension, "_interval_width_production")]],
|
||||
no_vparty_interval_width = d[[paste0(dimension, "_interval_width_no_vparty")]],
|
||||
source_support_class = d$source_support_class,
|
||||
family = d$family_label
|
||||
)
|
||||
}))
|
||||
write_clean_csv(top_cases, file.path(output_dir, "vparty_sensitivity_top_cases.csv"))
|
||||
|
||||
country_plot <- vparty_summaries[vparty_summaries$group_type == "country" & vparty_summaries$n >= 10, ]
|
||||
country_plot <- do.call(rbind, lapply(split(country_plot, country_plot$dimension), function(d) {
|
||||
head(d[order(d$mean_abs_difference, decreasing = TRUE), ], 15)
|
||||
}))
|
||||
country_plot$dimension_label <- ifelse(country_plot$dimension == "economic_lr", "Economic", "Cultural")
|
||||
p_vparty <- ggplot(country_plot, aes(x = mean_abs_difference, y = reorder(group, mean_abs_difference))) +
|
||||
geom_point(aes(size = n), colour = "black") +
|
||||
facet_wrap(~dimension_label, scales = "free_y") +
|
||||
labs(x = "Mean absolute change after removing V-Party", y = "Country", size = "Party-years") +
|
||||
theme_revision()
|
||||
ggsave(file.path(figure_dir, "vparty_sensitivity_countries.pdf"), p_vparty,
|
||||
width = 7.2, height = 5.8, device = cairo_pdf)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Illustrative trajectories and landmark cases
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
trajectory_ids <- c(383, 1567, 379, 409)
|
||||
traj <- panel[panel$party_id %in% trajectory_ids, ]
|
||||
traj$party_label <- factor(traj$party_id, levels = trajectory_ids,
|
||||
labels = c("Germany: SPD", "United Kingdom: Conservatives", "Denmark: Social Democrats", "Sweden: Sweden Democrats"))
|
||||
traj_long <- rbind(
|
||||
data.frame(traj[c("party_id","party_label","country","year","source_support_class")],
|
||||
dimension="Economic", estimate=traj$economic_lr,
|
||||
lower=traj$economic_lr_q025, upper=traj$economic_lr_q975),
|
||||
data.frame(traj[c("party_id","party_label","country","year","source_support_class")],
|
||||
dimension="Cultural", estimate=traj$galtan,
|
||||
lower=traj$galtan_q025, upper=traj$galtan_q975)
|
||||
)
|
||||
write_clean_csv(traj_long, file.path(output_dir, "party_trajectory_plot_data.csv"))
|
||||
p_traj <- ggplot(traj_long, aes(x = year, y = estimate)) +
|
||||
geom_ribbon(aes(ymin = lower, ymax = upper), fill = "grey85", alpha = 0.5) +
|
||||
geom_line(colour = "black", linewidth = .65) +
|
||||
geom_point(colour = "black", size = .9) +
|
||||
facet_grid(dimension ~ party_label) +
|
||||
scale_y_continuous(limits = c(0, 1), breaks = c(0, .5, 1)) +
|
||||
labs(x = "Election year", y = "Posterior position (0–1)") +
|
||||
theme_revision() +
|
||||
theme(axis.text.x = element_text(angle = 45, hjust = 1))
|
||||
ggsave(file.path(figure_dir, "party_trajectories.pdf"), p_traj,
|
||||
width = 10.2, height = 4.9, device = cairo_pdf)
|
||||
|
||||
landmark_spec <- data.frame(
|
||||
party_id = c(383,383,1375,1375,1516,1516,1567,1567,487,487,409,409,433,433,1545,432,809),
|
||||
target_year = c(1972,2021,1983,2021,1983,1997,1979,2019,1994,2022,2010,2022,1988,2022,2021,2020,2020),
|
||||
label = c("SPD 1972","SPD 2021","CDU 1983","CDU 2021","Labour 1983","Labour 1997",
|
||||
"Conservatives 1979","Conservatives 2019","Swedish SAP 1994","Swedish SAP 2022",
|
||||
"Sweden Democrats 2010","Sweden Democrats 2022","French FN 1988","French FN 2022",
|
||||
"The Left 2021","US Democrats 2020","US Republicans 2020")
|
||||
)
|
||||
|
||||
landmark_rows <- lapply(seq_len(nrow(landmark_spec)), function(i) {
|
||||
spec <- landmark_spec[i, ]
|
||||
d <- panel[panel$party_id == spec$party_id & abs(panel$year - spec$target_year) <= 3, ]
|
||||
if (!nrow(d)) return(data.frame(spec, status="missing", actual_year=NA, economic_lr=NA, galtan=NA))
|
||||
d <- d[which.min(abs(d$year - spec$target_year)), ]
|
||||
data.frame(spec, status=ifelse(d$year == spec$target_year, "exact", "nearest within 3 years"),
|
||||
actual_year=d$year, party_name=d$party_name_english,
|
||||
country=d$country, economic_lr=d$economic_lr, economic_lower=d$economic_lr_q025,
|
||||
economic_upper=d$economic_lr_q975, galtan=d$galtan,
|
||||
galtan_lower=d$galtan_q025, galtan_upper=d$galtan_q975,
|
||||
source_support_class=d$source_support_class)
|
||||
})
|
||||
landmarks <- do.call(rbind, landmark_rows)
|
||||
landmarks$era <- ifelse(landmarks$target_year < 2000, "Historical & Cold War Era (1970–1999)", "Contemporary Era (2000–2022)")
|
||||
landmarks$era <- factor(landmarks$era, levels = c("Historical & Cold War Era (1970–1999)", "Contemporary Era (2000–2022)"))
|
||||
|
||||
write_clean_csv(landmarks, file.path(output_dir, "party_landmark_plot_data.csv"))
|
||||
plot_landmarks <- landmarks[!is.na(landmarks$economic_lr), ]
|
||||
|
||||
label_offsets <- data.frame(
|
||||
label = landmark_spec$label,
|
||||
dx = c(-.060,-.060,-.055,.045,-.040,-.060,.035,-.055,-.005,.080,-.060,.060,.030,-.030,.035,.080,.025),
|
||||
dy = c(.070,.040,.055,-.035,-.070,-.040,-.025,.030,.040,.060,-.035,.035,.035,.050,.035,-.060,.035)
|
||||
)
|
||||
plot_landmarks <- merge(plot_landmarks, label_offsets, by = "label", all.x = TRUE, sort = FALSE)
|
||||
plot_landmarks$label_x <- pmin(.98, pmax(.02, plot_landmarks$economic_lr + plot_landmarks$dx))
|
||||
plot_landmarks$label_y <- pmin(.98, pmax(.02, plot_landmarks$galtan + plot_landmarks$dy))
|
||||
|
||||
# Country shapes for clear grayscale distinction
|
||||
country_shapes <- c(DE = 16, GB = 17, SE = 15, FR = 18, US = 8)
|
||||
|
||||
p_land <- ggplot(plot_landmarks, aes(x = economic_lr, y = galtan)) +
|
||||
geom_errorbar(aes(ymin = galtan_lower, ymax = galtan_upper), width = 0, alpha = .35, colour = "grey30") +
|
||||
geom_errorbar(aes(xmin = economic_lower, xmax = economic_upper), orientation = "y", width = 0, alpha = .35, colour = "grey30") +
|
||||
geom_segment(aes(xend = label_x, yend = label_y), linewidth = .2, colour = "grey50") +
|
||||
geom_point(aes(shape = country), size = 2.2, fill = "black", colour = "black") +
|
||||
geom_text(aes(x = label_x, y = label_y, label = label), size = 2.4,
|
||||
check_overlap = TRUE, show.legend = FALSE) +
|
||||
facet_wrap(~era, ncol = 2) +
|
||||
scale_shape_manual(values = country_shapes) +
|
||||
scale_x_continuous(limits = c(0,1), breaks = c(0,.25,.5,.75,1)) +
|
||||
scale_y_continuous(limits = c(0,1), breaks = c(0,.25,.5,.75,1)) +
|
||||
labs(x = "Economic: left (0) to right (1)",
|
||||
y = "Cultural: cosmopolitan (0) to traditionalist (1)", shape = "Country") +
|
||||
theme_revision()
|
||||
ggsave(file.path(figure_dir, "party_landmarks.pdf"), p_land,
|
||||
width = 9.2, height = 5.2, device = cairo_pdf)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Predictive-interval calibration and concentration of misses
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
ppc_dir <- file.path(output_dir, "ppc")
|
||||
ppc_item_file <- file.path(ppc_dir, "posterior_predictive_by_dimension_item.csv")
|
||||
ppc_calibration_file <- file.path(ppc_dir, "posterior_predictive_calibration_curve.csv")
|
||||
if (file.exists(ppc_item_file) && file.exists(ppc_calibration_file)) {
|
||||
ppc_items <- read.csv(ppc_item_file, check.names = FALSE)
|
||||
ppc_items$dimension <- ifelse(ppc_items$dim_idx == 1, "Economic", "Cultural")
|
||||
ppc_items$item_label <- c(
|
||||
gender_vparty="V-Party gender", relig_vparty="V-Party religion",
|
||||
welf_vparty="V-Party welfare", culsup_vparty="V-Party cultural superiority",
|
||||
immig_vparty="V-Party immigration", lgbt_vparty="V-Party LGBT",
|
||||
lrecon_vparty="V-Party economic LR", galtan_ches="CHES GAL--TAN",
|
||||
lrecon_ches="CHES economic LR", libcon_gps="GPS cultural",
|
||||
lrecon_gps="GPS economic LR", lrecon_poppa="POPPA economic LR"
|
||||
)[ppc_items$var]
|
||||
ppc_items$item_label[is.na(ppc_items$item_label)] <- ppc_items$var[is.na(ppc_items$item_label)]
|
||||
ppc_items$item_label <- factor(ppc_items$item_label,
|
||||
levels = rev(ppc_items$item_label[order(ppc_items$observed_coverage)]))
|
||||
p_ppc <- ggplot(ppc_items, aes(x = observed_coverage, y = item_label)) +
|
||||
geom_vline(xintercept = .95, linetype = 2, colour = "grey40", linewidth = .35) +
|
||||
geom_errorbar(aes(xmin = coverage_ci_lower, xmax = coverage_ci_upper),
|
||||
orientation = "y", width = 0, linewidth = .35, colour = "grey20") +
|
||||
geom_point(aes(size = n, shape = project), colour = "black", fill = "gray30") +
|
||||
facet_wrap(~dimension, scales = "free_y") +
|
||||
scale_x_continuous(limits = c(.70, 1), breaks = c(.70,.80,.90,.95,1),
|
||||
labels = function(x) paste0(round(100*x), "%")) +
|
||||
labs(x = "Observed coverage of nominal 95% predictive interval", y = NULL,
|
||||
shape = "Source project", size = "Ratings") +
|
||||
theme_revision()
|
||||
ggsave(file.path(figure_dir, "predictive_coverage_by_item.pdf"), p_ppc,
|
||||
width = 7.8, height = 5.4, device = cairo_pdf)
|
||||
|
||||
ppc_cal <- read.csv(ppc_calibration_file, check.names = FALSE)
|
||||
ppc_cal$dimension <- ifelse(ppc_cal$dim_idx == 1, "Economic", "Cultural")
|
||||
p_cal <- ggplot(ppc_cal, aes(x = nominal_level, y = observed_coverage, linetype = dimension, shape = dimension)) +
|
||||
geom_abline(slope = 1, intercept = 0, linetype = 3, colour = "grey50") +
|
||||
geom_line(linewidth = .6, colour = "black") + geom_point(size = 1.8, colour = "black") +
|
||||
scale_x_continuous(limits = c(.45, 1), breaks = c(.5,.8,.9,.95,1),
|
||||
labels = function(x) paste0(round(100*x), "%")) +
|
||||
scale_y_continuous(limits = c(.4, 1), breaks = c(.4,.5,.6,.7,.8,.9,1),
|
||||
labels = function(x) paste0(round(100*x), "%")) +
|
||||
labs(x = "Nominal interval level", y = "Observed coverage", linetype = "Dimension", shape = "Dimension") +
|
||||
coord_equal() + theme_revision()
|
||||
ggsave(file.path(figure_dir, "predictive_calibration_curve.pdf"), p_cal,
|
||||
width = 5.7, height = 5.0, device = cairo_pdf)
|
||||
|
||||
|
||||
ppc_obs_file <- file.path(ppc_dir, "posterior_predictive_observations.csv")
|
||||
if (file.exists(ppc_obs_file)) {
|
||||
ppc_obs <- read.csv(ppc_obs_file, check.names = FALSE)
|
||||
ppc_obs$covered_95 <- tolower(as.character(ppc_obs$covered_95)) == "true"
|
||||
expert_input <- read.csv(file.path("data", "expert.csv"), check.names = FALSE)
|
||||
key <- function(d) paste(d$party, d$country, d$year, d$var, sprintf("%.10f", d$val), sep = "|")
|
||||
ppc_obs$n_experts <- expert_input$n_experts[match(key(ppc_obs), key(expert_input))]
|
||||
ppc_obs$interval_width <- ppc_obs$pred_upper - ppc_obs$pred_lower
|
||||
ppc_obs$fitted_bin <- cut(ppc_obs$pred_median,
|
||||
breaks = c(-Inf,.10,.25,.50,.75,.90,Inf), right = FALSE,
|
||||
labels = c("<0.10","0.10--0.25","0.25--0.50","0.50--0.75","0.75--0.90",">=0.90"))
|
||||
ppc_obs$expert_count_bin <- cut(ppc_obs$n_experts,
|
||||
breaks = c(-Inf,1,3,5,10,Inf), right = TRUE,
|
||||
labels = c("1","2--3","4--5","6--10",">10"))
|
||||
width_breaks <- unique(quantile(ppc_obs$interval_width, seq(0, 1, .25), na.rm = TRUE))
|
||||
ppc_obs$interval_width_quartile <- cut(ppc_obs$interval_width, breaks = width_breaks,
|
||||
include.lowest = TRUE, labels = paste0("Q", seq_len(length(width_breaks)-1)))
|
||||
|
||||
summarize_ppc_bins <- function(variable) {
|
||||
pieces <- split(ppc_obs, interaction(ppc_obs$dim_idx, ppc_obs[[variable]], drop = TRUE))
|
||||
do.call(rbind, lapply(pieces, function(d) {
|
||||
data.frame(
|
||||
dim_idx = d$dim_idx[1], group_type = variable,
|
||||
group = as.character(d[[variable]][1]), n = nrow(d),
|
||||
covered = sum(d$covered_95), observed_coverage = mean(d$covered_95),
|
||||
mean_interval_width = mean(d$interval_width),
|
||||
mean_fitted_value = mean(d$pred_median), mean_expert_count = mean(d$n_experts, na.rm = TRUE)
|
||||
)
|
||||
}))
|
||||
}
|
||||
ppc_residual <- do.call(rbind, lapply(
|
||||
c("fitted_bin", "expert_count_bin", "interval_width_quartile"), summarize_ppc_bins))
|
||||
write_clean_csv(ppc_residual, file.path(ppc_dir, "posterior_predictive_residual_patterns.csv"))
|
||||
}
|
||||
}
|
||||
|
||||
message("Post-processing complete.")
|
||||
@@ -0,0 +1,133 @@
|
||||
#!/usr/bin/env julia
|
||||
|
||||
using CSV
|
||||
using DataFrames
|
||||
using Statistics
|
||||
using Printf
|
||||
|
||||
const ECON_VARS = Set(["lrecon_ches", "lrecon_poppa", "lrecon_gps", "lrecon_vparty", "welf_vparty"])
|
||||
const CULT_VARS = Set(["galtan_ches", "libcon_gps", "immig_vparty", "lgbt_vparty",
|
||||
"culsup_vparty", "relig_vparty", "gender_vparty"])
|
||||
|
||||
function region_for(country::AbstractString)
|
||||
europe = Set(["AL","AT","BA","BE","BG","BY","CH","CY","CZ","DE","DK","EE","ES","FI","FR","GB","GE","GR","HR","HU","IE","IS","IT","LT","LU","LV","MD","ME","MK","MT","NL","NO","PL","PT","RO","RS","RU","SE","SI","SK","TR","UA"])
|
||||
latin = Set(["AR","BO","BR","CL","CO","CR","DO","EC","MX","PA","PE","UY"])
|
||||
country in europe && return "Europe"
|
||||
country in latin && return "Latin America"
|
||||
country in Set(["CA", "US"]) && return "North America"
|
||||
country in Set(["AU", "JP", "KR", "LK", "NZ"]) && return "Asia-Pacific"
|
||||
return "Other"
|
||||
end
|
||||
|
||||
function wilson(covered::Int, n::Int; z=1.96)
|
||||
n == 0 && return (missing, missing)
|
||||
p = covered / n
|
||||
denom = 1 + z^2 / n
|
||||
centre = (p + z^2 / (2n)) / denom
|
||||
half = z * sqrt(p * (1-p) / n + z^2 / (4n^2)) / denom
|
||||
return (centre - half, centre + half)
|
||||
end
|
||||
|
||||
function safe_cor(x, y)
|
||||
length(x) < 3 && return missing
|
||||
std(x) == 0 && return missing
|
||||
std(y) == 0 && return missing
|
||||
return cor(x, y)
|
||||
end
|
||||
|
||||
function summarize_group(d::AbstractDataFrame, group_type::String, group::String)
|
||||
n = nrow(d)
|
||||
overlapping = count(d.within_latent_interval_95)
|
||||
lo, hi = wilson(overlapping, n)
|
||||
DataFrame(
|
||||
dimension = first(d.dimension), group_type = group_type, group = group,
|
||||
n = n, parties = length(unique(d.party_id)),
|
||||
pearson_r = safe_cor(d.expert_value, d.model_value),
|
||||
mae = mean(d.absolute_error), rmse = sqrt(mean(d.error .^ 2)),
|
||||
bias_expert_minus_model = mean(d.error),
|
||||
latent_interval_overlap_95 = overlapping / n,
|
||||
latent_interval_overlap_ci_lower = lo,
|
||||
latent_interval_overlap_ci_upper = hi,
|
||||
mean_interval_width = mean(d.interval_upper .- d.interval_lower),
|
||||
mean_nearest_text_distance = mean(d.nearest_text_distance)
|
||||
)
|
||||
end
|
||||
|
||||
function main()
|
||||
length(ARGS) >= 1 || error("Usage: summarize_blocked_validation.jl MODEL_OUTPUT [RUN_DIR] [OUTPUT_DIR]")
|
||||
model_file = ARGS[1]
|
||||
run_dir = length(ARGS) >= 2 ? ARGS[2] : "_local/validation/blocked_party"
|
||||
output_dir = length(ARGS) >= 3 ? ARGS[3] : "validation/outputs"
|
||||
mkpath(output_dir)
|
||||
|
||||
model = CSV.read(model_file, DataFrame)
|
||||
expert = CSV.read(joinpath(run_dir, "expert_test.csv"), DataFrame)
|
||||
text = CSV.read(joinpath(run_dir, "text_data.csv"), DataFrame)
|
||||
|
||||
party_col = :party_id in propertynames(model) ? :party_id : :party
|
||||
model_lookup = Dict{Tuple{Int,Int}, NamedTuple}()
|
||||
for row in eachrow(model)
|
||||
model_lookup[(Int(row[party_col]), Int(row.year))] = (
|
||||
economic_lr = row.economic_lr, economic_lr_q025 = row.economic_lr_q025,
|
||||
economic_lr_q975 = row.economic_lr_q975, galtan = row.galtan,
|
||||
galtan_q025 = row.galtan_q025, galtan_q975 = row.galtan_q975)
|
||||
end
|
||||
|
||||
text_years = Dict{Int, Vector{Int}}()
|
||||
for d in groupby(text, :party)
|
||||
text_years[Int(first(d.party))] = sort(unique(Int.(d.year)))
|
||||
end
|
||||
|
||||
rows = NamedTuple[]
|
||||
for row in eachrow(expert)
|
||||
key = (Int(row.party), Int(row.year))
|
||||
haskey(model_lookup, key) || continue
|
||||
dimension = row.var in ECON_VARS ? "economic_lr" : row.var in CULT_VARS ? "galtan" : nothing
|
||||
isnothing(dimension) && continue
|
||||
m = model_lookup[key]
|
||||
if dimension == "economic_lr"
|
||||
value, lower, upper = m.economic_lr, m.economic_lr_q025, m.economic_lr_q975
|
||||
else
|
||||
value, lower, upper = m.galtan, m.galtan_q025, m.galtan_q975
|
||||
end
|
||||
years = get(text_years, Int(row.party), Int[])
|
||||
isempty(years) && continue
|
||||
distance = minimum(abs.(years .- Int(row.year)))
|
||||
distance_class = distance == 0 ? "direct text" : distance <= 3 ? "nearby text (1--3 years)" : "distant text (4+ years)"
|
||||
err = Float64(row.val) - value
|
||||
push!(rows, (
|
||||
party_id = Int(row.party), country = String(row.country), region = region_for(String(row.country)),
|
||||
year = Int(row.year), decade = string(fld(Int(row.year), 10) * 10, "s"),
|
||||
project = String(row.project), item = String(row.var), dimension = dimension,
|
||||
expert_value = Float64(row.val), model_value = value,
|
||||
interval_lower = lower, interval_upper = upper, error = err,
|
||||
absolute_error = abs(err),
|
||||
within_latent_interval_95 = lower <= Float64(row.val) <= upper,
|
||||
nearest_text_distance = distance, text_distance_class = distance_class
|
||||
))
|
||||
end
|
||||
predictions = DataFrame(rows)
|
||||
isempty(predictions) && error("No held-out expert observations matched the blocked-fit output")
|
||||
|
||||
summaries = DataFrame[]
|
||||
for dimension in sort(unique(predictions.dimension))
|
||||
d_dim = predictions[predictions.dimension .== dimension, :]
|
||||
push!(summaries, summarize_group(d_dim, "overall", "All matched held-out ratings"))
|
||||
for variable in [:decade, :region, :text_distance_class, :project, :item]
|
||||
for d_group in groupby(d_dim, variable)
|
||||
push!(summaries, summarize_group(d_group, String(variable), string(first(d_group[!, variable]))))
|
||||
end
|
||||
end
|
||||
end
|
||||
summary = vcat(summaries...)
|
||||
|
||||
predictions_file = joinpath(output_dir, "blocked_validation_predictions.csv")
|
||||
summary_file = joinpath(output_dir, "blocked_validation_summary.csv")
|
||||
CSV.write(predictions_file, predictions)
|
||||
CSV.write(summary_file, summary)
|
||||
println("Wrote $predictions_file ($(nrow(predictions)) rows)")
|
||||
println("Wrote $summary_file ($(nrow(summary)) rows)")
|
||||
println(summary[summary.group_type .== "overall", :])
|
||||
end
|
||||
|
||||
main()
|
||||
Reference in New Issue
Block a user