# SVD Axis Analysis — Nederlandse Tweede Kamer
**Datum:** 29 maart 2026 (herzien na review)
**Window:** `current_parliament` (Schoof-kabinet, 2024–heden)
**Methode:** Procrustes-uitgelijnd multi-window SVD (EVR), enkelvoudige window SVD (partijscores)

---

## Methode

### Databronnen

De analyse combineert twee databronnen die op verschillende manieren zijn gegenereerd:

1. **Motiedata per as** — gegenereerd via `scripts/generate_svd_json.py` voor het venster `current_parliament`. Dit script laadt de SVD-vectoren van moties direct uit de `svd_vectors`-tabel en selecteert per component de 5 meest positief- en 5 meest negatief-ladende moties. Dit zijn **ruwe, enkelvoudige-window SVD-vectoren** — niet Procrustes-uitgelijnd.

2. **Partijenscores per as** — berekend via `load_party_axis_scores` in `explorer.py`. Deze functie laadt de SVD-vectoren van individuele Kamerleden voor **uitsluitend** het venster `current_parliament`, matcht deze op naam met `mp_metadata` (filter: `tot_en_met IS NULL` voor huidige Kamerleden), groepeert per partij, en middelt. Dit zijn eveneens **ruwe, enkelvoudige-window SVD-vectoren**.

> **Belangrijk:** Motiescores en partijscores zijn intern consistent — ze komen beide uit dezelfde enkelvoudige SVD-decompositie van het venster `current_parliament`. De componentassen zijn dezelfde.

### SVD-pipeline en verklaard-variantieratios

De **verklaard-variantie-ratios (EVR)** elders in de app (screeplot, compass) komen uit een *andere* pipeline: `compute_svd_spectrum` in `analysis/political_axis.py`. Deze functie laadt MP-vectoren uit **alle 41 tijdvensters** (11 jaarlijks: 2016–2026, 29 kwartaalvensters: 2019-Q1 t/m 2026-Q1, plus `current_parliament`), lijnt ze uit via orthogonale Procrustes-rotatie (sequentieel, elk venster op het vorige), stapelt ze in één matrix en past **globale centrering** toe (`Mc = M - M.mean(axis=0)`, niet per-window centrering). De SVD op deze gecombineerde matrix levert de EVR-percentages.

**Mismatch:** De EVR-waarden (PC1 = 24.1%, etc.) beschrijven een ándere decompositie dan degene waaruit de partij- en motiescores komen. De componenten in de Procrustes-ruimte kunnen geroteerd zijn t.o.v. de enkelvoudige-window ruimte. In de praktijk is de correlatie vermoedelijk hoog voor de eerste componenten (de dominante structuur is stabiel over vensters), maar voor de kleinere componenten (PC7+) kunnen de assen afwijken. **De EVR-percentages moeten daarom als richtinggevend worden gelezen, niet als exacte maat voor de enkelvoudige-window componenten.**

EVR (Procrustes-pipeline): PC1 = 24.1%, PC2 = 10.4%, PC3 = 7.9%, PC4 = 5.7%, PC5 = 4.3%, PC6 = 3.9%, PC7 = 3.4%, PC8 = 2.8%, PC9 = 2.6%, PC10 = 2.3%. Samen = 67.4%.

### Labelmethode

Voor elk van de 10 assen werd gekeken naar:
- De 5 moties met de hoogste positieve lading en hun inhoud + indiener
- De 5 moties met de hoogste negatieve lading en hun inhoud + indiener
- De partijcentroïden gesorteerd hoog→laag op de betreffende SVD-dimensie

Uit deze combinatie werd een label, uitleg, en poolbeschrijving afgeleid. Dit is een **interpretatieve** stap: de computer levert de structuur, de analist de betekenis.

### Partijgroottes

De `current_parliament`-window bevat SVD-vectoren voor 427 Kamerleden (iedereen die in deze parlementaire periode heeft gestemd). Daarvan matchen 150 met `mp_metadata` als huidig actief (`tot_en_met IS NULL`). De grootte per partij is cruciaal voor de betrouwbaarheid van centroïden:

| Partij | N Kamerleden | Betrouwbaarheid |
|--------|-------------|-----------------|
| D66 | 26 | Hoog |
| VVD | 22 | Hoog |
| GroenLinks-PvdA | 20 | Hoog |
| PVV | 19 | Hoog |
| CDA | 18 | Hoog |
| JA21 | 9 | Matig |
| FVD | 7 | Matig |
| Groep Markuszower | 7 | Matig |
| SP | 3 | Laag — centroïde gebaseerd op 3 leden |
| BBB | 3 | Laag |
| ChristenUnie | 3 | Laag |
| SGP | 3 | Laag |
| PvdD | 3 | Laag |
| DENK | 3 | Laag |
| 50PLUS | 2 | Zeer laag — 2 leden |
| Volt | 1 | **Onbetrouwbaar** — 1 lid |
| Lid Keijzer | 1 | **Onbetrouwbaar** — 1 lid |

