1 Introduzione ad alcuni argomenti del corso

Gli esempi sono tratti dai seguenti dataset del mio package MLANP:

*antropometric

*children.rid

*fraud1

L’installazione del package potrebbe essere utile per le successive lezioni. Lo trovate su www.marcellochiodi.com nella sezione software (ma anche sulle pagine teams alla fine di questa lezione)

Non tutti gli argomenti verranno in effetti sviscerati e completati in questo brevissimo corso ma mi aggancerò comunque al precorso di inferenza che avete appena terminato per descrivervi alcune delle peculiarità dei cosiddetti modelli lineari a partire dalla regressione lineare semplice.

Prima di affrontare gli argomenti di inferenza vera e propria come faccio sempre all’inizio dei miei corsi vi sottopongo alcuni classici problemi pratici reali dai quali prenderemo spunto per capire perché Per alcuni problemi è utile un’impostazione basata in qualche modo sui modelli lineari.

In effetti alcuni degli insiemi di dati che vi presento oggi sono ben più complessi di quanto effettivamente riusciremo ad analizzare con gli strumenti che vedremo in questi giorni ma vi danno un’idea della complessità dei problemi che possiamo affrontare. In effetti partirò per la parte teorica con un richiamo della cosiddetta regressione lineare semplice.

Le versioni dei data set e del package della versione più recente potrebbero differire leggermente da quelli utilizzati nel materiale didattico che state leggendo

2 Primo data set

Vengono caricati i packages necessari per realizzare questo documento

2.1 Esempio con 7 variabili

Utilizziamo il data frame antropometric e prendiamo 7 variabili, di cui riportiamo ancora delle statistiche e grafici descrittivi, insieme con la matrice dei grafici a coppia.

2.1.1 Summary dei dati

Data Frame Summary

dati

Dimensions: 1427 x 7
Duplicates: 0
No Variable Stats / Values Freqs (% of Valid) Graph Valid Missing
1 Altezza [numeric] Mean (sd) : 151.9 (10.1) min < med < max: 127 < 151 < 183 IQR (CV) : 15 (0.1) 54 distinct values 1427 (100%) 0 (0%)
2 Peso [numeric] Mean (sd) : 45 (10.7) min < med < max: 21 < 43 < 100 IQR (CV) : 14 (0.2) 65 distinct values 1427 (100%) 0 (0%)
3 Torace [numeric] Mean (sd) : 75.6 (7.8) min < med < max: 57 < 74 < 104 IQR (CV) : 10 (0.1) 44 distinct values 1427 (100%) 0 (0%)
4 Cranio [numeric] Mean (sd) : 54.8 (1.6) min < med < max: 50 < 55 < 60 IQR (CV) : 2 (0) 11 distinct values 1427 (100%) 0 (0%)
5 Bisacrom [numeric] Mean (sd) : 34.5 (3) min < med < max: 23 < 34 < 46 IQR (CV) : 4 (0.1) 21 distinct values 1427 (100%) 0 (0%)
6 Bitrocan [numeric] Mean (sd) : 26.3 (2.8) min < med < max: 20 < 26 < 38 IQR (CV) : 4 (0.1) 18 distinct values 1427 (100%) 0 (0%)
7 Span [numeric] Mean (sd) : 153.6 (11.2) min < med < max: 123 < 153 < 184 IQR (CV) : 16 (0.1) 60 distinct values 1427 (100%) 0 (0%)

Generated by summarytools 0.9.6 (R version 4.0.2)
2020-09-25

2.1.2 Alcune righe del data frame

Altezza Peso Torace Cranio Bisacrom Bitrocan Span
1 143 36 67 53 30 23 138
2 144 34 66 54 33 23 149
3 142 35 69 54 30 24 139
712 158 62 86 58 37 29 161
713 154 36 65 54 33 24 148
714 153 41 71 55 31 26 148
1425 142 35 63 54 32 22 144
1426 164 49 82 55 39 29 163
1427 152 40 67 54 32 25 150

2.1.3 Matrice dei grafici a due a due

2.1.4 Matrice di correlazione

Altezza Peso Torace Cranio Bisacrom Bitrocan Span
Altezza 1.00 0.72 0.59 0.48 0.75 0.74 0.89
Peso 0.72 1.00 0.91 0.54 0.75 0.84 0.69
Torace 0.59 0.91 1.00 0.48 0.69 0.77 0.58
Cranio 0.48 0.54 0.48 1.00 0.50 0.49 0.47
Bisacrom 0.75 0.75 0.69 0.50 1.00 0.76 0.78
Bitrocan 0.74 0.84 0.77 0.49 0.76 1.00 0.71
Span 0.89 0.69 0.58 0.47 0.78 0.71 1.00

La matrice di correlazione insieme ove possibile alla matrice dei grafici accocchi delle varie variabili ci dà un’ idea delle interrelazioni presenti tra coppie di variabili è usuale vedere la variabile dipendente sulla Y e la variabile esplicativa sull’asse delle X.

Correlazioni molto elevate in valore assoluto indicano un legame lineare forte fra le variabili qualora questo concetto non fosse ancora noto a tutti verrà ripreso successivamente.

Vediamo che esistono legami forti fra tutte le variabili.

Ovviamente con più di tre variabili non possiamo rappresentarle graficamente simultaneamente.

