Sei sulla pagina 1di 96

Analisi dei dati con R

Riccardo Massari
riccardo.massari@uniroma1.it

Corso di STATISTICA
Facolt`a di Ingegneria
Sapienza Universit`a di Roma

(Corso di statistica)

Analisi dei dati - R. Massari

1 / 96

ANALISI DEI DATI CON R

INTRODUZIONE
Generalit`a
Nozioni preliminari di R

GLI OGGETTI IN R
Funzioni e pacchetti
Inserimento dei dati in R

LAVORARE CON R
Importare ed esportare dati con R
Analisi dei dati
Creare grafici con R
Creare le proprie funzioni

(Corso di statistica)

Analisi dei dati - R. Massari

2 / 96

INTRODUZIONE

Generalit`
a

Introduzione a R

R `e un ambiente basato sul linguaggio S, per la gestione e lanalisi


statistica di dati e la produzione di grafici.
R `e disponibile gratuitamente sotto i vincoli della GPL (General Public
Licence).
Informazioni, risorse e molto altro sono disponibili al sito:
http://cran.r-project.org/.

(Corso di statistica)

Analisi dei dati - R. Massari

3 / 96

INTRODUZIONE

Generalit`
a

Istruzioni per linstallazione su Windows

La versione pi`
u recente di R pu`
o essere scaricata dalla pagina
http://cran.r-project.org/bin/windows/base/

Una volta scaricato il file .exe sul proprio computer `e sufficiente lanciare il
programma di installazione.

Sono comunque presenti dettagliate spiegazioni sul sito di distribuzione del


programma.

(Corso di statistica)

Analisi dei dati - R. Massari

4 / 96

INTRODUZIONE

Generalit`
a

Avvertenze

R `e case sensitive.
E un ambiente interattivo, ossia i comandi producono una risposta
immediata.
In R unanalisi `e fatta attraverso una serie di passi, con risultati intermedi che
sono immagazzinati in oggetti.
1
2

Rispetto ad altri programmi (SPSS, ecc.), R fornisce un output minimo.


I rimanenti risultati possono essere successivamente richiamati tramite
opportuni comandi.

(Corso di statistica)

Analisi dei dati - R. Massari

5 / 96

INTRODUZIONE

Generalit`
a

Bibliografia

Iacus, Masarotto Laboratorio di Statistica con R, McGraw-Hill Italia, 2003.

Crivellari Analisi statistica dei dati con R, Apogeo, 2006.


In rete sono inoltre disponibili numerose dispense per i primi passi in R.
In particolare, nel sito http://cran.r-project.org/other-docs.html, si
possono trovare anche dispense in italiano (sezione Other languages).

(Corso di statistica)

Analisi dei dati - R. Massari

6 / 96

INTRODUZIONE

Nozioni preliminari di R

Accedere ad R
Avviato il programma R, apparir`a una finestra (consolle) con il simbolo di
prompt
>
che indica che lambiente `e pronto per ricevere delle istruzioni.

(Corso di statistica)

Analisi dei dati - R. Massari

7 / 96

INTRODUZIONE

Nozioni preliminari di R

Primi passi

Una volta concluso il comando si digita il tasto di Invio:


1

Se il comando `e completo, comparir`


a una nuova riga di comando con il
simbolo di prompt.
Altrimenti comparir`
a una nuova riga di comando con il simbolo
+
che sta a significare che il comando deve essere completato.

Per richiamare i comandi gi`a inseriti, basta usare i tasti e per scorrere in
avanti e indietro.

(Corso di statistica)

Analisi dei dati - R. Massari

8 / 96

INTRODUZIONE

Nozioni preliminari di R

Operare con R
La console di R pu`
o essere utilizzata come semplice calcolatrice.
Alcuni esempi:
2 + 2
[1] 4
2 * 2
[1] 4
(2 - 3)/6
[1] -0.1666667
2^2
[1] 4
sqrt(9)
[1] 3
sin(pi/2)
[1] 1
log(1)
[1] 0
(Corso di statistica)

Analisi dei dati - R. Massari

9 / 96

INTRODUZIONE

Nozioni preliminari di R

Operatori aritmetici

Per le quattro operazioni base si utilizzano i segni:


+ - * /
Per lelevamento a potenza si utilizza ^. Esempio:
3^2
Per la radice quadrata si impiega il comando sqrt(). Esempio:
sqrt(9)
Gli operatori di confronto tra due oggetti numerici sono:
== < <= > >= !=

(Corso di statistica)

Analisi dei dati - R. Massari

10 / 96

INTRODUZIONE

Nozioni preliminari di R

Salvare oggetti in R
I risultati dei calcoli fatti con R possono essere salvati con un nome scelto
dallutilizzatore, per essere richiamati in qualsiasi momento durante la
sessione di lavoro.
Per assegnare un nome al risultato delloperazione si impiega il comando <esempio <- 2 + 2
esempio
[1] 4
I nomi possono contenere un qualunque carattere alfa-numerico.
Non devono mai iniziare con un numero, ne contenere spazi vuoti.
E bene non dare ad una variabile il nome di una funzione o di un operatore
(ad esempio, c o sum, etc).

In generale, `e possibile salvare con un nome numeri, vettori, matrici, funzioni,


ecc.

(Corso di statistica)

Analisi dei dati - R. Massari

11 / 96

INTRODUZIONE

Nozioni preliminari di R

Lo spazio di lavoro

Gli oggetti vengono salvati nello spazio di lavoro (workspace).


