Fix SVD_THEMES after self-review: PC2 label, indicatief markers, accuracy

- PC2: rename 'maatschappelijke verantwoordelijkheid' to 'institutioneel
  progressivisme' (less normatively loaded), rewrite explanation with actual
  party scores (CU=-59, SGP=-25, VVD=-15 — all strongly negative, not
  'near the middle'), update pole descriptions
- PC3: remove speculative motivation claim about PVV, state factual
  observation that PVV/SP/PvdD/GL-PvdA vote alike despite opposing PC1
- PC7-PC10: add '(indicatief)' to labels — these axes explain <4% EVR
  and may be below noise level
- PC7: add explicit fragility warning in explanation
- PC8: clarify DENK/SP negative scores mean active opposition voting,
  not lack of focus; note Volt N=1 unreliability
- Scree plot: soften claim that later axes are 'meaningful'
main
Sven Geboers 1 month ago
parent a92315701f
commit db9a61094b
  1. 64
      explorer.py

@ -1415,20 +1415,20 @@ def build_svd_components_tab(db_path: str) -> None:
"flip": False,
},
2: {
"label": "Populistisch nationalisme versus maatschappelijke verantwoordelijkheid",
"label": "Populistisch nationalisme versus institutioneel progressivisme",
"explanation": (
"Deze as isoleert het populistisch-nationalistische blok (PVV, FVD, BBB) van zowel "
"links als het gevestigde midden. Aan de positieve kant staan moties die artsen "
"vrijpleiten die hydroxychloroquine of ivermectine voorschreven, Syrische vluchtelingen "
"direct terug willen sturen, geen geld aan Jordanië willen geven en de tijdelijke "
"bescherming voor Oekraïners willen beëindigen. Aan de negatieve kant staan moties "
"over digitale toegankelijkheid voor Caribisch Nederland, ethiek bij Defensie, "
"zorgstandaarden en zorg voor slachtoffers van het bombardement op Hawija. "
"De negatieve pool omvat zowel progressieve als christelijke partijen die hier "
"op één lijn staan."
"Deze as scheidt het populistisch-nationalistische bloc (PVV, FVD, Groep Markuszower, "
"BBB) van het volledige overige parlement. Alleen PVV (+18), FVD (+4) en Groep "
"Markuszower (+2) scoren positief; alle andere partijen scoren negatief, inclusief "
"VVD (−15), CDA (−14), SGP (−25) en ChristenUnie (−59). Positieve moties: artsen "
"vrijpleiten voor hydroxychloroquine/ivermectine, Syriërs terugsturen, geen geld "
"aan Jordanië, tijdelijke bescherming Oekraïne beëindigen. Negatieve moties: "
"digitale toegankelijkheid Caribisch Nederland, ethiekprogramma Defensie, zorg voor "
"slachtoffers bombardement Hawija, zorgkwaliteitsstandaarden. Dit is geen links-rechts "
"verdeling maar een nativistisch-populistisch vs. institutioneel onderscheid."
),
"positive_pole": "Populistisch-nationalistisch: PVV, FVD, BBB — Nederland eerst, anti-establishment",
"negative_pole": "Maatschappelijke verantwoordelijkheid: Volt, SP, PvdD, GroenLinks-PvdA, CDA, ChristenUnie",
"positive_pole": "Populistisch-nationalistisch: PVV, FVD, Groep Markuszower, BBB",
"negative_pole": "Institutioneel: alle overige partijen — van VVD en SGP tot GroenLinks-PvdA en Volt",
"flip": False,
},
3: {
@ -1437,9 +1437,9 @@ def build_svd_components_tab(db_path: str) -> None:
"Deze as weerspiegelt de spanning tussen staatsingrijpen en marktliberalisme, "
"aangescherpt door de kabinetscrisis van 2025. Aan de positieve kant staan moties "
"die bezuinigingen op zorg en het gemeentefonds willen terugdraaien, winstuitkeringen "
"in de zorg verbieden en publieke controle over ziekenhuisfusies eisen. SP, PvdD en "
"GroenLinks-PvdA steunen dit vanuit sociaal ideaal; PVV vanuit anti-establishment "
"populisme dat zijn achterban wil beschermen. Aan de negatieve kant staan moties "
"in de zorg verbieden en publieke controle over ziekenhuisfusies eisen. SP, PvdD, "
"GroenLinks-PvdA en PVV stemmen hier gelijk — ondanks hun tegengestelde PC1-posities. "
"Aan de negatieve kant staan moties "
"over marktwerking in de zorg, fiscale bedrijfsopvolgingsfaciliteiten (VVD), "
"doorgaan met besturen ondanks de kabinetscrisis (VVD/Yeşilgöz) en defensie-"
"uitgaven van 3,5% bbp."
@ -1501,24 +1501,25 @@ def build_svd_components_tab(db_path: str) -> None:
"flip": False,
},
7: {
"label": "Bestuurlijk pragmatisme en implementatie",
"label": "Bestuurlijk pragmatisme en implementatie (indicatief)",
"explanation": (
"Een residuele as die overwegend beleidsdossiers uit 2024 (vorige parlementaire "
"periode) omvat. Aan de positieve kant staan pragmatische bestuursmoties: een "
"compleet kostenoverzicht van producten van eigen bodem, papieren schoolboeken "
"voor basisvaardigheden, een invoeringstoets voor het minimumloon en de A2-"
"snelwegplanning. ChristenUnie, Volt, DENK en SP scoren positief. Aan de negatieve "
"kant staan meer ideologisch geladen moties: een landelijk stookverbod (PvdD), "
"het strafbaar stellen van verbranding van religieuze geschriften (DENK), chroom-6 "
"schadevergoedingen en tegenhouden van nieuwe gaswinning. GroenLinks-PvdA, VVD, "
"FVD en JA21 scoren negatief. De partijscores zijn smal — dit is een mineure as."
"periode) omvat. De scores zijn smal (max ~11 punten) en de partijcombinaties "
"ideologisch divers — dit label is indicatief. Aan de positieve kant staan "
"pragmatische bestuursmoties: een compleet kostenoverzicht van producten van eigen "
"bodem, papieren schoolboeken voor basisvaardigheden, een invoeringstoets voor het "
"minimumloon en de A2-snelwegplanning. ChristenUnie, Volt, DENK en SP scoren "
"positief. Aan de negatieve kant staan meer ideologisch geladen moties: een "
"landelijk stookverbod (PvdD), het strafbaar stellen van verbranding van religieuze "
"geschriften (DENK), chroom-6 schadevergoedingen en tegenhouden van nieuwe "
"gaswinning. GroenLinks-PvdA, VVD, FVD en JA21 scoren negatief."
),
"positive_pole": "Praktisch-bestuurlijk: ChristenUnie, Volt, SGP, DENK, SP",
"negative_pole": "Ideologisch-principieel: GroenLinks-PvdA, VVD, FVD, JA21",
"flip": True,
},
8: {
"label": "Europese defensie-integratie",
"label": "Europese defensie-integratie (indicatief)",
"explanation": (
"Aan de positieve kant staan moties die pleiten voor militaire mobiliteit als "
"topprioriteit in EU/NAVO-verband en toewerken naar een militair Schengengebied, "
@ -1526,16 +1527,17 @@ def build_svd_components_tab(db_path: str) -> None:
"oprichten. Ook het Nationaal Groeifonds en gewasbeschermingsonderzoek vallen "
"positief. Volt en D66 scoren sterk positief. Aan de negatieve kant staan moties "
"over ketenverantwoordelijkheid bij toeslagen (DENK), het coronaoversterfte-onderzoek "
"(PVV/BBB), energiecontracten en huisvestingsregulering. SP, DENK en PvdD scoren "
"sterk negatief — deze partijen richten zich op binnenlandse rechtvaardigheid en "
"zijn sceptischer over EU-militaire integratie."
"(PVV/BBB), energiecontracten en huisvestingsregulering. SP (−39), DENK (−35) en "
"PvdD (−26) scoren sterk negatief — dit betekent dat zij actief tégen deze "
"EU-defensiemoties stemmen, niet simpelweg het thema negeren. Volt (N=1) domineert "
"de positieve pool maar is als centroïde van één Kamerlid statistisch onbetrouwbaar."
),
"positive_pole": "Pro-EU defensie en innovatie: Volt, D66",
"negative_pole": "Nationaal/pacifistisch of binnenlandsgericht: SP, DENK, PvdD, 50PLUS",
"flip": False,
},
9: {
"label": "Decentraal bestuur en gemeenschapswaarden",
"label": "Decentraal bestuur en gemeenschapswaarden (indicatief)",
"explanation": (
"Aan de positieve kant staan moties over naleving van de Financiële-verhoudingswet "
"voor gemeenten, beperking van arbeidsmigratie binnen de EU, een nieuwe "
@ -1553,7 +1555,7 @@ def build_svd_components_tab(db_path: str) -> None:
"flip": True,
},
10: {
"label": "Institutioneel toezicht en handhaving",
"label": "Institutioneel toezicht en handhaving (indicatief)",
"explanation": (
"De tiende as vangt resterende variantie op en scheidt partijen die sceptisch zijn "
"over staatstoezicht van partijen die strikte regulering en handhaving steunen. "
@ -1585,7 +1587,7 @@ def build_svd_components_tab(db_path: str) -> None:
st.markdown(
"**Scree-plot** — het relatieve gewicht van elke SVD-as. "
"De eerste assen verklaren het meeste van de stemverschillen in de Kamer; "
"latere assen zijn subtieler maar politiek nog steeds betekenisvol."
"latere assen (7+) zijn fragiel en mogelijk niet boven ruisniveau."
)
_render_scree_plot(scree_importances)

Loading…
Cancel
Save