> **Let op:** Hoge absolute scores bij kleine partijen (bijv. Volt −77 op PC2, SP −67 op PC2) kunnen het gevolg zijn van één of enkele Kamerleden met extreem stemgedrag. Zonder bootstrap-betrouwbaarheidsintervallen kunnen we niet beoordelen of deze centroïden stabiel zijn.

---

## Bevindingen per as

### PC1 — Links-rechts hoofdas (EVR: ~24%)

**Positieve pool (hoog):** PVV (+54.9, N=19), SGP (+51.8, N=3), VVD (+35.2, N=22), ChristenUnie (+31.0, N=3), CDA (+11.2, N=18)
**Negatieve pool (laag):** PvdD (−23.2, N=3), SP (−13.4, N=3), DENK (−11.0, N=3), GroenLinks-PvdA (−7.5, N=20)
**Midden:** JA21 (+10.5, N=9), FVD (+5.0, N=7), D66 (+4.4, N=26), 50PLUS (+3.3, N=2), Groep Markuszower (+3.2, N=7), BBB (+2.9, N=3), Volt (−3.5, N=1), Lid Keijzer (+1.3, N=1)

**Bevinding:** Dit is de klassieke links-rechts tegenstelling. Positieve motiethema's: defensie-uitbreiding (drones, NAVO-verplichtingen, Wet financiële defensieverplichtingen), gaswinning en energiecontinuïteit. Negatieve motiethema's: Israël-boycots, huurverlaging, zorgbuurthuizen, veroordeling van antipersoneelslandmijnen.

**Opvallend:** PVV heeft de hoogste score van alle partijen (+54.9), boven SGP (+51.8). Dit weerspiegelt PVV's stemgedrag als kabinetsdragende partij: consequent meestemmen met defensie-uitbreiding, energiebeleid en het blokkeren van sociale uitbreidingsmoties. Let wel: dit meet *stemgedrag*, niet ideologische positie — PVV kan rechts stemmen als coalitiepartij terwijl de SGP als kleine oppositiepartij selectiever stemt.

**Sterkte:** De EVR (~24%) is hoog en stabiel over meerdere vensters. De partijscores zijn ook consistent met bekende posities. Dit is de meest robuuste as.

---

### PC2 — Populistisch nationalisme vs. institutioneel progressivisme (EVR: ~10%)

**Positieve pool (hoog):** PVV (+17.7, N=19), FVD (+3.8, N=7), Groep Markuszower (+2.1, N=7), BBB (+0.2, N=3)
**Midden (~0):** Lid Keijzer (+0.05, N=1), JA21 (−0.4, N=9), 50PLUS (−6.5, N=2)
**Negatieve pool (laag):** Volt (−77.4, N=1), SP (−67.1, N=3), PvdD (−66.6, N=3), GroenLinks-PvdA (−63.3, N=20), DENK (−59.9, N=3), ChristenUnie (−58.5, N=3), SGP (−24.9, N=3), D66 (−23.3, N=26), VVD (−15.1, N=22), CDA (−13.5, N=18)

**Bevinding:** Deze as is orthogonaal aan PC1 en toont een fundamenteel andere scheidslijn dan links-rechts. De positieve pool is klein: alleen PVV, FVD, Groep Markuszower en BBB scoren positief — het populistisch-nationalistische bloc. Alle overige partijen scoren negatief, inclusief de traditioneel-rechtse VVD (−15.1), CDA (−13.5) en SGP (−24.9). ChristenUnie scoort zelfs sterk negatief (−58.5).

Positieve motiethema's: artsen vrijpleiten voor hydroxychloroquine/ivermectine (anti-institutioneel wetenschapsnarratief), Syriërs terugsturen, geen geld aan Jordanië, richtlijn tijdelijke bescherming Oekraïne weigeren. Negatieve motiethema's: digitale toegankelijkheid Caribisch Nederland, ethiekprogramma Defensie, zorg voor slachtoffers bombardement Hawija, zorgkwaliteitsstandaarden.

