Syntetisering - POPP/SIGRUN
Overordnet arkitektur
Når POPP-meldinger skulle syntetiseres viste deg seg at man like gjerne kunne konvertere POPP-meldingene til formatet brukt i SIGRUN-stub for å gjøre det syntetiske datasettet tilgjengelig for flere konsumenter enn POPP. Selve syntetiseringsprosessen ble uforandret, men outputen fra BeAn-modellen ble konvertert til å kunne dyttes inn i SIGRUN-stub.
Henting av data
Pensjonsopptjeningsdata ble hentet ut fra en POPP database som ble generert opp ved hjelp av CA-Test Data Manager og knyttet opp mot reelle identer i forbindelse med det nå terminerte maskeringsprosjektet. Dataene er derfor ikke reelle og trenger ingen anonymisering.
Generering av data
Disse dataene ble så brukt til å trene en CART-modell med BeAn. Denne modellen ble brukt til å generere syntetiske POPP-meldinger for året 2015 for alle syntetiske personer i TPS-synt. Resultatet ble da en grunnpopulasjon med POPP-meldinger på formatet i tabellen under, disse blir konvertert til formatet som er brukt i SIGRUN-stub.
ident | inntekt_loenn | inntekt_naering | inntekt_jsf | inntektsaar | rapporttype | inntektstype |
---|---|---|---|---|---|---|
123456 | 234576 | 0 | 3454 | 15 | 0 | B |
For å generere POPP-meldinger tilbake i tid (1968) så ble konsumprisindeksen (KPI) lastet ned fra SSB og brukt. KPI ble brukt fra januar i årene 1968-2017, hvor KPI for 2015 er 100, av den grunn ble grunnpopulasjonen generert med POPP-meldinger fra inntektsåret 2015. Alle disse POPP-meldingene ble så ganget med KPI (eller inflasjonsfaktoren) fra årene 1968-2017. På denne måten ble mye kjøretid spart for å lage en modell og samtidig minimerte mengden data nødvendig for trening.
Tilgjenglighet av data
De syntetiske dataene, meldinger fra perioden 1968-2017, ble lagt inn i SIGRUN-stub i T4-miljøet og merkes i kolonne testdata_eier med synt_test. En kopi av de syntetiske dataene er også tilgjengelig i en postgres-database, men denne vil ikke bli oppdatert ettersom dataene i SIGRUN-stub gjør det.
Beskrivelse av modell
Underveis i syntetiseringa ble flere metoder forsøkt
- LSTM-modeller. Alle meldinger per person ble gruppert i en sekvens som skulle sørge for at tidsserien med POPP-meldinger ble bevart. Resultatene som ble oppnådd var bra for noen lønnsinntekt-kategorien, men for næring og JSF var det for lite data. Hovedårsaken til at denne metoden ikke førte fram var mangel på regnekraft, det tok veldig lang tid å trene en modell selv på små delmengder av det totale datasettet.
- Nevrale nett (“fully connected dense layers” med “rectifying linear units” aktiveringsfunksjoner). Denne metoden gikk ut på å fôre et nevralt nett med latente vektorer (vektorer med uniform støy) og trene mot POPP-meldingene. Igjen fikk vi ok resultater for lønnsinntektkategorien, men ikke for de med få datapunkter.
- BeAN. CART-algoritme. Denne ga ok resultater for alle kategorier.
Slutt vurdering ble at at CART-modellen genererer data som er gode nok for testformål, men ikke for forberedende dataanalyse eller liknende siden det ikke er en god nok statistisk representasjon av den virkelige situasjonen. Dette er ikke et problem knyttet til CART men til det litt begrensede datasettet som var tilgjengelig. Det formodes at resultatene ville blitt annerledes ved bruk av fulle produksjonsdata.