STATISTICA CON R
Transcript of STATISTICA CON R
STATISTICA CON R
Maria Simona Andreano
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 2 di 17
Indice
1 STATISTICHE DESCRITTIVE ..................................................... 3
2 LE TABELLE E I GRAFICI ............................................................ 6
3 ANALISI BIVARIATA .................................................................. 13
BIBLIOGRAFIA ................................................................................. 17
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 3 di 17
1 STATISTICHE DESCRITTIVE
Le statistiche univariate o bivariate sono viste da R come delle
funzioni da applicare su una matrice di dati.
A seconda dell'indicatore richiesto, sarà necessario dare il
comando opportuno.
Tutte le statistiche di base sono disponibili nel pacchetto base
di statistica, pertanto non è necessario installare nessun pacchetto
aggiuntivo.
•mean( ) calcola la media di un vettore di dati.
•median( ) calcola la mediana di un vettore di dati
•var( ) calcola la varianza di un vettore di dati, la covarianza
tra due vettori, o la matrice di varianze e covarianze di una matrice di
dati.
•cor( ) calcola la correlazione tra due vettori, o la matrice di
correlazione di una matrice di dati.
•sd( ) calcola lo scarto quadratico medio (standard error) di un
vettore di dati.
Attenzione a scrivere correttamente minuscole e maiuscole.
•summary( ) riporta le principali statistiche descrittive di un
vettore o di una matrice di dati.
Le precedenti funzioni statistiche, se applicate su un oggetto x
che è una matrice con più variabile, fornisce i valori distintamente per
ognuna delle variabili incluse nell'oggetto x.
> exams <- read.table("C:\\dati_lezioni\\exams.txt")
> exams
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 4 di 17
> eco <- exams$eco
> eco
[1] 18 30 23 21 30 27
> mean(eco)
[1] 24.83333
> round(mean(eco), 2)
[1] 24.83
> summary(eco)
> var(eco)
[1] 24.56667
> var(exams)
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 5 di 17
Dato un vettore di tipo numerico x, le principali funzioni
elementari statistiche applicabili a tale vettore sono le seguenti:
• >min(x) restituisce il minimo di x
• >max(x) restituisce il massimo di x
• >range(x) restituisce il range di x
• >mean(x) restituisce la media aritmetica semplice di x
>median(x) restituisce la mediana di x
>quantile(x,y) con y vettore di numero compresi tra zero ed
uno, restituisce i quantili di x in
base ai valori contenuti in y
>var(x) restituisce la varianza di x
• >sd(x) restituisce la deviazione standard di x
• >mad(x) calcola la median absolute deviation
• cor(x,y) con y vettore numerico restuisce la correlazione tra x
ed y
• >cumsum(x) restituisce la somma progressiva di x
• >cumprod(x) restituisce il prodotto progressivo di x
• >sum(x) restituisce la somma di x
• >prod(x) restituisce il prodotto di x
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 6 di 17
2 LE TABELLE E I GRAFICI
Per variabili categoriche, o quantitative discrete, è possibile
ricavare una tabella di frequenze tramite la funzione table.
Molto spesso se i dati sono disponibili in vettori è necessario
creare delle tabelle che ci permettano di ottenere le frequenze
assolute o relative delle modalità con cui i dati si presentano nel
singolo vettore o in vettori congiuntamente considerati. Per fare ciò si
usa la funzione: table
La funzione table è una funzione molto potente di R e permette
di calcolare:
- se applicata ad un vettore, le frequenze assolute delle
modalità presenti nel vettore
- se applicata a due vettori una tabella di contingenza con le
frequenze assolute delle modalità congiunte dei due vettori
- se applicata a più vettori, un array con le frequenze assolute
congiunte di tutti i vettori.
La funzione si usa con il seguente comando:
>table(x)
in cui x è un vettore di dati.
Se x,y sono due vettori di dati, per ottenere una tavola di
contingenza dobbiamo operare nel seguente modo:
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 7 di 17
>table(x,y)
Per utilizzare la funzione table con più vettori possiamo usare
la seguente sintassi:
>table(x,y,z,....)
in cui x,y,z,.... ottenendo come già detto un array.
Per calcolare le frequenze relative:
> table(x) / lenght(x)
Esempio di funzione table impiegata per tabelle a doppia
entrata, o di dimensioni maggiori:
> table(state$REGION, state$DIVISION)
Nel caso di carattere qualitativo, se si vuole costruire un grafico
a torta:
> pie(table(x))
Per diagramma a barre o a bastoncini, sempre per caratteri
qualitativi:
> plot(table(x)) oppure direttamente > plot(x)
Il comando plot è il comando base per l’analisi grafica dei dati.
Se x ed y sono due vettori di uguale dimensione, con
• >plot(x) otteniamo un grafico avente per ordinate gli elementi
del vettore x e per ascissa un vettore numerato da 1 a length(x)
• >plot(x,y) otteniamo un grafico formato dai punti avente come
ascissa gli elementi di x e ordinata gli elementi di y
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 8 di 17
Nel caso di un carattere quantitativo continuo si deve costruire
l'istogramma.
Il comando:
> hist(x)
fornisce automaticamente l'istogramma, con il riferimento alle
densità. In questo modo R determina arbitrariamente le classi.
Se si vuole dire quali classi considerare, queste devono essere
specificate nel comando (gli estremi delle classi):
> hist(x, c(40,50,65,70,90)
E' possibile costruire anche il boxplot, che permette di avere
una visione della variabilità del fenomeno:
> boxplot(X)
Nel caso di due variabili, è possibile costruire lo scatterplot:
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 9 di 17
> plot(x, y, axes = FALSE)
Esistono molti comandi utili a migliorare la rappresentazione
del grafico. E' utile a riguardo leggere con attenzione gli help della
funzione, per mettere il titolo (Header), la legenda, il box, etc.
plot(MR~VR, xlab = "Tasso di omicidi", ylab = "Tasso di crimini
violenti", main = "Indici di criminalità", data = state)
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 10 di 17
Possiamo usare il comando plot con una serie di opzioni che
permettono di personalizzare il grafico in base a specifiche esigenze.
Ad esempio con le seguenti opzioni possiamo:
• main=“ “ crea un titolo nel grafico
• sub=“ “ crea un sottotitolo nel grafico
• xlab=“ “ crea un nome dell’asse delle x
• ylab=“ “ crea nome dell’asse delle y
• xlim=c(valore1, valore2) traccia l’asse del x tra valore1 e
valore2
• ylim=c(valore1, valore2) traccia l’asse dell y tra valore1 e
valore2
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 11 di 17
• log=“x“,log=“y“,log=“xy“ traccia i grafici con scala logaritmica
come da opzioni
Con le seguenti opzioni possiamo decidere se ottenere grafici
per punti o per linee o con altre forme specificate:
• type=“p“ traccia il grafico per punti
• type=“l“ traccia il grafico per linee
• type=“b“ traccia il grafico per linee e punti
• type=“o“ traccia il grafico per linnee e punti
• type=“h“ traccia il grafico con un High-density plot • type=“s“
traccia il grafico con un stairstep
• type=“n“ non traccia nulla
Se vogliamo un grafico per linee possiamo decidere anche che
tipo di linea desideriamo, utilizzando le seguenti opzioni:
• lty=1 traccia il grafico con linea continua
• lty=2 traccia il grafico con linea con punti
• lty=3 traccia il grafico con linea con punti e tratteggiata
• lty=4 traccia il grafico con linea con tratteggio
• lty=5 traccia il grafico con linea con tratteggio e tre punti ogni
tanto
• lty=6 traccia il grafico con linea con due tipi di tratteggio
• lty=7 traccia il grafico con linea con tratteggio a punti
• lty=8 traccia il grafico con linea con tratteggio piccolo
I comandi points e lines consentono di ottenere rispettivamente
punti e linee su un grafico già precedentemente tracciato.
Se in un grafico abbiamo introdotto attraverso i comandi lines e
points punti o linee formattati in modo doverso, è necessario, per
distinguerne il tipo, inserire nel grafico stesso una legenda. Questo
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 12 di 17
può essere fatto in molti modi legati alla costruzione del grafico
stesso.
Esempio
Un grafico creato con linee usando l’opzione lty. In questo caso
potremmo usare la seguente successione di comandi:
>plot(x,y,type=l,lty=1)
>lines(x,z,lty=2)
>legend(locator(1),legend=c(primo,secondo),lty=1:2)
e cliccando su qualunque punto del grafico la legenda sarà li
posizionata.
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 13 di 17
3 ANALISI BIVARIATA
Abbiamo già visto come costruire la tabella doppia. Vediamo
come costruire le tabelle condizionate. Innanzitutto possiamo salvare
la tabella doppia come oggetto nuovo, in modo da poterlo richiamare:
> tabella <- table(x,y)
A questo punto possiamo usare il nuovo oggetto per applicare
alcune statistiche.
•Le tabelle condizionate possono essere calcolate su X, rispetto
alle modalità di Y:
> tabella[ ,1] # rispetto alla prima modalità di Y
> tabella[ ,2] # rispetto alla seconda modalità di Y
....
Oppure di Y su X:
> tabella[1, ] # rispetto alla prima modalità di X
> tabella[2, ] # rispetto alla seconda modalità di X
.....
> margin.table(tabella,1)
> marigin.table(tabella,2)
Sono i comandi per ricavarsi le tabelle marginali rispetto alla
prima e alla seconda variabile
Se si vogliono le tabelle con le frequenze relative, la tabella
doppia iniziale deve essere con frequenze relative.
•Il comando:
> summary(tabella)
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 14 di 17
fornisce diverse statistiche di base descrittive della tabella
doppia, tra cui il Chi2 (associato alla statistica viene fornito anche la
versione del test statistico di indipendenza)
•Il coefficiente di correlazione tra i due caratteri quantitativi è:
> cor(x,y)
Se erroneamente si applica tale indice su una variabile non
qualitativa, R darà come risultato un messaggio di errore.
La regressione lineare consiste in una serie di tecniche volte
principalmente alla ricerca di un modello con cui una variabile
dipende linearmente da un’altra serie di variabili. I dati per lo studio
della regressione lineare sono composti principalmente da un data
frame.
Normalmente la prima variabile, che chiameremo y di tipo
numerico, rappresenta la variabile dipendente mentre le altre, che
indicheremo con x1,x2,..., sono dette variabili indipendenti o
espicative, e devono essere sempre di tipo numerico. Per indicare che
y dipende da x1,x2,... scriveremo:
y~x1+x2+x3+....
Prima di procedere alla costruzione del modello può anche
essere utile effettuare una analisi sul grado di correlazione lineare
che esiste tra le varibili e tra la variabile dipendente e quelle
esplicative. Data la matrice di dati pippo, ciò può essere effettuato con
il comando:
>cor(pippo)
La regressione lineare ai minimi quadrati viene effettuata con
il comando:
>pippo.lm<-lm(y~x1+x2+...+xn,data=anar)
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 15 di 17
se siamo interessati ad ottenere la regressione senza il termine
noto il comando diviene:
>pippo.lm<-lm(y~-1+x1+x2+...+xn, data=pippo)
Se pippo è un data frame contenente come prima variabile la
varibile dipendente e come successive variabili quelle indipendenti,
per effettuare la regressione può essere usata la seguente sintassi
semplificata:
>pippo.lm<-lm(pippo)
Nel caso semplificato di regressione lineare semplice, con solo
una variabile esplicativa, la retta di regressione è
Y = a + bX
E il comando per stimare tale retta di regressione è:
> lm(y~x)
Può essere, come al solito, utile salvare il risultato di tale
operazione in un nuovo oggetto:
regressione <- lm(y~x)
Vediamo esempio con più variabili esplicative.
> lm(y~x+z+w)
•ESEMPIO
fm <- lm(mortal~ Calorie+ HS+ popphys+ popnurs,
data=mortalita)
Richiamando l’oggetto fm avremo l’output della regressione:
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 16 di 17
ESEMPIO
> fm
Il comando summary sull’output della regressione ci fornisce
alcune statistiche e test fondamentali della regressione stessa.
Universitas Mercatorum Statistica con R
Attenzione! Questo materiale didattico è per uso personale dello studente ed è
coperto da copyright. Ne è severamente vietata la riproduzione o il riutilizzo anche
parziale, ai sensi e per gli effetti della legge sul diritto d’autore (L. 22.04.1941/n.
633)
Pag. 17 di 17
BIBLIOGRAFIA
Iacus e Masarotto: Laboratorio di statistica con R, McGraw-Hill
Manuale online di R: mainr.pdf