**Interpretatie:** PC2 scheidt het populistisch-nationalistische bloc (PVV/FVD/Groep Markuszower/BBB) van het **volledige overige parlement**. Dit is geen links-rechts verdeling maar een nativistisch-populistisch vs. institutioneel onderscheid. VVD, CDA en SGP staan ondanks hun rechtse PC1-posities stevig aan de negatieve kant — ze delen stemgedrag met GroenLinks-PvdA en D66 op thema's als internationale verantwoordelijkheid, institutionele zorg en wetenschappelijk beleid.

**Score-asymmetrie:** De negatieve scores zijn veel groter dan de positieve (Volt −77 vs. PVV +18). Dit heeft twee mogelijke verklaringen: (1) het populistische bloc is klein en compact (weinig variatie), terwijl het anti-populistische bloc breed en gespreid is, waardoor het zwaartepunt van de as dichter bij de positieve pool ligt; (2) Volt (N=1), SP (N=3), PvdD (N=3) en ChristenUnie (N=3) hebben kleine fracties — hun extreme negatieve scores kunnen worden gedreven door het individuele stemgedrag van slechts 1–3 Kamerleden. Bootstrap-analyse zou nodig zijn om te bepalen welke verklaring domineert.

**Twijfel:** Het vorige label "maatschappelijke verantwoordelijkheid" voor de negatieve pool was normatief geladen — het impliceerde dat de positieve pool onverantwoordelijk is. Het huidige label "institutioneel progressivisme" is neutraler maar nog steeds een versimpeling van een pool die SGP, VVD en SP samen omvat.

---

### PC3 — Verzorgingsstaat vs. bezuinigingen en marktwerking (EVR: ~8%)

**Positieve pool:** PVV (+29.5, N=19), SP (+27.9, N=3), PvdD (+27.9, N=3), DENK (+25.3, N=3), GroenLinks-PvdA (+20.1, N=20), Volt (+12.2, N=1)
**Negatieve pool:** VVD (−25.7, N=22), SGP (−13.1, N=3), CDA (−12.8, N=18), D66 (−6.3, N=26), ChristenUnie (−5.3, N=3), JA21 (−4.1, N=9)
**Midden:** FVD (+3.0, N=7), Groep Markuszower (+0.5, N=7), Lid Keijzer (−0.4, N=1), BBB (−1.0, N=3), 50PLUS (−2.1, N=2)

**Bevinding:** De meest opvallende as. PVV staat hier naast SP, PvdD en GroenLinks-PvdA — partijen die op PC1 aan tegengestelde kanten staan. De motiethema's verklaren dit: bezuinigingen op zorg schrappen (SP/Dijk, dossier 36 760 "Kabinetscrisis 2025"), gemeentefonds niet korten (SP/Dobbe), winstuitkeringen in zorg verbieden (SP/Dijk), veto bij ziekenhuisfusies (SP/Dobbe). Aan de negatieve kant: private investeerders in zorg (Jansen/D66), fiscale bedrijfsopvolgingsfaciliteiten (Van Oostenbruggen/VVD), doorgaan met besturen na kabinetscrisis (Yeşilgöz/VVD), defensie-uitgavengroeipad naar 3.5% bbp.

**Interpretatie:** Dit is de **economische interventie-as**: sociale bescherming van publieke voorzieningen vs. marktliberalisme en bezuinigingen. PVV's positieve score weerspiegelt stemgedrag: PVV stemde mee tegen bezuinigingen op zorg en gemeenten, consistent met de achterban die sterk afhankelijk is van publieke voorzieningen. Let wel: SVD meet stempatronen, niet motivaties — of PVV dit doet vanuit sociale bewogenheid of anti-establishment populisme is uit de data niet af te leiden.

**Kabinetscrisis:** Meerdere moties verwijzen naar dossier 36 760 ("Kabinetscrisis 2025"). De scheidslijn op PC3 (wie bezuinigt vs. wie beschermt) correleert met de breuklijn van die crisis. Dit is een correlatie, geen bewezen causaal verband — zonder een voor/na-vergelijking (SVD exclusief post-crisis moties) kunnen we niet vaststellen of de crisis de as *veroorzaakte* of dat de as een pre-existente spanning weergeeft die tot de crisis leidde.

**Flip:** `flip: True` in de code. In de ruwe SVD-data scoren pro-verzorgingsstaatpartijen positief, maar in de compass-visualisatie wordt de as omgekeerd. Visuele validatie is nodig om te controleren of labels en weergave overeenkomen.

---

### PC4 — Pragmatisch centrisme vs. ideologische radicaliteit (EVR: ~6%)