Il comando ls() permette di visualizzare i nomi degli oggetti memorizzati.
Lo spazio di lavoro, di default, si trova nella cartella:
C:\Programmi\R\R-(numero versione).
Per eliminare uno o pi`
u oggetti dallo spazio di lavoro si utilizza il comando
rm(). Esempio:
rm(x, y, z)
Per eliminare tutti gli elementi salvati si scrive:
rm(list = ls())

(Corso di statistica)

Analisi dei dati - R. Massari

12 / 96

INTRODUZIONE

Nozioni preliminari di R

Salvataggio dello spazio di lavoro

Alla fine di ogni sessione R chiede se si vuole salvare lo spazio di lavoro.


1

Lo spazio di lavoro viene salvato in un file chiamato .RData nella cartella


corrente.
Viene inoltre generato un altro file .RHistory, che contiene tutti i comandi
digitati.
Quando si riapre R, cliccando sul file .RData, lo spazio di lavoro ed i
comandi vengono automaticamente caricati.

E bene salvare spazi di lavoro relativi a lavori diversi in cartelle diverse, per
non generare confusione.

(Corso di statistica)

Analisi dei dati - R. Massari

13 / 96

INTRODUZIONE

Nozioni preliminari di R

Cartella di lavoro
Per cambiare cartella di lavoro, dal men`
u di R, cliccare su Cambia
directory, nel men`
u File:

(Corso di statistica)

Analisi dei dati - R. Massari

14 / 96

INTRODUZIONE

Nozioni preliminari di R

Cartella di lavoro/2
Successivamente si sceglie la cartella su cui salvare lo spazio di lavoro:

(Corso di statistica)

Analisi dei dati - R. Massari

15 / 96

INTRODUZIONE

Nozioni preliminari di R

Cartella di lavoro/3

In alternativa, direttamente dalla linea di comando:


setwd([path]) dove [path] indica la cartella di lavoro di destinazione.
Se, ad esempio, si vuole salvare il lavoro nella cartella laboratorioR in C::
setwd("C:/laboratorioR")
oppure
setwd("C:\\laboratorioR")
Per vedere qual `e la cartella di lavoro corrente, si usa il comando getwd().

(Corso di statistica)

Analisi dei dati - R. Massari

16 / 96

GLI OGGETTI IN R

Funzioni e pacchetti

Funzioni

Una funzione `e un insieme di comandi elementari.


In R sono disponibili un gran numero di funzioni per risolvere la maggior
parte dei problemi di analisi dei dati.
Esempi di funzioni:
sum(x)
mean(y)
dist(A, method = "euclidean")

(Corso di statistica)

Analisi dei dati - R. Massari

17 / 96

GLI OGGETTI IN R

Funzioni e pacchetti

Funzioni/2

La sintassi di una funzione `e del tipo:


nomefunzione(argomento1, argomento2, argomento3,...)
Gli argomenti di una funzione, possono essere oggetti come vettori, matrici,
altre funzioni, parametri o operatori logici.
Non `e sempre necessario specificare tutti gli argomenti di una funzione.
Per richiamare lhelp in linea su una funzione `e sufficiente scrivere:
?nomefunzione.

(Corso di statistica)

Analisi dei dati - R. Massari

18 / 96

GLI OGGETTI IN R

Funzioni e pacchetti

Pacchetti

Le funzioni di R sono organizzate in pacchetti, i pi`


u importanti dei quali sono
gi`a disponibili quando si accede al programma.
Per alcune funzioni `e per`
o necessario caricare prima il pacchetto.
Si pu`
o utilizzare direttamente il comando:
library(nomepacchetto)
Oppure il comando:
require(nomepacchetto)
Per avere informazioni generali sul pacchetto:
help(package = "nomepacchetto")

(Corso di statistica)

Analisi dei dati - R. Massari

19 / 96

GLI OGGETTI IN R

Funzioni e pacchetti

Pacchetti/2
In alternativa, dal men`
u Pacchetti si sceglie lopzione Carica pacchetto:

(Corso di statistica)

Analisi dei dati - R. Massari

20 / 96

GLI OGGETTI IN R

Funzioni e pacchetti

Pacchetti/3
In tal caso apparir`a una finestra con la lista dei pacchetti gi`a installati.

(Corso di statistica)

Analisi dei dati - R. Massari

21 / 96

GLI OGGETTI IN R

Funzioni e pacchetti

Installare pacchetti
Per installare un pacchetto non presente nella versione di R, dal men`
u
Pacchetti si seleziona Installa pacchetti.

(Corso di statistica)

Analisi dei dati - R. Massari

22 / 96

GLI OGGETTI IN R

Funzioni e pacchetti

Installare pacchetti/2
Successivamente, si dovr`a selezionare il mirror da cui scaricare il pacchetto.

(Corso di statistica)

Analisi dei dati - R. Massari

23 / 96

GLI OGGETTI IN R

Funzioni e pacchetti

Installare pacchetti/3
Infine si seleziona il pacchetto dalla lista.

(Corso di statistica)

Analisi dei dati - R. Massari

24 / 96

GLI OGGETTI IN R

Funzioni e pacchetti

Installare pacchetti/4
In alternativa, si pu`
o scaricare il file compresso del pacchetto dal seguente
sito:
http://cran.r-project.org/web/packages/
una volta che il file `e stato scaricato sul proprio computer, dal men`
u
Pacchetti si seleziona Installa pacchetti da file zip locali

(Corso di statistica)

Analisi dei dati - R. Massari

25 / 96

GLI OGGETTI IN R

Inserimento dei dati in R

Vettori

Un vettore `e un insieme ordinato di numeri. In R i vettori sono considerati


vettori-colonna.
Per definire un vettore si usa il comando c().
Esempio:
x <- c(1, 2, 3, 4)
x
[1] 1 2 3 4
Un vettore pu`
o anche contenere valori logici o caratteri.

(Corso di statistica)

Analisi dei dati - R. Massari

26 / 96

GLI OGGETTI IN R

Inserimento dei dati in R

Operazioni tra vettori

Gli operatori aritmetici base possono essere utilizzati per compiere operazioni
tra vettori. Esempio:
y <- c(2, 3, 4, 5)
x + y
[1] 3 5 7 9
x * y
[1] 2 6 12 20
Per il prodotto scalare tra due vettori, si impiega loperatore %*%. Esempio:
t(x) %*% y
[,1]
[1,]
40
dove la funzione t() opera la trasposizione del vettore.

(Corso di statistica)

Analisi dei dati - R. Massari

27 / 96

GLI OGGETTI IN R

Inserimento dei dati in R

Estrazione di elementi da un vettore

Gli elementi di un vettore possono essere selezionati tramite un vettore di


indici racchiuse tra parentesi quadre.
Esempi:
y[1]
[1] 2
y[y <= 3]
[1] 2 3
y[c(1, 3)]
[1] 2 4

(Corso di statistica)

Analisi dei dati - R. Massari

28 / 96

GLI OGGETTI IN R

Inserimento dei dati in R

Loperatore seq

seq genera un vettore che contiene una sequenza regolare di numeri,


generata in base a determinate regole.
Esempi:
seq(1, 5)
[1] 1 2 3 4 5
seq(1, 3, length = 5)
[1] 1.0 1.5 2.0 2.5 3.0
seq(1, 3, by = 0.5)
[1] 1.0 1.5 2.0 2.5 3.0
1:5
[1] 1 2 3 4 5
Si osservi che seq(1, 5) e 1:5 forniscono lo stesso risultato.

(Corso di statistica)

Analisi dei dati - R. Massari

29 / 96

GLI OGGETTI IN R

Inserimento dei dati in R

Loperatore rep

rep genera un vettore in cui un numero, o una sequenza di numeri, o un


vettore viene ripetuta un dato numero di volte.
Esempi:
rep(1, 5)
[1] 1 1 1 1 1
rep(c(1, 2), 2)
[1] 1 2 1 2
rep(x, 2)
[1] 1 2 3 4 1 2 3 4

(Corso di statistica)

Analisi dei dati - R. Massari

30 / 96

GLI OGGETTI IN R

Inserimento dei dati in R

Matrici

Una matrice `e un insieme di numeri con due dimensioni.


