STATISTICA CON R

17
STATISTICA CON R Maria Simona Andreano

Transcript of STATISTICA CON R

Page 1: STATISTICA CON R

STATISTICA CON R

Maria Simona Andreano

Page 2: STATISTICA CON R

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

Page 3: STATISTICA CON R

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

Page 4: STATISTICA CON R

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)

Page 5: STATISTICA CON R

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

Page 6: STATISTICA CON R

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:

Page 7: STATISTICA CON R

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

Page 8: STATISTICA CON R

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:

Page 9: STATISTICA CON R

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)

Page 10: STATISTICA CON R

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

Page 11: STATISTICA CON R

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

Page 12: STATISTICA CON R

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.

Page 13: STATISTICA CON R

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)

Page 14: STATISTICA CON R

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)

Page 15: STATISTICA CON R

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:

Page 16: STATISTICA CON R

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.

Page 17: STATISTICA CON R

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