**Positieve pool:** D66 (+23.5, N=26), CDA (+23.1, N=18), 50PLUS (+16.6, N=2), VVD (+13.9, N=22), JA21 (+9.9, N=9), GroenLinks-PvdA (+8.9, N=20), Volt (+7.1, N=1), BBB (+5.0, N=3)
**Midden:** PvdD (+3.1, N=3), PVV (+2.7, N=19), Lid Keijzer (+2.4, N=1), DENK (+1.6, N=3), Groep Markuszower (+1.3, N=7)
**Negatieve pool:** FVD (−1.8, N=7), SP (−0.7, N=3), ChristenUnie (+0.6, N=3)

**Bevinding:** De scheidslijn loopt tussen gevestigde centrumpartijen enerzijds en partijen die meer ideologisch gedreven stemmen anderzijds. Positieve motiethema's: openbare toiletten, vaderbetrokkenheid, samenwerking met Australië/Canada/VK, postcovid-expertisecentra. Dit zijn pragmatische, institutionele beleidsposities. Negatieve motiethema's: kinderen in pleeggezinnen van hetzelfde geslacht (FVD, anti-LGBTQ), migratiesaldo-cap van 60.000, verlaten van de WHO (FVD/Van Houwelingen), bescherming artikel 23 Grondwet in onderwijscurriculum (DENK/Ergin).

**Opvallend:** De scores zijn klein vergeleken met PC1–PC3. Het verschil tussen D66 (+23.5) en FVD (−1.8) is slechts ~25 punten, terwijl op PC1 het verschil PVV→PvdD ~78 punten bedraagt. Dit maakt PC4 een subtielere dimensie waar de onderscheidende kracht beperkter is.

**Flip:** `flip: True` in de code.

---

### PC5 — Christelijk-sociaal communitarisme (EVR: ~4%)

**Positieve pool:** ChristenUnie (+23.5, N=3), SGP (+21.7, N=3), CDA (+12.1, N=18), D66 (+11.7, N=26), 50PLUS (+5.9, N=2), DENK (+4.9, N=3), JA21 (+4.3, N=9)
**Negatieve pool:** VVD (−10.1, N=22), GroenLinks-PvdA (−5.5, N=20), PvdD (−4.2, N=3), Volt (+3.1, N=1)
**Midden:** BBB (+1.4, N=3), Lid Keijzer (+1.1, N=1), PVV (−0.6, N=19), SP (+0.3, N=3), FVD (−0.04, N=7), Groep Markuszower (+0.2, N=7)

**Bevinding:** ChristenUnie, SGP en CDA scoren positief — maar ook D66. Positieve motiethema's: schuldhulpverlening via vrijwilligersorganisaties, maatschappelijke diensttijd voor kansarme jongeren, gastouderopvang verbeteren, WW-hervorming alleen met betere omscholing. Negatieve motiethema's: wettelijke erkenning van meerouderschap, abortusrecht in EU-Handvest, poverty fund niet voor regulering, zwemdiplomastandaarden.

**Interpretatie:** De as scheidt een *gemeenschapsgerichte* benadering (informele hulp, dienstplicht, sociale cohesie) van een *individueel-rechten* benadering (meerouderschap, abortus als grondrecht, deregulering). ChristenUnie/SGP/CDA stemmen hier vanuit christelijk-sociaal gedachtegoed; D66 scoort positief vanuit steun voor de sociaal-institutionele kant (WW, schuldhulp), ondanks verschillende waardenposities.

D66 scoort dus positief op zowel PC4 (+23.5) als PC5 (+11.7). Dat is geen tegenstrijdigheid: PC4 en PC5 zijn orthogonale assen die verschillende dingen meten. Een partij kan tegelijk pragmatisch-centristisch (PC4) én pro-maatschappelijke infrastructuur (PC5) stemmen.

---

### PC6 — Klimaat, energie en culturele integratie (EVR: ~4%)

**Positieve pool:** SGP (+29.7, N=3), JA21 (+24.6, N=9), FVD (+22.1, N=7), PVV (+19.4, N=19), Groep Markuszower (+19.1, N=7), ChristenUnie (+18.5, N=3), BBB (+11.6, N=3)
**Negatieve pool:** GroenLinks-PvdA (−8.3, N=20), PvdD (−7.5, N=3), D66 (−7.3, N=26), Volt (−2.3, N=1)
**Midden:** Lid Keijzer (+5.9, N=1), 50PLUS (+6.6, N=2), DENK (+3.3, N=3), CDA (+2.8, N=18), VVD (+2.3, N=22), SP (−0.7, N=3)

**Bevinding:** Duidelijke energiepolarisatie. Positieve motiethema's: LNG-reserve als alternatief voor vulgraadverplichtingen, kernenergie erkennen op COP30, inventarisatie discriminatie/inclusiemeldpunten (Nanninga). Negatieve motiethema's: fossiele industrie weren van klimaatconferentie, overleg met moslimgemeenschappen bij integratiebeleid (Ergin/DENK), veroordeling aanvallen Israël op Libanon.

