Il software per la statistica ufficiale: dai sistemi proprietari a quelli open source , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat Marcello D’Orazio, Daniela Pagliuca, Valeria Stancati Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat Cos’è R R può essere considerato come una implementazione di S S è una sorta di linguaggio sviluppato presso i BELL Laboratories della AT&T (adesso Lucent Technologies) da John Chambers et al., oltre 20 anni fa’ S nasce con l’obiettivo di sviluppare un ambiente/linguaggio per l’analisi dei dati, per l’implementazione di modelli statistici, per condurre simulazioni e produrre grafici Il codice sorgente di R è disponibile come “Free Software” il cui utilizzo è regolato dalla GNU General Public License della Free Software Foundation Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat Breve storia di R 1991: Ross Ihaka e Robert Gentleman (“R & R”, Univ. of Auckland) iniziano a lavorare al progetto che poi diventa R 1992: disegno e implementazione del pre-R 1993: primo annuncio di R 1995: R diviene disponibile attraverso FTP con licenza GPL 1996: Martin Maechler alla ETH avvia e mantiene una mailing-list su R 1997: Viene fondato il gruppo “R core” 1999: DSC meeting in Vienna, primo incontro dei membri dell’R Core 2000: R 1.0.0 viene rilasciato 2002: (16 Agosto): creazione di “ R Foundation for Statistical Computing” con sede presso la University of Technology di Vienna … 2008: R 2.6.2 è l’ultima versione rilasciata (8 Febbraio 2008) Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R, un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R è disponibile sia sotto forma di codici sorgenti (essenzialmente in C) che in formato pre-compilato da installare su: Linux; Windows (95 e successive versioni); MacOS Sviluppo e distribuzione di R sono curati da “R Development Core Team” http://www.r-project.org/contributors.html Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R, un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R è allo stesso tempo: un ambiente in cui sono integrate numerosissime tecniche di analisi statistica e per la produzione di grafici complessi un “linguaggio di programmazione funzionale” (functional programming language) in quanto basato su delle funzioni che l’utente richiama di volta in volta (ma può anche modificare) In questo senso è un linguaggio di programmazione NON procedurale ma object oriented Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R, un Ambiente Statistico Open Source: Esperienze e Prospettive Istat Tecnicamente R è strutturato in un sistema concentrico Funzionalità base Nucleo (core) Pacchetti aggiuntivi (packages) Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R, un Ambiente Statistico Open Source: Esperienze e Prospettive Istat Attualmente sono disponibili oltre 1.000 package aggiuntivi, distribuiti attraverso una rete di siti internet chiamata CRAN (Comprehensive R Archive Network) http://CRAN.R-project.org/mirrors.html analisi dati ambientali/spaziali cluster analysis inferenza bayesiana modelli grafici econometria finanza matematica genetica machine learning … Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R negli Istituti Nazionali di Statistica Impressione iniziale di una carenza di funzioni per condurre le operazioni tipiche di un processo di produzione di statistiche in un Istituto Nazionale di Statistica. In particolare: (i) funzioni per gestire e manipolare grandi moli di dati; (iii) funzioni per progettazione ed elaborazioni tipiche delle indagini complesse: progettazione campioni; controllo e correzione dei dati; riponderazione pesi e calcolo stime; … Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R all’Istat Si è deciso di affrontare le problematiche attraverso: a) avvio di sperimentazioni approfondite su alcune funzionalità ritenute importanti sia in R base che in alcuni package aggiuntivi (“reshape”, “survey”, …) b) costituzione di un gruppo informale di esperti (statistici ed informatici) - il “gruppo R” - che si incontra mensilmente c) Creazione di una Wiki Istat su R sulla Intranet: http://wiki.istat.it/doku.php/start?idx=r per condividere e diffondere il materiale e le informazioni d) Analisi delle interfacce grafiche (GUI) disponibili: R Commander (“Rcmdr”) modificata per aggiungere funzionalità aggiuntive per trattamento dei dati (merge, sort, …) e) corsi di formazione su R (base e avanzato) per il personale Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R e il trattamento dei dati: pro Si possono importare ed esportare le tipologie di dati più comunemente utilizzate in Istat (CSV, TXT, XLS, SAS, …) L’accesso alle basi di dati RDBMS ORACLE è possibile attraverso ODBC (per l’accesso a MySQL esiste un driver specifico) Molte operazioni di manipolazione dei dati si risolvono con l’utilizzo di funzioni “base” senza necessità di scrivere codice con strutture condizionali e cicliche E’ possibile produrre anche tavole statistiche complesse (doppia o tripla entrata) attraverso funzioni ad hoc disponibili nel package aggiuntivo “reshape” Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R e il trattamento dei dati: contro a inizio sperimentazione sono state riscontrate difficoltà nel trattamento di grandi moli di dati (>70Mb). Il problema è ridimensionato: da versione 2.6.0, è stato possibile gestire file dati fino a 250Mb; le restanti difficoltà dovrebbero essere superate dalle funzioni del package aggiuntivo “ff”; Vi sono esigenze non sono ancora coperte da funzioni R già esistenti e per le quali è necessario creare delle funzioni ad hoc; Per rendere più agevole l’utilizzo dell’ambiente si reso è necessario creare alcune funzioni generalizzate che risolvano problematiche trasversali ai vari processi produttivi Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R e il trattamento dei dati: alcune conclusioni Sperimentazioni di manipolazione e tabulazione condotte su: (a) dati dell’indagine su “Fallimenti dichiarati e fallimenti chiusi delle imprese”; (b) dati dell’indagine sui “Consumi delle famiglie” in Bosnia Erzegovina (con la quale esiste da tempo un rapporto di cooperazione) I risultati ottenuti sono stati ampiamente positivi. Si ritiene che le funzionalità di R, già esistenti o create ad hoc, possano essere adottate con successo in questa fase di produzione Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R per la elaborazione dei dati di indagini campionarie complesse: il package “survey” Il package aggiuntivo “survey” permette di elaborare/trattare i dati raccolti con indagini campionarie complesse al fine di: calcolare stime di totali, rapporti, … calcolare stime dell’errore campionario calibrare pesi delle unità campione; post-stratificare le unità … In merito alla calibrazione dei pesi è stata avviata una sperimentazione volta al confronto con Genesees (SW Istat basato su SAS). La sperimentazione si è conclusa positivamente ed è stato avviato un progetto di migrazione di Genesees da SAS in R, che si propone anche di implementare metodologie più recenti. Nell’ottica del SW generalizzato si intende creare e rilasciare una versione di Genesees basata su R e dotata di una propria GUI Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R e le elaborazioni tipiche dei dati di indagini complesse L’Istat si è posta da tempo il problema di disporre di strumenti, non contemplati nei package statistici commerciali, per: determinare ampiezza ottimale campioni complessi; controllare e correggere dei dati; imputare i valori mancanti; riponderare i pesi delle unità campione e calcolare le stime; … In passato, in diversi casi, si è deciso di sviluppare ex novo il SW necessario. Spesso lo sviluppo è avvenuto in ambito SAS. Ci si è orientati verso lo sviluppo di SW generalizzati che: implementassero metodologie e tecniche avanzate trattassero elevate moli di dati fossero utilizzabili senza richiedere ulteriore sviluppo di SW fossero utilizzabili in indagini diverse Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R: un “motore” di analisi statistiche in SW generalizzati 1 Con la diffusione del SW open source l’attenzione si sta spostando dallo sviluppo di SW ex novo alla possibilità di utilizzare e personalizzare i SW open source in base alla proprie specifiche esigenze. La disponibilità in R di: un linguaggio di programmazione semplice e ben definito; una ampia suite di strumenti per le operazioni con le matrici (e array); una ampia gamma di tool per l’analisi dei dati e potenti strumenti per la grafica lo rendono un motore di analisi ideale attorno al quale costruire un SW di tipo generalizzato Roma, 4 marzo 2008 , un Ambiente Statistico Open Source: Esperienze e Prospettive Istat R: un “motore” di analisi statistiche in SW generalizzati 2 pro: la diffusione di SW generalizzati non legati ad un sistema proprietario (es. SAS) è più facile (es. in ambito Sistan); permette lo sviluppo di programmi, anche complessi, sfruttando le funzionalità già esistenti e il linguaggio di programmazione R contro: limitata competenza ed esperienza (sperimentazioni iniziate nel 2005); difficoltà nello sviluppo di interfacce grafiche (GUI) user friendly. A tal fine si possono utilizzare tool interni all’ambiente (tcltk, gWidgets) o esterni (PHP, Java) Roma, 4 marzo 2008 Titolo del convegno unpiù Ambiente anche ,su righe Statistico anche Open su piùSource: righe Esperienze e Prospettive Istat Conclusioni 1 Nonostante le perplessità iniziali, R sembra ormai un ambiente maturo e affidabile che offre grandi potenzialità per l’utilizzo nei processi di produzione delle statistiche • sfruttando le funzionalità di base (analisi descrittive, grafici) attraverso la GUI R Commander modificata ad hoc per le esigenze Istat; • sfruttando sia le funzioni già esistenti che funzioni nuove dedicate alla produzione statistica ufficiale; • utilizzandolo come motore di analisi all’interno di SW generalizzati Roma, 4 marzo 2008 Titolo del convegno unpiù Ambiente anche ,su righe Statistico anche Open su piùSource: righe Esperienze e Prospettive Istat Conclusioni 2 Permangono ovviamente alcune criticità legate a: • limiti nella gestione di grandi moli dati (es. archivi amministrativi) che si spera siano superabili a breve; • assenza di supporto tecnico esterno e conseguente necessità di costituire in Istat un gruppo di persone con molta esperienza su R in grado di risolvere le problematiche che dovessero emergere Roma, 4 marzo 2008