Il comando per generare una matrice `e matrix:
Di norma una matrice viene generata con la seguente sintassi:
A <- matrix(x, nrow = n, ncol = m, byrow = ...)
dove:
x `e un vettore di dati;
nrow e ncol sono, rispettivamente il numero di righe e di colonne (in genere `e
sufficiente definire solo uno dei due);
byrow `e un operatore logico. Di default `e FALSE, per cui la matrice viene
costruita per colonna.

(Corso di statistica)

Analisi dei dati - R. Massari

31 / 96

GLI OGGETTI IN R

Inserimento dei dati in R

Esempi di matrici
A <- matrix(1:8, nrow = 2)
A
[,1] [,2] [,3] [,4]
[1,]
1
3
5
7
[2,]
2
4
6
8
B <- matrix(1:8, nrow = 2, byrow = TRUE)
B
[,1] [,2] [,3] [,4]
[1,]
1
2
3
4
[2,]
5
6
7
8
B <- matrix(1:8, ncol = 4, byrow = T)
B
[,1] [,2] [,3] [,4]
[1,]
1
2
3
4
[2,]
5
6
7
8

(Corso di statistica)

Analisi dei dati - R. Massari

32 / 96

GLI OGGETTI IN R

Inserimento dei dati in R

Matrici/2
Una matrice pu`
o anche essere generata unendo pi`
u vettori o matrici.
I comandi cbind e rbind, rispettivamente, generano una matrice unendo i
vettori (le matrici) per colonna e per riga. Esempi:
rbind(x,y)
[,1] [,2] [,3] [,4]
x
1
2
3
4
y
2
3
4
5
cbind(x,y)
x y
[1,] 1 2
[2,] 2 3
[3,] 3 4
[4,] 4 5
rbind(x,A)
[,1] [,2] [,3] [,4]
x
1
2
3
4
1
3
5
7
2
4
6
8
(Corso di statistica)

Analisi dei dati - R. Massari

33 / 96

GLI OGGETTI IN R

Inserimento dei dati in R

Operazioni tra matrici


Loperatore %*% permette il prodotto matriciale tra due matrici conformi, o
tra un vettore ed una matrice. Esempi:
A%*%t(B)
[,1] [,2]
[1,]
50 114
[2,]
60 140
t(A)%*%B
[,1] [,2] [,3] [,4]
[1,]
11
14
17
20
[2,]
23
30
37
44
[3,]
35
46
57
68
[4,]
47
62
77
92
x%*%t(A)
[,1] [,2]
[1,]
50
60

(Corso di statistica)

Analisi dei dati - R. Massari

34 / 96

GLI OGGETTI IN R

Inserimento dei dati in R

Estrazione di dati da una matrice


Per lestrazione dei dati bisogna tener conto del fatto che la matrice ha due
dimensioni.
A[i, j] estrae lelemento che si trova nelli-ma riga e nella j-ma colonna.
Esempi:
A
[,1] [,2] [,3] [,4]
[1,]
1
3
5
7
[2,]
2
4
6
8
A[1, 2]
[1] 3
A[1, c(3, 4)]
[1] 5 7
A[2, ]
[1] 2 4 6 8
A[ ,3]
[1] 5 6
(Corso di statistica)

Analisi dei dati - R. Massari

35 / 96

GLI OGGETTI IN R

Inserimento dei dati in R

Data-frame

I data-frame sono delle matrici in cui le colonne possono essere di natura


differente.
Sono particolarmente utili per trattare matrici di dati, in cui le colonne
rappresentano le variabili e le righe le unit`a.
Per questo motivo, di solito solo le colonne sono identificate con un nome.
Il comando per generare un data-frame `e data.frame.
Lestrazione di dati da un data-frame pu`
o essere effettuata nello stesso modo
in cui si opera per le matrici.
Lestrazione di una colonna da un data-frame pu`
o anche essere fatta in
questo modo:
nomedata-frame$nomecolonna

(Corso di statistica)

Analisi dei dati - R. Massari

36 / 96

GLI OGGETTI IN R

Inserimento dei dati in R

Liste

Le liste sono insiemi di oggetti di natura e dimensione diversa.


Sono spesso usate per raccogliere i risultati di unanalisi.
Per generare una lista si impiega il comando list.
Per estrarre un oggetto da una lista:
nomelista$nomeoggetto, oppure nomelista[[numerooggetto]]

(Corso di statistica)

Analisi dei dati - R. Massari

37 / 96

LAVORARE CON R

Importare ed esportare dati con R

Importare dati in R

R legge i dati in ogni formato.


Per i dati salvati da altri pacchetti statistici `e necessario caricare il pacchetto
foreign.
I file di testo possono essere letti direttamente senza caricare alcun pacchetto
aggiuntivo.
I file di dati importati vengono convertiti in un data-frame.
E conveniente mettere il file di dati nella cartella di lavoro corrente.

(Corso di statistica)

Analisi dei dati - R. Massari

38 / 96

LAVORARE CON R

Importare ed esportare dati con R

La funzione read.table
Se il file `e di testo con estensione .txt pu`
o essere importato in R con la
funzione read.table.
La sintassi del comando `e:
read.table("[path]\\nomefile.txt"))
dove [path] indica il percorso per individuare il file.
Esempio: "C:/laboratorioR/dati.txt" o
"C:\\laboratorioR\\dati.txt"
Se il file di dati si trova nella cartella corrente, basta scrivere:
read.table("dati.txt")
In alcuni casi occorre anche specificare lelemento separatore tra le colonne,
con largomento sep, o lelemento separatore dei decimali, con dec. Inoltre,
a volte bisogna specificare se la prima riga contiene i nomi delle variabili.
Alcuni esempi saranno introdotti durante le lezioni.

(Corso di statistica)

Analisi dei dati - R. Massari

39 / 96

LAVORARE CON R

Importare ed esportare dati con R

Esempio

state `e un data-set che riporta alcune statistiche socio-demografiche dei 51


stati degli USA:
1
2
3
4
5
6
7
8

VR = tasso di crimini violenti;


MR = tasso di omicidi;
M = % di popolazione residente nelle aree metropolitane
W = % di bianchi;
H = % di persone che hanno completato la scuola secondaria superiore;
P = tasso di povert`
a
S = % di famiglie il cui capfoamiglia `e single;
REGION, DIVISION = macro-aree amministrative.

(Corso di statistica)

Analisi dei dati - R. Massari

40 / 96

LAVORARE CON R

Importare ed esportare dati con R

Esempio/2
state <- read.table("C:/laboratorioR/state.txt",
header = TRUE, row.names = 1)
state
VR
MR
M
W
H
P
S
REGION DIVISION
AK 761 9.0 41.8 75.2 86.6 9.1 14.3
West
Pac
AL 780 11.6 67.4 73.5 66.9 17.4 11.5
South EasSouCen
AR 593 10.2 44.7 82.9 66.3 20.0 10.7
South WesSouCen
AZ 715 8.6 84.7 88.6 78.7 15.4 12.1
West
Mou
...
WV 208 6.9 41.8 96.3 66.0 22.2 9.4
South
SouAtl
WY 286 3.4 29.7 95.9 83.0 13.3 10.8
West
Mou
DC 2922 78.5 100.0 31.8 73.1 26.4 22.1
South
SouAtl
Lopzione header = TRUE serve a specificare che la prima riga della matrice
dei dati contiene i nomi delle variabili.
Lopzione row.names = 1 specifica che nella prima colonna del data-set
sono presenti le etichette delle unit`a.
(Corso di statistica)

Analisi dei dati - R. Massari

41 / 96

LAVORARE CON R

Importare ed esportare dati con R

Altre funzioni per limportazione dei dati

Pi`
u in generale, la funzione read.table pu`
o essere impiegata per file di
testo di qualunque formato, specificando in maniera opportuna i vari
argomenti. Ma pu`
o essere utile impiegare funzioni pi`
u specifiche.
Se il file ha estensione .csv, si pu`
o anche usare la funzione read.csv, o la
funzione read.cvs2, a seconda delle impostazioni internazionali del sistema
operativo. La sintassi `e simile a quella di read.table
Anche la funzione scan pu`
o essere impiegata per importare file di testo,
anche se il suo impiego `e in generale sconsigliato agli utenti poco esperti.
Per una pi`
u approfondita descrizione di queste funzioni si rimanda allhelp in
linea.

(Corso di statistica)

Analisi dei dati - R. Massari

42 / 96

LAVORARE CON R

Importare ed esportare dati con R

Importare file da Excel

I file con estensione .xls non possono essere importati con le funzioni viste
sopra.
In questo caso si pu`
o impiegare la funzione read.xls dal pacchetto
xlsReadWrite.
In alternativa, la funzione odbcConnect dal pacchetto RODBC, che pu`o essere
impiegata anche per file provenienti da Access, o da altri programmi di
gestione di data-base.

(Corso di statistica)

Analisi dei dati - R. Massari

43 / 96

LAVORARE CON R

Importare ed esportare dati con R

Esportare file di dati

Per esportare un data-frame da R si impiega la funzione write.table


La sintassi `e:
write.table(nomedata-frame, "[path]\\nomefile.txt")
dove [path] indica la directory dove si vuole salvare il file.
Esempio: write.table(dati, "C:\\laboratorioR\\dati.txt")
Se si vuole salvare il file nella cartella corrente, basta scrivere:
write.table(nomedata-frame, "dati.txt")
Attenzione: R non avverte se si sovra-scrive su un file esistente.

(Corso di statistica)

Analisi dei dati - R. Massari

44 / 96

LAVORARE CON R

Importare ed esportare dati con R

Esportare di file di dati/2

Analogamente a quanto visto sopra, `e possibile esportare i dati anche in altri


formati.
File con estensione .csv con write.table, write.csv o write.csv2
File con estensione .xls con write.xls, dal pacchetto xlsReadWrite o
sqlSave dal pacchettoRODBC

(Corso di statistica)

Analisi dei dati - R. Massari

45 / 96

LAVORARE CON R

Importare ed esportare dati con R

Editor di testi

E utile scrivere i comandi in un editor di testo, e poi copiarli sulla console di


R.
In tal modo sar`a possibile salvare script contenenti i comandi per lanalisi.
R contiene un editor di testo, che non `e molto efficiente.
Sono disponibili in rete programmi freeware specifici per R, tra i quali Tinn-R
(http://www.sciviews.org/Tinn-R/).

(Corso di statistica)

Analisi dei dati - R. Massari

46 / 96

LAVORARE CON R

Analisi dei dati

Struttura del data-set


La funzione str permette di analizzare la struttura del data-set (ed in
generale di un oggetto di R):

str(state)
data.frame:
51 obs. of 9 variables:
$ VR
: int 761 780 593 715 1078 567 456 686 1206 723 ...
$ MR
: num 9 11.6 10.2 8.6 13.1 5.8 6.3 5 8.9 11.4 ...
$ M
: num 41.8 67.4 44.7 84.7 96.7 81.8 95.7 82.7 93 ...
$ W
: num 75.2 73.5 82.9 88.6 79.3 92.5 89 79.4 83.5 ...
$ H
: num 86.6 66.9 66.3 78.7 76.2 84.4 79.2 77.5 ...
$ P
: num 9.1 17.4 20 15.4 18.2 9.9 8.5 10.2 17.8 ...
$ S
: num 14.3 11.5 10.7 12.1 12.5 12.1 10.1 11.4 ...
$ REGION : Factor w/ 4 levels "Midwest","Northeast",..: 4 ...
$ DIVISION: Factor w/ 9 levels "EasNorCen","EasSouCen",..: 6 ..

(Corso di statistica)

Analisi dei dati - R. Massari

47 / 96

LAVORARE CON R

Analisi dei dati

Struttura del data-set/2

Nella prima riga `e indicata la classe delloggetto (in questo caso


data.frame), il numero delle osservazioni e delle variabili.
Nella prima colonna ci sono i nomi delle variabili, e nella seconda la natura
delle stesse. In questo caso si ha:
1
2
3

int se la variabile `e quantitativa discreta, o comunque un intero;


num se `e continua;
Factor se `e una variabile categorica (eventualmente pu`
o anche essere
ordinata);
dopo la classe della variabile, sono riportati i primi valori di ciascuna variabile.

(Corso di statistica)

Analisi dei dati - R. Massari

48 / 96

LAVORARE CON R

Analisi dei dati

Le funzioni head, tail e fix

Le funzioni head e tail mostrano le prime e le ultime righe della matrice dei
dati, rispettivamente.
Infine, la funzione fix apre una finestra simile ad un foglio di lavoro Excel,
che permette di visualizzare lintero data-set. E particolarmente utile nel
caso di matrici di dati molto grandi.

(Corso di statistica)

Analisi dei dati - R. Massari

49 / 96

LAVORARE CON R

Analisi dei dati

Alcune funzioni per lanalisi statistica dei dati

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.
summary() riporta le principali statistiche descrittive di un vettore o di una
matrice di dati.

(Corso di statistica)

Analisi dei dati - R. Massari

50 / 96

LAVORARE CON R

Analisi dei dati

Esempio di analisi dei dati


A scopo puramente introduttivo, proviamo ad applicare alcune funzioni per
lanalisi statistica dei dati al data-set state.
Analizziamo inizialmente solo il tasso di omicidi:
MR <- state$MR
summary(MR)
Min. 1st Qu.
1.60
3.90
sd(MR)
[1] 10.7

Median
6.80

Mean 3rd Qu.


8.73
10.40

Max.
78.50

Considerando anche i la percentuale di popolazione nelle aree metropolitane:


M <- state$M
mean(M)
[1] 67.4
cor(MR, M)
[1] 0.316
(Corso di statistica)

Analisi dei dati - R. Massari

51 / 96

LAVORARE CON R

Analisi dei dati

Matrice di varianze e covarianze


Per il calcolo della matrice di varianze e covarianze occorre selezionare solo le
variabili quantitative.
state.data <- state[, 1:7] #oppure
state.data <- state[, -c(8, 9)] #`
e lo stesso
var(state.data)
VR
MR
M
W
H
P
S
VR 194569 4189.5 5269.178 -3959.4 -631.596 1030.28 785.01
MR
4190 114.9
74.390 -100.3 -17.145
27.80 19.53
M
5269
74.4 482.116
-98.2
-0.488
-6.09 12.10
W
-3959 -100.3 -98.191
175.6
25.058 -23.64 -18.46
H
-632 -17.1
-0.488
25.1
31.271 -19.07 -2.61
P
1030
27.8
-6.094
-23.6 -19.071
21.02
5.34
S
785
19.5
12.102
-18.5
-2.607
5.34
4.50
NB: tutto quello che viene scritto dopo # non viene letto dal programma.
(Corso di statistica)

Analisi dei dati - R. Massari

52 / 96

LAVORARE CON R

Analisi dei dati

Matrice di correlazione

cor(state.data)
VR
MR
M
W
H
P
S
VR 1.000 0.886 0.54404 -0.677 -0.25605 0.5095 0.839
MR 0.886 1.000 0.31611 -0.706 -0.28607 0.5659 0.859
M
0.544 0.316 1.00000 -0.337 -0.00398 -0.0605 0.260
W -0.677 -0.706 -0.33744 1.000 0.33812 -0.3891 -0.657
H -0.256 -0.286 -0.00398 0.338 1.00000 -0.7439 -0.220
P
0.510 0.566 -0.06054 -0.389 -0.74394 1.0000 0.549
S
0.839 0.859 0.25981 -0.657 -0.21978 0.5486 1.000

(Corso di statistica)

Analisi dei dati - R. Massari

53 / 96

LAVORARE CON R

Analisi dei dati

Tabelle di frequenza
Per variabili categoriche, o quantitative discrete, `e possibile ricavare una
tabella di frequenze tramite la funzione table.
La funzione table pu`
o anche essere impiegata per tabelle a doppia entrata,
o di dimensioni maggiori.
table(state$REGION)
Midwest Northeast
South
West
12
9
17
13
table(state$REGION, state$DIVISION)

Midwest
Northeast
South
West

EasNorCen EasSouCen MidAtl Mou NewEng Pac SouAtl ...


5
0
0
0
0
0
0 ...
0
0
3
0
6
0
0 ...
0
4
0
0
0
0
9 ...
0
0
0
8
0
5
0 ...

(Corso di statistica)

Analisi dei dati - R. Massari

54 / 96

LAVORARE CON R

Analisi dei dati

La funzione apply

apply permette di calcolare una generica funzione sulle righe o sulle colonne
di una matrice.
In generale, la sintassi `e apply(X, dim, FUN):
1
2

X `e una matrice di dati;


dim `e la dimensione per la quale si vuole calcolare la funzione
(1 = per riga, 2 = per colonna);
FUN `e la funzione da applicare ai dati. Deve essere coerente con i dati che si
vogliono analizzare.

apply(state.data, 2, median)
VR
MR
M
W
H
515.0
6.8 69.8 87.6 76.7

(Corso di statistica)

P
13.1

S
10.9

Analisi dei dati - R. Massari

55 / 96

LAVORARE CON R

Analisi dei dati

La funzione tapply
tapply permette di calcolare una generica funzione sui sottogruppi di
prodotti posti sullo stesso scaffale.
La sintassi `e tapply(x, ID, FUN):
1
2

x `e un vettore di dati;
ID `e un vettore, della stessa lunghezza di x che permette di assegnare ogni
unit`
a ad un dato gruppo;
FUN `e la funzione da applicare ai dati. Deve essere coerente con i dati che si
vogliono analizzare.

E molto utile quando la popolazione osservata `e stratificata in base ad


una, o pi`
u caratteristiche.
tapply(state$M, state$REGION, mean)
Midwest Northeast
South
West
62.4
76.0
68.8
64.2

(Corso di statistica)

Analisi dei dati - R. Massari

56 / 96

LAVORARE CON R

Analisi dei dati

Trattamento dei decimali

Di default R inserisce un elevato numero di decimali.


Per rendere loutput pi`
u leggibile si pu`
o impiegare la funzione
round(x, digits):
1
2

x `e loggetto su cui si applica loperazione di arrotondamento;


digits `e il numero di decimali da considerare.

round(cor(state$M, state$H), 3)
[1] -0.004

(Corso di statistica)

Analisi dei dati - R. Massari

57 / 96

LAVORARE CON R

Analisi dei dati

Trattamento dei decimali/2

In alternativa, si pu`
o impiegare il comando options(digits), che permette
di fissare, per tutta la durata della sessione, o fino a quando non viene
cambiata lopzione, il numero di decimali.
In questo caso larrotondamento avviene con le prime cifre utili.
options(digits = 3)
cor(state$M, state$H)
[1] -0.00398

(Corso di statistica)

Analisi dei dati - R. Massari

58 / 96

LAVORARE CON R

Creare grafici con R

Rappresentazioni grafiche in R

R `e in grado di produrre diversi tipi di grafico.


I comandi per i grafici possono essere divisi in tre gruppi:
1
2
3

funzioni di alto livello, che creano un nuovo grafico sulla finestra grafica;
funzioni di basso livello, che aggiungono parti ad un grafico gi`
a esistente;
funzioni per grafici interattivi, che consentono di aggiungere interattivamente
informazioni, o di estrarne, da un grafico esistente.

In R `e disponibile una lunga serie di parametri grafici, che possono essere


modificati dallutilizzatore.
Si rimanda allhelp in linea della funzione par per una lista di tali argomenti.

(Corso di statistica)

Analisi dei dati - R. Massari

59 / 96

LAVORARE CON R

Creare grafici con R

Rappresentazioni grafiche in R/2

La funzione di alto livello principale `e plot().


A seconda dellanalisi condotta, si possono impiegare altre funzioni di alto
livello, pi`
u specifiche.
Ogni volta che si utilizza la funzione plot(), o qualsiasi altra funzione di alto
livello, si apre una nuova finestra grafica, che sostituisce quella
precedentemente aperta.

(Corso di statistica)

Analisi dei dati - R. Massari

60 / 96

LAVORARE CON R

Creare grafici con R

Rappresentazioni grafiche in R/3


Per salvare la cronologia dei grafici, dal men`
u Salva cronologia si seleziona
Registro, quando la finestra grafica `e attiva.

(Corso di statistica)

Analisi dei dati - R. Massari

61 / 96

LAVORARE CON R

Creare grafici con R

Scatterplot semplice
Come esempio di analisi grafica in R, consideriamo lo scatterplot, o grafico a
dispersione, che permette la rappresentazione di una matrice di dati
bi-dimensionale.
La sintassi di base `e:
plot(x, y, ...)
dove x e y sono due vettori che rappresentano le coordinate dei punti nel
grafico.
Una formulazione alternativa `e:
plot(y~x, data)
Questa formulazione `e particolarmente utile quando i dati sono variabili prese
da una matrice di dati, perche alleggerisce la sintassi.
In questo caso, va specificato nellargomento data il nome della matrice dei
dati di origine.

(Corso di statistica)

Analisi dei dati - R. Massari

62 / 96

LAVORARE CON R

Creare grafici con R

Esempio

80

plot(state$VR, state$MR) #oppure


plot(MR~VR, data = state) #danno lo stesso risultato

40
20

MR

60

500

1000

1500

2000

2500

3000

VR

(Corso di statistica)

Analisi dei dati - R. Massari

63 / 96

LAVORARE CON R

Creare grafici con R

Argomenti grafici opzionali

Tra gli altri argomenti, quelli di uso pi`


u comune sono:
1

2
3

type che specifica il tipo di grafico. Di default il grafico `e a punti, il che


equivale a scrivere type="p". Altre possibili opzioni possono essere type="l",
per disegnare delle line, type="l" per disegnare sia linee che punti o
type="n" per lasciare il grafico vuoto e riempirlo successivamente con altre
funzioni di basso livello;
main per inserire il titolo del grafico;
xlab e ylab per inserire le intestazioni dellasse delle ascisse e delle ordinate
rispettivamente.

(Corso di statistica)

Analisi dei dati - R. Massari

64 / 96

LAVORARE CON R

Creare grafici con R

Esempio
plot(MR~VR, xlab = "Tasso di omicidi", ylab = "Tasso di crimini
violenti", main = "Indici di criminalit`
a", data = state)

80

Indici di criminalit

40
20

Tasso di crimini violenti

60

500

1000

1500

2000

2500

3000

Tasso di omicidi

(Corso di statistica)

Analisi dei dati - R. Massari

65 / 96

LAVORARE CON R

Creare grafici con R

Identificare le unit`
a sul grafico

plot(MR~VR, xlab = "Tasso di omicidi", ylab = "Tasso di crimini


violenti", main = "Indici di criminalit`
a", data = state)
identify(x = state$VR, y = state$MR, labels = row.names(state))
La funzione identify permette di individuare interattivamente gli stati
corrispondenti ai punti, con il puntatore del mouse.
Nella funzione vanno specificate le coordinate dei punti e le etichette, tramite
lopzione labels. Di norma le etichette vengono ricavate dai nomi delle
righe del data-set, se ci sono.
Usando il tasto destro del mouse compare un men`
u a tendina, che permette
di interrompere lindividuazione dei punti in qualsiasi momento.

(Corso di statistica)

Analisi dei dati - R. Massari

66 / 96

LAVORARE CON R

Creare grafici con R

Identificare le unit`
a sul grafico/4

(Corso di statistica)

Analisi dei dati - R. Massari

67 / 96

LAVORARE CON R

Creare grafici con R

Identificare le unit`
a sul grafico/3

80

Indici di criminalit

40
20

Tasso di crimini
violenti

60

DC

500

1000

1500

2000

2500

3000

Tasso di omicidi
(Corso di statistica)

Analisi dei dati - R. Massari

68 / 96

LAVORARE CON R

Creare grafici con R

Trattamento dei dati anomali

Dal momento che, in base anche ad altre considerazioni, i dati relativi al


District of Columbia sembrano essere degli outliers, si fa la scelta di eliminarli
per le successive elaborazioni.
Leliminazione avviene attraverso la funzione subset, che `e una funzione
molto versatile per il trattamento delle matrici dei dati.
Si rimanda allhelp della funzione per ulteriori informazioni ed esempi.
state.data <- subset(state.data,
subset = row.names(state.data) != "DC")

(Corso di statistica)

Analisi dei dati - R. Massari

69 / 96

LAVORARE CON R

Creare le proprie funzioni

Scrivere proprie funzioni

E possibile creare delle funzioni proprie.


Si utilizza il comando function(...) specificando i vari argomenti da
impiegare nella sintassi.
Gli argomenti possono essere fissati di default, oppure lasciati liberi. Nel
secondo caso vanno sempre specificati, quando si impiega la funzione.
La sintassi va in genere racchiusa tra due parentesi graffe. Se si tratta di una
funzione particolarmente semplice, che pu`
o essere scritta in una sola riga, non
`e necessario.
N.B.: le funzioni create dallutente vengono salvate solo nello spazio di lavoro
corrente. Se non si salva lo spazio di lavoro, bisogna inserirle nuovamente. Lo
stesso vale se la funzione viene inserita in uno spazio di lavoro differente.

(Corso di statistica)

Analisi dei dati - R. Massari

70 / 96

LAVORARE CON R

Creare le proprie funzioni

Scrivere proprie funzioni/2


Nel caso pi`
u semplice si pu`
o scrivere:
nome <- function(arg1, arg2, ...)
espressione
espressione pu`
o essere in realt`a un gruppo di espressioni racchiuse da
parentesi.
Pi`
u in generale si scriver`a:
nome <- function(arg1, arg2, ...)
{
espressione1
espressione2
espressione3
...
}
Il risultato della funzione sar`a in generale lultimo valore calcolato.

(Corso di statistica)

Analisi dei dati - R. Massari

71 / 96

LAVORARE CON R

Creare le proprie funzioni

Esempio: calcolo della media aritmetica

media <- function(x)


sum(x)/length(x)
media1 <- function(x)
#x `
e un vettore di numeri
{tot <- sum(x)
n <- length(x) #lunghezza del vettore x
out <- tot/n
return(out)}
#restituisce il risultato della funzione
#ESEMPIO
y <- c(1, 3, 5)
media(y)
[1] 3
media1(y)
[1] 3

(Corso di statistica)

Analisi dei dati - R. Massari

72 / 96

LAVORARE CON R

Creare le proprie funzioni

Esempio: calcolo della media aritmetica/2


Un esempio pi`
u complesso: calcolo della media aritmetica, eventualmente
ponderata.
media.pond <- function(x, w = NULL) #w `
e il vettore dei pesi
{if (is.null(w)) #se manca il vettore dei pesi
w <- rep(1, length(x)) #crea un vettore di 1.
tot <- sum(x * w)
out <- tot/sum(w)
return(out)}
#ESEMPIO
y <- c(1, 3, 5)
media.pond(y)
[1] 3
#senza i pesi coincide con la media aritmetica semplice
pesi <- c(1, 1, 2)
media.pond(y, pesi)
[1] 3.5
In questo caso largomento w dei pesi `e fissato di default come mancante.
(Corso di statistica)

Analisi dei dati - R. Massari

73 / 96

LAVORARE CON R

Creare le proprie funzioni

Esempio: calcolo della media aritmetica/3


Cosa succede se entrambi gli argomenti sono liberi?.
media.pond2 <- function(x, w)
{tot <- sum(x * w)
out <- tot/sum(w)
return(out)}
#ESEMPIO
media.pond2(y, pesi)
[1] 3.5
#se non si specifica largomento w
#si ha un messaggio di errore.
media.pond2(y)
Errore in media.pond2(y) : element 2 is empty;
the part of the args list of * being evaluated was:
(x, w)

(Corso di statistica)

Analisi dei dati - R. Massari

74 / 96

STATISTICA INFERENZIALE CON R

VARIABILI CASUALI
Variabili casuali discrete
Variabili casuali continue
Esempi
Grafici variabili discrete
Grafici variabili continue

Test di ipotesi e intervalli di confidenza

(Corso di statistica)

Analisi dei dati - R. Massari

75 / 96

VARIABILI CASUALI

Introduzione

In R sono disponibili funzioni per operare con le principali variabili casuali.


In particolare `e possibile:
1
2
3
4

calcolarne la densit`
a;
ricavare la funzione di ripartizione;
calcolare i singoli quantili;
generare una sequenza di numeri casuali in base ad una determinata legge.

(Corso di statistica)

Analisi dei dati - R. Massari

76 / 96

VARIABILI CASUALI

Variabili casuali discrete

Distribuzione binomiale
#Densit`
a
dbinom(x, size, prob)
#Funzione di ripartizione
pbinom(q, size, prob)
#Quantile
qbinom(p, size, prob)
#Generazione casuale di numeri
rbinom(n, size, prob)
x e q: vettori di quantili;
p: vettore di probabilit`a;
n: numero di osservazioni;
size: numero di prove. Se size = 1 si ha la variabile casuale di Bernoulli;
prob: probabilit`a di successo in ogni prova.

(Corso di statistica)

Analisi dei dati - R. Massari

77 / 96

VARIABILI CASUALI

Variabili casuali discrete

Distribuzione geometrica

#Densit`
a
dgeom(x, prob)
#Funzione di ripartizione
pgeom(q, prob)
#Quantile
qgeom(p, prob)
#Generazione casuale di numeri
rgeom(n, prob)
x e q: vettori di quantili;
p: vettore di probabilit`a;
n: numero di osservazioni;
prob: probabilit`a di successo in ogni prova.

(Corso di statistica)

Analisi dei dati - R. Massari

78 / 96

VARIABILI CASUALI

Variabili casuali discrete

Distribuzione di Poisson, di parametro

#Densit`
a
dpois(x, lambda)
#Funzione di ripartizione
ppois(q, lambda)
#Quantile
qpois(p, lambda)
#Generazione casuale di numeri
rpois(n, lambda)
x e q: vettori di quantili;
p: vettore di probabilit`a;
n: numero di osservazioni;
lambda: media, non negativa, della distribuzione.

(Corso di statistica)

Analisi dei dati - R. Massari

79 / 96

VARIABILI CASUALI

Variabili casuali continue

Distribuzione esponenziale
#Densit`
a
dexp(x, rate)
#Funzione di ripartizione
pexp(q, rate)
#Quantile
qexp(p, rate)
#Generazione casuale di numeri
rexp(n, rate)
x e q: vettori di quantili;
p: vettore di probabilit`a;
n: numero di osservazioni;
rate: reciproco della media della distribuzione. Se non viene specificato
alcun valore rate = 1.

(Corso di statistica)

Analisi dei dati - R. Massari

80 / 96

VARIABILI CASUALI

Variabili casuali continue

Distribuzione normale
#Densit`
a
dnorm(x, mean, sd)
#Funzione di ripartizione
pnorm(q, mean, sd)
#Quantile
qnorm(p, mean, sd)
#Generazione casuale di numeri
rnorm(n, mean, sd)
x e q: vettori di quantili;
p: vettore di probabilit`a;
n: numero di osservazioni;
mean: media della distribuzione. Se non viene specificato alcun valore mean
= 1.
sd: errore standard della distribuzione. Se non viene specificato alcun valore
sd = 0.
(Corso di statistica)

Analisi dei dati - R. Massari

81 / 96

VARIABILI CASUALI

Variabili casuali continue

Distribuzione t di Student

#Densit`
a
dt(x, df)
#Funzione di ripartizione
pt(q, df)
#Quantile
qt(p, df)
#Generazione casuale di numeri
rt(n, df)
x e q: vettori di quantili;
p: vettore di probabilit`a;
n: numero di osservazioni;
df: numero di gradi di libert`a.

(Corso di statistica)

Analisi dei dati - R. Massari

82 / 96

VARIABILI CASUALI

Variabili casuali continue

Distribuzione 2

#Densit`
a
dchisq(x, df)
#Funzione di ripartizione
pchisq(q, df)
#Quantile
qchisq(p, df)
#Generazione casuale di numeri
rchisq(n, df)
x e q: vettori di quantili;
p: vettore di probabilit`a;
n: numero di osservazioni;
df: numero di gradi di libert`a.

(Corso di statistica)

Analisi dei dati - R. Massari

83 / 96

VARIABILI CASUALI

Variabili casuali continue

Distribuzione F di Fisher
#Densit`
a
df(x, df1, df2)
#Funzione di ripartizione
pf(q, df1, df2)
#Quantile
qf(p, df1, df2)
#Generazione casuale di numeri
rf(n, df1, df2)
x e q: vettori di quantili;
p: vettore di probabilit`a;
n: numero di osservazioni;
df1, df2: numero di gradi di libert`a a numeratore e a denominatore,
rispettivamente.

(Corso di statistica)

Analisi dei dati - R. Massari

84 / 96

VARIABILI CASUALI

Esempi

Alcuni esempi

dbinom(3, 10, 0.3)


[1] 0.267
dpois(0, lambda = 3)
[1] 0.0498
pnorm(1.64, mean = 0, sd = 1)
[1] 0.95
qnorm(0.05, mean = 0, sd = 1)
[1] -1.64
qnorm(0.95,mean = 0, sd = 1)
[1] 1.64

(Corso di statistica)

Analisi dei dati - R. Massari

85 / 96

VARIABILI CASUALI

Esempi

Alcuni esempi/2

qt(0.05, df = 4)
-2.13
rchisq(2, df = 4)
[1] 1.86 3.68
r <- rnorm(10, mean = 4, sd = 4)
r
[1] -4.62 3.61 9.27 3.03 2.78
[6] 6.33 4.38 9.58 5.19 -2.84

(Corso di statistica)

Analisi dei dati - R. Massari

86 / 96

VARIABILI CASUALI

Grafici variabili discrete

Poisson
k <- 0:10
p <- dpois(k, 2)
plot(k, p)

0.20

0.25

0.15

0.10

0.05

0.00

10

(Corso di statistica)

Analisi dei dati - R. Massari

87 / 96

VARIABILI CASUALI

Grafici variabili discrete

Poisson/2

0.00

0.05

0.10

0.15

0.20

0.25

plot(k , p, type = "h")

10

k
(Corso di statistica)

Analisi dei dati - R. Massari

88 / 96

VARIABILI CASUALI

Grafici variabili discrete

Poisson/3

0.00

0.05

0.10

0.15

0.20

0.25

plot(k, p, type = "h", lwd = 10)

10

k
(Corso di statistica)

Analisi dei dati - R. Massari

89 / 96

VARIABILI CASUALI

Grafici variabili continue

Normale standardizzata

0.0

0.1

0.2

0.3

0.4

curve(dnorm(x, mean = 0, sd = 1), 5, 5)

x
(Corso di statistica)

Analisi dei dati - R. Massari

90 / 96

VARIABILI CASUALI

Grafici variabili continue

0.00

0.05

0.10

0.15

curve(dchisq(x, df = 4), 0, 10)

10

x
(Corso di statistica)

Analisi dei dati - R. Massari

91 / 96

Test di ipotesi e intervalli di confidenza

La funzione t.test

La funzione t.test permette:


1
2

di costruire un intervallo di confidenza per la media;


di eseguire test di ipotesi sia su un singolo campione, sia per il confronto tra
due campioni.

La sintassi di base della funzione `e:


t.test(x, y = NULL, mu, alternative, conf.level)

(Corso di statistica)

Analisi dei dati - R. Massari

92 / 96

Test di ipotesi e intervalli di confidenza

Argomenti della funzione

I principali argomenti della funzione sono:


1
2

3
4

x, vettore di dati;
y, vettore (opzionale) di dati, quando si vuole effettuare il confronto tra due
campioni;
 `e lipotesi nulla sul valore della media. Di default mu = 0;
mu
alternative serve a specificare lipotesi alternativa. Pu`
o essere
"two.sided", "less" o "greater";
conf.level `e il livello di confidenza dellintervallo. Di default `e posto uguale
a 0.95.

(Corso di statistica)

Analisi dei dati - R. Massari

93 / 96

Test di ipotesi e intervalli di confidenza

Esempio

exams <- read.table("exams.txt", header = TRUE)


exams
Economia.I Economia.II Statistica.I Statistica.II Marketing
Chiara
18
20
21
19
26
Piero
30
30
30
30
30
Sabrina
23
25
22
22
28
Elena
21
22
25
24
28
Sara
30
30
30
30
26
Marta
27
30
26
28
24
attach(exams)
#permette di accedere direttamente alle variabili
#alla fine dellesercizio scivere
#detach(exams)

(Corso di statistica)

Analisi dei dati - R. Massari

94 / 96

Test di ipotesi e intervalli di confidenza

Esempio: intervallo di confidenza

t.test(Economia.I, conf.lev = 0.95)


One Sample t-test
data: Economia.I
t = 12.3, df = 5, p-value = 6.356e-05
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
19.6 30.0
sample estimates:
mean of x
24.8

(Corso di statistica)

Analisi dei dati - R. Massari

95 / 96

Test di ipotesi e intervalli di confidenza

Esempio: test di ipotesi

t.test(Economia.I, Economia.II, alternative = "greater")


Welch Two Sample t-test
data: Economia.I and Economia.II
t = -0.488, df = 9.9, p-value = 0.682
alternative hypothesis: true difference in means is greater than 0
95 percent confidence interval:
-6.29
Inf
sample estimates:
mean of x mean of y
24.8
26.2

(Corso di statistica)

Analisi dei dati - R. Massari

96 / 96