**Interpretatie:** Twee thema's kruisen: (1) energiebeleid — fossiel/kernenergie vs. klimaat/hernieuwbaar, en (2) cultureel-politieke polarisatie — integratiebeleid en Midden-Oostenpolitiek. JA21/FVD/SGP/PVV stemmen zowel pro-fossiel als anti-progressieve inclusie; GroenLinks/Volt/D66 stemmen pro-klimaat én pro-inclusie. De combinatie is empirisch in de Nederlandse politiek: deze beleidsdomeinen correleren in stemgedrag, ook al zijn ze inhoudelijk onderscheiden. Een varimax-rotatie zou deze twee thema's mogelijk scheiden in afzonderlijke assen — dat is niet getest.

---

### PC7 — Bestuurlijk pragmatisme en implementatie (EVR: ~3%) *(indicatief label)*

**Positieve pool:** ChristenUnie (+10.6, N=3), Volt (+4.7, N=1), DENK (+4.4, N=3), SP (+3.7, N=3), SGP (+2.9, N=3)
**Negatieve pool:** JA21 (−4.4, N=9), FVD (−4.3, N=7), VVD (−4.0, N=22), GroenLinks-PvdA (−3.2, N=20)
**Midden:** PVV (−1.1, N=19), BBB (−2.0, N=3), CDA (+0.7, N=18), PvdD (+0.03, N=3), D66 (+1.2, N=26), 50PLUS (−1.7, N=2), Lid Keijzer (−0.7, N=1), Groep Markuszower (−2.6, N=7)

**Bevinding:** De minst interpreteerbare as. Veel motiethema's komen uit 2024 (vorige parlementaire periode), wat temporele ruis suggereert. Positieve motiethema's: kostenoverzicht producten eigen bodem (BBB/CU), papieren schoolboeken, invoeringstoets minimumloonverhoging mkb, A2-snelwegalternatief. Negatieve motiethema's: landelijk stookverbod (PvdD), strafbaarstelling verbranding religieuze geschriften (El Abassi/DENK), chroom-6 schadevergoedingen (SP/D66), tegenhouden nieuwe gaswinning.

**Twijfel:** De scores zijn klein (max ~11 punten). GroenLinks-PvdA (−3.2) en SP (+3.7) staan tegenover elkaar ondanks hun verwantschap. Het `current_parliament`-venster bevat data uit twee parlementen, wat transitie-effecten kan veroorzaken. Dit label moet als **indicatief** worden gelezen — de as is te fragiel voor een definitieve interpretatie.

**Flip:** `flip: True` in de code.

---

### PC8 — Europese defensie-integratie (EVR: ~3%) *(indicatief label)*

**Positieve pool:** Volt (+8.8, N=1), D66 (+4.9, N=26)
**Negatieve pool:** SP (−39.1, N=3), DENK (−35.1, N=3), PvdD (−26.2, N=3), 50PLUS (−9.7, N=2), SGP (−5.7, N=3), ChristenUnie (−4.8, N=3), VVD (−4.3, N=22)
**Midden:** PVV (−0.4, N=19), CDA (−1.8, N=18), FVD (−2.0, N=7), JA21 (−2.0, N=9), BBB (−2.5, N=3), Groep Markuszower (−1.3, N=7), Lid Keijzer (−1.1, N=1), GroenLinks-PvdA (−1.7, N=20)

**Bevinding:** Duidelijke thematische coherentie. Positieve motiethema's: militaire mobiliteit als topprioriteit EU/NAVO, militair Schengengebied, 35% Europese defensie-inkoop, Europees defensie-R&D-instituut (Volt/D66/Dassen). Negatieve motiethema's: ketenverantwoordelijkheid bij toeslagen (El Abassi/DENK), budgetrecht Presidium (Van Hijum), energiecontract flexibiliteit (Kops/PVV), corona-oversterfte (Agema/PVV).

**Interpretatie:** De positieve pool (Volt, D66) is pro-Europese militaire integratie. De negatieve pool omvat SP (historisch anti-NAVO, anti-EU-militarisering), DENK (focus op binnenlandse rechtvaardigheid) en PvdD (pacifistisch). SP's sterk negatieve score (−39.1) weerspiegelt actief tégen deze moties stemmen, niet simpelweg het ontbreken van focus op dit thema. Bij een score van nul zou "geen focus" passen; een score van −39 betekent consequent andersom stemmen dan Volt/D66. DENK's −35.1 volgt dezelfde logica.

