Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2016/17
Corso di laurea in Psicologia di comunità (M4B)
1
2
Nelle pagine che seguono ci sono alcuni esercizi da svolgere utilizzando R inerenti ai temi
del corso. A pag. 185 è riportato l’elenco delle funzioni che possono essere utili per le
soluzioni. Si tenga presente che, oltre a svolgere gli esercizi utilizzando R, è molto impor-
tante imparare ad interpretare i grafici ed i risultati ottenuti. Anche se non esplicitamente
richiesto, si formulino sempre le ipotesi relative ai test statistici eseguiti.
I file dati cui si fa riferimento sono elencati nell’indice analitico e possono essere scaricati
alla pagina Moodle del corso:
https://elearning.unipd.it/scuolapsicologia/
Per ottimizzare il tempo di scaricamento, tutti i file dati utilizzati per il corso e per
gli esercizi sono compressi in formato zip. Pertanto, una volta scaricato il file è necessario
decomprimere i vari file con un apposito programma (Es. winzip).
1 INTRODUZIONE A R 3
1 INTRODUZIONE A R
Esercizio 1.1
[1] 343
10+7
2. log(2)
> (10+7)/log(2)
[1] 24.53
q
3. ( 20×π
9 )
5
> sqrt((20*pi/9)^5)
[1] 128.8
2 1 3
4. 1 − 3 − 6 − 2− 4
> 1-((2/3-1/6)-(2-3/4))
[1] 1.75
4 8 −3
( 65 ) (− 103 ) ( 15 )
2
5. −2
e5 ( 38 )
> ((6/5)^4*(-10/3)^8*(2/15)^(-3))/(exp(5)*(3/8)^(-2))
[1] 12634
Esercizio 1.2
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
[31] 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
[61] 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
> 1:90/90
[1] 0.01111 0.02222 0.03333 0.04444 0.05556 0.06667 0.07778 0.08889 0.10000 0.11111 0.12222
[12] 0.13333 0.14444 0.15556 0.16667 0.17778 0.18889 0.20000 0.21111 0.22222 0.23333 0.24444
[23] 0.25556 0.26667 0.27778 0.28889 0.30000 0.31111 0.32222 0.33333 0.34444 0.35556 0.36667
[34] 0.37778 0.38889 0.40000 0.41111 0.42222 0.43333 0.44444 0.45556 0.46667 0.47778 0.48889
[45] 0.50000 0.51111 0.52222 0.53333 0.54444 0.55556 0.56667 0.57778 0.58889 0.60000 0.61111
[56] 0.62222 0.63333 0.64444 0.65556 0.66667 0.67778 0.68889 0.70000 0.71111 0.72222 0.73333
[67] 0.74444 0.75556 0.76667 0.77778 0.78889 0.80000 0.81111 0.82222 0.83333 0.84444 0.85556
[78] 0.86667 0.87778 0.88889 0.90000 0.91111 0.92222 0.93333 0.94444 0.95556 0.96667 0.97778
[89] 0.98889 1.00000
[1] 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90
[1] 39
[1] 1395
> mean(S)
[1] 46.5
> var(S)
[1] 697.5
somme
3.0 6.0 9.0 12.0 15.0 45.0
18.0 21.0 24.0 27.0 30.0 120.0
33.0 36.0 39.0 42.0 45.0 195.0
48.0 51.0 54.0 57.0 60.0 270.0
63.0 66.0 69.0 72.0 75.0 345.0
78.0 81.0 84.0 87.0 90.0 420.0
medie 40.5 43.5 46.5 49.5 52.5 232.5
80
80
6
Sample Quantiles
5
60
60
Frequency
40
40
3
2
20
20
1
0
0 40 80 -2 0 1 2
S Theoretical Quantiles
Esercizio 1.3
[3,] 1 5 3 5
[4,] 5 1 2 5
[5,] 1 5 3 1
[6,] 3 3 5 2
[7,] 3 5 2 2
[8,] 5 2 2 3
[9,] 3 3 5 1
[10,] 1 5 2 5
[1] 3.50 3.00 3.50 3.25 2.50 3.25 3.00 3.00 3.00 3.25
> apply(A,2,mean)
1 2 3 4 5
Esercizio 1.4
Sara è una ricercatrice che ha rilevato dei dati relativi agli studenti di un corso di Statistica
della laurea magistrale. I dati sono organizzati in una apposita tabella e salvati su tre file
uguali (Sara dataset ma con diversi formati: testo (txt), excel (xls) e SPSS (sav)1 .
1
Dati da Welkowitz, Cohen & Ewen; http://www.psych.nyu.edu/cohen/introwelk.html
1 INTRODUZIONE A R 7
• auto-misurazione del battito cardiaco in condizioni normali (hr base), prima del test
(hr pre) e dopo il test (hr post)
• punteggi ad un test sull’ansia in condizioni normali (anx base), prima del test
(anx pre) e dopo il test (anx post)
> str(xls)
1 INTRODUZIONE A R 8
> str(sav)
gender major cond phobia prevmath mathquiz statquiz hr_base hr_pre hr_post anx_base
57 Female Econ Impossible 2 2 31 8 74 78 82 27
anx_pre anx_post
57 21 24
[1] 71 73 69 72 71 70 71 77 73 78 72 74 73 72 76 68 73 74 77 78 70 74 74 75 76 73 71 71 74 73
[31] 74 76 76 75 69 71 77 78 67 78 77 69 71 71 75 76 74 74 78 72 71 68 72 72 76 73 74 72 74 73
[61] 70 73 80 67 65 71 72 70 69 69 68 69 71 68 68 76 70 68 69 76 71 72 76 76 72 68 74 64 70 71
[91] 72 71 73 72 70 74 70 65 69 72
Esercizio 1.5
In un reparto psichiatrico di un ospedale del nord Italia sono ricoverati 30 pazienti. Per
ciascuno di essi sono state rilevate le seguenti informazioni: regione di residenza, classe
1 INTRODUZIONE A R 9
sociale (definita come bassa, media e alta), punteggio su una scala di ansia (0 = poco
ansioso, 7 = molto ansioso), età, tipo di disturbo presentato. I dati sono raccolti nel file
pazienti.xls2 .
1. Si importi il file in R.
> pazienti <- read.xls(paste(datadir,"pazienti.xls",sep=""))
> table(cut(pazienti$ansia,quantile(pazienti$ansia)))
> table(cut(pazienti$eta,c(0,40,50,60,100)))
4. Si produca la tabella di frequenze cumulate (relative) per le variabili per cui abbia
senso.
> classi <- levels(pazienti$cl.sociale)
> pazienti$cl.sociale <- ordered(pazienti$cl.sociale,levels=c("Bassa","Media","Alta"))
> cumsum(table(pazienti$cl.sociale)/length(pazienti$cl.sociale))
> cumsum(table(pazienti$ansia))/length(pazienti$ansia)
0.7 0.8 1.5 1.7 1.8 3.1 3.3 3.4 3.5 3.8 4.2
0.03333 0.06667 0.10000 0.13333 0.16667 0.20000 0.23333 0.26667 0.33333 0.43333 0.50000
4.5 4.6 4.7 5.1 5.4 5.5 5.8 6 6.1 6.2 6.5
0.56667 0.60000 0.66667 0.70000 0.76667 0.80000 0.83333 0.86667 0.90000 0.93333 0.96667
6.7
1.00000
> cumsum(table(pazienti$eta))/length(pazienti$eta)
21 29 32 35 36 37 39 41 42 43 44
0.03333 0.06667 0.10000 0.13333 0.20000 0.23333 0.26667 0.30000 0.33333 0.36667 0.40000
45 47 48 50 52 53 54 55 56 57 58
0.46667 0.50000 0.56667 0.60000 0.63333 0.66667 0.70000 0.73333 0.76667 0.83333 0.86667
63 65 67 70
0.90000 0.93333 0.96667 1.00000
2
Dati da Areni, Scalisi & Bosco, 2004
1 INTRODUZIONE A R 10
12
6
8
5
6
0 2 4 6 8
4
4
3
2
2
1
0
età disturbo
20 30 40 50 60 70
8 10
6
4
2
0
6. Si producano i grafici delle cumulate empiriche per le variabili per cui abbia senso.
> par(mfrow=c(1,2),mar=c(3,3,2,1),cex=CEX)
> plot(cumsum(table(pazienti$ansia)),type="s",main="ansia")
> plot(cumsum(table(pazienti$eta)),type="s",main="et\\`a")
ansia età
30
30
cumsum(table(pazienti$ansia))
cumsum(table(pazienti$eta))
25
25
20
20
15
15
10
10
5
5
0
5 10 15 20 0 5 10 15 20 25
Esercizio 1.6
> quantile(pazienti$ansia,c(.25,.5,.75))
> quantile(pazienti$eta,c(.25,.5,.75))
[1] 0.2667
$regione
[1] "Piemonte"
$cl.sociale
[1] "Bassa"
$ansia
[1] "3.8"
$eta
[1] "36" "45" "48" "57"
$disturbo
[1] "nevrosi"
[1] "Media"
> apply(pazienti[,c("ansia","eta")],2,median)
ansia eta
4.35 47.50
ansia eta
4.16 47.50
1 INTRODUZIONE A R 12
ansia eta
1.644 11.682
Esercizio 1.7
ansia età
70
6
60
5
50
4
40
3
2
30
1
20
60
Sample Quantiles
Sample Quantiles
5
50
4
40
3
2
30
1
20
-2 -1 0 1 2 -2 -1 0 1 2
3. Si produca l’opportuno grafico per rappresentare le medie delle età dei soggetti (con
un indicatore di variabilità associato) in funzione del disturbo diagnosticato.
> library(Hmisc)
> mx <- tapply(pazienti$eta,list(pazienti$disturbo),mean)
> sx <- tapply(pazienti$eta,list(pazienti$disturbo),sd)
> par(mfrow=c(1,1),mar=c(3,3,1,1),cex=CEX)
1 INTRODUZIONE A R 13
> errbar(1:4,mx,(mx+sx),(mx-sx),axes=FALSE,xlab="disturbo",xlim=c(.5,4.5))
> axis(1,1:4,names(mx))
> axis(2); box()
60
50
mx
40
30
Esercizio 1.8
Il file healdrug.dat contiene i dati di una ricerca sulla cura della propria salute e la
propensione all’uso di farmaci (Hoffman & Fidell, 1979). Il campione è composto da
465 donne di età compresa tra 20 e 59 anni, residenti nella San Fernando Valley, Los
Angeles, nel Febbraio 1975. Le variabili considerate sono: timedrs (numero di visite
mediche), attdrug (propensione all’uso di farmaci), atthouse (propensione ai lavori do-
mestici), income (livello di reddito), emplmnt (status lavorativo), mstatus (stato civile),
race (gruppo etnico).
medie ds
timedrs 7.901 10.948
attdrug 7.686 1.156
atthouse 23.492 4.599
150
350
250
100
150
50
50
0
0 20 40 60 80 5 6 7 8 9 10
timedrs attdrug
timedrs attdrug
10
80
9
60
8
40
7
20
6
0
> ks.test(HD$timedrs,"pnorm",mean(HD$timedrs),sd(HD$timedrs))
data: HD$timedrs
D = 0.24, p-value <2e-16
alternative hypothesis: two-sided
> ks.test(HD$attdrug,"pnorm",mean(HD$attdrug),sd(HD$attdrug))
1 INTRODUZIONE A R 15
data: HD$attdrug
D = 0.18, p-value = 2e-13
alternative hypothesis: two-sided
3
Theoretical Quantiles
Theoretical Quantiles
2
2
1
1
0
0
-1
-1
-2
-2
-3
0 20 40 60 80 -3 5 6 7 8 9 10
Esercizio 1.9
0.06
0.04
0.04
Density
Density
0.02
0.02
0.00
0.00
reddito reddito
1 INTRODUZIONE A R 16
4. Si calcolino media e deviazione standard dei redditi separatamente per i due paesi.
> medie <- round(tapply(BV$reddito,list(BV$nazion),mean),3)
> ds <- round(tapply(BV$reddito,list(BV$nazion),sd),3)
> cbind(medie,ds)
medie ds
bra 20.18 48.50
ven 15.53 18.72
5. Si esegua un test di normalità sulla variabile reddito per ciascuno dei due gruppi
definendo l’ipotesi relativa al test.
> ks.test(BV$reddito[BV$nazion=="bra"],"pnorm",medie[1],ds[1])
> ks.test(BV$reddito[BV$nazion=="ven"],"pnorm",medie[2],ds[2])
6. Si producano i qq-plot per la variabile reddito nei due gruppi3 in un unico grafico
diviso in due parti (utilizzando il comando layout() oppure par()) e si salvi in un
file di formato jpeg.
Brasile Venezuela
80 100
Sample Quantiles
Sample Quantiles
250
60
150
40
20
0 50
-3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3
7. Si produca un grafico (unico) che illustri le cumulate empiriche della variabile reddito
nei due paesi.
3
Per uno dei due gruppi, il comando qqline() restituisce un messaggio di errore; si cerchi di capire il
perchè.
1 INTRODUZIONE A R 17
0.8
Fn(x)
0.4
bra
ven
0.0
> quantile(BV$reddito[BV$nazion=="ven"],c(.25,.5,.75))
Esercizio 1.10
In una ricerca sulla qualità percepita, vengono selezionate 5 stazioni sciistiche. In ciascuna
stazione viene selezionato un campione di soggetti sciatori, cui viene chiesto di dare una
valutazione ai costi degli impianti, le tipologie di servizi offerti, lo spessore e la qualità
generale della neve. I dati sono raccolti nel file sciatori.sav.
1. Si importi il file sciatori.sav in R.
> library(foreign)
> X <- read.spss(paste(datadir,"sciatori.sav",sep=""),to.data.frame=TRUE)
> cor(X[,2:5])
Theoretical Quantiles
costo tipo
1
1
-2
-2
20 40 60 80 20 30 40 50 60 70 80
Theoretical Quantiles
qualita spessore
1
1
-2
-2
0 20 40 60 80 0 20 40 60 80
Esercizio 1.11
1. Si utilizzi la funzione rnorm per generare 1000 dati con media 100 e deviazione
standard 15.
1 INTRODUZIONE A R 19
[1] 87.58
[1] 100.3
> mean(Y)
[1] 99.61
> sd(Y)
[1] 14.99
0.010
0.000
5. Si esegua un test di normalità sui valori generati definendo l’ipotesi relativa al test.
> ks.test(Y,"pnorm",100,15)
data: Y
D = 0.023, p-value = 0.7
alternative hypothesis: two-sided
1 INTRODUZIONE A R 20
140
140
120
120
Sample Quantiles
100
100
80
80
60
60
-3 -2 -1 0 1 2 3
7. Si produca il grafico della distribuzione cumulata empirica dei dati generati; succes-
sivamente di aggiunga al grafico la cumulata teorica utilizzando le funzioni curve()
e pnorm(). Quali considerazioni è possibile trarre dalla lettura di questo grafico?
0.8
p(Y < y)
0.4
0.0
Esercizio 1.12
Si ripetano tutti i punti dell’esercizio 1.11 generando solo 10 dati anzichè 1000.
Esercizio 1.13
Si ripetano tutti i punti dell’esercizio 1.11 utilizzando la funzione rchisq con due gradi di
libertà al posto della funzione rnorm.
Esercizio 1.14
1 INTRODUZIONE A R 21
Si ripetano tutti i punti dell’esercizio 1.11 utilizzando la funzione rt con due gradi di
libertà al posto della funzione rnorm.
Esercizio 1.15
Si ripeta l’esercizio 1.14 generando solo 10 dati al posto di 1000. Si confrontino i risultati
ottenuti con quelli degli esercizi 1.11, 1.12, 1.13 e 1.14.
2 TEORIA DEI CAMPIONI 22
Esercizio 2.1
[1] 0.0 0.5 1.0 1.0 2.5 0.5 1.0 1.5 1.5 3.0 1.0 1.5 2.0 2.0 3.5 1.0 1.5 2.0 2.0 3.5 2.5 3.0
[23] 3.5 3.5 5.0
5
4
Count
3
2
1
0
0 1 2 3 4 5
media campionaria
3. Si calcoli la media della distribuzione campionaria delle medie (µx ) e si confronti con
la media della popolazione µ.
> (mlinex <- mean(mcamp)) # media distr. campionaria
[1] 2
[1] 2
[1] 1.183
> library(labstatR)
> Vcamp.nc <- apply(S,1,sigma2)
> Vcamp <- apply(S,1,var)
0 5 10
10
0 5 10
varianza campionaria
6. Si calcolino la media della distribuzione campionaria delle varianze non corrette (µs2 )
e corrette (µσ̂2 ) e si confrontino con la varianza della popolazione σ 2 .
> mean(Vcamp.nc) # var. non corrette
[1] 1.4
[1] 2.8
[1] 2.8
Esercizio 2.2
[1] 1.000 1.000 2.000 1.000 1.333 2.333 1.000 1.333 2.333 2.000 2.333 2.333 1.000 1.000 2.000
[16] 1.000 1.667 2.667 1.000 1.667 2.667 2.000 2.667 2.667 1.000 1.333 2.333 1.000 1.667 2.667
[31] 1.333 1.667 3.000 2.333 2.667 3.000 1.000 1.333 2.333 1.000 1.667 2.667 1.333 1.667 3.000
[46] 2.333 2.667 3.000 2.000 2.333 2.333 2.000 2.667 2.667 2.333 2.667 3.000 2.333 2.667 3.000
15
Count 10
media campionaria
3. Si calcoli la media della distribuzione campionaria delle medie (µx ) e si confronti con
la media della popolazione µ.
> (mlinex <- mean(mcamp)) # media distr. campionaria
[1] 2
[1] 2
[1] 0.6831
0 2 4 6
10
5
0
0 2 4 6
varianza campionaria
2 TEORIA DEI CAMPIONI 25
6. Si calcolino la media della distribuzione campionaria delle varianze non corrette (µs2 )
e corrette (µσ̂2 ) e si confrontino con la varianza della popolazione σ 2 .
> mean(Vcamp.nc) # var. non corrette
[1] 2.333
[1] 3.5
[1] 3.5
Esercizio 2.3
Sia Ω una popolazione composta da 150 elementi numerici con valore compreso tra 1 e 20;
in figura 1 sono rappresentate con grafico a barre le frequenze degli elementi di Ω.
10
8
6
4
2
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Omega
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
10 5 8 9 6 11 6 3 10 10 6 7 6 6 11 6 7 9 9 5
[1] 10.38
2 TEORIA DEI CAMPIONI 26
[1] 5.841
[1] 12.8
[1] 10.04
[1] 10.38
10
10
8
8
6
6
4
4
2
2
0
2 7 18 1 5 9 14 20 1 5 9 14 20
1.2
1.2
1.2
1.0
1.0
1.0
0.8
0.8
0.8
0.6
0.6
0.6
0.4
0.4
0.4
0.2
0.2
0.2
0.0
0.0
0.0
5 10 15 5 10 15 5 10 15
[1] 0.01733
> (sum(M50$Smx<=low)+sum(M50$Smx>=up))/length(M50$Smx)
[1] 0
> (sum(M100$Smx<=low)+sum(M100$Smx>=up))/length(M100$Smx)
[1] 0
Esercizio 2.4
• µx1 −x2 = µ1 − µ2
σ12 σ22
• σx21 −x2 = n + n nel caso con reinserimento
σ12 σ2
N −n
• σx21 −x2 = n + n2 N −1 nel caso senza reinserimento.
Si può seguire il seguente procedimento, prima per il caso con reinserimento e poi senza
reinserimento:
1. Si determinino le distribuzioni campionarie della media dei campioni di numerosità
n = 2 per Ω1 e Ω2 .
2 TEORIA DEI CAMPIONI 28
2. Si determinino tutte le possibili coppie di medie date dalle due distribuzioni cam-
pionarie ottenute (si può utilizzare la funzione expand.grid()).
> Scoppier <- expand.grid(Sm1r=Sm1r,Sm2r=Sm2r)
> Scoppie <- expand.grid(Sm1=Sm1,Sm2=Sm2)
4. Si calcolino la media (µx1 −x2 ) e la varianza (σx21 −x2 ) della distribuzione campionaria
delle differenze tra medie e si confrontino con i valori ottenuti dalle formule riportate
sopra.
> ## media delle differenze tra le medie
> (mean(Omega2)-mean(Omega1)) # popolazioni
[1] -2
[1] -2
[1] -2
[1] 4.938
[1] 4.938
[1] 4.938
2 TEORIA DEI CAMPIONI 29
Esercizio 2.5
[1] 14.24
[1] 39.79
[1] 2246839
> choose(239,20)
[1] 6.711e+28
> choose(239,50)
[1] 1.094e+52
0 5 10 15 20 25
3 20 50
0.4
Density
0.3
0.2
0.1
0.0
0 5 10 15 20 25 0 5 10 15 20 25
media campionaria
2 TEORIA DEI CAMPIONI 30
Dati popolazione
------------------------------------
N = 239 - mi = 14.2427 - sigma2 = 39.6231 - sigma = 6.2947 - st.err(mx) = 1.9526
------------------------------------
> sum(out$Smx>=18)/length(out$Smx)
[1] 0.026
Esercizio 2.6
0.20
0.15
0.10
0.05
0.00
5 10 15
0.6
0.4
0.2
0.0
5 10 15
3. Si producano le distribuzioni campionarie delle medie per campioni estratti delle due
popolazioni, sempre per n = 10. (Si può utilizzare la funzione campionaria.media()).
0.6
0.4
0.2
5 10 15
0.3
0.2
0.1
0.0
-2 0 2 4 6
x1 − x2
[1] 2.023
0.3
0.2
0.1
0.0
16 18 20
x1 + x2
[1] 18.06
2.0
1.5
1.0
0.5
0.0
5 10 15
Esercizio 2.7
Supponiamo di avere una moneta bilanciata e volere studiare la distribuzione campionaria
della statistica T = numero di teste in L lanci con L = 3, 10, 50, 200. Possiamo ipotizzare
che la popolazione di lanci sia virtualmente infinita; con la funzione sample() possiamo
simulare L lanci di una moneta bilanciata, ad esempio:
> L <- 3 # tre lanci
> sample(0:1,size=L,replace=TRUE) # 1 = testa
e quindi contare il numero di teste che escono. Per ripetere più volte il processo di
campionamento possiamo utilizzare la funzione replicate() come segue:
> B <- 1000 # numero di repliche di campioni
> replicate(B,sample(0:1,size=L,replace=TRUE))
60
100
200
300
50
80
150
40
200
60
30
100
40
20
50 100
50
20
10
0
0
0 1 2 3 0 3 6 9 15 23 31 77 93 109
Esercizio 2.8
Si ripeta l’esercizio 2.7 simulando una moneta non bilanciata in cui la probabilità di
ottenere testa è 0.75. Si confrontino le distribuzioni ottenute con quelle dell’esercizio 2.7.
> L3 <- replicate(B,sample(0:1,size=3,replace=TRUE,prob=c(.25,.75)))
> L10 <- replicate(B,sample(0:1,size=10,replace=TRUE,prob=c(.25,.75)))
> L50 <- replicate(B,sample(0:1,size=50,replace=TRUE,prob=c(.25,.75)))
> L200 <- replicate(B,sample(0:1,size=200,replace=TRUE,prob=c(.25,.75)))
>
> T3 <- apply(L3,2,sum)
> T10 <- apply(L10,2,sum)
> T50 <- apply(L50,2,sum)
> T200 <- apply(L200,2,sum)
>
> par(mfrow=c(1,4))
> barplot(table(T3))
> barplot(table(T10))
> barplot(table(T50))
> barplot(table(T200))
400
250
100 120
60
200
50
300
80
40
150
200
60
30
100
40
20
100
50
20
10
0
Esercizio 2.9
2 TEORIA DEI CAMPIONI 35
Si ripeta l’esercizio 2.7 simulando una moneta non bilanciata in cui la probabilità di
ottenere testa è 0.05. Si confrontino le distribuzioni ottenute con quelle dell’esercizio 2.7.
> CEXL3 <- replicate(B,sample(0:1,size=3,replace=TRUE,prob=c(.95,.05)))
> L10 <- replicate(B,sample(0:1,size=10,replace=TRUE,prob=c(.95,.05)))
> L50 <- replicate(B,sample(0:1,size=50,replace=TRUE,prob=c(.95,.05)))
> L200 <- replicate(B,sample(0:1,size=200,replace=TRUE,prob=c(.95,.05)))
>
> T3 <- apply(L3,2,sum)
> T10 <- apply(L10,2,sum)
> T50 <- apply(L50,2,sum)
> T200 <- apply(L200,2,sum)
>
> par(mfrow=c(1,4))
> barplot(table(T3))
> barplot(table(T10))
> barplot(table(T50))
> barplot(table(T200))
120
250
400
500
100
200
300
400
80
150
300
200
60
100
200
40
100
50
100
20
0
0 1 2 3 0 2 4 0 3 6 3 8 14 21
Esercizio 2.10
In una città ci sono due ospedali4 ; in quello più grande nascono circa 45 bambini la settima-
na, in quello più piccolo, circa 15 la settimana; il numero di maschi è approssimativamente
il 50% dei nati, ovviamente tale percentuale può variare di settimana in settimana. In cia-
scun ospedale si conta il numero di volte in cui è stato superato il 60% dei maschi tra i
nati nel corso di in un anno. In quale dei due si registrerà più volte tale evento: A) Nel
più grande; B) Nel più piccolo; C) Lo stesso numero di volte?
[1] 60
4
tratto da: Tversky, A., & Kahneman, D. (1974). Judgment under uncertainty: Heuristics and Biases.
Science, 185(4157), 1124-1131.
2 TEORIA DEI CAMPIONI 36
[1] 20
20 40 60 80
large H small H
20
15
10
5
0
20 40 60 80
Percentuale di maschi
[1] 0.143
> sum(nlarge>60)/1000
[1] 0.08
Esercizio 2.11
La funzione mvrnorm() (nel pacchetto MASS) permette di generare dati (a coppie) prove-
nienti da una distribuzione normale bivariata con correlazione ρ; ad esempio, supponiamo
di voler estrarre 50 coppie di valori da una popolazione con correlazione ρ = .3 possiamo
fare come segue:
2 TEORIA DEI CAMPIONI 37
> library(MASS)
> RHO <- matrix(c(1,.3,.3,1),nrow=2) # matrice di correlazione
> X <- mvrnorm(50,c(0,0),RHO)
5
1.0
2.0
4
0.8
1.5
0.6
Density
Density
3
1.0
0.4
2
0.5
0.2
1
0.0
0.0
-1.0 -0.5 0.0 0.5 1.0 -1.0 -0.5 0.0 0.5 1.0 -1.0 -0.5 0.0 0.5 1.0
8
4
3
6
3
Density
Density
2
4
2
1
2
1
0
0
-1.0 -0.5 0.0 0.5 1.0 -1.0 -0.5 0.0 0.5 1.0 -1.0 -0.5 0.0 0.5 1.0
5
2.0
1.5
4
1.5
Density
Density
1.0
3
1.0
2
0.5
0.5
1
0.0
0.0
-1.0 -0.5 0.0 0.5 1.0 -1.0 -0.5 0.0 0.5 1.0 -1.0 -0.5 0.0 0.5 1.0
10
8
20
8
6
15
Density
Density
6
4
10
4
2
5
2
0
0
-1.0 -0.5 0.0 0.5 1.0 -1.0 -0.5 0.0 0.5 1.0 -1.0 -0.5 0.0 0.5 1.0
3 INFERENZA 40
3 INFERENZA
Esercizio 3.1
• Uno psicologo ed uno psichiatra valutano 25 pazienti per individuare il disturbo cui
sono affetti tra i seguenti: schizofrenia, nevrosi ossessiva, paranoia, fobia. Si ipotizza
che non vi siano differenze tra i due nella modalità di classificare i pazienti.
• Uno psicologo scolastico sospetta che vi siano differenze nelle prestazioni in mate-
matica tra le scuole di alcuni distretti. A tal fine confronta tra loro i voti medi delle
classi di cinque scuole per ciascun distretto.
• Per valutare l’efficacia di un corso di statistica il docente effettua un test sulle compe-
tenze degli studenti prima del corso. Al termine del corso ripete il test attendendosi
che i punteggi degli studenti siano aumentati.
• In una ricerca sulle preferenze musicali vengono intervistati 200 adolescenti (114
maschi e 86 femmine) cui viene chiesto quanto ascoltano musica dark. Si ipotizza
che i soggetti che preferiscono la musica dark siano più propensi alla depressione e
che questo effetto sia più accentuato nelle femmine.
Esercizio 3.2
(Non richiede R) Si immagini di voler indagare la qualità della vita in una città, tenendo
conto delle caratteristiche dei quartieri e del livello economico dei residenti. Si definisca
un disegno di indagine specificando le unità statistiche e le variabili coinvolte; per queste
ultime si identifichino le caratteristiche (metriche, di ruolo ecc.).
Esercizio 3.3
Si supponga di voler testare se una moneta risulti essere bilanciata lanciandola per 12
volte. Sia T0 il numero di teste osservato nel campione di lanci.
[1] 0.0002441 0.0029297 0.0161133 0.0537109 0.1208496 0.1933594 0.2255859 0.1933594 0.1208496
[10] 0.0537109 0.0161133 0.0029297 0.0002441
> plot(nteste,pnteste,type="h")
3. Si determini la regione critica del test con α = .05 (si può utilizzare la funzione
qbinom()).
> ## La regione critica è data dai valori di nteste con probabilità minore a .05
> ## coda sinistra
> (xs <- qbinom(.05/2,12,.5)) # valore critico sinistro
[1] 3
[1] 9
0.20
0.15
probabilità
0.10
0.05
0.00
0 1 2 3 4 5 6 7 8 9 10 11 12
numero di teste
Fig. 2: Distribuzione campionaria del numero di teste in 12 lanci di una moneta. In rosso
la regione critica per ipotesi H1 : π 6= .5.
data: 3 and 12
number of successes = 3, number of trials = 12, p-value = 0.1
alternative hypothesis: true probability of success is not equal to 0.5
95 percent confidence interval:
0.05486 0.57186
sample estimates:
probability of success
0.25
Esercizio 3.4
Sample Quantiles
25
25
60
Frequency
15
15
40
20
0 5
0 5
0
-5 10 25 -3 0 2
X Theoretical Quantiles
3. Si vuole valutare l’ipotesi che il voto medio nella vera popolazione di cui il campione
fa parte sia 18: si definiscano le ipotesi H0 e H1 , considerando, data la difficoltà
della materia, che i voti risultino al di sotto della media.
4. Si calcoli la media dei voti nel campione x e l’errore standard associato alla stima
σx .
> (mx <- mean(X))
[1] 14.24
[1] 0.408
[1] 0.408
[1] 1.652e-20
1.0
0.8
0.6
p(X)
0.4
0.2
0.0
12 14 16 18 20
data: X
t = -9.2, df = 240, p-value <2e-16
alternative hypothesis: true mean is less than 18
95 percent confidence interval:
-Inf 14.92
sample estimates:
mean of x
14.24
Esercizio 3.5
[1] 154.8
[1] 12.07
Theoretical Quantiles
15
2
170
Frequency
1
10
150
0
-2 -1
5
130
0
Sample Quantiles
data: X
D = 0.061, p-value = 0.9
alternative hypothesis: two-sided
> summary(lm((X-156.5)~1))
Call:
lm(formula = (X - 156.5) ~ 1)
Residuals:
Min 1Q Median 3Q Max
-29.825 -8.825 0.175 9.175 26.175
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.68 1.23 -1.37 0.17
Esercizio 3.6
Uno psicologo viene interpellato dal preside di una grande scuola in un quartiere fortemente
disagiato per un programma di prevenzione rispetto l’abbandono scolastico. Prima di
valutare quale possa essere il possibile programma, lo psicologo vuole stimare il tasso di
abbandono scolastico (θ) adottando una procedura di tipo bayesiano. Poichè a priori non
dispone di nessuna conoscenza definisce per il parametro θ la seguente distibuzione di
probabilità:
p(θ = i) = 0.25 con i ∈ {0.2, 0.4, 0.6, 0.8}
0.25
0.20
0.15
Verosimiglianza
2.0e-69
p(D|θ)
1.0e-69
0.0e+00
p(θ)p(D|θ)
p(θ|D) =
p(D)
3 INFERENZA 46
P
in cui p(D) = θ p(θ)p(D|θ) e quindi li si rappresenti graficamente.
> post <- 0.25*L/sum(0.25*L)
Distribuzione a posteriori
0.8
0.6
p(θ|D)
0.4
0.2
0.0
Esercizio 3.7
2. Si crei un fattore (A) con tre livelli e dieci osservazioni per livello (si possono usare
la funzione rep e/o la funzione factor).
> A <- factor(rep(1:3,each=10))
1 2 3
19.02 21.29 22.94
4. Si rappresentino graficamente, nella maniera più opportuna, i punteggi dei tre gruppi
ottenuti.
3 INFERENZA 47
25
20
15
1 2 3
25
25
Sample Quantiles
Sample Quantiles
Sample Quantiles
20
20
20
15
15
15
6. Si formuli l’ipotesi di omogeneità delle varianze nei tre gruppi, si valuti tale ipotesi
con il test opportuno e si stabilisca se il risultato sia coerente con quello osservato
al punto 4.
> bartlett.test(Y~A)
data: Y by A
Bartlett's K-squared = 0.62, df = 2, p-value = 0.7
7. Si formuli l’ipotesi di uguaglianza delle medie tra i gruppi e si valuti tale ipotesi con
il test opportuno.
> fit <- lm(Y~A)
> anova(fit)
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
A 2 78 38.8 1.42 0.26
Residuals 27 740 27.4
3 INFERENZA 48
[1] 0.0949
Against denominator:
Intercept only
---
Bayes factor type: BFlinearModel, JZS
Esercizio 3.8
Esercizio 3.9
In figura 3 sono rappresentate rispettivamente le distribuzioni campionarie (con stessa
varianza σ 2 = 1) di una statistica test T utilizzata per la stima di un parametro θ, sotto
le due ipotesi H0 e H1 .
1. Sulla base della rappresentazione, si formulino le ipotesi H0 e H1 in forma puntuale.
[1] 1.645
3. Si calcoli la probabilità di rigettare H0 nel caso in cui fosse vera H1 (potenza del
test). Suggerimento: si utilizzi la funzione pnorm().
3 INFERENZA 49
0.4
0.3
p(T ) ipotesi
0.2 H0
H1
0.1
0.0
-3 -2 -1 0 1 2 3 4 5
T
[1] 0.6388
> dnorm(theta.hat,2)
Esercizio 3.10
Verosimiglianza
4e-09
p(D|θ)
0e+00 2e-09
θ
3. Si calcolino i valori di probabilità a posteriori utilizzando la formula di Bayes e quindi
li si rappresenti graficamente.
> post <- 0.25*L/sum(0.25*L)
Distribuzione a posteriori
0.4
p(θ|D)
0.2
0.0
4. Quali conclusioni possiamo trarre confrontando questa distribuzione con quella ot-
tenuta nell’esercizio 3.6?
4 REGRESSIONE LINEARE SEMPLICE 51
Esercizio 4.1
Per ciascuna coppia di variabili (x, y) generate come specificato di seguito si producano
un diagramma di dispersione e due boxplot (uno per ciascuna variabile). Quindi si calcoli
la correlazione tra esse e si valuti con un test opportuno se il coefficiente di regressione
del modello y ∼ x sia diverso da zero. Al termine si confrontino i risultati e si traggano
le conclusioni.
3
2
2
1
1
y
0
-1
-1
-2
-2
-2 -1 0 1 2 3 y x1
x1
> cor(y,x1)
[1] 1
10
2
1
y
5
0
-1
0
-2
8 9 10 11 12 13 y x2
x2
> cor(y,x2)
[1] 1
3
2
2
1
1
y
0
-1
-1
-2
-2
-2 -1 0 1 2 y x3
x3
> cor(y,x3)
[1] 0.01366
10
2
1
5
y
0
-1
0
-2
8 9 10 11 12 y x4
x4
> cor(y,x4)
[1] 0.01366
Esercizio 4.2
Nel file autor.dat sono riportati i punteggi di 12 soggetti su una scala di autoritarismo
ed una di pregiudizi sociali (dati: Siegel & Castellan, 1992).
Ci si chiede se vi sia una relazione significativa tra il livello di autoritarismo e il livello di
pregiudizio dei soggetti interpellati.
> range(AP$aut)
[1] 40 126
> range(AP$preg)
[1] 37 92
80%
115.4
70
60
50
40
40 60 80 100 120
autoritarismo
[1] 364.5
[1] 0.7745
Esercizio 4.3
Il file Hooker.dat contiene dati raccolti da J.Hooker sulle montagne dell’Himalaya (cfr.
Weisberg, 1985). Tali dati rappresentano le temperature in gradi Fahrenheit (variabile
temp) di ebollizione dell’acqua a diversi valori di pressione atmosferica (mmhg; variabile
press).
4 REGRESSIONE LINEARE SEMPLICE 55
3. Si calcolino moda, mediana e media della variabile temp. Sulla base del risultato si
valuti se la distribuzione di tale variabile possa considerarsi simmetrica.
> moda(X$temp); median(X$temp); mean(X$temp)
4
2
0
temperatura
Sample Quantiles
28
24
20
16
4 REGRESSIONE LINEARE SEMPLICE 56
210
temperatura
200
190
180
16 18 20 22 24 26 28
pressione
[1] 33.72
[1] 0.9959
Call:
lm(formula = temp ~ press, data = X)
Coefficients:
(Intercept) press
146.79 2.25
9. Si valutino graficamente gli assunti del modello utilizzando i grafici dei residui ed
individuando la presenza di eventuali casi anomali o influenti.
4 REGRESSIONE LINEARE SEMPLICE 57
Standardized residuals
2
20 20
0.0 1.0
1
Residuals
0
-2 -1
-1.5
2 31 31 2
Standardized residuals
1.5
2 31
2
20 0.5
1
1.0
0
0.5
-2 -1
Cook’s
2 distance
29 0.5
31
0.0
185 190 195 200 205 210 0.00 0.05 0.10 0.15 0.20
Call:
lm(formula = temp ~ press, data = X)
Residuals:
Min 1Q Median 3Q Max
-1.595 -0.691 0.237 0.537 1.417
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 146.7871 0.7771 189 <2e-16 ***
press 2.2460 0.0381 59 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
200
190
180
16 18 20 22 24 26 28
pressione
4 REGRESSIONE LINEARE SEMPLICE 58
12. Si stimi, sulla base dei parametri calcolati, il valore atteso di temperatura con una
pressione di 27.
> coef(fit)[1]+27*coef(fit)[2]
(Intercept)
207.4
Esercizio 4.4
Età Statura
(anni) (cm)
1 6 115
2 6 120
3 7 122
4 8 130
5 8 128
6 9 134
7 10 136
8 10 140
9 11 147
10 12 151
145
135
cm
125
115
6 7 8 9 10 11 12
anni
[1] 23.66
[1] 0.9866
Call:
lm(formula = statura ~ anni, data = X)
Coefficients:
(Intercept) anni
83.69 5.59
6. Si valutino graficamente gli assunti del modello utilizzando i grafici dei residui ed
individuando la presenza di eventuali casi anomali o influenti.
4 REGRESSIONE LINEARE SEMPLICE 60
Standardized residuals
2
2 2
1
Residuals
0
-2
-1
1 1
7 7
-4
-2
120 125 130 135 140 145 150 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5
Standardized residuals
7
2
2 2 1
0.0 0.4 0.8 1.2
1 0.5
1
0
-1
0.5
Cook’s distance
1
1
-2
7
120 125 130 135 140 145 150 0.0 0.1 0.2 0.3 0.4
Call:
lm(formula = statura ~ anni, data = X)
Residuals:
Min 1Q Median 3Q Max
-3.564 -0.698 0.142 1.318 2.787
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 83.685 2.908 28.8 2.3e-09 ***
anni 5.588 0.326 17.1 1.4e-07 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
125
115
6 7 8 9 10 11 12
anni
4 REGRESSIONE LINEARE SEMPLICE 61
Esercizio 4.5
wbcc bmi
6.832 19.415
> apply(X,2,var)
wbcc bmi
0.09768 0.19180
> apply(X,2,sd)
wbcc bmi
0.3125 0.4379
19.5
19.0
wbcc
Call:
lm(formula = bmi ~ wbcc, data = X)
Coefficients:
(Intercept) wbcc
16.696 0.398
19.5
19.0
wbcc
(Intercept)
19.88
20.5
20.0
bmi
19.5
19.0
wbcc
> summary(fit)$r.squared
[1] 0.08068
Esercizio 4.6
Un campione di 13 soggetti con disturbi di memoria viene sottoposto ad una terapia per
il recupero delle funzioni cognitive compromesse. Prima della terapia i soggetti vengono
sottoposti al Mini Mental State Examination Test (variabile MMSE1). Al termine della
terapia, ai soggetti viene risomministrato il test (variabile MMSE3). I dati sono riportati
nel file mmse.dat. Si vuole sapere se la prima somministrazione possa essere considerata
predittiva della terza.
> diff(apply(X,2,quantile,c(.25,.75)))/2
5
Data una variabile casuale X: il campo di variazione è la differenza tra max(X) e min(X), la
semidifferenza interquartilica è (Q3 − Q1)/2 in cui Q1 è il primo quartile e Q3 il terzo.
4 REGRESSIONE LINEARE SEMPLICE 64
28
26
24
22
23 24 25 26 27 28 29
28
Sample Quantiles
Sample Quantiles
Sample Quantiles
26
24
22
26
25
24
23
22 24 26 28
MMSE1
Call:
lm(formula = MMSE3 ~ MMSE1, data = X)
Coefficients:
(Intercept) MMSE1
14.222 0.486
9. Si valutino graficamente gli assunti del modello utilizzando i grafici dei residui ed
individuando la presenza di eventuali casi anomali o influenti.
Standardized residuals
Residuals vs Fitted Normal Q-Q
1.5
Residuals
0 1
0.0
9 11
2
-2.0
911
-2
0 1
911 1
0.5
0.6
0.5
1
9 Cook’s distance
-2
0.0
Call:
lm(formula = MMSE3 ~ MMSE1, data = X)
Residuals:
Min 1Q Median 3Q Max
-1.8773 -1.1858 0.0086 1.3284 1.4944
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 14.222 4.773 2.98 0.013 *
MMSE1 0.486 0.177 2.74 0.019 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> par(mfrow=c(1,1),mar=c(4,4,1,1),cex=.7)
> plot(X$MMSE1,X$MMSE3,xlab="MMSE1",ylab="MMSE3")
> abline(fit,col="red")
29
28
27
MMSE3
26
25
24
23
22 24 26 28
MMSE1
Call:
lm(formula = MMSE3 ~ MMSE1, data = X2)
Coefficients:
(Intercept) MMSE1
28.4114 -0.0281
13. Si confrontino i risultati della regressione con tutti i soggetti e della regressione senza
il secondo soggetto.
29
29
28
28
27
27
MMSE3
MMSE3
26
26
25
25
24
24
23
23
22 24 26 28 22 24 26 28
MMSE1 MMSE1
14. Si determini un idoneo indicatore di effect size per ciascuno dei due modelli.
> summary(fit)$r.squared # r quadro
[1] 0.4058
4 REGRESSIONE LINEARE SEMPLICE 67
[1] 0.3518
[1] 0.001236
[1] -0.09864
Esercizio 4.7
Il Sensation Seeking (SS) è un tratto di personalità che indica la tendenza alla ricerca
di sensazioni intense e di esperienze rischiose. Un ricercatore utilizza, per misurare tale
tratto, un test da cui si ottengono punteggi che variano da zero a trenta; maggiore è il
punteggio di un soggetto, maggiore la sua proprensione al Sensation Seeking. Il test viene
somministrato ad un campione di 8 soggetti di varie età, ottenendo i risultati riportati in
tabella 2.
Età SS
1 31 24
2 27 15
3 34 20
4 38 8
5 38 9
6 39 12
7 25 28
8 31 11
Si vuole sapere se esista una relazione significativa tra età e Sensation Seeking.
1. Si riportino opportunamente i dati della tabella 2 in R.
> eta <- c(31,27,34,38,38,39,25,31)
> SS <- c(24,15,20,8,9,12,28,11)
[1] -0.7034
[1] -0.6627
4 REGRESSIONE LINEARE SEMPLICE 68
25
sensation seeking
20
15
10
26 28 30 32 34 36 38
età
4. Si stabilisca, con il test opportuno, se l’età sia un predittore statisticamente signifi-
cativo del SS, definendo l’ipotesi H0 relativa al test.
> fit <- lm(SS~eta)
> anova(fit)
Response: SS
Df Sum Sq Mean Sq F value Pr(>F)
eta 1 187 187.4 5.88 0.052 .
Residuals 6 191 31.9
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Sum Sq Mean Sq
eta 187 187
Esercizio 4.8
0.06
0.04
0.04
Density
Density
0.02
0.02
0.00
0.00
40 50 60 70 80 90 40 50 60 70 80 90
atteggiamento atteggiamento
3. Si valuti, con uno o più test opportuni, se le distribuzioni dei punteggi nei due gruppi
sono normali definendo le ipotesi H0 e commentando il risultato.
> ks.test(X$attegg[X$figli=="si"],"pnorm",mean(X$attegg[X$figli=="si"]),sd(X$attegg[X$figli=="si"]))
> ks.test(X$attegg[X$figli=="no"],"pnorm",mean(X$attegg[X$figli=="no"]),sd(X$attegg[X$figli=="no"]))
5. Si valuti, servendosi degli opportuni grafici, se vi siano potenziali outliers nei due
gruppi.
4 REGRESSIONE LINEARE SEMPLICE 70
90
80
atteggiamento
70
60
50
no si
figli
Response: attegg
Df Sum Sq Mean Sq F value Pr(>F)
figli 1 910 910 11.9 0.00096 ***
Residuals 70 5355 76
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
[1] 0.1453
> summary(fit)$adj.r.squared
[1] 0.1331
Esercizio 4.9
Nel periodo dal 1900 al 1950, negli Stati Uniti, si sono registrati i valori di popolazione
(in decine di milioni di abitanti) riportati in tabella 3.
Si vuole stimare, con le dovute assunzioni, la popolazione al 1960.
Anno Popolazione
1900 7.6
1910 9.2
1920 10.57
1930 12.28
1940 13.17
1950 15.11
Tab. 3: Popolazione degli Stati Uniti, in decine di milioni di abitanti, nel periodo 1900-1950.
12
10
8
anno
Call:
lm(formula = pop ~ anno)
Residuals:
1 2 3 4 5 6
-0.0667 0.0713 -0.0207 0.2273 -0.3447 0.1333
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.70e+02 1.02e+01 -26.4 1.2e-05 ***
anno 1.46e-01 5.32e-03 27.5 1.0e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
14
popolazione in milioni
12
10
8
anno
6. Si stimi, sulla base dei parametri calcolati, il valore atteso di popolazione nel 1960.
> coef(fit)[1]+1960*coef(fit)[2]
(Intercept)
16.44
Esercizio 4.10
Due campioni di 300 studenti di due diverse facoltà si sottopongono ad un test di memoria.
I punteggi di tutti i soggetti (600) sono riportati nel file studenti.dat (variabile punt) con
la relativa facoltà di appartenenza (variabile fac). Si vuole sapere se esista una differenza
significativa i punteggi nei due gruppi.
1.0
F1
F2
0.8
ranghi percentili
0.6
0.4
0.2
0.0
10 15 20 25 30
punteggi
3. Si calcolino moda, mediana e media dei punteggi nelle due diverse facoltà. Quali
considerazioni è possibile fare dal confronto tra tali statistiche?
> tapply(X$punt,list(X$fac),moda)
1 2
"20" "17"
> tapply(X$punt,list(X$fac),median)
1 2
20 18
> tapply(X$punt,list(X$fac),mean)
1 2
20.19 17.86
1 2
1.5 3.5
> tapply(X$punt,list(X$fac),sd)
1 2
2.402 4.777
> tapply(X$punt,list(X$fac),var)
1 2
5.771 22.819
4 REGRESSIONE LINEARE SEMPLICE 74
facoltà 1 facoltà 2
0.20
0.20
0.15
0.15
Density
Density
0.10
0.10
0.05
0.05
0.00
0.00
5 10 15 20 25 30 5 10 15 20 25 30
punteggio punteggio
6. Si valuti, con uno o più test opportuni, se le distribuzioni dei punteggi nei due gruppi
sono normali.
> ks.test(X$punt[X$fac==1],"pnorm",mean(X$punt[X$fac==1]),sd(X$punt[X$fac==1]))
data: X$punt[X$fac == 1]
D = 0.099, p-value = 0.006
alternative hypothesis: two-sided
> ks.test(X$punt[X$fac==2],"pnorm",mean(X$punt[X$fac==2]),sd(X$punt[X$fac==2]))
data: X$punt[X$fac == 2]
D = 0.075, p-value = 0.07
alternative hypothesis: two-sided
8. Si stabilisca, con il test opportuno, se vi siano differenze tra i due gruppi nei punteggi
al test di memoria definendo l’ipotesi H0 relativa al test.
> fit <- lm(punt~fac,data=X)
> anova(fit)
Response: punt
Df Sum Sq Mean Sq F value Pr(>F)
fac 1 814 814 57 1.7e-13 ***
Residuals 598 8548 14
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
[1] 0.08698
10. Si replichi l’analisi calcolando il Bayes Factor e si confronti il risultato con quello
ottenuto al punto 8.
> library(BayesFactor)
> lmBF(punt~fac,data=X)
Against denominator:
Intercept only
---
Bayes factor type: BFlinearModel, JZS
Esercizio 4.11
Un ricercatore ritiene che possa esservi una differenza di genere nell’attitudine al pronto
soccorso. Per valutare tale ipotesi somministra un questionario apposito ad un campione
di 562 studenti (165 maschi e 397 femmine). I dati (punteggi di attitudine e genere dei
soggetti) sono raccolti nel file firstaid.dat.
1. Si importino i dati in R.
> X <- read.table(paste(datadir,"firstaid.dat",sep=""),header=TRUE)
f m
2.385 2.123
> tapply(X$attitude,list(X$sex),sd)
f m
0.7276 0.7736
4 REGRESSIONE LINEARE SEMPLICE 76
3. Si produca un grafico delle medie dei punteggi con i relativi intervalli di confidenza
(suggerimento: si può utilizzare la funzione plotmeans()).
2.4
2.3
attitudine
2.2
2.1
2.0
n=397 n=165
f m
sesso
> ks.test(X$attitude[X$sex=="f"],"pnorm",mean(X$attitude[X$sex=="f"]),sd(X$attitude[X$sex=="f"]))
maschi femmine
3
Theoretical Quantiles
Theoretical Quantiles
2
2
1
1
0
0
-1
-1
-2
-2
-3
5. Si esegua il test opportuno per valutare se vi siano differenze tra maschi e femmine
nei punteggi del questionario.
> fit <- lm(attitude~sex,data=X)
> anova(fit)
Response: attitude
Df Sum Sq Mean Sq F value Pr(>F)
sex 1 8 8.00 14.6 0.00015 ***
Residuals 560 308 0.55
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
0.5
Ŷ
Partial eta^2
sex 0.02534
Residuals NA
[1] 1284
[1] 1276
> exp((BIC0-BIC1)/2)
[1] 57.15
4 REGRESSIONE LINEARE SEMPLICE 78
Esercizio 4.12
Nel file gestazioni.dat sono raccolti i valori di gestazione in settimane (variabile weeks)
di un campione di 328 donne che hanno partorito presso un ospedale. Per ciascuna donna
è indicata l’età in anni compiuti al momento del parto (variabile years). Le stesse età
sono poi raggruppate in due classi (variabile age): 25-30 e 40-47. Si ipotizza che vi siano
differenze nel numero medio di settimane di gestazione in relazione all’età.
1. Si importino i dati in R.
> X <- read.table(paste(datadir,"gestazioni.dat",sep=""),header=TRUE)
25-30 40-47
39.06 38.45
25-30 40-47
1.498 2.088
39.0
40
weeks
38
38.6
36
38.2
34
n=160 n=168
age
> ks.test(X$weeks[X$age=="40-47"],"pnorm",mx[2],sx[2])
25-30 40-47
Theoretical Quantiles
Theoretical Quantiles
2
2
1
1
0
0
-2
-2
36 38 40 42 34 36 38 40 42 44
5. Si esegua il test opportuno per valutare se vi siano differenze tra le due fasce di età
nelle settimane di gestazione.
> fit1 <- lm(weeks~age,data=X)
> anova(fit1)
Response: weeks
Df Sum Sq Mean Sq F value Pr(>F)
age 1 31 30.64 9.21 0.0026 **
Residuals 326 1085 3.33
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Partial eta^2
age 0.02747
Residuals NA
7. Si rappresenti graficamente la distribuzione delle età (in anni compiuti) e delle setti-
mane di gestazione in modo da evidenziare l’eventuale relazione tra queste variabili.
4 REGRESSIONE LINEARE SEMPLICE 80
44
42
settimane di gestazione
40
38
36
34
25 30 35 40 45
anni partoriente
8. Si valuti, con il modello opportuno, se la variabile years sia predittiva delle settimane
di gestazione.
> fit2 <- lm(weeks~years,data=X)
> anova(fit2)
Response: weeks
Df Sum Sq Mean Sq F value Pr(>F)
years 1 29 29.21 8.77 0.0033 **
Residuals 326 1086 3.33
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
[1] 0.02619
10. Si ripetano i test dei punti 6 e 10 utilizzando i ∆AIC . Quali conclusioni si possono
trarre da queste statistiche?
> ## modello nullo
> aic0 <- AIC(lm(weeks~1,data=X))
> ## modello 1: predittore dicotomico
> aic1 <- AIC(fit1)
> ## modello 2: predittore quantitativo
> aic2 <- AIC(fit2)
> exp((aic0-aic1)/2)
[1] 35.44
> exp((aic0-aic2)/2)
[1] 28.56
4 REGRESSIONE LINEARE SEMPLICE 81
Esercizio 4.13
Si vuole studiare l’effetto della deprivazione da sonno in un compito attentivo. Tale com-
pito consiste nell’ individuazione di un oggetto in movimento su uno schermo radar. 16
soggetti vengono suddivisi in quattro gruppi, ciascuno dei quali viene privato del sonno per
un certo numero di ore (4, 12, 20 e 28; variabile hr). I punteggi dei soggetti nel compito
(variabile score) sono espressi nel numero di mancate individuazioni durante un periodo
di 30 minuti e sono riportati nel file anova1.dat (dati Keppel, 1991). Si vuole sapere se
esista una differenza tra i punteggi nel compito in relazione alle ore di deprivazione da
sonno.
1. Si importi il file anova1.dat in R.
> X <- read.table(paste(datadir,"anova1.dat",sep=""),header=TRUE)
2. Si produca un grafico con le medie e le barre di errore dei punteggi per i quattro
gruppi (si usi la funzione errbarr, libreria Hmisc).
70
60
50
score
40
30
0 5 10 15 20 25 30
hr
3. Si valuti, con uno o più test opportuni, se le distribuzioni dei punteggi nei quattro
gruppi sono normali.
> ks.test(X$score[X$hr==4],"pnorm",mean(X$score[X$hr==4]),sd(X$score[X$hr==4]))
data: X$score[X$hr == 4]
D = 0.33, p-value = 0.8
alternative hypothesis: two-sided
> ks.test(X$score[X$hr==12],"pnorm",mean(X$score[X$hr==12]),sd(X$score[X$hr==12]))
> ks.test(X$score[X$hr==20],"pnorm",mean(X$score[X$hr==20]),sd(X$score[X$hr==20]))
4 REGRESSIONE LINEARE SEMPLICE 82
> ks.test(X$score[X$hr==28],"pnorm",mean(X$score[X$hr==28]),sd(X$score[X$hr==28]))
data: score by hr
Bartlett's K-squared = 1.6, df = 3, p-value = 0.7
Response: score
Df Sum Sq Mean Sq F value Pr(>F)
hr 1 3150 3150 22.4 0.00032 ***
Residuals 14 1970 141
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
6. Si valuti la bontà del modello lineare valutando gli assunti sui residui.
Standardized residuals
0
-20
8 8
15
-2
15
30 40 50 60 -2 -1 0 1 2
Standardized residuals
8
13
0
0.6
Cook’s distance
-2
0.0
15 0.5
[1] 0.6153
> summary(fit)$adj.r.squared
[1] 0.5878
Against denominator:
Intercept only
---
Bayes factor type: BFlinearModel, JZS
Esercizio 4.14
2. Si produca un grafico con i boxplot delle distribuzioni dei punteggi al test di preci-
sione nei due momenti.
4 REGRESSIONE LINEARE SEMPLICE 84
1.0
0.8
proporzione errori
0.6
0.4
0.2
0.0
1 2
prova
3. Si valuti, con uno o più test opportuni, se le distribuzioni dei punteggi nei due
momenti sono normali.
> ks.test(X$p.err[X$prova==1],"pnorm",mean(X$p.err[X$prova==1]),sd(X$p.err[X$prova==1]))
data: X$p.err[X$prova == 1]
D = 0.13, p-value = 1
alternative hypothesis: two-sided
> ks.test(X$p.err[X$prova==2],"pnorm",mean(X$p.err[X$prova==2]),sd(X$p.err[X$prova==2]))
data: X$p.err[X$prova == 2]
D = 0.21, p-value = 0.8
alternative hypothesis: two-sided
Call:
lm(formula = X$p.err[X$prova == 2] ~ X$p.err[X$prova == 1])
Coefficients:
(Intercept) X$p.err[X$prova == 1]
0.801 -0.025
0.4
0.3
d(t|8)
0.2
0.1
0.0
-3 -2 -1 0 1 2 3
[1] 2.306
[1] 0.6163
> ## per valori stimati di beta maggiori o minori del valore critico
> ## rigettiamo H0
[1] 0.00109
Against denominator:
Intercept only
---
Bayes factor type: BFlinearModel, JZS
4 REGRESSIONE LINEARE SEMPLICE 86
Esercizio 4.15
2. Si calcolino media e deviazione standard dei punteggi al test con i due metodi di
somministrazione.
> apply(X,2,mean)
CA PAP
53.79 54.91
> apply(X,2,sd)
CA PAP
11.41 10.35
40
30
20
30 40 50 60 70 80
CA
[1] 48.73
> cor(X$CA,X$PAP)
[1] 0.4128
4 REGRESSIONE LINEARE SEMPLICE 87
Call:
lm(formula = PAP ~ CA, data = X)
Residuals:
Min 1Q Median 3Q Max
-31.50 -6.24 1.39 5.26 22.13
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 34.7619 4.5440 7.65 1.3e-11 ***
CA 0.3746 0.0827 4.53 1.6e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Against denominator:
Intercept only
---
Bayes factor type: BFlinearModel, JZS
CA PAP
4 REGRESSIONE LINEARE SEMPLICE 88
8. Si valuti, con l’opportuno test, se esiste una differenza significativa tra le medie dei
punteggi PAP e CA, definendo opportunamente le ipotesi H0 e H1 .
> summary(lm((PAP-CA)~1,data=X))
Call:
lm(formula = (PAP - CA) ~ 1, data = X)
Residuals:
Min 1Q Median 3Q Max
-35.12 -8.87 0.88 6.88 28.88
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.12 1.17 0.95 0.34
Esercizio 4.16
Per valutare se bambini con esperienze sociali più ricche siano anche più capaci di parla-
re delle proprie esperienze relazionali viene predisposto un esperimento che coinvolge un
campione di bambini di età intorno ai 5 anni. Durante le sessioni sperimentali i bambini
vengono osservati ed al termine viene attribuito loro un livello di esperienza sociale in una
scala a 5 categorie, definite sulla base delle azioni sociali agite e ricevute: presenti (alto nu-
mero di agite e ricevute), assenti (basso numero di agite e ricevute), cercatori (alto numero
di agite e basso di ricevute), cercati (basso numero di agite e alto di ricevute) e medi. Per
la valutazione della capacità di descrivere le esperienze relazionali viene calcolato un pun-
teggio di competenza linguistica. I dati sono disponibili nel file relbambini.dat. Si vuole
sapere se vi sia una relazione tra il comportamento sociale e le competenze linguistiche.
1. Si importino i dati in R.
> X <- read.table(paste(datadir,"relbambini.dat",sep=""),header=TRUE)
> tapply(X$comp.ling,list(X$cat.comp),mean)
> tapply(X$comp.ling,list(X$cat.comp),sd)
18
competenze linguistiche
16
14
12
10
8
categoria di comportamento
4. Si utilizzino gli opportuni test e grafici per valutare l’assunto di normalità comples-
sivamente ed in ciascun gruppo di bambini.
> shapiro.test(X$comp.ling)
data: X$comp.ling
W = 0.98, p-value = 0.3
> shapiro.test(X$comp.ling[X$cat.comp=="assenti"])
> shapiro.test(X$comp.ling[X$cat.comp=="cercati"])
> shapiro.test(X$comp.ling[X$cat.comp=="cercatori"])
> shapiro.test(X$comp.ling[X$cat.comp=="medi"])
4 REGRESSIONE LINEARE SEMPLICE 90
> shapiro.test(X$comp.ling[X$cat.comp=="presenti"])
Sample Quantiles
20
20
12
10
10
8
4
0
16
15
14
6 10
10
5. Si esegua il test appropriato per valutare se esistano differenze tra le medie dei 5
gruppi.
> fit <- lm(comp.ling~cat.comp,data=X)
> anova(fit)
Response: comp.ling
Df Sum Sq Mean Sq F value Pr(>F)
cat.comp 4 200 50 2.77 0.033 *
Residuals 76 1371 18
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
indipendenza omoschedasticità
1.4
5
1.0
0
s
0.6
-5
0.2
-10
10 11 12 13 14 15 10 11 12 13 14 15
ŷ ŷ
Partial eta^2
cat.comp 0.1272
Residuals NA
Against denominator:
Intercept only
---
Bayes factor type: BFlinearModel, JZS
Esercizio 4.17
10
8
6
4
2
- + 0
6
4
2
- + 0
rinforzo
4. Si esegua l’analisi appropriata per valutare se il tipo di rinforzo influisca sui punteggi
nelle prove di ragionamento, specificando l’ipotesi H0 .
> fit <- lm(risp~rinforzo,data=X)
> anova(fit)
Response: risp
Df Sum Sq Mean Sq F value Pr(>F)
rinforzo 2 30.4 15.2 4.22 0.041 *
Residuals 12 43.2 3.6
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
2
Sample Quantiles
1
0
-1
-2
-3
-1 0 1
Theoretical Quantiles
Esercizio 4.18
Nel file radar.csv sono presenti gli stessi dati dell’esperimento descritto nell’esercizio 4.13
con l’aggiunta di otto soggetti.
1. Si importi il file radar.csv in R.
> X <- read.csv2(paste(datadir,"radar.csv",sep=""))
hr x
1 4 37.67
2 12 37.83
3 20 53.00
4 28 61.50
40
30
20
10
4 12 20 28
hr
4 REGRESSIONE LINEARE SEMPLICE 94
4. Si valuti, con uno o più test opportuni, se le distribuzioni dei punteggi nei quattro
gruppi sono normali.
> ks.test(X$score[X$hr==4],"pnorm",mean(X$score[X$hr==4]),sd(X$score[X$hr==4]))
data: X$score[X$hr == 4]
D = 0.34, p-value = 0.5
alternative hypothesis: two-sided
> ks.test(X$score[X$hr==12],"pnorm",mean(X$score[X$hr==12]),sd(X$score[X$hr==12]))
> ks.test(X$score[X$hr==20],"pnorm",mean(X$score[X$hr==20]),sd(X$score[X$hr==20]))
> ks.test(X$score[X$hr==28],"pnorm",mean(X$score[X$hr==28]),sd(X$score[X$hr==28]))
data: score by hr
Bartlett's K-squared = 8.3, df = 3, p-value = 0.04
6. Si stabilisca, con il modello opportuno, se vi sia una relazione tra le ore di depri-
vazione ed il punteggio al compito definendo l’ipotesi H0 relativa al test eseguito.
Response: score
Df Sum Sq Mean Sq F value Pr(>F)
4 REGRESSIONE LINEARE SEMPLICE 95
Standardized residuals
6 6
1 2 3 4
60
Residuals
14
20
14
-20
10
-1
10
35 40 45 50 55 60 -2 -1 0 1 2
Standardized residuals
2.0
6
6
1 2 3 4
1
0.5
10 14
1.0
19
Cook’s distance
-1
21
0.0
[1] 0.2644
Esercizio 4.19
$no
25% 50% 75%
68.5 76.0 82.0
$si
25% 50% 75%
63 69 74
4 REGRESSIONE LINEARE SEMPLICE 96
90
80
70
60
50
no si
4. Si valuti, con il test opportuno, se le varianze dei punteggi nei due gruppi siano
omogenee.
> bartlett.test(attegg~figli,data=X)
5. Si valuti, con il modello opportuno, se vi siano differenze tra i due gruppi in relazione
ai punteggi di atteggiamento, specificando le ipotesi H0 e H1 .
> fit <- lm(attegg~figli,data=X)
> anova(fit)
Response: attegg
Df Sum Sq Mean Sq F value Pr(>F)
figli 1 1059 1059 12.6 0.00066 ***
Residuals 79 6659 84
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
[1] 0.1372
[1] 603
4 REGRESSIONE LINEARE SEMPLICE 97
[1] 593
> exp((A0-A1)/2)
[1] 145.3
[1] 607.8
[1] 600.2
> exp((B0-B1)/2)
[1] 43.87
Esercizio 4.20
Nel file orevoti.csv sono riportate le ore di frequenza ed il voto di 37 studenti partecipanti
ad un corso di statistica. Vogliamo sapere se le ore di frequenza siano predittive del voto.
1. Si importi il file orevoti.csv in R.
> X <- read.csv2(paste(datadir,"orevoti.csv",sep=""))
15
10
0 5 10 15 20 25 30
ore di frequenza
[1] 29.06
4 REGRESSIONE LINEARE SEMPLICE 98
> cor(X$ore,X$voto)
[1] 0.6061
Call:
lm(formula = voto ~ ore, data = X)
Residuals:
Min 1Q Median 3Q Max
-12.18 -2.29 0.97 2.89 6.97
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 14.8713 2.0989 7.09 3e-08 ***
ore 0.4079 0.0905 4.51 7e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
[1] 0.3673
15
10
0 5 10 15 20 25 30
ore di frequenza
Against denominator:
Intercept only
---
Bayes factor type: BFlinearModel, JZS
Esercizio 4.21
2. Si produca un grafico in due parti con gli istogrammi della distribuzione dei punteggi
e delle età dei soggetti.
6
6
5
5
4
4
Frequency
Frequency
3
3
2
2
1
1
0
34 38 42 46 20 30 40 50 60 70 80
punteggi età
data: X$punteggi
D = 0.16, p-value = 0.7
alternative hypothesis: two-sided
4 REGRESSIONE LINEARE SEMPLICE 100
46
44
punteggi
42
40
38
36
30 40 50 60 70 80
età
5. Si produca un grafico che riporti in ascissa i percentili della variabile età ed in ordi-
nata i percentili dei punteggi. Dalla lettura di questo grafico è ragionevole ipotizzare
una relazione lineare tra le due variabili?
46
44
punteggi
42
40
38
36
30 40 50 60 70 80
età
6. Si valuti, con un test opportuno, se l’età sia predittiva dei punteggi al test.
> summary(lm(punteggi~eta,data=X))
Call:
lm(formula = punteggi ~ eta, data = X)
Residuals:
Min 1Q Median 3Q Max
-7.269 -1.815 0.386 2.948 3.991
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 45.3303 2.6509 17.10 1.4e-12 ***
eta -0.0494 0.0454 -1.09 0.29
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Esercizio 4.22
> summary(X[,-1])
Call:
lm(formula = (37000 - stipatt) ~ 1, data = X)
Residuals:
Min 1Q Median 3Q Max
-100580 -2518 5545 10420 18670
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2580 784 3.29 0.0011 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
4e-04
2e-04
0e+00
S ≤ 35459 S ≥ 38541
stipendi
5. Si valuti, con il test opportuno, se vi siano differenze significative tra maschi e
femmine in relazione allo stipendio percepito.
> fit1 <- lm(stipatt~sesso,data=X)
> anova(fit1)
Response: stipatt
Df Sum Sq Mean Sq F value Pr(>F)
sesso 1 2.79e+10 2.79e+10 120 <2e-16 ***
Residuals 472 1.10e+11 2.33e+08
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Partial eta^2
sesso 0.2024
Residuals NA
Call:
lm(formula = stipatt ~ stipiniz, data = X)
Residuals:
Min 1Q Median 3Q Max
-35424 -4031 -1154 2584 49293
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.93e+03 8.89e+02 2.17 0.031 *
stipiniz 1.91e+00 4.74e-02 40.28 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
data: X$stipatt
D = 0.21, p-value <2e-16
alternative hypothesis: two-sided
> bartlett.test(stipatt~catlav,data=X)
Response: stipatt
Df Sum Sq Mean Sq F value Pr(>F)
catlav 2 8.94e+10 4.47e+10 434 <2e-16 ***
Residuals 471 4.85e+10 1.03e+08
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Partial eta^2
catlav 0.6485
Residuals NA
10. Si ripetano i test dei punti 5, 7 e 8 utilizzando ∆BIC e Bayes Factor, confrontando
i risultati con quelli ottenuti precedentemente.
> B0 <- BIC(lm(stipatt~1,data=X))
> B1 <- BIC(fit1)
> exp((B0-B1)/2)
[1] 8.77e+21
[1] 1.035e+152
[1] 8.693e+104
4 REGRESSIONE LINEARE SEMPLICE 104
> lmBF(stipatt~sesso,data=X)
Against denominator:
Intercept only
---
Bayes factor type: BFlinearModel, JZS
> lmBF(stipatt~stipiniz,data=X)
Against denominator:
Intercept only
---
Bayes factor type: BFlinearModel, JZS
> lmBF(stipatt~catlav,data=X)
Against denominator:
Intercept only
---
Bayes factor type: BFlinearModel, JZS
5 REGRESSIONE LINEARE MULTIPLA 105
Esercizio 5.1
10
5
c x y
tipo di farmaco
4. Si valuti se le varianze dei 6 gruppi sono omogenee (quali sono i sei gruppi?).
5 REGRESSIONE LINEARE MULTIPLA 106
Response: score
Df Sum Sq Mean Sq F value Pr(>F)
drug 2 112 56.0 3.05 0.072 .
fdep 1 24 24.0 1.31 0.268
drug:fdep 2 144 72.0 3.93 0.038 *
Residuals 18 330 18.3
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Partial eta^2
drug 0.2534
fdep 0.0678
drug:fdep 0.3038
Residuals NA
[1] 155.6
> BIC(M1)
[1] 153.3
5 REGRESSIONE LINEARE MULTIPLA 107
Esercizio 5.2
24.0
media
23.0
85
tottest
8
75
7
6
65
6. Si produca un grafico in tre parti con istogramma, boxplot e qqplot della variabile
prestazione.
100
0.8
0.8
80
Sample Quantiles
Frequency
0.6
0.6
60
0.4
0.4
40
20
0.2
0.2
0
> cor(X[,c("votodip","tottest","prestazione")])
8. Si produca un grafico in due parti con la distribuzione dei punteggi della variabile
prestazione in funzione delle variabili votodip e tottest.
0.8
0.8
prestazione
prestazione
0.6
0.6
0.4
0.4
0.2
0.2
40 45 50 55 60 50 60 70 80 90
Call:
lm(formula = prestazione ~ votodip * tottest, data = X)
Residuals:
Min 1Q Median 3Q Max
-0.6728 -0.0968 0.0020 0.0947 0.4559
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.212993 0.484950 -0.44 0.66
votodip 0.002759 0.008941 0.31 0.76
tottest -0.000592 0.005894 -0.10 0.92
votodip:tottest 0.000143 0.000110 1.30 0.19
2
Residuals
0
-0.2
23
-4
23
Standardized residuals
23
117 172
0 2
1.0
150
Cook’s
172 distance
-4
0.0
23
Esercizio 5.3
Nel file metodo.sav sono riportati i punteggi ottenuti da 20 studenti in una prova sostenuta
alla fine di un corso. Gli studenti sono stati suddivisi in quattro gruppi, in ciascuno dei
quali il corso è stato impostato diversamente nel metodo (lezione o discussione) e nella
durata delle sessioni (30 o 50 minuti). Si cuole sapere se il metodo e la durata hanno
influito sui punteggi ottenuti dagli studenti nella prova di fine corso.
1. Si importi il file metodo.sav in R.
> X <- read.spss(paste(datadir,"metodo.sav",sep=""),to.data.frame=TRUE)
> mean(X$punteggi)
[1] 11.25
> var(X$punteggi)
[1] 6.513
4. Si produca il grafico delle medie, con relativi intervalli di confidenza, della variabile
punteggi in funzione delle variabili metodo e durata.
Lezione
30
Discussione
20
punteggi
10
0
30 50
durata
5. Determinare, con un opportuno test statistico, se vi sia una influenza delle variabili
metodo e durata sulla variabile punteggi.
> fit <- lm(punteggi~metodo*durata,data=X)
> anova(fit)
Response: punteggi
Df Sum Sq Mean Sq F value Pr(>F)
metodo 1 18.0 18.0 5.27 0.0355 *
durata 1 36.5 36.5 10.64 0.0049 **
metodo:durata 1 14.5 14.5 4.22 0.0567 .
Residuals 16 54.8 3.4
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
5 REGRESSIONE LINEARE MULTIPLA 111
Partial eta^2
metodo 0.2478
durata 0.3995
metodo:durata 0.2087
Residuals NA
Against denominator:
punteggi ~ metodo + durata
---
Bayes factor type: BFlinearModel, JZS
Esercizio 5.4
1. Si importino i dati in R.
> X <- read.table(paste(datadir,"eysenck.dat",sep=""),header=TRUE)
2. Per ciascuno dei quattro gruppi, definiti dall’incrocio tra le variabili trait e member
si calcolino, medie, deviazioni standard, numerosità ed intervallo di confidenza delle
medie al 95%.
> (mx <- tapply(X$use,list(X$member,X$trait),mean))
Ex In
no 3.121 3.738
yes 3.487 3.408
Ex In
no 0.4989 0.7252
yes 0.6055 0.8091
Ex In
no 25 25
yes 25 25
Ex In
no 0.09977 0.1450
yes 0.12110 0.1618
> CI.mean(mx,sx,n)
$input
mean sd n level
Ex-no 3.12 0.50 25 0.95
Ex-yes 3.49 0.61 25 0.95
In-no 3.74 0.73 25 0.95
In-yes 3.41 0.81 25 0.95
$err.st
[1] 0.09977 0.12110 0.14504 0.16183
$CI
inf sup
Ex-no 2.915 3.326
Ex-yes 3.237 3.737
In-no 3.439 4.038
In-yes 3.074 3.742
Ex
In
4.0
use
3.5
3.0
no yes
member
Response: use
Df Sum Sq Mean Sq F value Pr(>F)
member 1 0.0 0.008 0.02 0.891
trait 1 1.8 1.816 4.04 0.047 *
member:trait 1 3.0 3.032 6.75 0.011 *
Residuals 96 43.1 0.449
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Partial eta^2
member 0.0001963
trait 0.0404258
member:trait 0.0657108
Residuals NA
Against denominator:
use ~ member + trait
---
Bayes factor type: BFlinearModel, JZS
Esercizio 5.5
Un campione di 405 modelli di auto, prodotte tra il 1970 ed il 1982, viene analizzato per
una valutazione comparativa. Per ciascun modello vengono riportate alcune informazioni
relative al consumo in km al litro, cilindrata, potenza in cavalli, peso e accelerazione, più
il paese e l’anno di produzione. I dati sono nel file auto.sav.
1. Si importi il file auto.sav in R.
> X <- read.spss(paste(datadir,"auto.sav",sep=""),to.data.frame=TRUE)
> tapply(X$consumo,list(X$anno,X$origine),sd,na.rm=TRUE)
Italia
Europa
30
Giappone
consumo
25
20
15
10
70 72 74 76 78 80 82
anno
4. Si valuti, con gli opportuni test e grafici, se le distribuzioni dei consumi nelle nazioni
di produzione possono essere considerate normali.
2
Theoretical Quantiles
Theoretical Quantiles
Theoretical Quantiles
2
1
1
0
0
-1
-1
-1
-2
-2
-2
-3
5 15 25 35 15 25 35 15 25 35
5. Si produca un grafico in quattro parti che presenti i grafici a dispersione della varia-
bile consumo in funzione delle variabili cilindrata (variabile motore), potenza (cv),
peso (peso) e numero di cilindri (cilindri).
consumo
consumo
30
30
10
10
motore cv
consumo
consumo
30
30
10
10
peso cilindri
6. Si determini quali tra le variabili cilindrata (variabile motore), potenza (cv), pe-
so (peso) e numero di cilindri (cilindri) siano predittive della variabile consumo
(ovvero quali β relativi siano statisticamente significativi).
> fit <- lm(consumo~motore+cv+peso+cilindri,data=X)
> summary(fit)
Call:
lm(formula = consumo ~ motore + cv + peso + cilindri, data = X)
5 REGRESSIONE LINEARE MULTIPLA 116
Residuals:
Min 1Q Median 3Q Max
-9.347 -2.589 -0.505 2.153 16.450
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 34.42868 1.35359 25.44 < 2e-16 ***
motore -0.01510 0.00660 -2.29 0.023 *
cv -0.06268 0.01292 -4.85 1.8e-06 ***
peso -0.01473 0.00208 -7.08 6.9e-12 ***
cilindri 1.22236 0.20676 5.91 7.4e-09 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Partial eta^2
motore 0.01337
cv 0.05743
peso 0.11491
cilindri 0.08303
Residuals NA
Against denominator:
Intercept only
---
Bayes factor type: BFlinearModel, JZS
Esercizio 5.6
Nel file SNA1.rda sono contenuti i dati relativi ad un esperimento condotto su 76 bambini
di età compresa tra i 3 ed i 6 anni. Ciascun bambino è stato classificato in base alla
modalità con cui utilizza l’associazione numeri-spazio (Spatial-Numeric Association, SNA).
Con questo criterio sono stati identificati tre gruppi (definiti nella variabile SNA): soggetti
SNA1, ovvero i bambini che mostrano un’associazione numeri-spazio compatibile con la
direzione di lettura-scrittura, SNA2, ovvero i bambini con associazione inversa e non-SNA,
ovvero bambini che non mostrano un’associazione stabile. Ai bambini viene mostrata una
sequenza di numeri target da 1 a 9 ed essi devono riportare su una linea di 10 cm la
posizione del numero. Nel file sono presenti le variabili che indicano la differenza in cm.
tra la posizione indicata e la vera posizione dei numeri, e la media di tali scarti (variabile
media.scarti). La variabile gruppo.eta contiene le età dei bambini raggruppate in 6
fasce.
1. Si importino i dati in R.
> load(paste(datadir,"SNA1.rda",sep=""))
gruppo.eta sna n1 n2 n3 n4
1:14 no-sna:42 Min. :-3.698 Min. :-1.647 Min. :-3.322 Min. :-1.540
2:13 sna1 :18 1st Qu.:-2.702 1st Qu.:-0.704 1st Qu.:-1.467 1st Qu.:-0.469
3:12 sna2 :16 Median :-1.513 Median :-0.191 Median :-0.750 Median : 0.422
4:14 Mean :-1.364 Mean :-0.157 Mean :-0.425 Mean : 0.324
5:11 3rd Qu.:-0.035 3rd Qu.: 0.401 3rd Qu.: 0.621 3rd Qu.: 1.098
6:12 Max. : 0.846 Max. : 1.446 Max. : 2.439 Max. : 2.367
n5 n6 n7 n8 n9
Min. :-1.087 Min. :-0.074 Min. :-1.30 Min. :-0.338 Min. :-0.113
1st Qu.: 0.283 1st Qu.: 0.810 1st Qu.: 0.82 1st Qu.: 1.206 1st Qu.: 1.516
Median : 0.888 Median : 1.334 Median : 1.28 Median : 1.675 Median : 2.608
Mean : 0.976 Mean : 1.466 Mean : 1.21 Mean : 1.666 Mean : 2.482
3rd Qu.: 1.598 3rd Qu.: 2.106 3rd Qu.: 1.60 3rd Qu.: 2.319 3rd Qu.: 3.502
Max. : 3.185 Max. : 3.151 Max. : 3.14 Max. : 3.891 Max. : 5.467
medie.scarti
Min. :-0.0485
1st Qu.: 0.4767
Median : 0.6895
Mean : 0.6870
3rd Qu.: 0.9012
Max. : 1.3107
3. Volendo sapere se l’età dei soggetti e il tipo di SNA siano predittive degli scarti com-
messi dai bambini si definisca il modello opportuno e si stimino i relativi parametri.
Call:
lm(formula = medie.scarti ~ gruppo.eta + sna, data = SNA1)
Coefficients:
(Intercept) gruppo.eta2 gruppo.eta3 gruppo.eta4 gruppo.eta5 gruppo.eta6 snasna1
0.4638 0.0603 0.0768 -0.0246 0.0457 0.0485 0.4398
snasna2
0.4125
5. Si considerino ora le singole valutazioni ottenute per i nove numeri target e si indi-
vidui un grafico opportuno per visualizzare le distribuzioni degli scarti indicati dai
bambini rispetto a ciascun numero target.
4
2
0
-2
-4
n1 n2 n3 n4 n5 n6 n7 n8 n9
6. Si valuti, sulla base del grafico prodotto al punto 5, se sia ipotizzabile una relazione
lineare tra la grandezza del numero target e lo scarto indicato.
Esercizio 5.7
1. Si importino i dati in R.
5 REGRESSIONE LINEARE MULTIPLA 119
> load(paste(datadir,"mathschool.rda",sep=""))
prof1 prof2
101 26.2 0.0
102 31.0 0.0
103 0.0 27.0
104 23.2 0.0
105 0.0 34.0
106 0.0 18.8
107 0.0 35.8
prof1 prof2
80.4 115.6
1 2 3 4 5
5. Si formuli un modello (lineare) per valutare i punteggi nel test di matematica durante
i cinque anni di scuola e se ne stimino i parametri.
> (lm1 <- lm(math~anno,data=mathschool))
Call:
lm(formula = math ~ anno, data = mathschool)
Coefficients:
(Intercept) anno
18.88 6.24
Against denominator:
math ~ anno + docente
---
Bayes factor type: BFlinearModel, JZS
8. Si utilizzi il Bayes Factor per individuare il migliore tra i modelli definiti ai punti 5,
6 e 7 (suggerimento: si può utilizzare la funzione generalTestBF()).
> generalTestBF(math~anno*docente,data=mathschool)
Against denominator:
Intercept only
---
Bayes factor type: BFlinearModel, JZS
9. Si rappresentino graficamente gli effetti del modello migliore tra i tre valutati e si
interpretino i risultati.
5 REGRESSIONE LINEARE MULTIPLA 121
1 2 3 4 5
docente=prof1 docente=prof2
70
math 60
50
40
30
20
1 2 3 4 5
anno
Esercizio 5.8
Il file vaes2015.rda contiene un campione di 200 soggetti coinvolti in una ricerca sul
pregiudizio verso gli immigrati. Nel data set sono presenti le seguenti variabili:
• AGENTI SOC = livello di pregiudizio delle persone importanti (partner, genitori, amici
stretti, etc.),
1. Si importino i dati in R.
> load(paste(datadir,"vaes2015.rda",sep=""))
5 REGRESSIONE LINEARE MULTIPLA 122
150
100
50
0
150
100
50
0
1 2 3 4 5 6 7 0 20 40 60 80 10 20 30 40 0 5 10 15 20 0 5 10 15 20
6
PREGIUDIZIO
4
2
1 3 5 7
NORME
6
PAURACRI
2
80
STIME
40
0
80
40
CONTATTO
0
30
AGENTI SOC
10
15
Or Politico
5
20
GIORNALIsx
10
0
12
GIORNALIdx
6
0
20
TG
10
0
2 3 4 5 6 2 4 6 8 0 20 40 60 80 5 10 15 0 4 8 12
4. Si definisca un modello lineare per individuare quali siano i predittori del livello di
pregiudizio e se ne stimino i parametri (quanti sono?).
> fit <- lm(PREGIUDIZIO~.,data=vaes2015)
> coef(fit)
4
137 1 137
Standardized residuals
1
3
2
1
1
0
-1 0
-1
289
-3
-2
289
2 3 4 5 6 -3 -2 -1 0 1 2 3
Scale-Location
Fitted values Residuals vsQuantiles
Theoretical Leverage
137
4
1 289
1137
Standardized residuals
1.5
2
1.0
0
0.5
-2
Cook’s distance
289
0.0
-4
2 3 4 5 6 0.00 0.05 0.10 0.15 0.20
Call:
lm(formula = PREGIUDIZIO ~ ., data = vaes2015)
Residuals:
Min 1Q Median 3Q Max
-1.7765 -0.3963 -0.0127 0.3535 1.9918
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.50206 0.27430 9.12 < 2e-16 ***
NORME -0.15402 0.03156 -4.88 2.3e-06 ***
PAURACRI 0.04568 0.02422 1.89 0.061 .
STIME 0.01494 0.00301 4.97 1.5e-06 ***
CONTATTO -0.01134 0.00252 -4.50 1.2e-05 ***
AGENTI_SOC 0.01337 0.00587 2.28 0.024 *
Or_Politico 0.09427 0.01463 6.45 9.5e-10 ***
GIORNALIsx -0.00844 0.01151 -0.73 0.464
GIORNALIdx 0.03338 0.01974 1.69 0.092 .
TG 0.01784 0.01111 1.61 0.110
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
eta^2
NORME 0.076063
PAURACRI 0.011363
STIME 0.078937
CONTATTO 0.064694
AGENTI_SOC 0.016602
Or_Politico 0.132699
GIORNALIsx 0.001721
GIORNALIdx 0.009134
TG 0.008242
Residuals NA
5 REGRESSIONE LINEARE MULTIPLA 124
Or Politico
STIME
GIORNALIsx
NORME
GIORNALIdx
AGENTI SOC
PAURACRI
TG
CONTATTO
1
10
100
1000
10000
1e+05
1e+06
1e+07
1e+08
1e+09
1e+10
1e+11
1e+12
1e+13
1e+14
1e+15
1e+16
1e+17
1e+18
1e+19
1e+20
1e+21
1e+22
1e+23
1e+24
1e+25
1e+26
1e+27
1e+28
1e+29
1e+30
1e+31
1e+32
9. Considerando i risultati dei punti 6, 7 e 8 si formulino tre modelli alternativi (uno
sulla base di ciascuno dei tre risultati) e si confrontino.
> ## MODELLO 1: tolgo i predittori non-significativi
> fit1 <- lm(PREGIUDIZIO~NORME+STIME+CONTATTO+AGENTI_SOC+Or_Politico,data=vaes2015)
>
> ## MODELLO 2: tolgo i predittori con eta2 < .01
> fit2 <- lm(PREGIUDIZIO~NORME+PAURACRI+STIME+CONTATTO+AGENTI_SOC
+ +Or_Politico,data=vaes2015)
>
> ## MODELLO 3: tolgo i predittori con BF più basso
> fit3 <- lm(PREGIUDIZIO~NORME+STIME+Or_Politico+GIORNALIsx+GIORNALIdx,data=vaes2015)
>
> ## confronto
> BIC(fit,fit1,fit2,fit3)
df BIC
fit 11 399.4
fit1 7 394.5
fit2 8 391.2
fit3 7 414.3
10. Si stimi l’evidenza relativa del modello migliore individuato al punto precedente
rispetto al modello con tutti i predittori.
> BFall <- lmBF(PREGIUDIZIO~NORME+PAURACRI+STIME+CONTATTO+AGENTI_SOC
+ +Or_Politico+GIORNALIsx+GIORNALIdx+TG,data=na.omit(vaes2015))
> BF2 <- lmBF(PREGIUDIZIO~NORME+PAURACRI+STIME+CONTATTO+AGENTI_SOC
+ +Or_Politico,data=na.omit(vaes2015))
> BF2/BFall
Against denominator:
PREGIUDIZIO ~ NORME + PAURACRI + STIME + CONTATTO + AGENTI_SOC + Or_Politico + GIORNALIsx + GIORNALIdx + TG
---
Bayes factor type: BFlinearModel, JZS
5 REGRESSIONE LINEARE MULTIPLA 125
Esercizio 5.9
In una ricerca sulla depressione nei preadolescenti viene selezionato un campione di 676
studenti di scuola media e primi anni di superiore. A ciascun soggetto viene chiesto di
esprimere su una scala a 5 punti il proprio grado di preferenza verso la musica gotica
(variabile goth, più è alto il valore maggiore la preferenza), e viene somministrato un test
per valutare il livello di depressione con una misura che varia tra -2 e 2 (variabile dep, più
è alto il valore maggiore il livello di depressione). Il file gothic.rda contiene i dati rilevati
su queste variabili con l’aggiunta delle informationi relative a genere (variabile gender ed
età (variabile age) dei soggetti.
Adottando un approccio di confronto tra i modelli, si voglioni individuare i migliori
predittori della depressione.
1. Si importino i dati in R.
> load(paste(datadir,"gothic.rda",sep=""))
vars n mean sd median trimmed mad min max range skew kurtosis se
subj* 1 676 438.99 263.08 441.50 435.31 332.10 1.00 936.00 935.00 0.07 -1.16 10.12
gender* 2 676 1.54 0.50 2.00 1.56 0.00 1.00 2.00 1.00 -0.18 -1.97 0.02
age 3 676 12.35 0.56 12.00 12.31 0.00 10.00 15.00 5.00 0.74 1.26 0.02
goth 4 676 1.77 1.10 1.00 1.54 0.00 1.00 5.00 4.00 1.45 1.28 0.04
dep 5 676 0.14 0.63 0.25 0.19 0.59 -1.31 1.37 2.68 -0.68 -0.10 0.02
300
200
200
100
100
0
male female 10 11 12 13 14 15
preferenza per la musica gotica depressione
300
80
Frequency
60
200
40
100
20
0
0
Call:
lm(formula = dep ~ 1, data = goth)
Coefficients:
(Intercept)
0.138
5 REGRESSIONE LINEARE MULTIPLA 126
Call:
lm(formula = dep ~ goth, data = goth)
Coefficients:
(Intercept) goth
-0.0259 0.0931
Call:
lm(formula = dep ~ gender, data = goth)
Coefficients:
(Intercept) genderfemale
0.0439 0.1738
Call:
lm(formula = dep ~ age, data = goth)
Coefficients:
(Intercept) age
-0.1224 0.0211
Call:
lm(formula = dep ~ goth + gender, data = goth)
Coefficients:
(Intercept) goth genderfemale
-0.1082 0.0892 0.1636
Call:
lm(formula = dep ~ goth + age, data = goth)
Coefficients:
(Intercept) goth age
-0.3743 0.0936 0.0281
Call:
lm(formula = dep ~ gender + age, data = goth)
Coefficients:
(Intercept) genderfemale age
-0.4109 0.1778 0.0366
5 REGRESSIONE LINEARE MULTIPLA 127
Call:
lm(formula = dep ~ goth * gender, data = goth)
Coefficients:
(Intercept) goth genderfemale goth:genderfemale
-0.0948 0.0814 0.1405 0.0132
Call:
lm(formula = dep ~ goth * age, data = goth)
Coefficients:
(Intercept) goth age goth:age
-0.49812 0.16799 0.03818 -0.00604
Call:
lm(formula = dep ~ gender * age, data = goth)
Coefficients:
(Intercept) genderfemale age genderfemale:age
-0.8299 1.0255 0.0704 -0.0686
df AIC
m11 3 1286
m12 3 1291
m13 3 1303
m21 4 1276
m22 4 1287
m23 4 1292
m31 5 1278
m32 5 1289
m33 5 1293
> BIC(m11,m12,m13,m21,m22,m23,m31,m32,m33)
df BIC
m11 3 1299
m12 3 1304
m13 3 1317
m21 4 1294
m22 4 1305
m23 4 1310
m31 5 1300
m32 5 1312
m33 5 1316
> summary(m21)
Call:
lm(formula = dep ~ goth + gender, data = goth)
Residuals:
Min 1Q Median 3Q Max
-1.811 -0.353 0.111 0.449 1.290
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.1082 0.0512 -2.11 0.03495 *
goth 0.0892 0.0218 4.10 4.7e-05 ***
genderfemale 0.1636 0.0479 3.42 0.00067 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
0.5 0.25
0.4 0.20
0.15
dep
dep
0.3
0.10
0.2
0.05
0.1
0.00
0.0
1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 male female
goth gender
Esercizio 5.10
In una ricerca sul ruolo dell’attaccamento e dell’alleanza tra genitori come predittori dello
stress in genitori adottivi, viene intervistato un gruppo di 40 coppie con un figlio adottato.
Nel file parenting.rda sono raccolti i dati relativi a 5 variabili che misurano: lo stress dei
genitori relativo a tre domini (Parent Distress, PD; Parent/Child Disfunctional interaction,
PCD; Difficulty Child, CD), l’attaccamento irrisolto (U, in cui il valore 1 indica questa
caratteristica del genitore) e l’alleanza tra genitori (Parenting Alliance Measure, PAM).
Per ciascuna variabile è presente il valore ottenuto sulle madri (.m) e sui padri (.p).
Si vuole individuare il modello che spiega meglio il livello di stress.
1. Si importino i dati in R.
> load(paste(datadir,"parenting.rda",sep=""))
2. Si modifichi il data frame in modo da ottenere una riga per ogni soggetto e cinque
colonne (relative alle variabili PD, PCD, CD, U, PAM) più una nuova colonna che
5 REGRESSIONE LINEARE MULTIPLA 129
indichi il genitore. Suggerimento: si creino prima due data frame separati per madri
e padri e poi li si unisca con rbind().
> Xm <- parenting[,c(1:3,7,8)]; Xm$genitore <- "m"
> Xp <- parenting[,c(4:6,9,10)]; Xp$genitore <- "p"
> colnames(Xm)[1:5] <- colnames(Xp)[1:5] <- c("PD","PCD","CD","U","PAM")
> X <- rbind(Xm,Xp)
> head(X)
4. Si ispezionino con gli opportuni grafici le variabili U, PAM, genitore (creata al punto
2) ed il punteggio totale di stress appena calcolato.
10.0 40 5
60
4
7.5 30
40
frequenza
3
5.0 20
2
20
2.5 10
1
0 0.0 0 0
0 1 70 80 90 100 m p 40 60 80 100 120
U PAM genitore tot.stress
30
frequenza
genitore
90 100
PAM
20 m
80
80 10 p 60
70 0 40
0 1 0 1 0 1
U U U
tot.stress
90 100 100
PAM
80 80
80
60 60
70 40
40
m p 70 80 90 100 m p
genitore PAM genitore
5 REGRESSIONE LINEARE MULTIPLA 130
df BIC
m_nullo 2 646.9
m_U 3 649.3
m_PAM 3 640.1
m_genitore 3 651.2
m_U_PAM 4 642.7
m_U_genitore 4 653.7
m_PAM_genitore 4 644.0
[1] 29.7
78 78
Standardized residuals
4
40
17 23 17 23
20
2
1
0
0
-20
-2
55 60 65 70 75 -2 -1 0 1 2
Scale-Location
Fitted values Residuals vsQuantiles
Theoretical Leverage
78
2.0
78
Standardized residuals
1
1.5
17 23
0.5
2
70
1.0
0
0.5
1
-2
Cook’s distance
0.0
0.5
9. Si stimino i parametri anche dei modelli con le interazioni a due e tre vie.
> m_UPAM <- lm(tot.stress~U*PAM,data=X)
> m_Ugenitore <- lm(tot.stress~U*genitore,data=X)
> m_PAMgenitore <- lm(tot.stress~PAM*genitore,data=X)
> m_UPAMgenitore <- lm(tot.stress~U*PAM*genitore,data=X)
10. Si utilizzi il BIC per confrontare questi nuovi modelli con il modello migliore ottenuto
prima e si valuti quantitativamente l’impatto delle interazioni su questo modello.
5 REGRESSIONE LINEARE MULTIPLA 131
> BIC(m_PAM,m_UPAM,m_Ugenitore,m_PAMgenitore,m_UPAMgenitore)
df BIC
m_PAM 3 640.1
m_UPAM 5 645.6
m_Ugenitore 5 657.5
m_PAMgenitore 5 645.1
m_UPAMgenitore 9 655.0
[1] 0.06242
> exp((BIC(m_PAM)-BIC(m_PAMgenitore))/2)
[1] 0.08302
> exp((BIC(m_PAM)-BIC(m_UPAMgenitore))/2)
[1] 0.0005691
11. Si ripeta il confronto tra modelli utilizzando il Bayes Factor (con la funzione generalTestBF()).
Il modello migliore finale è lo stesso?
> generalTestBF(tot.stress~U*PAM*genitore,data=X)
Against denominator:
Intercept only
---
Bayes factor type: BFlinearModel, JZS
85
80
tot.stress 75
70
65
60
55
70 75 80 85 90 95
PAM
6 REGRESSIONE LINEARE MULTIVARIATA 133
Esercizio 6.1
Nel file Goldberger.dat6 sono riportati i valori del prodotto nazionale lordo (gnp) in
miliardi di dollari, la quantità di lavoro espressa in milioni di anni-uomo (labor), il capitale
reale in miliardi di dollari (capital) e il tempo in anni a partire dal 1928 (time) in 23
rilevazioni economiche annuali negli Stati Uniti durante i periodi 1929-1941 e 1946-1955.
Si vuole sapere se quantità di lavoro, capitale reale e tempo sono predittori del prodotto
nazionale lordo.
labor
β12
β14
time
3. Si importino i dati in R.
> X <- read.table(paste(datadir,"Goldberger.dat",sep=""),header=TRUE)
35 45 55 0 5 15 25
250
gnp
100
50
35 labor
capital
20 80
time
15
0
Call:
lm(formula = gnp ~ labor + capital + time, data = X)
Coefficients:
(Intercept) labor capital time
-61.728 3.819 0.322 3.786
7. Si calcoli il valore di R2 .
> summary(fitLM)$r.squared
[1] 0.9971
> inspect(fitSEM,"rsquare")
gnp
0.997
Esercizio 6.2
gravereq = media dei voti sui corsi obbligatori (y1 ), gravelec = media dei voti sui
corsi opzionali (y2 ), knowledg = voto di conoscenza generale della scuola superiore (x1 ),
iqprevyr = punteggio al QI nell’anno precedente (x2 ), edmotiv = punteggio motivazionale
dell’anno precedente (x3 ). I relativi dati sono nel file Finn.dat. Si vuole valutare se le
variabili x1 , x2 e x3 sono predittive dei voti sui corsi.
1. Si importino i dati in R.
> X <- read.table(paste(datadir,"Finn.dat",sep=""),header=TRUE)
4. Si stimino i parametri del modello, definendolo in modo che sia di tipo ricorsivo.
> fit <- sem(model,data=X)
> coef(fit)
Number of observations 15
Estimator ML
Minimum Function Test Statistic 9.521
Degrees of freedom 1
P-value (Chi-square) 0.002
Parameter Estimates:
Information Expected
Standard Errors Standard
Regressions:
Estimate Std.Err z-value P(>|z|)
gravereq ~
knowledg 0.085 0.023 3.700 0.000
iqprevyr 0.008 0.042 0.198 0.843
edmotiv -0.015 0.096 -0.156 0.876
6 REGRESSIONE LINEARE MULTIVARIATA 136
gravelec ~
knowledg 0.047 0.022 2.129 0.033
iqprevyr 0.145 0.040 3.639 0.000
edmotiv 0.126 0.092 1.366 0.172
Covariances:
Estimate Std.Err z-value P(>|z|)
.gravereq ~~
.gravelec 0.000
Variances:
Estimate Std.Err z-value P(>|z|)
.gravereq 0.240 0.088 2.739 0.006
.gravelec 0.222 0.081 2.739 0.006
gravereq gravelec
rmr srmr
0.04079 0.06530
> inspect(fit,"rsquare")
gravereq gravelec
0.568 0.685
[1] 0.8256
knowledg iqprevyr
gravereq gravelec
10. Si calcolino gli stessi indici di fit già calcolati al punto 7 per questo nuovo modello
valutando se sia migliore del precedente.
> inspect(fit2,"fit")[c("rmr","srmr")]
rmr srmr
0.05763 0.08455
> inspect(fit2,"rsquare")
gravereq gravelec
0.566 0.646
[1] 0.806
Esercizio 6.3
Used Total
Number of observations 433 455
Estimator ML
Minimum Function Test Statistic 0.000
Degrees of freedom 0
Minimum Function Value 0.0000000000000
Parameter Estimates:
Information Expected
Standard Errors Standard
Regressions:
Estimate Std.Err z-value P(>|z|)
media ~
an_corso -0.571 0.269 -2.119 0.034
sex 0.217 0.179 1.212 0.225
votodip 0.195 0.016 11.927 0.000
tottest 0.032 0.012 2.661 0.008
n_es ~
an_corso 3.460 0.361 9.576 0.000
sex 0.434 0.240 1.805 0.071
votodip 0.140 0.022 6.399 0.000
media n.es
Covariances:
Estimate Std.Err z-value P(>|z|)
.media ~~
.n_es 1.661 0.228 7.284 0.000
Variances:
Estimate Std.Err z-value P(>|z|)
.media 3.312 0.225 14.714 0.000
.n_es 5.962 0.405 14.714 0.000
5. Si calcolino gli R2 del modello e si individui quale variabile è spiegata meglio dai
predittori considerati.
> inspect(fit1,"rsquare")
media n_es
0.286 0.344
[1] 0.5424
Esercizio 6.4
2. Si stimino i parametri del nuovo modello e li si confronti con quelli ottenuti nell’e-
sercizio 6.3.
> fit2 <- sem(model2,data=X)
> coef(fit2)
media n_es
0.286 0.344
[1] 0.5275
media n_es
media 0 0
n_es 0 0
media n_es
media 3.312 0.000
n_es 0.000 5.962
Esercizio 6.5
2. Si stimino i parametri del nuovo modello e li si confronti con quelli ottenuti nell’e-
sercizio 6.3.
> fit3 <- sem(model3,data=X)
> coef(fit3)
media n_es
0.284 0.339
[1] 0.5386
6 REGRESSIONE LINEARE MULTIVARIATA 141
presreal
presperc
reddreal
statperc
reddperc
Esercizio 6.6
Nel file Kluegel.dat sono tabulati i dati raccolti su un campione di 432 soggetti in una
famosa ricerca di Kluegel, Singleton & Starnes (1977): reddperc = reddito percepito (y1 ),
presperc = prestigio occupazionale percepito (y2 ), statperc = statuts generale percepito
(y3 ), reddreal = reddito reale (x1 ), presreal = prestigio occupazionale reale (x2 ). Nella
figura 5 è rappresentato il modello teorico di riferimento che si vuole analizzare.
1. Si importino i dati in R.
> X <- read.table(paste(datadir,"Kluegel.dat",sep=""),header=TRUE)
1.5
2
1
Sample Quantiles
Sample Quantiles
Sample Quantiles
Sample Quantiles
1
1
1
0.5
0
0
0
0
-1
-0.5
-1
-2
-1
-1
-2
-3
-1.5
-2
-3
-4
-3 -1 1 3 -3 -1 1 3 -3 -1 1 3 -3 -1 1 3 -3 -1 1 3
> shapiro.test(X[,"reddperc"])
6 REGRESSIONE LINEARE MULTIVARIATA 142
> shapiro.test(X[,"presperc"])
> shapiro.test(X[,"statperc"])
> shapiro.test(X[,"reddreal"])
> shapiro.test(X[,"presreal"])
Estimator ML
Minimum Function Test Statistic 8.900
Degrees of freedom 3
P-value (Chi-square) 0.031
Parameter Estimates:
Information Expected
Standard Errors Standard
Regressions:
Estimate Std.Err z-value P(>|z|)
reddperc ~
reddreal 0.130 0.028 4.589 0.000
presperc 0.322 0.209 1.543 0.123
presperc ~
presreal 0.034 0.028 1.209 0.227
reddperc 0.101 0.202 0.500 0.617
statperc ~
reddperc 0.328 0.040 8.136 0.000
presperc 0.318 0.043 7.343 0.000
Variances:
Estimate Std.Err z-value P(>|z|)
.reddperc 0.344 0.028 12.383 0.000
.presperc 0.340 0.051 6.643 0.000
.statperc 0.251 0.017 14.697 0.000
> inspect(fit,"est")$psi[1:3,1:3]
rmr srmr
0.01924 0.03077
> inspect(fit,"rsquare")
[1] 0.1109
6 REGRESSIONE LINEARE MULTIVARIATA 144
Esercizio 6.7
Roth, Wiebe Fillingim & Shay (1989) in una loro ricerca sulla resistenza allo stress hanno
utilizzato le seguenti 5 misure su un campione di 373 studenti universitari: esercizio (va-
riabile exercise), resistenza (variabile hardiness), stato di forma (variabile fitness),
livello di stress (variabile stress) e livello di malessere (variabile illness). Il modello
ipotizzato prevede che lo stato di forma dipenda dall’esercizio e dalla resistenza e che i
livelli di stress e malessere dipendano entrambi da esercizio, resistenza e stato di forma (in
forma inversa). Il file Roth.rda contiene i dati raccolti.
1. Si importino i dati in R.
> load(paste(datadir,"Roth.rda",sep=""))
fitness
-100
stress
-100
illness
-150
exercise
-100
hardiness -50
stress
fitness
illness
hardiness
exercise
Estimator ML
Minimum Function Test Statistic 0.000
Degrees of freedom 0
Parameter Estimates:
Information Expected
Standard Errors Standard
Regressions:
Estimate Std.Err z-value P(>|z|)
fitness ~
exercise 0.436 0.026 16.719 0.000
hardiness 0.136 0.047 2.909 0.004
stress ~
exercise -0.067 0.060 -1.104 0.270
hardiness -0.813 0.083 -9.844 0.000
fitness -0.291 0.091 -3.204 0.001
illness ~
exercise 0.136 0.054 2.519 0.012
hardiness -0.100 0.083 -1.202 0.229
fitness -0.830 0.082 -10.108 0.000
stress 0.513 0.046 11.097 0.000
Variances:
Estimate Std.Err z-value P(>|z|)
.fitness 1180.310 86.428 13.657 0.000
.stress 3618.878 264.993 13.657 0.000
.illness 2890.008 211.621 13.657 0.000
> inspect(fit,"est")$psi[1:3,1:3]
rmr srmr
7.513e-05 1.514e-08
> inspect(fit,"rsquare")
[1] 0.559
Esercizio 6.8
hardiness
stress
exercise
fitness illness
6 REGRESSIONE LINEARE MULTIVARIATA 147
[1] 0.5368
Esercizio 6.9
Si consideri il modello nella figura 6.
SES
MA
SO
AP
EA
Esercizio 6.10
Il modello nella figura 6 rappresenta la relazione tra le seguenti 5 variabili: Mental abi-
lity (MA), Socioeconomic status (SES), Academic performance (AP), Significant other’s
influence (SO), Educational aspiration (EA). Nel file Sewell.rda ci sono i dati raccolti
su un campione di studenti di alcune università americane.
1. Si importino i dati in R.
> load(paste(datadir,"Sewell.rda",sep=""))
AP SO EA MA SES
AP SO EA
AP 0.0000 0.0000 0
SO 0.3151 0.0000 0
EA 0.1939 0.5212 0
> inspect(fit,"est")$psi[1:3,1:3]
AP SO EA
AP 0.9499 0.000 0.00
SO 0.0000 1.013 0.00
EA 0.0000 0.000 1.01
srmr
0.002624
> inspect(fit,"rsquare")
AP SO EA
0.273 0.213 0.333
[1] 0.3176
Esercizio 6.11
In una ricerca sulle aspirazioni professionali di un campione di studenti neodiplomati,
vengono raccolte, con un questionario, le seguenti variabili: grades (voto al diploma),
educexp (aspettative formative), occuasp (aspirazioni professionali), intellig (punteggio
al QI), siblings (numero di fratelli), fatheduc (livello di istruzione del padre), fathoccu
(livello occupazionale del padre). Il modello di riferimento è in figura 7, i relativi dati sono
nel file Kerchoff.rda.
1. Si importino i dati in R.
> load(paste(datadir,"Kerchoff.rda",sep=""))
"grades ~ intellig+siblings+fatheduc+fathoccu"
"educexp ~ grades"
"occuasp ~ grades+educexp"
Estimator ML
Minimum Function Test Statistic 107.064
Degrees of freedom 8
P-value (Chi-square) 0.000
Parameter Estimates:
Information Expected
Standard Errors Standard
Regressions:
Estimate Std.Err z-value P(>|z|)
grades ~
intellig 0.248 0.014 17.341 0.000
siblings -0.109 0.127 -0.858 0.391
fatheduc 0.142 0.030 4.698 0.000
fathoccu 0.047 0.029 1.605 0.108
educexp ~
grades 0.537 0.029 18.391 0.000
occuasp ~
grades 0.087 0.030 2.916 0.004
educexp 0.569 0.031 18.393 0.000
Variances:
Estimate Std.Err z-value P(>|z|)
.grades 10.527 0.538 19.583 0.000
.educexp 9.798 0.500 19.583 0.000
.occuasp 7.182 0.367 19.583 0.000
rmr srmr
1.01145 0.06019
> inspect(fit1,"rsquare")
[1] 0.2984
Esercizio 6.12
b1 b2 b3 b4
b6
# effetti indiretti
"intellig2eduexp := b1*b5"
"siblings2eduexp := b2*b5"
"fatheduc2eduexp := b3*b5"
"fathoccu2eduexp := b4*b5"
"intellig2occuasp := b1*b5 + b5*b7 + b1*b6"
"siblings2occuasp := b2*b5 + b5*b7 + b2*b6"
"fatheduc2occuasp := b3*b5 + b5*b7 + b3*b6"
"fathoccu2occuasp := b4*b5 + b5*b7 + b4*b6"
2. Si stimino gli effetti indiretti delle variabili intellig, siblings, fatheduc, fathoccu.
Estimator ML
Minimum Function Test Statistic 107.064
Degrees of freedom 8
P-value (Chi-square) 0.000
Parameter Estimates:
Information Expected
Standard Errors Standard
Regressions:
Estimate Std.Err z-value P(>|z|)
grades ~
intellig (b1) 0.248 0.014 17.341 0.000
siblings (b2) -0.109 0.127 -0.858 0.391
fatheduc (b3) 0.142 0.030 4.698 0.000
fathoccu (b4) 0.047 0.029 1.605 0.108
educexp ~
grades (b5) 0.537 0.029 18.391 0.000
occuasp ~
grades (b6) 0.087 0.030 2.916 0.004
educexp (b7) 0.569 0.031 18.393 0.000
Variances:
Estimate Std.Err z-value P(>|z|)
.grades 10.527 0.538 19.583 0.000
.educexp 9.798 0.500 19.583 0.000
.occuasp 7.182 0.367 19.583 0.000
Defined Parameters:
Estimate Std.Err z-value P(>|z|)
intellig2eduxp 0.133 0.011 12.617 0.000
siblings2eduxp -0.059 0.068 -0.857 0.392
fatheduc2eduxp 0.076 0.017 4.552 0.000
fathoccu2eduxp 0.025 0.016 1.599 0.110
intellig2occsp 0.460 0.029 15.854 0.000
siblings2occsp 0.237 0.083 2.863 0.004
fatheduc2occsp 0.394 0.032 12.448 0.000
fathoccu2occsp 0.334 0.030 11.106 0.000
intellig fatheduc
b1 b3
b6
4. Si confrontino i due modelli per valutare quale risulti migliore nello spiegare i dati.
> anova(fit2,fit3)
Esercizio 6.13
disf.neuro SES
b1 b2
b4
> load(paste(datadir,"Romney.rda",sep=""))
b1 b2 b3 b4
0.086 0.280 0.530 0.520
morale~~morale sintomi~~sintomi relazioni~~relazioni
0.901 0.718 0.728
Esercizio 6.14
Si riconsideri il modello relativo all’esercizio 6.13 (in figura 8) con l’obiettivo di stimare
gli effetti indiretti.
Estimator ML
Minimum Function Test Statistic 40.488
Degrees of freedom 5
P-value (Chi-square) 0.000
6 REGRESSIONE LINEARE MULTIVARIATA 155
Parameter Estimates:
Information Expected
Standard Errors Standard
Regressions:
Estimate Std.Err z-value P(>|z|)
morale ~
disf.neur (b1) 0.086 0.045 1.897 0.058
SES (b2) 0.280 0.045 6.217 0.000
sintomi ~
morale (b3) 0.530 0.039 13.535 0.000
relazioni ~
morale (b4) 0.520 0.039 13.184 0.000
Covariances:
Estimate Std.Err z-value P(>|z|)
.sintomi ~~
.relazioni 0.000
Variances:
Estimate Std.Err z-value P(>|z|)
.morale 0.901 0.059 15.313 0.000
.sintomi 0.718 0.047 15.313 0.000
.relazioni 0.728 0.048 15.313 0.000
Defined Parameters:
Estimate Std.Err z-value P(>|z|)
SES_sintomi 0.149 0.026 5.650 0.000
SES_relazioni 0.146 0.026 5.623 0.000
disf.neur_sntm 0.045 0.024 1.878 0.060
disf.neur_rlzn 0.044 0.024 1.877 0.060
disf.neuro SES
b2
b4
4. Si valuti se questo nuovo modello risulti essere migliore del precedente, testato
nell’esercizio 6.13.
> anova(fitA,fitB)
Paura Preg
Strat
Esercizio 6.15
I dati del file crimi.rda sono relativi ad uno studio sulla paura della criminalità e le sue
determinanti, raccolti in 4 diversi quartieri di una grande città. Le variabili contenute
nel file sono relative a 7 aspetti presi in considerazione nella ricerca: grado di pregiudizio
verso extracomunitari (Preg), Paura della criminalità, strategie per fronteggiare la paura
(Strat), percezione della presenza di extracomunitari (Extra), percezione di disordine
fisico (DisFis) e sociale (DisSoc), grado di vittimizzazione (Vitt). Si vuole valutare il
modello in figura 9.
1. Si importino i dati in R
> load(paste(datadir,"crimi.rda",sep=""))
srmr
0.08671
6 REGRESSIONE LINEARE MULTIVARIATA 157
> inspect(fit,"rsquare")
[1] -40.99
5. Si definiscano due modelli alternativi in cui viene mantenuto un solo legame tra le
variabili Paura e Strat. Si confrontino per valutare quale dei due risulti essere il
migliore.
modelA <- "
Paura ~ DisFis + DisSoc + Vitt + Strat + Preg
Preg ~ Extra
"
Paura Preg
6 REGRESSIONE LINEARE MULTIVARIATA 158
Esercizio 6.16
Il file vaes2015.rda contiene un campione di 200 soggetti coinvolti in una ricerca sul
pregiudizio verso gli immigrati già descritti nell’esercizio 5.8. Si vuole testare il modello
in figura 10
1. Si importino i dati in R.
> load(paste(datadir,"vaes2015.rda",sep=""))
> cov(vaes2015[,c("PREGIUDIZIO","CONTATTO","AGENTI_SOC","Or_Politico","TG",
+ "NORME","PAURACRI","STIME")],use="complete.obs")
Used Total
Number of observations 198 200
Estimator ML
Minimum Function Test Statistic 116.477
Degrees of freedom 12
P-value (Chi-square) 0.000
> coef(fit)
rmr srmr
8.1451 0.1615
> inspect(fit,"rsquare")
> TCD(fit)$TCD
[1] 0.6328
6 REGRESSIONE LINEARE MULTIVARIATA 160
Used Total
Number of observations 198 200
Estimator ML
Minimum Function Test Statistic 116.477
Degrees of freedom 12
P-value (Chi-square) 0.000
Parameter Estimates:
Information Expected
Standard Errors Standard
Regressions:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
PREGIUDIZIO ~
CONTATTO -0.012 0.002 -4.824 0.000 -0.012 -0.212
AGENTI_SOC 0.014 0.006 2.537 0.011 0.014 0.117
Or_Politico 0.102 0.012 8.352 0.000 0.102 0.413
TG 0.022 0.011 1.958 0.050 0.022 0.101
NORME -0.162 0.028 -5.855 0.000 -0.162 -0.242
PAURACRI 0.056 0.021 2.637 0.008 0.056 0.117
STIME 0.015 0.002 6.074 0.000 0.015 0.268
NORME ~
TG -0.019 0.023 -0.833 0.405 -0.019 -0.059
PAURACRI ~
TG 0.169 0.030 5.637 0.000 0.169 0.372
STIME ~
TG 1.336 0.254 5.257 0.000 1.336 0.350
Variances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
.PREGIUDIZIO 0.334 0.034 9.950 0.000 0.334 0.337
.NORME 2.206 0.222 9.950 0.000 2.206 0.997
.PAURACRI 3.744 0.376 9.950 0.000 3.744 0.862
.STIME 270.258 27.162 9.950 0.000 270.258 0.878
Used Total
Number of observations 198 200
Estimator ML
Minimum Function Test Statistic 116.477
6 REGRESSIONE LINEARE MULTIVARIATA 161
Degrees of freedom 12
P-value (Chi-square) 0.000
Parameter Estimates:
Information Expected
Standard Errors Standard
Regressions:
Estimate Std.Err z-value P(>|z|)
PREGIUDIZIO ~
CONTATTO -0.012 0.002 -4.824 0.000
AGENTI_SOC 0.014 0.006 2.537 0.011
Or_Politic 0.102 0.012 8.352 0.000
TG (d) 0.022 0.011 1.958 0.050
NORME (a) -0.162 0.028 -5.855 0.000
PAURACRI (b) 0.056 0.021 2.637 0.008
STIME (c) 0.015 0.002 6.074 0.000
NORME ~
TG (e) -0.019 0.023 -0.833 0.405
PAURACRI ~
TG (f) 0.169 0.030 5.637 0.000
STIME ~
TG (g) 1.336 0.254 5.257 0.000
Variances:
Estimate Std.Err z-value P(>|z|)
.PREGIUDIZIO 0.334 0.034 9.950 0.000
.NORME 2.206 0.222 9.950 0.000
.PAURACRI 3.744 0.376 9.950 0.000
.STIME 270.258 27.162 9.950 0.000
Defined Parameters:
Estimate Std.Err z-value P(>|z|)
ieNORME 0.003 0.004 0.825 0.409
iePAURACRI 0.009 0.004 2.388 0.017
ieSTIME 0.020 0.005 3.975 0.000
Esercizio 6.17
2. Si aggiungano al data frame due colonne (una per le madri ed una per i padri) che
esprimano l’interazione U × PAM.
> parenting$UPAM.m <- parenting$U.m*parenting$PAM.m
> parenting$UPAM.p <- parenting$U.p*parenting$PAM.p
> describe(parenting)
vars n mean sd median trimmed mad min max range skew kurtosis se
PD.m 1 40 22.18 5.02 22.0 22.16 4.45 12 33 21 0.13 -0.31 0.79
PCD.m 2 40 19.43 5.10 19.0 18.88 4.45 12 35 23 1.23 2.01 0.81
CD.m 3 40 22.90 5.25 22.5 22.94 5.19 12 35 23 -0.04 -0.44 0.83
PD.p 4 40 22.45 5.43 22.0 22.22 5.93 13 35 22 0.40 -0.48 0.86
PCD.p 5 40 18.98 5.19 18.5 18.41 3.71 12 41 29 1.87 5.70 0.82
CD.p 6 40 22.62 6.39 22.0 21.78 4.45 13 43 30 1.22 1.51 1.01
U.m 7 40 0.25 0.44 0.0 0.19 0.00 0 1 1 1.11 -0.78 0.07
PAM.m 8 40 84.33 6.51 85.0 84.53 8.90 68 97 29 -0.28 -0.39 1.03
U.p 9 40 0.20 0.41 0.0 0.12 0.00 0 1 1 1.44 0.09 0.06
PAM.p 10 40 87.10 5.13 86.0 86.97 4.45 74 99 25 0.14 0.18 0.81
UPAM.m 11 40 20.93 36.84 0.0 14.84 0.00 0 95 95 1.14 -0.68 5.83
UPAM.p 12 40 17.40 35.27 0.0 10.56 0.00 0 91 91 1.45 0.11 5.58
U PAM U × PAM
PD PCD CD
> coef(fit.p)
6. Si confrontino gli indici di fit dei due modelli. Quali conclusioni possiamo trarre da
questo confronto?
> # madri
> inspect(fit.m,"rsquare")
> TCD(fit.m)$TCD
[1] 0.3552
> fitmeasures(fit.m)[c("rmr","srmr")]
rmr srmr
5.060e-09 8.764e-11
> # padri
> inspect(fit.p,"rsquare")
> TCD(fit.p)$TCD
[1] 0.3808
> fitmeasures(fit.p)[c("rmr","srmr")]
rmr srmr
1.646e-06 2.985e-08
8. Si stimino i valori attesi delle variabili endogene utilizzando la formula generale del
modello Ŷ = X∗ B0 in cui X∗ è la matrice delle variabili esogene ed endogene usate
nel modello e B0 la trasposta delle matrici dei parametri stimati. Suggerimento: il
prodotto tra matrici si esegue con l’operatore %*%, la trasposta di una matrice con
la funzione t().
> # valori attesi madri
> X.m <- as.matrix(parenting[,colnames(BE.m)])
> hatY.m <- X.m%*%t(BE.m)+matrix(apply(X.m,2,mean),nrow=nrow(X.m),ncol=6,byrow=TRUE)
> # valori attesi padri
> X.p <- as.matrix(parenting[,colnames(BE.p)])
> hatY.p <- X.p%*%t(BE.p)+matrix(apply(X.p,2,mean),nrow=nrow(X.p),ncol=6,byrow=TRUE)
10. Si rappresentino graficamente i residui in funzione dei valori attesi in 6 grafici separati
(3 per ciascuna endogena e per ogni genitore). Quali considerazioni si possono trarre
dai residui ottenuti.
Esercizio 7.1
In relazione ai dati dell’esercizio 1.10 si vuole valutare la plausibilità del modello in figura
12, ovvero che i costi degli impianti (variabile costo), le tipologie di servizi offerti (variabile
tipo) e lo spessore della neve siano predittori della qualità generale della neve. Inoltre si
vuole valutare se vi siano eventuali differenze tra le stazioni sciistiche (variable stazione).
qualita
1. Si importino i dati in R.
> X <- read.spss(paste(datadir,"sciatori.sav",sep=""),to.data.frame=TRUE)
2. Si stimino i parametri del modello di regressione (si può utilizzare a scelta la funzione
lm() o la funzione sem()).
> # con lm()
> (fit1 <- lm(qualita~costo+tipo+spessore,data=X))
Call:
lm(formula = qualita ~ costo + tipo + spessore, data = X)
Coefficients:
(Intercept) costo tipo spessore
29.472 -0.333 -0.329 1.073
Response: qualita
Df Sum Sq Mean Sq F value Pr(>F)
costo 1 1826 1826 868.84 <2e-16 ***
tipo 1 8631 8631 4106.80 <2e-16 ***
spessore 1 14862 14862 7071.63 <2e-16 ***
stazione 4 8 2 0.96 0.43
Residuals 92 193 2
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Scaled residuals:
Min 1Q Median 3Q Max
-2.045 -0.615 -0.100 0.693 2.456
Random effects:
Groups Name Variance Std.Dev.
stazione (Intercept) 5.82e-16 2.41e-08
Residual 2.10e+00 1.45e+00
Number of obs: 100, groups: stazione, 5
Fixed effects:
Estimate Std. Error t value
(Intercept) 29.4720 4.6582 6.3
costo -0.3330 0.0401 -8.3
tipo -0.3291 0.0465 -7.1
spessore 1.0733 0.0128 84.2
Esercizio 7.2
> load(paste(datadir,"radon.rda",sep=""))
4
2
0
50
-2
0
AZ MA MO PA AZ MA MO PA
3. Si valuti se il piano delle abitazioni sia un predittore significativo del livello di radon
utilizzando come variabile dipendente quella più opportuna in base al confronto
grafico effettuato al punto precedente.
> m1 <- lm(log.radon~floor,data=radon)
> summary(m1)
Call:
lm(formula = log.radon ~ floor, data = radon)
Residuals:
Min 1Q Median 3Q Max
-3.205 -0.720 0.005 0.727 4.837
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.90257 0.01065 84.8 <2e-16 ***
floor -0.16548 0.00726 -22.8 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
4. Si stabilisca, con il modello opportuno, se vi siano differenze tra gli otto stati.
> m2 <- lm(log.radon~floor+state,data=radon)
> anova(m2)
Response: log.radon
Df Sum Sq Mean Sq F value Pr(>F)
floor 1 658 658 606 <2e-16 ***
state 7 2303 329 303 <2e-16 ***
Residuals 12768 13863 1
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
7 REGRESSIONE LINEARE MULTILIVELLO 168
5. Si modifichi il modello testato al punto 4 considerando gli stati come effetto random,
valutando lo stesso con intercetta variabile.
> m3 <- lmer(log.radon~floor+(1|state),data=radon)
> summary(m3)
Scaled residuals:
Min 1Q Median 3Q Max
-3.774 -0.632 -0.012 0.645 4.401
Random effects:
Groups Name Variance Std.Dev.
state (Intercept) 0.226 0.476
Residual 1.086 1.042
Number of obs: 12777, groups: state, 8
Fixed effects:
Estimate Std. Error t value
(Intercept) 0.85223 0.16857 5.06
floor -0.08426 0.00705 -11.95
(Intercept)
ND
MN
PA
IN
MA
R5
MO
AZ
Esercizio 7.3
Nel data set school della libreria ADati sono presenti dei dati relativi a 260 studenti
di scuola superiore. Le variabili presenti nel data set sono le seguenti: schid, codice
identificativo della scuola; public, status della scuola, pubblica yes o privata no; ratio,
rapporto studenti-docenti della scuola; percmin, percentuale di studenti appartenenti a
minoranze etniche; classid, codice identificativo della classe; stuid, codice identificativo
dello studente; sex, genere dello studente; ethn, gruppo etnico dello studente; ses, status
socio-economico della famiglia dello studente; homework, ore dedicate alla settimana ai
compiti di matematica; math, punteggio al test di matematica.
7 REGRESSIONE LINEARE MULTILIVELLO 169
1. Si importino i dati in R.
> data(school,package="ADati")
Frequency
80
60
0 50
0
0
school[, j] school[, j]
classid stuid sex ethn
0.0 1.0
120
20
0
Frequency
Frequency
0 100
40
50
0
-2 0 2 0 2 4 6 20 50 80
7000 25000
X$math
X$math
60
60
30
30
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
62000
X$homework 68000
X$homework
X$math
X$math
60
60
30
30
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Call:
lm(formula = math ~ homework, data = school)
Residuals:
Min 1Q Median 3Q Max
-25.483 -6.908 -0.577 7.263 30.995
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 45.265 1.027 44.1 <2e-16 ***
homework 3.669 0.403 9.1 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
5. Si aggiunga al modello testato al punto precedente l’effetto casuale delle scuole con-
siderando le intercette variabili, si stimino nuovamente i parametri confrontandoli
con il risultato del punto 4.
> MX1 <- lmer(math~homework+(1|schid),data=school)
> summary(MX1)
Scaled residuals:
Min 1Q Median 3Q Max
-2.7417 -0.6248 -0.0194 0.6617 2.9074
Random effects:
Groups Name Variance Std.Dev.
schid (Intercept) 48.6 6.97
Residual 72.6 8.52
Number of obs: 260, groups: schid, 4
7 REGRESSIONE LINEARE MULTILIVELLO 171
Fixed effects:
Estimate Std. Error t value
(Intercept) 49.038 3.615 13.57
homework 1.754 0.395 4.44
Data: school
Models:
MX1: math ~ homework + (1 | schid)
MX2: math ~ homework + (homework | schid)
Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
MX1 4 1873 1887 -932 1865
MX2 6 1874 1896 -931 1862 2.73 2 0.25
7. Si rappresentino graficamente gli effetti random del modello giudicato migliore dal
confronto eseguito al punto 6.
schid
(Intercept)
62000
68000
7000
25000
-5 0 5 10
σ1 σ (Intercept) homework
1.0
0.20
1.0
0.10
0.8
0.8
0.15
0.6
density
0.6
0.10
0.05
0.4
0.4
0.05
0.2
0.2
0.00
0.00
0.0
0.0
5 10 15 20 25 30 7.5 8.0 8.5 9.0 9.5 30 40 50 60 70 0.5 1.0 1.5 2.0 2.5 3.0
Esercizio 7.4
In uno studio sull’effetto dello stato di umore sull’attenzione vengono selezionati 24 soggetti
(i dati sono disponibili nel file mood.dat). Il compito dei soggetti consiste nell’individua-
zione di alcuni stimoli ed il punteggio è dato dal numero di risposte corrette. Ciascun
soggetto esegue il compito per tre volte in sequenza. Nella prima prova, di controllo, non
viene indotta alcuna alterazione. Prima dell’esecuzione del compito per la seconda prova,
al soggetto viene indotto uno stato di umore triste. Prima della terza prova al soggetto
viene indotto uno stato di umore allegro. Si vuole sapere se le prestazioni dei soggetti
variano in funzione dell’umore.
1. Si importino i dati in R.
> X <- read.table(paste(datadir,"mood.dat",sep=""),header=TRUE)
t0 t1 t2
25
20
15
10
5
0
t0 t1 t2
t0 t1 t2
t0 29.101 11.09 -1.667
t1 11.087 15.07 2.000
t2 -1.667 2.00 14.058
> cor(X[,-1])
t0 t1 t2
t0 1.0000 0.5294 -0.0824
t1 0.5294 1.0000 0.1374
t2 -0.0824 0.1374 1.0000
Call:
lm(formula = values ~ ind, data = Y)
Coefficients:
(Intercept) indt1 indt2
5.333 0.542 1.333
6. Si aggiunga al modello definito nel punto precedente la variabile subj come effetto
random per valutare se le intercette dei soggetti siano equivalenti.
> m1 <- lmer(values~ind+(1|subj),data=Y)
(Intercept)
n
w
m
l
g
x
q
v
s
t
p
h
a
k
u
b
d
i
c
f
r
j
e
o
-4 -2 0 2 4 6
data:
LRT = 2.5, p-value = 0.05
Esercizio 7.5
Data: Y
Models:
m0: values ~ (1 | sogg)
m1: values ~ numero + (1 | sogg)
Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
m0 3 2526 2539 -1260 2520
m1 4 2043 2061 -1018 2035 485 1 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Data: Y
Models:
m0: values ~ (1 | sogg)
m1: values ~ numero + (1 | sogg)
m2: values ~ numero + gruppo.eta + (1 | sogg)
m3: values ~ numero + gruppo.eta + sna + (1 | sogg)
Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
m0 3 2526 2539 -1260 2520
m1 4 2043 2061 -1018 2035 484.61 1 < 2e-16 ***
m2 9 2045 2086 -1014 2027 7.94 5 0.16
m3 11 2026 2076 -1002 2004 22.76 2 1.1e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
5. Si analizzino graficamente gli effetti del modello con i tre predittori considerati e se
ne interpreti il significato.
2.0 1.1
0.9
1.0
1.5
0.8 0.9
1.0
0.8
0.7
0.5 0.7
0.6 0.6
0.0
0.5
0.5
-0.5
0.4
6. Si analizzino i residui dello stesso modello per valutare se abbiano una distribuzione
approssimativamente normale.
7 REGRESSIONE LINEARE MULTILIVELLO 176
Standardized residuals
2
-1
-2
-3
-2 0 2
Esercizio 7.6
(Intercept)
101
104
106
105
103
107
102
-10 -5 0 5
7 REGRESSIONE LINEARE MULTILIVELLO 177
(Intercept) anno
101
104
106
105
103
107
102
5. Si individui con un opportuno confronto, quale tra i due modelli definiti ai punti 1
e 3 risulti migliore.
> anova(mx1,mx2)
Data: mathschool
Models:
mx1: math ~ anno * docente + (1 | classe)
mx2: math ~ anno * docente + (anno | classe)
Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
mx1 6 6683 6712 -3335 6671
mx2 8 6554 6593 -3269 6538 133 2 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Esercizio 7.7
Si ripeta l’esercizio 7.6 utilizzando i soggetti come effetto random al posto della classe, per
valutare le differenze individuali.
7 REGRESSIONE LINEARE MULTILIVELLO 178
subj
1023
1152
(Intercept)
1048
1111
1163
1120
1095
1124
1131
1092
1028
1183
1093
1097
1151
1020
1192
1186
1142
1011
1084
1062
1069
1072
1068
1133
1161
1096
1112
1041
1035
1024
1044
1115
1103
1123
1108
1033
1014
1181
1063
1031
1178
1107
1077
1064
1156
1130
1059
1018
1058
1050
1008
1104
1057
1188
1021
1200
1099
1166
1065
1169
1087
1194
1006
1144
1061
1012
1113
1091
1117
1049
1148
1004
1180
1184
1022
1182
1179
1160
1086
1076
1145
1137
1051
1187
1129
1005
1052
1026
1118
1083
1079
1158
1199
1088
1042
1165
1197
1126
1046
1171
1040
1191
1015
1039
1081
1174
1149
1055
1105
1054
1017
1016
1141
1089
1090
1190
1038
1001
1047
1010
1074
1176
1134
1138
1150
1116
1066
1153
1009
1070
1034
1098
1032
1168
1195
1071
1140
1073
1196
1102
1173
1154
1080
1030
1007
1132
1177
1078
1037
1170
1067
1002
1013
1193
1003
1029
1027
1185
1135
1101
1127
1125
1043
1025
1019
1159
1155
1128
1146
1060
1045
1162
1056
1143
1036
1114
1082
1110
1198
1053
1122
1119
1100
1175
1139
1147
1172
1157
1109
1085
1167
1121
1164
1094
1136
1075
1106
1189
-20 -10 0 10 20
subj
1106
1189
(Intercept) anno
1075
1094
1136
1164
1167
1121
1109
1085
1036
1172
1119
1157
1147
1110
1139
1082
1175
1100
1122
1198
1162
1143
1114
1019
1056
1060
1045
1125
1043
1034
1159
1128
1025
1193
1053
1003
1146
1029
1155
1135
1027
1127
1067
1013
1185
1002
1101
1070
1009
1037
1007
1170
1030
1078
1132
1177
1150
1154
1195
1140
1073
1173
1196
1102
1168
1080
1066
1071
1134
1098
1153
1032
1176
1074
1116
1138
1190
1010
1054
1089
1001
1047
1017
1090
1038
1055
1141
1016
1015
1105
1149
1039
1191
1081
1040
1126
1042
1174
1199
1118
1197
1165
1046
1171
1187
1079
1088
1005
1086
1158
1083
1145
1051
1026
1052
1180
1160
1076
1129
1179
1137
1022
1091
1184
1049
1113
1117
1148
1144
1182
1012
1087
1004
1169
1194
1099
1006
1061
1200
1065
1166
1021
1057
1104
1050
1058
1188
1018
1008
1077
1059
1031
1130
1064
1156
1063
1181
1033
1107
1035
1178
1044
1108
1014
1103
1024
1041
1115
1123
1096
1011
1161
1133
1112
1062
1142
1072
1069
1186
1084
1192
1020
1093
1151
1183
1097
1028
1111
1092
1131
1095
1124
1120
1163
1068
1048
1152
1023
Data: mathschool
Models:
mx1: math ~ anno * docente + (1 | subj)
mx2: math ~ anno * docente + (anno | subj)
Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
mx1 6 6413 6443 -3201 6401
mx2 8 5460 5500 -2722 5444 957 2 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Esercizio 7.8
1. Si importino i dati in R.
> X <- read.spss(paste(datadir,"Sara_dataset.sav",sep=""),to.data.frame=TRUE)
10
8
statquiz
6
4
2
10 20 30 40 50
mathquiz
Call:
lm(formula = statquiz ~ mathquiz, data = X)
Coefficients:
(Intercept) mathquiz
4.144 0.093
4. Si modifichi il modello del punto precedente per determinare se vi sia un effetto del
tipo di laurea, valutando se tale effetto risulti statisticamente significativo.
> lm2 <- lm(statquiz~mathquiz+major,data=X)
> anova(lm2)
Response: statquiz
Df Sum Sq Mean Sq F value Pr(>F)
mathquiz 1 65.3 65.3 28.49 8.8e-07 ***
major 4 6.8 1.7 0.74 0.57
Residuals 79 181.0 2.3
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
5. Si calcolino i Bayes Factor relativi ai modelli dei punti 3 e 4 e si determini quale tra
i due risulti migliore.
> BF1 <- lmBF(statquiz~mathquiz,data=na.omit(X))
> BF2 <- lmBF(statquiz~mathquiz+major,data=na.omit(X))
> BF2/BF1
Against denominator:
statquiz ~ mathquiz
---
Bayes factor type: BFlinearModel, JZS
7 REGRESSIONE LINEARE MULTILIVELLO 181
Scaled residuals:
Min 1Q Median 3Q Max
-3.191 -0.595 0.147 0.703 1.854
Random effects:
Groups Name Variance Std.Dev. Corr
major (Intercept) 0.219593 0.4686
mathquiz 0.000474 0.0218 -1.00
Residual 2.207582 1.4858
Number of obs: 85, groups: major, 5
Fixed effects:
Estimate Std. Error t value
(Intercept) 4.1141 0.5654 7.28
mathquiz 0.0932 0.0198 4.71
(Intercept) mathquiz
Bio
Pre-Med
Soc
Econ
Psych
8. Si calcolino gli intervalli di confidenza dei parametri del modello del punto 6.
> confint(mx2) # error
Esercizio 7.9
1. Si importino i dati in R
> load(paste(datadir,"crimi.rda",sep=""))
80
100
60
100
40
30
40
0 40
0
0
20 60 100 0 20 40 60 10 30 1 3 5
DisFis DisSoc Vitt Quartiere
80
50
100
40
40
20
0
0
0 10 20 5 15 25 0 1 2 3 4 A B C D
10 40 1 3 5 5 15 25
Preg
20
10 60
Paura
Strat
10
Extra
1 4
DisFis
5
25
DisSoc
5
Vitt
0
20 60 10 30 5 15 0 2 4
4. Si utilizzi il Bayes Factor per determinare quali siano (escluse le variabili strategia e
quartiere) i due migliori predittori della paura della criminalità.
> BF <- generalTestBF(Paura~Preg+Extra+DisFis+DisSoc+Vitt,data=crimi)
> sort(BF)
Against denominator:
Intercept only
---
5. Si testino i parametri del modello con i due predittori individuati, valutandone anche
l’eventuale interazione.
> LM1 <- lm(Paura~Preg+Extra,data=crimi)
> LM2 <- lm(Paura~Preg*Extra,data=crimi)
> anova(LM1,LM2)
6. Sulla base del migliore modello individuato al punto precedente, si aggiunga nel
modello la variabile Quartiere per valutare la variabilità delle intercette rispetto a
quest’ultima.
> (ML1 <- lmer(Paura~Preg+Extra+(1|Quartiere),data=crimi))
7. Si stimino gli intervalli di confidenza dei parametri del modello considerato al punto
precedente.
> confint(ML1)
2.5 % 97.5 %
.sig01 4.3722 19.0068
.sigma 4.7824 5.5514
(Intercept) 3.1408 23.8332
Preg 0.1688 0.2153
Extra -1.5590 0.7814
Data: crimi
Models:
ML1: Paura ~ Preg + Extra + (1 | Quartiere)
ML2: Paura ~ Preg + Extra + (Preg + Extra | Quartiere)
Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
ML1 5 2171 2190 -1080 2161
ML2 10 1671 1710 -826 1651 509 5 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
9. Si rappresentino graficamente gli effetti fissi del modello migliore tra quelli confron-
tati al punto 8.
Preg effect plot Extra effect plot
50 30
40 25
Paura
Paura
30 20
20 15
10
20 30 40 50 60 70 80 90 100 1 2 3 4 5 6
Preg Extra
10. Si rappresentino graficamente gli effetti random del modello migliore tra quelli
confrontati al punto 8.
Quartiere
-4 -2 0 2 4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3 -1.0 -0.5 0.0 0.5 1.0
Elenco funzioni suggerite per le soluzioni:
Finn.dat, 135
firstaid.dat, 75
gestazioni.dat, 78
Glodberger.dat, 133
gothic.rda, 125
healdrug.dat, 13
Hooker.dat, 54
impiegati.sav, 101
orevoti.csv, 97
radar.csv, 93
radon.rda, 166
redditi.dat, 15
relbambini.dat, 88
Romney.rda, 153, 154
Roth.rda, 144