(Non ho idea reale di cosa taggare perché non sono uno statistico e non so in quale campo rientri. Sentiti libero di aggiungere tag più adatti.)
Lavoro per un'azienda che produce software di analisi dei dati e abbiamo bisogno di un set decente di dati per testare e dimostrare il nostro ultimo prodotto. Non possiamo semplicemente riempire il database con l'output di un generatore di numeri casuali perché gli output del programma diventerebbero privi di senso. Uno dei modi più semplici per ottenere tali dati è da un client; abbiamo una grande mole di dati da una prova che abbiamo eseguito. Ora, ovviamente, non possiamo pubblicare i dati effettivi di un cliente, quindi dobbiamo modificarli un po ', ma abbiamo ancora bisogno che si comportino come dati reali.
L'obiettivo qui è quello di prendere il loro set di dati e applicare un "fuzz" ad esso in modo che non possa essere riconosciuto come loro specifico. La mia memoria della teoria statistica è di per sé un po 'confusa, quindi mi piacerebbe gestirla da voi ragazzi:
In sostanza, i dati che abbiamo (dal cliente) sono essi stessi un campione di tutti i dati esistenti (nel paese o nel mondo). Quello che mi piacerebbe sapere è quale tipo di operazioni può essere applicato per rendere il campione non più fortemente rappresentativo della popolazione campione del cliente, mantenendolo comunque approssimativamente rappresentativo della popolazione mondiale.
Per riferimento, per quanto ne sappiamo i dati che abbiamo generalmente seguono grossolane distribuzioni normali (gaussiane).
Il set di dati originale non è ampiamente disponibile, ma potrebbe teoricamente essere riconosciuto da alcune caratteristiche specifiche della regione (non sappiamo quali siano queste caratteristiche, ed è dubbio che qualcuno lo faccia a un livello sufficiente, ma sappiamo che esistono variazioni dal luogo piazzare). Ad ogni modo, sono più interessato alla teoria di questo che alla pratica - Voglio sapere se un'operazione rende impossibile (o almeno difficile) identificare il set di dati di origine in base al parametro X, indipendentemente dal fatto che qualcuno abbia o potrebbe capire il parametro X in primo luogo.
L'approccio che ho escogitato è quello di separare le letture nei vari tipi (senza dire molto, diciamo che un gruppo potrebbe essere "lunghezza" o "tempo impiegato per fare X".) Per ognuno di questi, calcolare il deviazione standard. Quindi, ad ogni valore, aggiungi un valore casuale tra i valori positivo e negativo di (n * stddev) dove n è una frazione che posso usare per ottimizzare il risultato fino a quando i dati non sono sufficientemente "sfocati". Non volevo semplicemente applicare un intervallo statico (diciamo, casuale tra il 90% e il 110% del valore originale) perché alcuni valori variano molto più o meno di altri - in alcune misurazioni, essendo il 10% sulla media è appena percettibile , ma in altri ti rende un grave anomalo.
È sufficiente per mascherare l'origine dei dati originali? In caso contrario, con quali misure statistiche i dati sarebbero comunque identificabili e come li maschererei mantenendo i dati risultanti vagamente realistici?