Estratto del documento

Materiale didattico per i laboratori di

MODELLI STATISTICI I

Università degli Studi di Padova

a cura di:

Francesco Pauli, Laura Ventura, Gianfranco Adimari,

Alessandra R. Brazzale

Nota

Questo materiale, a parte le lievi rielaborazioni dovute ad A. R. Brazzale, è stato

gentilmente fornito da Monica Chiogna, Alessandra Salvan e Nicola Sartori. Si rin-

graziano Adelchi Azzalini e Carlo Gaetan per avere fornito alcuni dataset e Federica

Giummolè per aver contribuito alla stesura di alcune parti e per la attenta lettura

del materiale originale. i

ii

Sommario

0 Richiami di 1

R

0.1 Funzioni e comandi elementari . . . . . . . . . . . . . . . . . . . . . . 1

0.1.1 Spazio di lavoro e documentazione . . . . . . . . . . . . . . . 1

0.1.2 Operazioni elementari . . . . . . . . . . . . . . . . . . . . . . 4

0.2 Vettori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

0.2.1 Creazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

0.2.2 Estrazione di elementi . . . . . . . . . . . . . . . . . . . . . . 8

0.3 Matrici e array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

0.4 Tipologie di dati e liste . . . . . . . . . . . . . . . . . . . . . . . . . . 12

0.5 Distribuzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

0.5.1 La distribuzione normale . . . . . . . . . . . . . . . . . . . . . 15

0.5.2 Adattamento ad una distribuzione normale . . . . . . . . . . . 16

0.6 Data frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

1 La regressione con R 31

1.1 Analisi dei dati TVADV2.DAT . . . . . . . . . . . . . . . . . . . . . . 31

1.1.1 La regressione fatta “a mano” . . . . . . . . . . . . . . . . . . 31

1.1.2 La funzione . . . . . . . . . . . . . . . . . . . . . . . . . 40

lm()

1.2 Analisi dei dati CIPOLLE.DAT . . . . . . . . . . . . . . . . . . . . . 47

1.3 Applicazione: I dati CONSUMI.DAT . . . . . . . . . . . . . . . . . . 50

2 Costruzione del modello e analisi dei residui 53

2.1 Analisi dei dati CEMENT.DAT . . . . . . . . . . . . . . . . . . . . . 53

2.2 Analisi dei dati WINDMILL.DAT . . . . . . . . . . . . . . . . . . . . 58

2.3 Applicazione: I dati TVADV2.DAT . . . . . . . . . . . . . . . . . . . 63

2.4 Applicazione: I dati AUTO2.DAT . . . . . . . . . . . . . . . . . . . . 64

3 Test t di Student 67

3.1 Analisi dei dati CIPOLLE.DAT . . . . . . . . . . . . . . . . . . . . . 67

3.2 Applicazione: I dati CONFEZIONI.DAT . . . . . . . . . . . . . . . . 72

3.3 Analisi dei dati CAPTO.DAT . . . . . . . . . . . . . . . . . . . . . . 72

3.4 Applicazione: I dati CASE2.DAT . . . . . . . . . . . . . . . . . . . . 75

4 Il modello di regressione lineare multipla 77

4.1 La regressione polinomiale . . . . . . . . . . . . . . . . . . . . . . . . 77

4.1.1 Analisi dei dati WINDMILL.DAT . . . . . . . . . . . . . . . . 77

4.1.2 Applicazione: I dati TVADV2.DAT . . . . . . . . . . . . . . . 84

iii

4.2 Valori anomali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

4.2.1 Analisi dei dati HILLS.DAT . . . . . . . . . . . . . . . . . . . 87

5 Selezione del modello 95

5.1 Analisi dei dati GASOLINE.DAT . . . . . . . . . . . . . . . . . . . . 95

5.2 Analisi dei dati USCRIME.DAT . . . . . . . . . . . . . . . . . . . . . 106

6 Analisi della varianza ad un fattore 127

6.1 Analisi dei dati STURDY.DAT . . . . . . . . . . . . . . . . . . . . . 127

6.2 Analisi dei dati RATS.DAT . . . . . . . . . . . . . . . . . . . . . . . 133

6.3 Applicazione: I dati VENDITE.DAT . . . . . . . . . . . . . . . . . . 137

6.4 Analisi dei dati MORLEY.DAT . . . . . . . . . . . . . . . . . . . . . 137

7 Analisi della varianza a due fattori 143