**Twijfel:** Volt (N=1) domineert de positieve pool met slechts één Kamerlid. De betrouwbaarheid van die centroïde is nihil. D66 (N=26) is betrouwbaarder maar scoort slechts +4.9. De negatieve pool wordt gedomineerd door fracties met elk 3 leden. Deze as is thematisch coherent maar statistisch fragiel.

---

### PC9 — Decentraal bestuur en gemeenschapswaarden (EVR: ~3%) *(indicatief label)*

**Positieve pool:** SGP (+35.9, N=3), ChristenUnie (+26.0, N=3), DENK (+7.0, N=3), SP (+3.6, N=3)
**Negatieve pool:** PVV (−8.5, N=19), JA21 (−6.7, N=9), D66 (−6.7, N=26), Groep Markuszower (−5.7, N=7), FVD (−4.5, N=7), VVD (−4.4, N=22)
**Midden:** CDA (+1.0, N=18), GroenLinks-PvdA (+0.8, N=20), PvdD (+0.2, N=3), BBB (−3.5, N=3), 50PLUS (−2.7, N=2), Lid Keijzer (−1.7, N=1), Volt (−0.4, N=1)

**Bevinding:** Positieve motiethema's: naleving Financiële-verhoudingswet (gemeentefinanciën), beperking EU-arbeidsmigratie, tandartsopleiding Rotterdam (regionale toegankelijkheid), actieplan hallucinerende geneesmiddelen, milieuoplossing Bonaire. Negatieve motiethema's: moratorium geitenstallen (PvdD/Kostić), verbod gokadvertenties, verduidelijking voorlopige hechtenis (Sneller/D66), leegstandbelasting woningen, bescherming end-to-end-encryptie.

**Twijfel:** SGP (+35.9) en ChristenUnie (+26.0) domineren sterk, maar beide hebben slechts 3 Kamerleden. De hoge scores kunnen individueel stemgedrag van enkele Kamerleden reflecteren. De combinatie SGP + ChristenUnie + DENK + SP is ideologisch divers en kan wijzen op een toevallig patroon bij lage EVR.

**Flip:** `flip: True` in de code.

---

### PC10 — Institutioneel toezicht en handhaving (EVR: ~2%) *(indicatief label)*

**Positieve pool:** DENK (+25.1, N=3), SP (+25.1, N=3), PvdD (+9.9, N=3), Volt (+9.3, N=1), D66 (+5.6, N=26)
**Negatieve pool:** GroenLinks-PvdA (−14.0, N=20), SGP (−11.1, N=3), CDA (−6.0, N=18), 50PLUS (−4.5, N=2), JA21 (−2.9, N=9)
**Midden:** FVD (+2.2, N=7), PVV (+1.3, N=19), BBB (−1.3, N=3), VVD (−1.0, N=22), ChristenUnie (−2.8, N=3), Lid Keijzer (−0.5, N=1), Groep Markuszower (−0.2, N=7)

**Bevinding:** Positieve motiethema's: minder tijdsintensieve schoolinspecties, "integratie geldt voor nieuwkomers, niet voor gevestigde Nederlanders" (Ergin/DENK), toeslagenouders recht op persoonlijk dossier (Dijk/SP), tegemoetkoming arbeidsongeschikten behouden, verlaging leeftijdsdrempel kindgesprekken. Negatieve motiethema's: aangifteplicht scholen bij veiligheidsincidenten, rookverbod auto's met kinderen, gelijkstelling braakliggend landbouwgrond, verhoogd beloningsgeld tipgevers, terrorismebewustzijn anti-radicaliseringsorganisaties.

**Opvallend:** GroenLinks-PvdA (−14.0) staat tegenover SP (+25.1) en DENK (+25.1). Drie ideologisch verwante partijen, toch tegenover elkaar. De negatieve motiethema's (aangifteplicht, rookverbod, handhaving) zijn regulerende maatregelen die GroenLinks-PvdA steunt. SP en DENK zijn sceptischer over toezicht dat kwetsbare groepen disproportioneel kan raken.

**Twijfel:** Bij een EVR van ~2% is dit de zwakste as. SP en DENK (elk N=3) domineren de positieve pool. Dit label is **hooguit indicatief**.

**Flip:** `flip: True` in de code.

---

## Twijfels en beperkingen

### 1. Twee vectorruimtes, één verhaal

De **belangrijkste methodologische beperking** is dat deze analyse twee verschillende SVD-decompositie combineert in één narratief:

