1 Introduzione ad alcuni argomenti del corso
Gli esempi sono tratti dai seguenti dataset del mio package MLANP
:
*antropometric
*children.rid
*fraud1
*buildings1
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-12
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 |
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
L’argomento è affrontato nell’analisi delle componenti principali
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-12
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.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
Warning in smooth.spline(y ~ x, cv = TRUE): cross-validation with non-unique 'x' values seems doubtful
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.
3.5 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.6 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.6.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.7 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-12
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
5 Quarto esempio: il consumo di energia elettrica.
Classes 'data.table' and 'data.frame': 512872 obs. of 18 variables:
$ timestamp : int 0 0 0 0 0 0 0 0 0 0 ...
$ air_temperature : num 3.8 3.8 3.8 3.8 3.8 3.8 3.8 3.8 3.8 3.8 ...
$ cloud_coverage : num 1.67 1.67 1.67 1.67 1.67 ...
$ dew_temperature : num 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 ...
$ precip_depth_1_hr : num 0.678 0.678 0.678 0.678 0.678 ...
$ sea_level_pressure: num 1021 1021 1021 1021 1021 ...
$ wind_direction : num 240 240 240 240 240 240 240 240 240 240 ...
$ wind_speed : num 3.1 3.1 3.1 3.1 3.1 3.1 3.1 3.1 3.1 3.1 ...
$ building_id : int 105 106 107 108 109 110 111 112 112 113 ...
$ meter : int 0 0 0 0 0 0 0 0 3 0 ...
$ meter_reading : num 23.304 0.375 175.184 91.265 80.93 ...
$ primary_use : chr "Education" "Education" "Education" "Education" ...
$ year_built : num 1961 1960 2005 1913 1953 ...
$ log.meter : num 3.191 0.318 5.172 4.525 4.406 ...
$ floor.count : num 6 5 11 6 7 9 8 7 7 10 ...
$ sq.feet : num 50624 5375 97533 81581 56996 ...
$ day : num 0 0 0 0 0 0 0 0 0 0 ...
$ hour : num 0 0 0 0 0 0 0 0 0 0 ...
- attr(*, ".internal.selfref")=<externalptr>
Data Frame Summary
a
Dimensions: 512872 x 18Duplicates: 0
No | Variable | Stats / Values | Freqs (% of Valid) | Graph | Valid | Missing | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | timestamp [integer] | Mean (sd) : 4335.4 (2561.3) min < med < max: 0 < 4264 < 8783 IQR (CV) : 4473 (0.6) | 8763 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
2 | air_temperature [numeric] | Mean (sd) : 11.5 (6.1) min < med < max: -3.9 < 11 < 32.9 IQR (CV) : 9.1 (0.5) | 336 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
3 | cloud_coverage [numeric] | Mean (sd) : 1.7 (0.9) min < med < max: 0 < 1.9 < 9 IQR (CV) : 0.7 (0.6) | 7064 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
4 | dew_temperature [numeric] | Mean (sd) : 7.5 (5.2) min < med < max: -8.9 < 7.6 < 20.7 IQR (CV) : 8.2 (0.7) | 266 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
5 | precip_depth_1_hr [numeric] | Mean (sd) : 0.9 (0.7) min < med < max: -0.8 < 0.9 < 4.9 IQR (CV) : 0.8 (0.8) | 8763 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
6 | sea_level_pressure [numeric] | Mean (sd) : 1015.9 (10.8) min < med < max: 973.3 < 1017.5 < 1045.5 IQR (CV) : 13.3 (0) | 674 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
7 | wind_direction [numeric] | Mean (sd) : 195.4 (98.5) min < med < max: 0 < 220 < 360 IQR (CV) : 160 (0.5) | 40 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
8 | wind_speed [numeric] | Mean (sd) : 4 (2.2) min < med < max: 0 < 3.6 < 18.5 IQR (CV) : 2.5 (0.6) | 34 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
9 | building_id [integer] | Mean (sd) : 129.1 (14.7) min < med < max: 105 < 128 < 155 IQR (CV) : 26 (0.1) | 51 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
10 | meter [integer] | Min : 0 Mean : 0.4 Max : 3 |
|
512872 (100%) | 0 (0%) | |||||||||||||||||||||
11 | meter_reading [numeric] | Mean (sd) : 160.9 (187.5) min < med < max: 0 < 90 < 22700 IQR (CV) : 183.7 (1.2) | 66129 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
12 | primary_use [character] | 1. Education 2. Entertainment/public asse 3. Lodging/residential 4. Office 5. Public services |
|
512872 (100%) | 0 (0%) | |||||||||||||||||||||
13 | year_built [numeric] | Mean (sd) : 1962.2 (28.5) min < med < max: 1900 < 1960.7 < 2007 IQR (CV) : 18.7 (0) | 38 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
14 | log.meter [numeric] | Mean (sd) : 4.4 (1.3) min < med < max: 0 < 4.5 < 10 IQR (CV) : 1.8 (0.3) | 66129 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
15 | floor.count [numeric] | Mean (sd) : 8 (2.5) min < med < max: 3 < 8 < 17 IQR (CV) : 3 (0.3) | 13 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
16 | sq.feet [numeric] | Mean (sd) : 66514 (40647.1) min < med < max: 5375 < 57674 < 174602 IQR (CV) : 56694 (0.6) | 51 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
17 | day [numeric] | Mean (sd) : 180.2 (106.7) min < med < max: 0 < 177 < 365 IQR (CV) : 187 (0.6) | 366 distinct values | 512872 (100%) | 0 (0%) | |||||||||||||||||||||
18 | hour [numeric] | Mean (sd) : 11.5 (6.9) min < med < max: 0 < 11 < 23 IQR (CV) : 11 (0.6) | 24 distinct values | 512872 (100%) | 0 (0%) |
Generated by summarytools 0.9.6 (R version 4.0.2)
2020-09-12
# A tibble: 9 x 18
timestamp air_temperature cloud_coverage dew_temperature precip_depth_1_… sea_level_press… wind_direction wind_speed
<int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 0 3.8 1.67 2.4 0.678 1021. 240 3.1
2 0 3.8 1.67 2.4 0.678 1021. 240 3.1
3 0 3.8 1.67 2.4 0.678 1021. 240 3.1
4 4264 18.9 2.60 11.4 1.94 1018. 260 7.7
5 4264 18.9 2.60 11.4 1.94 1018. 260 7.7
6 4264 18.9 2.60 11.4 1.94 1018. 260 7.7
7 8783 7.5 2.13 6.5 1.59 1025. 210 5.7
8 8783 7.5 2.13 6.5 1.59 1025. 210 5.7
9 8783 7.5 2.13 6.5 1.59 1025. 210 5.7
# … with 10 more variables: building_id <int>, meter <int>, meter_reading <dbl>, primary_use <chr>, year_built <dbl>,
# log.meter <dbl>, floor.count <dbl>, sq.feet <dbl>, day <dbl>, hour <dbl>
You must enable Javascript to view this page properly.
La figura in 3d è su un campione di 20000 valori e non su tutte le 512872 osservazioni per non appesantire il rendering di questo documento html. In R si può fare girare il codice sull’intero data.frame
5.1 Alcune righe del data frame
timestamp | air_temperature | cloud_coverage | dew_temperature | precip_depth_1_hr | sea_level_pressure | wind_direction | wind_speed | building_id | meter | meter_reading | primary_use | year_built | log.meter | floor.count | sq.feet | day | hour | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 8718 | -0.9 | 0.000000 | -0.9 | -0.2604375 | 1037.8 | 40 | 1.0 | 145 | 0 | 22.6250 | Office | 1968.998 | 3.1623055 | 5 | 14220 | 363 | 6 |
2 | 6457 | 11.2 | 1.741333 | 8.9 | 0.7319694 | 1022.3 | 200 | 2.1 | 115 | 0 | 416.6670 | Education | 1968.000 | 6.0346845 | 7 | 129717 | 269 | 1 |
3 | 4141 | 19.8 | 2.431685 | 12.4 | 1.6100561 | 1017.4 | 250 | 6.2 | 133 | 0 | 46.3000 | Lodging/residential | 1960.000 | 3.8565103 | 9 | 64724 | 172 | 13 |
9998 | 7526 | 8.6 | 2.541610 | 4.9 | 1.6710009 | 1001.3 | 300 | 6.2 | 115 | 0 | 596.9000 | Education | 1968.000 | 6.3934235 | 7 | 129717 | 313 | 14 |
9999 | 7200 | 10.1 | 0.000000 | 9.9 | 0.0294759 | 1031.1 | 270 | 2.6 | 132 | 0 | 64.2000 | Lodging/residential | 1995.000 | 4.1774595 | 9 | 83109 | 300 | 0 |
10000 | 8589 | 9.1 | 2.025383 | 7.2 | 1.2714407 | 1021.8 | 250 | 4.1 | 123 | 0 | 113.2000 | Education | 1989.000 | 4.7379513 | 7 | 61205 | 357 | 21 |
19998 | 5998 | 19.7 | 2.069243 | 16.5 | 1.1249259 | 1022.8 | 170 | 3.6 | 135 | 0 | 28.4000 | Lodging/residential | 1967.000 | 3.3809947 | 11 | 66533 | 249 | 22 |
19999 | 7883 | 10.2 | 2.075795 | 6.9 | 1.4976822 | 1023.7 | 40 | 6.2 | 107 | 0 | 0.0405 | Education | 2005.000 | 0.0397014 | 11 | 97533 | 328 | 11 |
20000 | 273 | 4.6 | 0.000000 | 2.2 | 0.0526846 | 996.1 | 250 | 6.2 | 106 | 0 | 0.7492 | Education | 1960.172 | 0.5591585 | 5 | 5375 | 11 | 9 |
5.2 Descrizione sommaria dei dati
Si tratta di un campione estratto dal sito kaggle.com, ridotto e semplificato, relativo ai consumi orari di energia elettrica in diversi edifici. Il file contiene 20000 rilevazioni orarie, e per ciascuna è riportato:
timestamp
: orario (ore trascorse dal tempo 0 della prima osservazione)air_temperature
,cloud_coverage
,dew_temperature
,precip_depth_1_hr
,sea_level_pressure
,wind_direction
,wind_speed
sono variabili atmosferiche rilevate dalla stazione meteo più vicina al palazzometer
tipo di consumo di energiameter_reading
consumo orario di energiaprimary_use
uso dell’edificioyear_built
anno di costruzionelog.meter
logaritmo del consumo di energia (commentare)floor.count
numero di pianisq.feet
superficiehour
,day
: ora e giorno della rilevazione
5.3 Il problema statistico.
Si vorrà vedere se e come meter_reading
(o log.meter
) dipende dalle altre variabili. il grafico 3d ci lascerebbe pensare di sì.
Ma da quali di più?