L’uso di R per il calcolo delle stime e degli errori Il software per la statistica ufficiale: dai sistemi proprietari a quelli open source L’uso di per il calcolo delle stime e degli errori Risultati ottenuti e lavori in corso Monica Scannapieco Internalizzazione dello Sviluppo Software Diego Zardetto Software Generalizzato per la Produzione Statistica Roma, 4 Marzo 2008 L’uso di R per il calcolo delle stime e degli errori Struttura della presentazione • • • • • • Introduzione Descrizione del Test di Fattibilità Risultati Conseguiti Progetto di Migrazione Lavori in Corso Conclusioni Roma, 4 Marzo 2008 L’uso di R per il calcolo delle stime e degli errori Introduzione • Esigenza di individuare alternative al SAS – Presente in Istat dai primi anni ’80 – Originariamente inteso come software per l’analisi dei dati e la ricerca statistica… – …oggi è il sistema di elaborazione dominante in buona parte dei processi di produzione Roma, 4 Marzo 2008 L’uso di R per il calcolo delle stime e degli errori Introduzione (continua) • Individuazione di R come possibile candidato a sostituire il SAS: – Consenso diffuso sulle grandi potenzialità di R nell’analisi dei dati e nella ricerca statistica – Dubbi sulla possibilità concreta di utilizzare R nei processi di produzione: gestione di grosse moli di dati velocità di elaborazione affidabilità dei package aggiuntivi Necessità di testare la fattibilità della migrazione SAS−>R in una specifica fase del processo di produzione Roma, 4 Marzo 2008 L’uso di R per il calcolo delle stime e degli errori Caratteristiche del Test di Fattibilità • Quale Fase? • Quale Indagine? • Disponibilità di un package R? Calibrazione Forze di Lavoro Survey (funzione calibrate) • Criterio di scelta: test di fattibilità nel caso Istat “peggiore” per – complessità degli algoritmi – dimensione dei dati da elaborare Roma, 4 Marzo 2008 L’uso di R per il calcolo delle stime e degli errori Il Problema di Calibrazione Stimatori di Calibrazione: • consentono di migliorare la qualità delle inferenze mediante il ricorso ad informazioni ausiliarie… • …ma presuppongono un metodo di calcolo dei pesi complesso Pesi diretti dk Funzione distanza G Variabili ausiliarie xk Vettore dei totali noti X Bounds [ L, U ] Roma, 4 Marzo 2008 Problema di Calibrazione min G (d k , wk ) ks wk x k X ks wk L U dk Pesi finali wk L’uso di R per il calcolo delle stime e degli errori La Calibrazione dei Dati in Istat • Sistema GENESEES (GENEralized Sampling Estimates and Errors in Surveys) – Sviluppato in Istat alla fine degli anni ’90, in uso dal 2001/2002 – Basato su SAS • Funzionalità principali: – Calibrazione – Calcolo delle stime e degli errori standard Roma, 4 Marzo 2008 L’uso di R per il calcolo delle stime e degli errori Il Processo seguito per il Test Fase 1: Definizione dell’ambiente di test 1.1: Selezione sistema di benchmark 1.2: Selezione dati di benchmark 1.3: Ambiente HW e SW di sperimentazione Fase 2: Sviluppo prototipale per il test 2.1: Definizione dell’ambiente di prototipazione 2.2: Test di efficacia Fase 3: Realizzazione del test di fattibilità 2.3: Test di efficienza 3.1: Test di efficienza e ottimizzazione 3.2: Test di efficacia e correzione Roma, 4 Marzo 2008 L’uso di R per il calcolo delle stime e degli errori Ambiente di Test • Dati di benchmark: – Forze di lavoro • Disegno di campionamento complesso • ~ 200.000 record individuali, ~ 75.000 record familiari • 182 variabili ausiliarie • 21 domini di calibrazione • Sistema di benchmark: – GENESEES/SAS • Ambiente HW e SW: – PC Windows XP, 760 MB RAM, CPU da 3 GHz – Server Linux, 10 GB RAM, 4 CPU da 2 GHz Roma, 4 Marzo 2008 L’uso di R per il calcolo delle stime e degli errori Risultati Sperimentali: Efficacia • Pesi calibrati: GENESEES/SAS vs. Survey/R > summary(abs(pesi_GENESEES-pesi_SURVEY)/pesi_GENESEES) Min. 1st Qu. 8.405e-16 7.460e-12 Median 2.326e-11 Mean 5.590e-10 3rd Qu. Max. 1.189e-10 1.086e-7 Massimo valore assoluto delle differenze relative fra i pesi calibrati nei due sistemi Roma, 4 Marzo 2008 L’uso di R per il calcolo delle stime e degli errori Risultati Sperimentali: Efficienza • Tempi di esecuzione: GENESEES/SAS vs. Survey/R – GENESEES in ambiente PC: ~ 9 minuti – Survey: Funzione Ambiente R calibrate originaria PC R calibrate originaria Server R calibrate corretta PC R calibrate corretta Server 155 minuti R calibrate_iter PC 84 secondi R calibrate_iter Server 86 secondi Roma, 4 Marzo 2008 Tempo – > 4 giorni – L’uso di R per il calcolo delle stime e degli errori Esito del Test di Fattibilità E’ possibile utilizzare Survey/R nella fase di calibrazione dei dati nei contesti applicativi reali dell’Istat? Sì Efficacia identica Efficienza confrontabile Interventi di programmazione ad-hoc contenuti Roma, 4 Marzo 2008 L’uso di R per il calcolo delle stime e degli errori La migrazione di GENESEES • Il risultato positivo della sperimentazione ha consentito di avviare il progetto di migrazione del sistema GENESEES da SAS ad R GENESEES SAS Roma, 4 Marzo 2008 GENESEES R L’uso di R per il calcolo delle stime e degli errori Il Progetto di Migrazione • Obiettivo minimo: realizzare in R entrambe le funzionalità fondamentali di GENESEES (calibrazione e calcolo delle stime e degli errori standard) • Migrazione come occasione per reingegnerizzare il software migliorandone la qualità complessiva CARATTERISTICHE GENESEES/SAS GENESEES/R LINGUAGGIO SAS R ARCHITETTURA STANDALONE STANDALONE INTERFACCIA GUI GUI MONOLITICO - MODULARE + LEGACY - ESTENDIBILE + EFFICIENZA = EFFICIENZA = QUALITA’ DEL SOFTWARE Roma, 4 Marzo 2008 L’uso di R per il calcolo delle stime e degli errori Reingegnerizzazione: Astrazione 1. Interazione con l’utente a maggiore livello di astrazione calmodel=~(X+Y:Z) partition=~D1:D2 ... Stime ed errori di campionamento errore errore standard relativo % 1531592,64 9948,24 0,65 87612,3 1827,89 2,09 Stime118096,89 ed errori di campionamento 3441,11 2,91 358668,86 4458,85 1,24 errore errore variabile stima 2648,92 88532,33 2,99 standard relativo % 87612,3 1827,89 2,09 Y1 1531592,64 9948,24 0,65 118096,89 3441,11 2,91 Y2 87612,3 1827,89 2,09 358668,86 4458,85 1,24 Y3 2,91 Stime118096,89 ed errori di 3441,11 campionamento 88532,33 2648,92 2,99 Y4 358668,86 4458,85 1,24 errore errore 358668,86 4458,85 1,24 Y5 88532,33 2,99 variabile stima 2648,92 standard relativo % 88532,33 2648,92 2,99 Y6 87612,3 1827,89 2,09 Y1 1531592,64 9948,24 0,65 Y7 118096,89 3441,11 2,91 Y2 87612,3 1827,89 2,09 Y8 358668,86 4458,85 1,24 Y3 118096,89 3441,11 2,91 Y9 88532,33 2648,92 2,99 Y4 358668,86 4458,85 1,24 Y10 358668,86 4458,85 1,24 Y5 88532,33 2648,92 2,99 Y11 88532,33 2648,92 2,99 Y6 87612,3 1827,89 2,09 Y7 118096,89 3441,11 2,91 Y8 358668,86 4458,85 1,24 Y9 88532,33 2648,92 2,99 Y10 358668,86 4458,85 1,24 Y11 88532,33 2648,92 2,99 variabile stima Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 GENESEES/R GENESEES/SAS DATI INPUT CALIBRAZIONE DATI OUTPUT Roma, 4 Marzo 2008 STIME ED ERRORI DATI INPUT L’uso di R per il calcolo delle stime e degli errori Reingegnerizzazione: Integrazione 2. Integrazione di funzionalità calmodel=~(X+Y:Z) partition=~D1:D2 ... Stime ed errori di campionamento errore errore standard relativo % 1531592,64 9948,24 0,65 87612,3 1827,89 2,09 Stime118096,89 ed errori di campionamento 3441,11 2,91 358668,86 4458,85 1,24 errore errore variabile stima 2648,92 88532,33 2,99 standard relativo % 87612,3 1827,89 2,09 Y1 1531592,64 9948,24 0,65 118096,89 3441,11 2,91 Y2 87612,3 1827,89 2,09 358668,86 4458,85 1,24 Y3 2,91 Stime118096,89 ed errori di 3441,11 campionamento 88532,33 2648,92 2,99 Y4 358668,86 4458,85 1,24 errore errore 358668,86 4458,85 1,24 Y5 88532,33 2,99 variabile stima 2648,92 standard relativo % 88532,33 2648,92 2,99 Y6 87612,3 1827,89 2,09 Y1 1531592,64 9948,24 0,65 Y7 118096,89 3441,11 2,91 Y2 87612,3 1827,89 2,09 Y8 358668,86 4458,85 1,24 Y3 118096,89 3441,11 2,91 Y9 88532,33 2648,92 2,99 Y4 358668,86 4458,85 1,24 Y10 358668,86 4458,85 1,24 Y5 88532,33 2648,92 2,99 Y11 88532,33 2648,92 2,99 Y6 87612,3 1827,89 2,09 Y7 118096,89 3441,11 2,91 Y8 358668,86 4458,85 1,24 Y9 88532,33 2648,92 2,99 Y10 358668,86 4458,85 1,24 Y11 88532,33 2648,92 2,99 variabile stima Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 GENESEES/R CALIBRAZIONE DATI OUTPUT Roma, 4 Marzo 2008 STIME ED ERRORI DATI INPUT L’uso di R per il calcolo delle stime e degli errori Reingegnerizzazione: Estensione 3. Aggiunta di nuove funzionalità • Calcolo degli errori di campionamento basato sul metodo DAGJK (Delete-A-Group Jackknife) Sviluppato un nuovo package R dedicato: EVER (Estimation of Variance by Efficient Replication) • Vantaggi rispetto al metodo tradizionale (Taylor linearization) implementato in GENESEES/SAS: – Minore complessità matematica – Procedura di calcolo indipendente dalla forma funzionale dello stimatore e dal disegno di campionamento – Utilizzabile anche per stimatori non-analitici (es. stime di povertà) Roma, 4 Marzo 2008 L’uso di R per il calcolo delle stime e degli errori Architettura Logica di GENESEES/R GENESEES/R STIME ED ERRORI METODO ANALITICO CALIBRAZIONE METODO DI REPLICAZIONE Roma, 4 Marzo 2008 L’uso di R per il calcolo delle stime e degli errori Stato di Avanzamento del Progetto Oggi ID 2006 Nome attività mag 1 FATTIBILITA’: CALIBRAZIONE 2 FATTIBILITA’: STIME ED ERRORI 3 MIGRAZIONE: CALIBRAZIONE 4 MIGRAZIONE: STIME ED ERRORI 5 SVILUPPO PACKAGE EVER 6 SVILUPPO GUI giu lug ago set 2007 ott nov dic gen feb mar apr mag giu lug 2008 ago set ott nov dic gen • Inizio Sperimentazione: Maggio 2006 • Fine prevista Migrazione: Dicembre 2008 • Stima Mesi/Persona (allo stato attuale): 23,8 Roma, 4 Marzo 2008 30/6/2008 feb mar apr mag giu lug ago set ott nov dic β-Version L’uso di R per il calcolo delle stime e degli errori L’uso di R per il calcolo delle stime e degli errori Conclusioni • Una delle prime esperienze di utilizzo di R per la realizzazione di funzionalità standard nei processi di produzione dell’Istituto – Giudizio pienamente positivo sull’utilizzo di R nella realtà Istat: • Accesso al codice sorgente dei package, importante per la personalizzazione e l’ottimizzazione delle soluzioni • Grandi potenzialità del linguaggio R: elevato livello di astrazione, semplicità di programmazione e tempi di sviluppo contenuti Roma, 4 Marzo 2008