Het evalueren van de kwaliteit van synthetische data

Een density ratio aanpak

Thom Benjamin Volker

Stel je voor …

Getty Images

Open data? Liever niet…

Maar misschien synthetische data?

Wie ben ik?


Thom Volker (t.b.volker@uu.nl)

  • MSc. in Methoden en Statistiek & Sociologie

  • PhD kandidaat bij Universiteit Utrecht en CBS

    • Doel: Doorontwikkelen van veilige (!) data synthesis technieken

Open materialen

Deze presentatie staat online op

https://thomvolker.github.io/npso

De broncode en resultaten zijn te vinden op

https://github.com/thomvolker/npso

Synthetische data

Neppe data, gegenereerde data, gesimuleerde data, digital twins

Het recept voor synthetische data

Ingrediënten

  • Eén data set om te synthetiseren

  • Eén generatief model

Generatieve modellen

\[p(\boldsymbol{X} | \theta)\]

  • Een model \(f\) voor de data \(\boldsymbol{X}\);

  • Met parameters \(\theta\);

  • Geschat op basis van de echte data.

Definitie

Generatieve modellen leren de verdeling van de data \(\boldsymbol{X}\) gegeven de parameters \(\theta\).

Voorbeelden van generatieve modellen

Een normaalverdeling met parameters \(\theta = \{\mu, \sigma\}\).

  • In R: rnorm(n = 100, mean = 1, sd = 2)

Een histogram met klassen en proporties.

Sequentiële regressiemodellen voor een multivariate verdeling (met regressiecoefficienten en (co-)variantieparameters).

Een neuraal netwerk met duizenden parameters

Generatieve modellen I: Neerslag in Nederland

Neerslag (in mm per jaar): \(\{\mu = 783, \sigma = 120\}\).

Generatieve modellen II: Sequentiële regressies

MICE: Multiple Imputation by Chained Equations

We kunnen een multivariaat generatief model creëren door univariate predictiemodellen te combineren.

\[p(X_1, X_2, X_3) = p(X_1 | X_2, X_3) p(X_2 | X_1, X_3) p(X_3 | X_1, X_2)\]

Handig: hiervoor kunnen univariate predictiemodellen gebruikt worden (lineaire regressie, tree-based methodes)!

Predictiemodellen kunnen verschillen per variabele.

Zolang we maar onzekerheid rondom de voorspellingen meenemen.

Synthetische data genereren is makkelijk

Maar goede synthetische data genereren is moeilijk!

Synthetische data bereiden

  1. Basisbereiding: Creëer synthetische data met simpele modellen

  2. Proef of de synthetische data voldoende kwaliteit heeft

  3. Breng op smaak door complexiteit toe te voegen (transformaties, interacties, non-linearities)

  4. Itereer tussen (2.) en (3.) totdat de synthetische data de gewenste smaak heeft

De kwaliteit van synthetische data proeven

Intuïtief

  • Hebben de synthetische en geobserveerde data een vergelijkbare verdeling?

  • Kunnen we de synthetische data voor dezelfde doeleinden gebruiken als de geobserveerde data?

Praktisch

  • Kunnen we de synthetische data onderscheiden van de echte data?

  • Geven analyses van de synthetische en geobserveerde data vergelijkbare resultaten?

De kwaliteit van synthetische data hangt af van waarvoor het gebruikt wordt

Maar we weten vaak niet waarvoor deze gebruikt wordt…

Als de synthetische en de geobserveerde data gelijke verdelingen hebben, zouden ze vergelijkbare resultaten moeten geven

Bestaande kwaliteitsmaten: \(pMSE\)

  1. Plak synthetische en geobserveerde data onder elkaar

  2. Voorspel voor elke observatie de kans \(\pi_i\) dat deze synthetisch is

  3. Calculate \(pMSE\) as \(\sum^N_{i=1} (\pi_i - c)^2/N\), met \(c = n_{\text{syn}} / (n_{\text{syn}} + n_{\text{obs}})\)

  4. Vergelijk \(pMSE\) met verwachte waarde onder een correct generatief model

Kleine \(pMSE\) waardes: synthetische data lijkt op echte data.

Nadeel: Welk voorspelmodel? Hoog-dimensionele data?

Bestaande kwaliteitsmaten: Kullback-Leibler divergence


\[KL(\boldsymbol{X}_{\text{syn}}, \boldsymbol{X}_{\text{obs}}) = \int \log\Bigg(\frac{p(\boldsymbol{X}_{\text{syn}})}{p(\boldsymbol{X}_{\text{obs}})}\Bigg) p(\boldsymbol{X}_\text{syn})\]


Elegante methode

Praktisch moeilijk te schatten

Een nieuw raamwerk

Density ratios1 als kwaliteitsmaat


\[r(x) = \frac{p(\boldsymbol{X}_{\text{syn }})}{p(\boldsymbol{X}_{obs})}\]

Density ratios