7.1 Analisi dei dati PENICILLIN.DAT . . . . . . . . . . . . . . . . . . . 143

7.2 Analisi dei dati RATS.DAT . . . . . . . . . . . . . . . . . . . . . . . 145

7.3 Applicazione: I dati NAILS.DAT . . . . . . . . . . . . . . . . . . . . 152

8 Analisi della covarianza 155

8.1 Analisi dei dati CATS.DAT . . . . . . . . . . . . . . . . . . . . . . . 155

8.2 Analisi dei dati INSULATE.DAT . . . . . . . . . . . . . . . . . . . . 162

8.3 Applicazione: I dati CIPOLLE.DAT . . . . . . . . . . . . . . . . . . 171

9 Il modello di regressione di Poisson 175

9.1 Analisi dei dati STRESS.TXT . . . . . . . . . . . . . . . . . . . . . . 175

9.2 Applicazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

9.2.1 I dati MUSCOLO.TXT . . . . . . . . . . . . . . . . . . . . . 180

9.2.2 I dati STOFFA.TXT . . . . . . . . . . . . . . . . . . . . . . . 180

10 Il modello di regressione logistica 183

10.1 Analisi dei dati CHALLENGER.DAT . . . . . . . . . . . . . . . . . . 183

10.2 Analisi dei dati ICUDATA.DAT . . . . . . . . . . . . . . . . . . . . . 187

10.3 Applicazione: I dati BIRTHWT[MASS] . . . . . . . . . . . . . . . . . 191

Appendice 197

A Adesso tocca a voi! 197

A.1 I dati AUTO.DAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

A.2 I dati AUTO2.DAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

A.3 I dati CARPRICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

A.4 I dati CASE2.DAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

A.5 I dati CONFEZIONI.DAT . . . . . . . . . . . . . . . . . . . . . . . . 199

A.6 I dati CONSUMI.DAT . . . . . . . . . . . . . . . . . . . . . . . . . . 200

A.7 I dati MUSCOLO.TXT . . . . . . . . . . . . . . . . . . . . . . . . . . 200

A.8 I dati NAILS.DAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

A.9 I dati STOFFA.TXT . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

A.10 I dati VENDITE.DAT . . . . . . . . . . . . . . . . . . . . . . . . . . 201

Laboratorio 0

Richiami di R

0.1 Funzioni e comandi elementari

è un ambiente di software integrato per la manipolazione di dati, il calcolo e la

R

rappresentazione grafica. Per iniziare una sessione, è necessario effettuare un doppio

click di mouse sulla icona di Si aprirà in questo modo la finestra di comando e

R.

verrà proposto il prompt di comando:

>

0.1.1 Spazio di lavoro e documentazione

Le entità che crea durante una sessione di lavoro sono chiamate oggetti. Questi

R

possono essere numeri, stringhe, vettori, matrici, funzioni, o strutture più generali

costruite da questi elementi. Tali oggetti sono salvati per nome e immagazzinati in

un’area dedicata detta workspace o spazio di lavoro. In ogni momento, è possibile

controllare gli oggetti disponibili nello spazio di lavoro mediante il comando

> ls()

Per eliminare un oggetto dallo spazio di lavoro, si usa la funzione La funzione

rm().

prevede come argomento il nome dell’oggetto che si vuole eliminare. Supponendo

che sia presente un oggetto di nome è possibile eliminarlo con il comando

thing,

> rm(thing)

A questo punto, l’oggetto di nome non sarà più presente nel workspace.

thing

> thing

Error: Object thing not found

Se si vogliono eliminare più oggetti, bisogna elencarli separati da virgole.

> rm(thing1, thing2) 1

2 Laboratorio 0. Richiami di R

Quando si inizia una nuova sessione di lavoro, è opportuno rimuovere gli oggetti

esistenti nell’area di lavoro. Un comando utile a tale scopo è

> rm(list = ls())

o, in alternativa, rm(list=objects()).

È possibile memorizzare lo spazio di lavoro con la funzione

> save.image() 1

Questa salva tutti gli oggetti contenuti nel workspace in un file binario La

".Rdata".

scelta di default può essere modificata specificando nella chiamata a save.image()

il nome, ad esempio che si desidera dare al file.

"ilmiofile.Rdata",

> save.image(file = "ilmiofile.Rdata")

Lo spazio di lavoro originale può essere ripristinato con l’ausilio della funzione

