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 7Duplicates: 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 6Duplicates: 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) |
|
24553 (100%) | 0 (0%) | |||||||||||||||||||||||||||||||||||||
5 | parti.pretermine [integer] | Mean (sd) : 0 (0.1) min < med < max: 0 < 0 < 5 IQR (CV) : 0 (13) |
|
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
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
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
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
You must enable Javascript to view this page properly.
Opportuna strumentazione tecnica potremmo riuscire a trovare una relazione soddisfacente che faccia dipendere la variabile peso dalle altre due variabili e poi magari potremmo porci una serie di problemi più complessi che però oggi non ci poniamo.
In effetti il modello base che noi ci Apprestiamo a studiare e il cosiddetto modello lineare in cui immaginiamo che il valore atteso di una variabile di risposta dipende in qualche modo da una variabile esplicativa.
La situazione più semplice è quella in cui abbiamo due sole variabili una variabile risposta Y ed una variabile esplicativa X e assumiamo che il valore atteso della variabile risposta Dipende linearmente dei valori assunti dalla X.
\[ \mathrm{E}\left[Y_i\right]= \beta_0 +\beta_1 x_i \] ## Esempi di modelli lineari
Da riprendere al momento della lezione sui modelli lineari
Un applicazione ai dati precedenti per le variabili gestazione, lunghezza, peso
Proviamo ad estendere il concetto di regressione semplice alla regressione multipla, intanto con due sole variabili esplicative, in modo che sia visalizzabile.
Più avanti ovviamente generalizzeremo a più variabili.
più avanti ancora, in altri moduli, affronterete casi in cui addirittura le variabili sono più delle unità, caso frequente ad esempio nell’analisi di dati genetici
You must enable Javascript to view this page properly.
3.5 Primissime annotazioni sulla regressione a due variabili
I dettagli teorici a dopo…
Call:
lm(formula = peso ~ gestazione + lunghezza, data = children.rid)
Residuals:
Min 1Q Median 3Q Max
-2950.2 -205.6 -20.2 183.5 3712.1
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -5.448e+03 3.726e+01 -146.22 <2e-16 ***
gestazione 4.261e+01 1.282e+00 33.22 <2e-16 ***
lunghezza 1.424e+01 9.033e-02 157.67 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 306.1 on 24550 degrees of freedom
Multiple R-squared: 0.7224, Adjusted R-squared: 0.7224
F-statistic: 3.194e+04 on 2 and 24550 DF, p-value: < 2.2e-16
Con l’istruzione lm()
ottengo le stime dei parametri in modo del tutto simile alla regressione lineare semplice (e dal punto di vista delle istruzioni R
sarà quasi sempre lo stesso nei modelli lineari, il metodo è ancora quello dei minimi quadrati)
Il significato dei parametri è analogo: sono delle pendenze, ma indicano una dipendenza parziale, ossia a parità di altre condizioni, oppure tenute costanti le altre variabili (vedere spiegazione geometrica nel grafico 3d)
Abbiamo le tre stime dei coefficienti: -5447.807, 42.609, 14.243, quindi la variabile di risposta varia mediamente di 42.609, al variare unitario di x1, per valori costanti di x2.
3.5.1 Confronto con le regressioni lineari semplici
Call:
lm(formula = peso ~ gestazione, data = children.rid)
Residuals:
Min 1Q Median 3Q Max
-2587.94 -279.86 -8.72 273.98 2240.91
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3871.709 50.918 -76.04 <2e-16 ***
gestazione 182.693 1.312 139.24 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 434.2 on 24551 degrees of freedom
Multiple R-squared: 0.4412, Adjusted R-squared: 0.4412
F-statistic: 1.939e+04 on 1 and 24551 DF, p-value: < 2.2e-16
Call:
lm(formula = peso ~ lunghezza, data = children.rid)
Residuals:
Min 1Q Median 3Q Max
-3041.9 -208.6 -18.3 186.9 4047.7
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -4.819e+03 3.281e+01 -146.9 <2e-16 ***
lunghezza 1.632e+01 6.659e-02 245.1 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 312.9 on 24551 degrees of freedom
Multiple R-squared: 0.7099, Adjusted R-squared: 0.7099
F-statistic: 6.008e+04 on 1 and 24551 DF, p-value: < 2.2e-16
3.6 Alcune considerazioni e commenti
Le stime dei coefficienti di regressione sono sempre delle pendenze
In generale queste pendenze sono diverse da quelle delle rette di regressione semplice fatte su x1 e x2
Nella regressione multipla abbiamo ottenuto due stime:
42.609, 14.243
diverse dalle due stime delle due regressioni semplici
182.693 e 16.322
La devianza spiegata dalla regressione multipla è maggiore di quella spiegata da ciascuna delle singole rette ma non può essere superiore alla somma delle spiegazioni delle singole variabili (spiegare e vedere con i numeri)
Infatti il coefficiente di determinazione multipla della regressione con due variabili esplicative (modello ) è:
\[R^2_{y.12} = 0.722\]
mentre i singoli coefficienti di determinazione multipla dei due modelli di regressione sono:
\[R^2_{y.1} = 0.441\] \[R^2_{y.2} = 0.71\]
4 Terzo esempio: frodi negli acquisti online
Classes 'data.table' and 'data.frame': 310134 obs. of 14 variables:
$ isFraud : int 0 0 0 0 0 0 0 0 0 0 ...
$ TransactionDT : int 86400 86469 86510 86522 86536 86618 86725 86761 86808 86972 ...
$ TransactionAmt: num 68.5 59 49 159 117 ...
$ ProductCD : Factor w/ 5 levels "C","H","R","S",..: 5 5 5 5 5 5 5 5 5 5 ...
$ card4 : Factor w/ 5 levels "","american express",..: 3 5 5 5 4 5 5 4 4 5 ...
$ card6 : Factor w/ 5 levels "","charge card",..: 3 4 4 4 4 4 4 4 4 4 ...
$ C1 : int 1 1 1 1 2 4 1 1 1 4 ...
$ C2 : int 1 1 1 1 2 4 1 1 1 2 ...
$ D1 : int 14 0 0 0 61 0 0 0 0 0 ...
$ D10 : int 13 0 0 0 40 465 0 0 0 0 ...
$ D11 : int 13 315 0 0 302 423 237 0 0 35 ...
$ D15 : int 0 315 0 0 318 0 0 0 0 0 ...
$ hour : num 0 0 0 0 0 0 0 0 0 0 ...
$ day : num 1 1 1 1 1 1 1 1 1 1 ...
4.1 Summary dei dati
Data Frame Summary
fraud0
Dimensions: 310134 x 14Duplicates: 57
No | Variable | Stats / Values | Freqs (% of Valid) | Graph | Valid | Missing | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | isFraud [integer] | Min : 0 Mean : 0 Max : 1 |
|
310134 (100%) | 0 (0%) | |||||||||||||||||||||
2 | TransactionDT [integer] | Mean (sd) : 8765654.5 (4371378.3) min < med < max: 86400 < 9124508.5 < 15811131 IQR (CV) : 7101428.5 (0.5) | 304681 distinct values | 310134 (100%) | 0 (0%) | |||||||||||||||||||||
3 | TransactionAmt [numeric] | Mean (sd) : 153.1 (272.5) min < med < max: 2 < 78.5 < 31937.4 IQR (CV) : 97 (1.8) | 9571 distinct values | 310134 (100%) | 0 (0%) | |||||||||||||||||||||
4 | ProductCD [factor] | 1. C 2. H 3. R 4. S 5. W |
|
310134 (100%) | 0 (0%) | |||||||||||||||||||||
5 | card4 [factor] | 1. (Empty string) 2. american express 3. discover 4. mastercard 5. visa |
|
310134 (100%) | 0 (0%) | |||||||||||||||||||||
6 | card6 [factor] | 1. (Empty string) 2. charge card 3. credit 4. debit 5. debit or credit |
|
310134 (100%) | 0 (0%) | |||||||||||||||||||||
7 | C1 [integer] | Mean (sd) : 9 (29.2) min < med < max: 0 < 2 < 344 IQR (CV) : 2 (3.2) | 321 distinct values | 310134 (100%) | 0 (0%) | |||||||||||||||||||||
8 | C2 [integer] | Mean (sd) : 8.3 (26.6) min < med < max: 1 < 2 < 297 IQR (CV) : 2 (3.2) | 276 distinct values | 310134 (100%) | 0 (0%) | |||||||||||||||||||||
9 | D1 [integer] | Mean (sd) : 116 (170.2) min < med < max: 0 < 26 < 639 IQR (CV) : 171 (1.5) | 640 distinct values | 310134 (100%) | 0 (0%) | |||||||||||||||||||||
10 | D10 [integer] | Mean (sd) : 141.8 (191.5) min < med < max: 0 < 36 < 679 IQR (CV) : 240 (1.4) | 676 distinct values | 310134 (100%) | 0 (0%) | |||||||||||||||||||||
11 | D11 [integer] | Mean (sd) : 146.7 (186.1) min < med < max: -53 < 43 < 670 IQR (CV) : 274 (1.3) | 675 distinct values | 310134 (100%) | 0 (0%) | |||||||||||||||||||||
12 | D15 [integer] | Mean (sd) : 182.8 (209.5) min < med < max: -60 < 82 < 672 IQR (CV) : 351 (1.1) | 680 distinct values | 310134 (100%) | 0 (0%) | |||||||||||||||||||||
13 | hour [numeric] | Mean (sd) : 14.2 (7.5) min < med < max: 0 < 17 < 23 IQR (CV) : 9 (0.5) | 24 distinct values | 310134 (100%) | 0 (0%) | |||||||||||||||||||||
14 | day [numeric] | Mean (sd) : 100.8 (50.6) min < med < max: 1 < 105 < 182 IQR (CV) : 83 (0.5) | 182 distinct values | 310134 (100%) | 0 (0%) |
Generated by summarytools 0.9.6 (R version 4.0.2)
2020-09-25
4.2 Alcune righe del data frame
isFraud | TransactionDT | TransactionAmt | ProductCD | card4 | card6 | C1 | C2 | D1 | D10 | D11 | D15 | hour | day | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | 86400 | 68.50 | W | discover | credit | 1 | 1 | 14 | 13 | 13 | 0 | 0 | 1 |
2 | 0 | 86469 | 59.00 | W | visa | debit | 1 | 1 | 0 | 0 | 315 | 315 | 0 | 1 |
3 | 0 | 86510 | 49.00 | W | visa | debit | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
155065 | 0 | 9124493 | 107.95 | W | visa | debit | 3 | 1 | 104 | 580 | 580 | 580 | 14 | 105 |
155066 | 0 | 9124497 | 134.95 | W | mastercard | credit | 1 | 1 | 0 | 0 | 0 | 0 | 14 | 105 |
155067 | 0 | 9124507 | 66.95 | W | visa | debit | 2 | 2 | 0 | 0 | 0 | 0 | 14 | 105 |
310132 | 0 | 15811079 | 30.95 | W | mastercard | debit | 1 | 1 | 0 | 0 | 0 | 0 | 23 | 182 |
310133 | 0 | 15811088 | 117.00 | W | mastercard | debit | 1 | 1 | 22 | 22 | 22 | 22 | 23 | 182 |
310134 | 0 | 15811131 | 279.95 | W | mastercard | credit | 2 | 1 | 0 | 1 | 0 | 1 | 23 | 182 |
4.3 Descrizione dei dati
Si tratta di un campione estratto dal sito kaggle.com, notevolmente ridotto e semplificato, relativo a 310134 transazioni on line.
Ogni record corrisponde a una transazione effettuata. Non sono presenti dati mancanti
Per semplicità non ho incluso i record con osservazioni mancanti, che in qualche caso possono essere invece informativi.
Le variabili presenti sono le seguenti (Il significato effettivo di alcune variabili è mascherato dall’ente che ha messo a disposizione i dati):
la variabile di interesse
isFraud
: è una variabile dicotomica che assume modalità “0” se la transazione è regolare oppure “1” se la transazione è risultata poi fraudolenta;TransactionDT
: è una variabile temporale espressa in secondi;TransactionAmt
: è una variabile quantitativa che indica l’importo del pagamento della transazione in dollari;ProductCD
: inutile perchè costante in questo sottoinsieme di dati;card1
ecard6
: sono due variabili qualitative che indicano vari tipi di informazioni sulla carta di pagamento come il tipo di carta, la categoria, la banca, il Paese, ecc.;C1
eC2
: sono variabili di conteggio. Ad esempio il numero di indirizzi associati alla carta di pagamento, ecc.;D1
,D10
,D11
,D15
: sono variabili quantitative che indicano intervalli temporali misurati in giorni come ad esempio i giorni tra la transazione precedente, etc.hour
,day
: ora e giorno della transazione
Warning in xy.coords(x, y, xlabel, ylabel, log): Si è prodotto un NaN
$m
0 1 2 3 4 5 6 7 8 9
0.01647686 0.01568811 0.01632025 0.01768049 0.01995284 0.03406814 0.03246753 0.04487659 0.03764479 0.04489796
10 11 12 13 14 15 16 17 18 19
0.02790462 0.02267685 0.02271827 0.01736527 0.01744897 0.01705332 0.01955496 0.02027244 0.02145443 0.02181074
20 21 22 23
0.02010050 0.01907502 0.01784312 0.02097966
$x
[1] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
$n
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
20635 17083 12990 9502 5513 2994 2002 1337 1036 1225 1971 4057 7571 11690 15531 18061 20762 21803 22373 22466
20 21 22 23
22089 22595 22922 21926
4.4 Il problema statistico di previsione.
Alcune di queste variabili ci possono aiutare a valutare se una transazione è fraudolenta?
E’ basilare in questo contesto che tutte le variabili (tranne la risposta isFraud
) siano osservabili immediatamente prima dell’esecuzione della transazione, mentre la variabile isFraud
ragionevolmente sarà nota dopo alcuni giorni
Potremo commettere due tipi di errori: Falsi Positivi e Falsi negativi
Non potremo ovviamente, in generale, ottenere previsioni esatte, ma magari avere una valutazione della probabilità che una transazione sia fraudolenta