| Datapunt | Bron | Vectorruimte |
|----------|------|-------------|
| Partijscores | `load_party_axis_scores` | Enkelvoudig venster `current_parliament` |
| Motiescores | `generate_svd_json.py` | Enkelvoudig venster `current_parliament` |
| EVR-percentages | `compute_svd_spectrum` | Procrustes-uitgelijnd, 41 vensters |
| Compass-posities | `compute_2d_axes` | Procrustes-uitgelijnd, 41 vensters |

Motiescores en partijscores zijn onderling consistent (dezelfde SVD), maar de EVR-percentages beschrijven een andere decompositie. De "24.1%" bij PC1 verwijst naar de Procrustes-ruimte, niet naar de ruimte waaruit de scores komen. Voor PC1–PC3 maakt dit waarschijnlijk weinig verschil (de dominante structuur is stabiel), maar voor PC7+ kunnen de assen significant afwijken.

**Aanbeveling:** Bereken EVR-percentages voor de enkelvoudige `current_parliament`-decompositie en vergelijk met de Procrustes-EVR. Als ze sterk afwijken, zijn de labels voor de hogere componenten onbetrouwbaar.

### 2. NSC ontbreekt in de data

Nieuw Sociaal Contract (NSC, Pieter Omtzigt) is afwezig in de partijscores. De `mp_metadata`-tabel bevat geen NSC-vermelding — vermoedelijk omdat partijaanduidingen uit een oudere dataset stammen. NSC is een coalitiedeelnemer (Schoof-kabinet: PVV + VVD + NSC + BBB) met ~20 zetels. Zonder NSC missen we ~13% van de Kamer en een sleutelpartij voor de interpretatie van PC3 (kabinetscrisis), PC4 (centrisme) en PC5 (communitarisme).

### 3. Kleine fracties domineren de analyse

Van de 17 partijen hebben 9 partijen ≤3 Kamerleden in de data. Partijen met N=3 (SP, BBB, CU, SGP, PvdD, DENK) en N=1–2 (Volt, Lid Keijzer, 50PLUS) leveren centroïden die extreem gevoelig zijn voor individueel stemgedrag. Volt's −77.4 op PC2 is het stemgedrag van één persoon, niet van een partij.

**Aanbeveling:** Bereken bootstrap-betrouwbaarheidsintervallen (resample Kamerleden per partij met teruglegging, herbereken centroïden, rapporteer 95%-interval). Rapporteer ook standaarddeviaties binnen partijen om te laten zien of partijen homogeen stemmen of intern verdeeld zijn.

### 4. Flip-waarden niet visueel gevalideerd

Vijf van de tien assen hebben `flip: True`:

| As | Flip | Betekenis |
|----|------|-----------|
| PC1 | False | — |
| PC2 | False | — |
| PC3 | **True** | Pro-verzorgingsstaat partijen (positief in SVD) worden visueel omgekeerd |
| PC4 | **True** | Centrumpartijen (positief in SVD) worden visueel omgekeerd |
| PC5 | False | — |
| PC6 | False | — |
| PC7 | **True** | CU/Volt/DENK (positief in SVD) worden visueel omgekeerd |
| PC8 | False | — |
| PC9 | **True** | SGP/CU (positief in SVD) worden visueel omgekeerd |
| PC10 | **True** | DENK/SP (positief in SVD) worden visueel omgekeerd |

De flip-logica in de code keert scores om en wisselt pool-labels. Geen van deze is visueel gevalideerd in de lopende Streamlit-app.

**Risico:** Als een flip-waarde verkeerd staat, ziet de gebruiker partijen aan de verkeerde kant van de as t.o.v. het label. Dit moet worden gecontroleerd.

### 5. PC7–PC10 zijn fragiel en mogelijk ruis

Met EVR ~2–3% verklaren PC7–PC10 weinig variantie. De scores zijn klein (max ~35 punten bij partijen met N=3), de partijcombinaties zijn ideologisch divers, en de motiethema's zijn soms temporeel heterogeen (PC7). Het is niet vastgesteld dat deze assen boven het ruisniveau liggen.

**Aanbeveling:** Voer een parallelle analyse of scree-test uit om te bepalen hoeveel componenten significant boven ruis liggen. Als dat 6 componenten is, zijn PC7–PC10 beter te verwijderen dan ze met een indicatief label te presenteren.

### 6. Geen rotatie toegepast

De analyse gebruikt ruwe SVD-componenten die **variantie maximaliseren**, niet interpreteerbaarheid. Varimax- of promax-rotatie kan helpen om componenten te ontmengen. Specifiek PC6 (klimaat + culturele integratie) zou onder varimax mogelijk in twee afzonderlijke assen uiteenvallen. Dit is niet getest.

### 7. Geen externe validatie