> load(".Rdata")

o, nel caso si abbia optato per un nome diverso dal default,

> load("ilmiofile.Rdata")

Le funzioni

> savehistory()

> loadhistory()

consentono di salvare in formato ASCII e ricaricare in la cronologia dei comandi

R

inviati. L’argomento consente di specificare un nome diverso dalla scelta di

file

1

default che è .

".Rhistory"

Infine, la funzione consente di cambiare cartella di lavoro. È buona norma

setwd()

dedicare una cartella distinta ad ogni progetto sui cui si sta lavorando onde evitare

sovraposizioni dei dati. La cartella di lavoro attuale può essere visualizzata con il

comando getwd().

Il menù delle distribuzioni di per Mac OS X (e per MS Windows) prevede degli

R

appositi comandi per il salvataggio e il caricamento dello spazio di lavoro e/o della

cronologia dei comandi e per il cambiamento della cartella di lavoro.

Per ottenere informazioni su una funzione di si può utilizzare la funzione

R help(),

specificando come argomento il nome della funzione di interesse, ad esempio,

> help(save.image)

oppure, più velocemente,

`?`(save.image)

> 1 Vale anche per il sistema operativo MS Windows, con diverso nome del file di salvataggio.

0.1. Funzioni e comandi elementari 3

Oltre a e mette a disposizione diverse altre funzioni d’aiuto. Le funzioni

help() ?, R

e tornano utili qualora non ci si ricordasse più il nome

apropos() help.search()

dell’oggetto che ci interessa.

> apropos("image")

[1] "image" "image.default"

[3] "save.image" "saveNamespaceImage"

[5] "sys.load.image" "sys.save.image"

> help.search("image")

Con

> help.start()

l’help in linea viene attivato in un browser La chiamata alla funzione

www. example()

ci illustra l’utilizzo di una particolare funzione.

> example(save.image)

sav.mg> x <- stats::runif(20)

sav.mg> y <- list(a = 1, b = TRUE, c = "oops")

sav.mg> save(x, y, file = "xy.Rdata")

sav.mg> save.image()

sav.mg> unlink("xy.Rdata")

sav.mg> unlink(".RData")

sav.mg> # set save defaults using option:

sav.mg> options(save.defaults=list(ascii=TRUE, safe=FALSE))

sav.mg> save.image()

sav.mg> unlink(".RData")

Infine, la funzione ci fornisce delle dimostrazioni per una serie di argomenti.

demo()

> demo()

> demo(graphics)

Per terminare una sessione aperta, si usa la funzione Alla chiusura della ses-

q().

sione, è possibile salvare gli oggetti disponibili nello spazio di lavoro, se si inten-

R

de riutilizzali nelle sessioni di lavoro future. Per salvare tali oggetti, è necessario

rispondere affermativamente alla domanda proposta in chiusura da R.

4 Laboratorio 0. Richiami di R

0.1.2 Operazioni elementari

I comandi elementari consistono in espressioni o assegnazioni. Se il comando è una

espressione, fornisce il risultato della valutazione, come è illustrato negli esempi

R

che seguono.

> 12 > 10

[1] TRUE

> 1 + 2 + 3

[1] 6

> 2 + 3 * 4

[1] 14

> 3/2 + 1

[1] 2.5

> 2 + (3 * 4)

[1] 14

> (2 + 3) * 4

[1] 20

> 4 * 3^3

[1] 108

Tutte le funzioni matematiche generalmente presenti su una calcolatrice tascabile

sono disponibili in sotto forma di funzioni di base, richiamate nella tabella che

R

segue.

Funzione Funzione matematica

R radice quadrata

sqrt valore assoluto

abs funzioni trigonometriche

sin,cos,tan funzioni trigonometriche inverse

asin,acos,atan exponenziale e logaritmo naturale

exp,log

L’uso di tali funzioni, che può essere anche annidato, è elementare.

> sqrt(2)

[1] 1.414214

0.1. Funzioni e comandi elementari 5

> sin(3.14159)

[1] 2.65359e-06

> sin(pi)

[1] 1.224647e-16

> sqrt(sin(45 * pi/180))

[1] 0.8408964

Una assegnazione valuta una espressione salvandone l’esito in un oggetto dotato di

nome. L’assegnazione viene effettuata mediante il simbolo , oppure il simbolo

<-

Si può anche assegnare da sinistra verso destra con il simbolo Il risultato

=. ->.

