Elementi di statistica con R
e i database
Rocco De Marco
rocco.demarco(a)an.ismar.cnr.it
Ancona, 10 Aprile 2012
Programma incontri
1) Martedì 10 aprile, dalle 9:30 alle 11:00
Introduzione alle potenzialità di R
2) Giovedì 12 aprile, dalle 9:30 alle 11:00
Cenni sui dbms, sql e odbc. Utilizzo di database centralizzati con
applicazioni office e applicazioni web.
3) Martedì 17 aprile, dalle 9:30 alle 11:00
Elementi di statistica descrittiva con R, distribuzioni di frequenza,
import dei dati da fogli csv/excel, stampa di grafici.
4) Giovedì 19 aprile, dalle 9:30 alle 11:00
Estrazione dei dati archiviati su database, elaborazione e salvataggio
risultati su db. Cenni sulla programmazione R.
Perché questo corso?
• Nel nostro istituto vengono trattati molti dati semplici
organizzati in modo eterogeneo, con inconsistenze,
incongruenze e dati duplicati. Quasi sempre i dati non sono
indicizzati.
• L'elaborazione viene fatta con strumenti che richiedono lavoro
ripetitivo e privi di controllo di processo per la reportistica.
Esempio della ripetizione delle distribuzioni di frequenza su più
cale in più campagne in più anni.
• Questo corso vuole essere uno stimolo ad affrontare il processo
di gestione ed elaborazione dati in modalità coerenti e
standardizzate
R
• R (cran-r) è un ambiente software open source per
l'elaborazione statistica.
• È multipiattaforma: funziona su windows, linux e mac os.
• È modulare: esistono pacchetti (gratuiti, sviluppati da aziende, a
pagamento) che aggiungono funzionalità o librerie.
• Il sito di riferimento del progetto è: http://www.r-project.org
• R si presenta con una interfaccia testuale a riga di comando,
che può scoraggiare inizialmente.
What do you want to do today?
• La maggior parte dei testi che illustrano un ambiente di
programmazione seguono un percorso abbastanza standardizzato
(tipi di dati, operatori, sintassi, funzioni intrinseche, etc. etc.) che nel
neofita causano irrefrenabili attacchi di noia.
• Bypasseremo tutti i formalismi, arrivando alla fine di questa lezione a
produrre già dei risultati pratici. Per la teoria c'è sempre tempo ed è
più facile capire come quando si conosce cosa.
• Da questo momento in poi, le slide conterranno solo una parte degli
argomenti trattati. Esempi saranno effettuati direttamente
nell'ambiente R.
Un tuffo in R
• Installato e avviato R appare un prompt in attesa di
istruzioni.
• Abbiamo una distribuzione di taglie di triglie,
inseriamole in un vettore:
> triglie<-c(2,4,5,6,3,3,4,3,3,2,5,5,3,4,5,3,4,5,6,7,5,3,3,5,3,
2,3,4,5,6,4,3,4,5,6,7,8,9,6,4,5,6,7,8,9,11)
• Dove:
triglie
è il nome del vettore o array;
<- è l'operatore di assegnamento;
c() è la funzione di concatenamento;
x
sono valori numerici interi separati da virgola.
Funzioni embedded
• Una volta inseriti i dati nell'array, possiamo effettuare
semplici elaborazioni statistiche usando le funzioni
embedded di R:
– Calcolo della media: mean(triglie)
– Calcolo del massimo e minimo: max(triglie) min(triglie)
– Tabella distribuzione frequenza: table(triglie) o
addmargins(table(triglie))
Grafici
• Complicato?
hist(triglie)
• Immaginiamo di tracciare la crescita d'altezza di un bambino:
crescita_sandro<c(48,52.4,55.7,62.8,72.3,77.6,84.7,91.2,102.5)
Per tracciare un classico grafico a linee basta digitare:
plot(crescita_sandro,type="b")
Grafici
• Continuiamo in dolcezza con una bella torta:
torta<-c(33,22,45)
pie(torta)
Per rendere più leggibile la torta possiamo usare un
secondo vettore per le etichette:
etichette=c("si","no","forse")
pie(torta,etichette)
Ancora sui grafici
• Le funzioni plot e curve consentono di visualizzare, rispettivamente,
istogrammi e grafici di funzioni:
x<-c(1,2,3,4)
y<-c(1,4,9,16)
plot(x,y,type="b")
Otteniamo un tipico diagramma cartesiano.
Per plottare direttamente grafici di funzioni
curve(sin(x),0,2*pi)
curve(x^3,-10,10)
Esportare i grafici
Per salvare su un file pdf il risultato dei due grafici:
pdf(file="test.pdf")
hist(triglie)
pie(torta,etichette)
dev.off()
Oppure per esportare la torta in immagine png:
png(file="torta.png",width=600,height=600)
pie(torta,etichette)
dev.off()
Riferimenti e bibliografia
• Laboratorio di statistica con R, Iacus Masarotto,
McGraw Hill
• http://cran.r-project.org/doc/manuals/Rintro.html
• http://cran.r-project.org/doc/contrib/FrascatiFormularioStatisticaR.pdf
• Grafici per tutti i gusti:
http://www.harding.edu/fmccown/r/
Il flusso dei dati
Produzione dati
(misurazione,
campionamento,
etc.)
Archiviazione dati grezzi
Validazione dei dati
Elaborazione
Archiviazione dati elaborati
Reportistica
Archiviazione dei dati
• L'archiviazione dei dati può essere effettuata in
varie modalità:
– Trascrizione cartacea
– File testuali (.dat, .txt, etc.)
– Spreadsheet
– Database non relazionali
– RDBMS
• Il metodo più efficace per l'archiviazione dei
dati sono i RDMBS (prossima lezione)
Dati grezzi
• I dati grezzi sono tutti quelli generati dal processo di
produzione dati.
• Dati non filtrati e spesso non aggregati che possono
contenere:
–
–
–
–
Errori di misurazione
Dati duplicati
Dati rappresentati in modo differente (es. “AN”, “an”, “An”)
Dati fuori sincronizzazione (con base tempo o geografica)
• È importante conservare i dati grezzi
Validazione dei dati
• I dati grezzi vengono analizzati o elaborati per
– Filtrare o evidenziare errori di campionatura (es.
Teoria degli errori)
– Aggregare e normalizzare i dati
– Verificare esistenza duplicati
• La validazione dei dati può essere effettuata
con R
• L'archiviazione dei dati validati avviene su
database relazionale