Density ratios in de praktijk

  1. Schat de density ratio met een non-parametrische methode
  • Unconstrained least-squares importance fitting: \(r(\boldsymbol{X}) = \boldsymbol{\psi(X)}\theta\).

  • Implemented in R-package densityratio.

  1. Bereken een discrepantie maat voor de synthetische data
  • Pearson divergence: \[\hat{\text{PE}}(\boldsymbol{X}_{\text{syn}}, \boldsymbol{X}_{\text{obs}}) = \frac{1}{2n_{\text{syn}}} \sum^{n_{\text{syn}}}_{i=1} r(X^{(i)}_{\text{syn}}) - \frac{1}{n_{\text{obs}}} \sum^{n_{\text{obs}}}_{j=1} r(X^{(j)}_{\text{obs}}) + \frac{1}{2}\]
  1. Vergelijk de Pearson divergence voor verschillende data sets

  2. Optioneel: Toets de nulhypothese \(p(\boldsymbol{X}_{\text{syn}}) = p(\boldsymbol{X}_{\text{obs}})\) d.m.v. een permutatietest.

Density ratios voor synthetische data (univariaat)

Density ratios voor synthetische data (univariaat)

Density ratios voor synthetische data (univariaat)

Power en type I error rate

Data Density ratio Kolmogorov-Smirnov pMSE
Laplace 0.620 0.375 0.610
Log-normal 1.000 1.000 1.000
lst 0.495 0.235 0.495
Normal 0.050 0.045 0.040

Density ratios voor synthetische data (multivariaat)

U.S. Current Population Survey (n = 5000)1

  • Vier continue variabelen (age, income, social security payments, household income)
  • Vier categorische variabelen (sex, race, marital status, educational attainment)

Synthesische modellen

(Multinomiale) logistische regressie voor categorische variabelen

  1. Lineaire regressie
  2. Lineaire regressie met transformaties (derdemachtswortel)
  3. Lineaire regressie met transformaties en semi-continu modelleren

Synthetische data (visueel)

Kwaliteit van synthetische data

Nadelen van density ratios

Geschiktheid voor categorische data moet onderzocht worden

  • In bovenstaand voorbeeld werd categorische data simpelweg getransformeerd naar numerieke data (vier categoriën –> 1, 2, 3, 4)

Privacy risico’s van density ratio waardes?

Bijkomende voordelen van density ratios

Kwaliteit van synthetische data punten

Voor iedere synthetische observatie wordt een density ratio waarde geschat

  • Synthetische outliers detecteren / verwijderen

  • Analyses op synthetische data herwegen

Beschikbare extensies voor hoogdimensionele data

Aanname: subspace waarin de synthetische data goed gemodelleerd is, en een subspace waar de synthetische data niet goed gemodelleerd is

Doel: subspace herkennen waar de synthetische data niet goed gemodelleerd is, en hierop de density ratio schatten.

Kruisvalidatie voor automatische parameter selectie

In alle bovengenoemde voorbeelden zijn dezelfde hyperparameters gebruikt

Kruisvalidatie zorgt ervoor dat de parameters in het density ratio model zo goed mogelijk gekozen worden.

Bestaande kwaliteitsmaten als density ratios

\(pMSE\)

\[\begin{aligned} r(\boldsymbol{X}) &= \frac{p(\boldsymbol{X}_{\text{syn}})}{p(\boldsymbol{X}_{\text{obs}})} \\ &= \frac{p(\boldsymbol{X} | Y = \text{synthetic})}{p(\boldsymbol{X}| Y = \text{observed})} = \frac{\frac{p(Y = \text{synthetic} | \boldsymbol{X})p(\boldsymbol{X})}{p(Y = \text{synthetic})}}{\frac{p(Y = \text{observed})p(\boldsymbol{X})}{p(Y = \text{observed})}} \\ &= \frac{p(Y = \text{observed})}{p(Y = \text{synthetic})} \frac{p(Y = \text{synthetic} | \boldsymbol{X})}{p(Y = \text{observed} | \boldsymbol{X})} \end{aligned}\]

Kullback-Leibler divergence

\[\begin{aligned} KL(\boldsymbol{X}_{\text{syn}}, X_{\text{obs}}) = \int \log\Bigg(\frac{p(\boldsymbol{X}_{\text{syn}})}{p(\boldsymbol{X}_{\text{obs}})}\Bigg) p(\boldsymbol{X}_\text{syn}) \end{aligned}\]

Note that \[ \int \log\Bigg(\frac{p(\boldsymbol{X}_{\text{syn}})}{p(\boldsymbol{X}_{\text{obs}})}\Bigg) p(\boldsymbol{X}_\text{syn}) \] can be approximated as \[ \sum^{n_{\text{syn}}}_{i=1} \log(r(\boldsymbol{X}_\text{syn}))/n_{\text{syn}}. \]

Dank voor jullie aandacht!

Vragen?



Nog meer vragen?