di una assegnazione non è automaticamente mostrato. L’utente può visualizzarlo

richiamando il nome dell’oggetto. Gli oggetti creati mediante un’assegnazione pos-

sono essere riutilizzati in espressioni e assegnazioni successive, come mostrato negli

esempi che seguono.

> x <- sqrt(2)

> x

[1] 1.414214

> x^3

[1] 2.828427

> y <- x^3

> x <- 10

> x > 10

[1] FALSE

> x <= 10

[1] TRUE

> tf <- x > 10

> tf

[1] FALSE

6 Laboratorio 0. Richiami di R

0.2 Vettori

0.2.1 Creazione

Per creare un vettore, si usa la funzione c():

> x <- c(2, 3, 5, 7, 11)

> x

[1] 2 3 5 7 11

Se il vettore contiene tanti elementi, può essere più conveniente usare la funzione

che consente di introdurli uno ad uno.

scan(),

> x <- scan()

1: 1

2: 6

3: 3

4: 4

5:

> x

[1] 1 6 3 4

>

> x <- scan()

1: 23 34 32

4: 33 88 44

7:

Per creare una successione di numeri da a si può usare il comando

a b, a:b.

> xx <- 1:10

> xx

[1] 1 2 3 4 5 6 7 8 9 10

> xx <- 100:1

> xx

[1] 100 99 98 97 96 95 94 93 92 91 90 89 88

[14] 87 86 85 84 83 82 81 80 79 78 77 76 75

[27] 74 73 72 71 70 69 68 67 66 65 64 63 62

[40] 61 60 59 58 57 56 55 54 53 52 51 50 49

[53] 48 47 46 45 44 43 42 41 40 39 38 37 36

[66] 35 34 33 32 31 30 29 28 27 26 25 24 23

[79] 22 21 20 19 18 17 16 15 14 13 12 11 10

[92] 9 8 7 6 5 4 3 2 1

0.2. Vettori 7

Lo stesso risultato può essere ottenuto tramite la funzione seq().

> xx <- seq(from = 100, to = 1)

> xx

[1] 100 99 98 97 96 95 94 93 92 91 90 89 88

[14] 87 86 85 84 83 82 81 80 79 78 77 76 75

[27] 74 73 72 71 70 69 68 67 66 65 64 63 62

[40] 61 60 59 58 57 56 55 54 53 52 51 50 49

[53] 48 47 46 45 44 43 42 41 40 39 38 37 36

[66] 35 34 33 32 31 30 29 28 27 26 25 24 23

[79] 22 21 20 19 18 17 16 15 14 13 12 11 10

[92] 9 8 7 6 5 4 3 2 1

Possono anche essere creati vettori che contengono elementi ripetuti.

> rep(2, times = 3)

[1] 2 2 2

> rep(2, 3)

[1] 2 2 2

> a = c(rep(2, 3), 4, 5, rep(1, 5))

> a

[1] 2 2 2 4 5 1 1 1 1 1

Ai vettori può essere applicata l’aritmetica di base e le operazioni logiche che si

applicano agli scalari.

> x <- 1:10

> x * 2

[1] 2 4 6 8 10 12 14 16 18 20

> x * x

[1] 1 4 9 16 25 36 49 64 81 100

> x > 5

[1] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE

[10] TRUE

Da notare che lavora seguendo una logica di tipo vettoriale. Ovvero, se l’oggetto

R

di un’operazione è un vettore, l’operazione verrà eseguita elemento per elemento.

Alcune funzioni utili per la manipolazione di vettori sono elencate di seguito.

8 Laboratorio 0. Richiami di R

> x <- 3:26

> length(x)

[1] 24

> max(x)

[1] 26

> min(x)

[1] 3

> sum(x)

[1] 348

> prod(x)

[1] 2.016457e+26

0.2.2 Estrazione di elementi

Gli elementi di un vettore possono essere estratti usando le parentesi quadre [ ] ed

indicando tra parentesi la posizione dell’elemento che si vuole estrarre.

> xx[7]

[1] 94

Si possono estrarre anche più elementi contemporaneamente.

> xx[c(2, 3, 5, 7, 11)]

[1] 99 98 96 94 90

> xx[85:91]

[1] 16 15 14 13 12 11 10

> xx[91:85]

[1] 10 11 12 13 14 15 16

> xx[c(1:5, 8:10)]

[1] 100 99 98 97 96 93 92 91