De interpretaties zijn niet gevalideerd tegen externe bronnen zoals de Chapel Hill Expert Survey (CHES), Kieskompas, of DW-NOMINATE-stijl ideaalpuntschattingen. Een correlatieanalyse tussen PC1 en CHES links-rechts scores zou de interpretatie substantieel versterken. Zonder externe validatie is het label "links-rechts" een empirisch onderbouwde maar niet geverifieerde claim.

---

## Sterktes

### 1. Enkelvoudige-window consistentie

Hoewel er een mismatch is met de Procrustes-EVR, zijn de partijscores en motiescores wél intern consistent: ze komen uit dezelfde SVD-decompositie. De labels worden niet geïnterpreteerd op basis van ongerelateerde vectorruimtes.

### 2. Partijcentroïden op basis van individueel stemgedrag

De partijscores zijn niet geïmputeerd of geschat maar berekend uit de SVD-vectoren van individuele Kamerleden die daadwerkelijk hebben gestemd. Dit geeft (voor grote fracties) een nauwkeuriger beeld dan expert-surveys.

### 3. Motie-inhoud als interpretatiehulp

Door de meest ladende motiethema's te inspecteren is de analyse verankerd in concrete politieke uitspraken. Dit maakt de labels falsifieerbaar.

### 4. Actuele data

De analyse gebruikt motiedata t/m maart 2026, inclusief de kabinetscrisis van juni 2025. Dat maakt de labels representatief voor de huidige politieke situatie.

---

## Conclusies

### Wat de assen ons vertellen over de Nederlandse politiek (2024–2026)

**Dominante structuur:** De Nederlandse politiek kent een klassieke links-rechts tegenstelling (PC1, ~24% EVR) die het meeste stemgedrag verklaart. De tweede dimensie is een **populisme-as** (PC2, ~10%) die het bloc PVV/FVD/BBB/Groep Markuszower isoleert van het volledige overige parlement — inclusief VVD, CDA en SGP.

**De verzorgingsstaat als onverwachte coalitie:** PC3 laat zien dat PVV en SP gelijk stemmen bij bezuinigingsdebatten. PVV-kiezers zijn kwetsbaar voor bezuinigingen en PVV stemde consequent tegen austeriteitsmaatregelen. De motiedata bevat directe verwijzingen naar de kabinetscrisis van 2025.

**Christelijk-sociale partijen zijn intern coherent:** ChristenUnie en SGP scoren consistent hoog op meerdere assen (PC5, PC9) die gemeenschapsoriëntatie meten. Let wel: beide fracties tellen slechts 3 Kamerleden — de consistentie kan individueel zijn.

**GroenLinks-PvdA en SP zijn niet hetzelfde:** Op PC10 staan ze tegenover elkaar. GroenLinks-PvdA steunt institutionele regulering en handhaving; SP en DENK zijn sceptischer over overheidstoezicht op kwetsbare groepen.

**Kleine assen zijn fragiel:** PC7–PC10 vangen echte maar kleine variatie op. Labels voor deze assen zijn indicatief. Formele dimensionaliteitstoetsing is nodig om te bepalen hoeveel assen inhoudelijk betekenisvol zijn.

---

## Vervolgstappen

1. **NSC identificeren:** Zoek of NSC-Kamerleden in `mp_metadata` staan onder een oudere partijnaam of zonder partijaanduiding. Ca. 20 Kamerleden; hun afwezigheid is een gat.

2. **Flip-waarden valideren:** Alle 5 assen met `flip: True` (PC3, PC4, PC7, PC9, PC10) visueel controleren in de Streamlit-compass.

3. **Enkelvoudige-window EVR berekenen:** Voer SVD uit op alleen het `current_parliament`-venster en vergelijk EVR met de Procrustes-EVR. Dit bepaalt hoe sterk de twee ruimtes afwijken.

4. **Bootstrap-betrouwbaarheidsintervallen:** Bereken per partij een 95%-interval op de centroïde via resampling van Kamerleden. Rapporteer standaarddeviaties.

5. **Dimensionaliteitstoetsing:** Parallelle analyse of scree-test om te bepalen hoeveel componenten boven ruis liggen. Overweeg PC7–PC10 te verwijderen als ze niet significant zijn.

6. **Varimax-rotatie testen:** Pas varimax toe op de eerste 6 componenten en controleer of PC6 uiteenvalt in afzonderlijke klimaat- en integratie-assen.

7. **Externe validatie:** Correleer PC1-scores met CHES links-rechts expert-oordelen voor dezelfde partijen. Dit versterkt (of weerlegt) de links-rechts interpretatie.