Inoltre le variabili sono a due a due correlate, alcune anche molto correlate: ci chiediamo se è possibile trovare un modo di riassumere queste informazioni e se è possibile misurare questa forma di correlazione complessiva che sembra esserci fra tutte le variabili

Se ne avremo il tempo proveremo a trovare qualche indice che ci consenta di misurare il grado di correlazione globale che esiste fra tutte le variabili.

3 Secondo data set di esempio

3.1 Statistiche descrittive e grafici del data set children.rid

Data Frame Summary

children.rid

Dimensions: 24553 x 6
Duplicates: 2352
No Variable Stats / Values Freqs (% of Valid) Graph Valid Missing
1 gestazione [integer] Mean (sd) : 38.7 (2.1) min < med < max: 25 < 39 < 43 IQR (CV) : 2 (0.1) 19 distinct values 24553 (100%) 0 (0%)
2 lunghezza [integer] Mean (sd) : 491.8 (30) min < med < max: 255 < 500 < 580 IQR (CV) : 30 (0.1) 123 distinct values 24553 (100%) 0 (0%)
3 peso [integer] Mean (sd) : 3207.6 (580.9) min < med < max: 300 < 3250 < 5600 IQR (CV) : 640 (0.2) 472 distinct values 24553 (100%) 0 (0%)
4 Fumatrici [integer] Mean (sd) : 0.1 (0.3) min < med < max: 0 < 0 < 3 IQR (CV) : 0 (5.3)
0:23596(96.1%)
1:608(2.5%)
2:338(1.4%)
3:11(0.0%)
24553 (100%) 0 (0%)
5 parti.pretermine [integer] Mean (sd) : 0 (0.1) min < med < max: 0 < 0 < 5 IQR (CV) : 0 (13)
0:24371(99.3%)
1:147(0.6%)
2:27(0.1%)
3:4(0.0%)
4:3(0.0%)
5:1(0.0%)
24553 (100%) 0 (0%)
6 cranio [integer] Mean (sd) : 338.1 (18.1) min < med < max: 165 < 340 < 400 IQR (CV) : 20 (0.1) 170 distinct values 24553 (100%) 0 (0%)

Generated by summarytools 0.9.6 (R version 4.0.2)
2020-09-25

3.1.1 Alcune righe del data frame

kable(headtail(children.rid))
gestazione lunghezza peso Fumatrici parti.pretermine cranio
1 41 495 3360 0 0 335
2 36 430 1900 1 0 305
3 32 430 1750 2 0 300
12275 39 510 3650 0 0 340
12276 38 490 3280 0 0 337
12277 37 515 3890 0 0 350
24551 38 505 3220 0 0 355
24552 38 515 3440 0 0 330
24553 41 500 2920 0 0 360

3.1.2 Matrice dei grafici a due a due

MLA.explor.pairs(children.rid[,ind])

Matrice di grafici per le sole variabili gestazione, lunghezza, peso, cranio e su un campione di 24553 righe del data.frame, che ha un totale di 24553 righe.

A differenza del caso precedente in questo contesto possiamo tranquillamente assumere che la variabile peso sia la variabile risposta. Questo perché in effetti quando si ragiona sullo stato di salute del nascituro e successivamente del neonato, questo è rappresentato dal peso e quindi si sa che per esempio alla nascita se il peso è inferiore a 2 kg 2,5 kg siamo in una situazione particolare di parto sottopeso.

Nel grafico riportato più avanti vediamo sull’asse delle ascisse la settimana di gestazione e sull’asse delle ordinate il peso alla nascita si tratta di un campione piuttosto ampio di neonati di cui è stata rilevata la settimana di gestazione ehi peso alla nascita come prevedibile all’aumentare del numero di settimane di gestazione aumenta mediamente il peso, Per cui risulta evidente che se io voglio fare inferenze sul peso medio di questi neonati ovviamente faccio bene a tenere in considerazione l’informazione fornita dalla settimana di gestazione ossia conoscere la settimana di gestazione migliora la mia informazione sulla variabile risposta peso.

In effetti vediamo che all’aumentare della settimana di gestazione aumenta il peso medio magari non in modo esattamente lineare ma la prima impressione che abbiamo dal grafico che è una retta rispecchierebbe discretamente l’andamento della media

3.2 retta di regressione e curve di regressione

Warning in smooth.spline(y ~ x, cv = TRUE): cross-validation with non-unique 'x' values seems doubtful

Un boxblot per gli stessi dati

[1] "medie parziali dei pesi in funzione delle altezze"
     [,1]
25  917.3
26  864.8
27  925.6
28 1093.0
29 1268.8
30 1528.5
31 1566.2
32 1752.0
33 2000.5
34 2186.4
35 2389.8
36 2632.8
37 2944.8
38 3154.5
39 3313.6
40 3419.5
41 3525.4
42 3546.7
43 3467.5
MLA.explor.plot2D(children.rid[,2],children.rid[,3],spline=TRUE)
Warning in smooth.spline(y ~ x, cv = TRUE): cross-validation with non-unique 'x' values seems doubtful

Probabilmente invece per questo insieme di dati bisognerebbe fare qualcosa di un po’ diverso per la relazione fra peso e altezza ma non è argomento che affronteremo in questa giornata.

3.3 Data set ridotto eliminando le osservazioni con valori non plausibili

sel=gestazione>24&gestazione<45&lunghezza<650&lunghezza>250

3.4 Rappresentazione interattiva in 3d