> xx[c(1, 1, 1, 1, 2, 2, 2, 2)]

[1] 100 100 100 100 99 99 99 99

0.3. Matrici e array 9

Ovviamente, i sottoinsiemi di elementi estratti possono essere salvati in nuovi vettori.

> yy <- xx[c(1, 2, 4, 8, 16, 32, 64)]

> yy

[1] 100 99 97 93 85 69 37

Se gli indicatori entro le parentesi quadre sono preceduti dal segno negativo, gli

elementi corrispondenti vengono eliminati dal vettore.

> x <- c(1, 2, 4, 8, 16, 32)

> x

[1] 1 2 4 8 16 32

> x[-4]

[1] 1 2 4 16 32

0.3 Matrici e array

Le matrici vengono create mediante la funzione Nella sua forma più

matrix().

semplice, l’uso della funzione prevede di specificare un vettore contenente gli elementi

della matrice e il numero di righe o di colonne della matrice.

> x <- matrix(c(2, 3, 5, 7, 11, 13), nrow = 3)

> x [,1] [,2]

[1,] 2 7

[2,] 3 11

[3,] 5 13

> x <- matrix(c(2, 3, 5, 7, 11, 13), ncol = 2)

> x [,1] [,2]

[1,] 2 7

[2,] 3 11

[3,] 5 13

Da notare che, per default, le matrici sono formate inserendo i vari elementi per

colonna.

Ovviamente, la matrice può essere acquisita da un file esterno. Si supponga, per

esempio, che il file abbia il seguente contenuto.

matdata

10 Laboratorio 0. Richiami di R

1,24,32,36,33

2,16,44,34,33

3,20,31,43,32

4,23,35,37,35

5,27,40,40,31

6,19,43,32,37

Il contenuto del file può essere acquisito ed assegnato ad una matrice 6×5 con i

comandi:

> x2 <- scan("matdata", sep = ",")

> mx <- matrix(x2, ncol = 5, byrow = TRUE)

> mx [,1] [,2] [,3] [,4] [,5]

[1,] 1 24 32 36 33

[2,] 2 16 44 34 33

[3,] 3 20 31 43 32

[4,] 4 23 35 37 35

[5,] 5 27 40 40 31

[6,] 6 19 43 32 37

L’argomento specifica che il contenuto deve essere acquisito per riga e

byrow=TRUE

non per colonna.

La funzione restituisce la dimensione (numero di righe e numero di colonne)

dim()

della matrice indicata come argomento.

> dim(mx)

[1] 6 5

Come per i vettori, gli elementi di una matrice possono essere estratti mediante l’uso

delle parentesi Per estrarre da una matrice un elemento, bisogna specificarne la

[].

posizione di riga e di colonna.

> x[2, 1]

[1] 3

> x[2, 2]

[1] 11

Per estrarre una intera riga o colonna, è sufficiente specificarne la posizione.

> x[, 1]

[1] 2 3 5

0.3. Matrici e array 11

> x[3, ]

[1] 5 13

Possono essere estratti sottoinsiemi di righe e/o colonne.

> x <- matrix(1:1

Anteprima
Vedrai una selezione di 10 pagine su 207
Appunti informatica Pag. 1 Appunti informatica Pag. 2
Anteprima di 10 pagg. su 207.
Scarica il documento per vederlo tutto.
Appunti informatica Pag. 6
Anteprima di 10 pagg. su 207.
Scarica il documento per vederlo tutto.
Appunti informatica Pag. 11
Anteprima di 10 pagg. su 207.
Scarica il documento per vederlo tutto.
Appunti informatica Pag. 16
Anteprima di 10 pagg. su 207.
Scarica il documento per vederlo tutto.
Appunti informatica Pag. 21
Anteprima di 10 pagg. su 207.
Scarica il documento per vederlo tutto.
Appunti informatica Pag. 26
Anteprima di 10 pagg. su 207.
Scarica il documento per vederlo tutto.
Appunti informatica Pag. 31
Anteprima di 10 pagg. su 207.
Scarica il documento per vederlo tutto.
Appunti informatica Pag. 36
Anteprima di 10 pagg. su 207.
Scarica il documento per vederlo tutto.
Appunti informatica Pag. 41
1 su 207
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Eleonora2106 di informazioni apprese con la frequenza delle lezioni di Elementi di informatica per l'economia e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi Ca' Foscari di Venezia o del prof Pizzi Claudio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community