Siamo all'ultimo passo delle valutazioni preliminari che è sempre necessario effettuare nell'ambito di un percorso logico che prevede, per il calcolo delle statistiche elementari di una singola variabile (analisi univariata):
→ esecuzione dei test di normalità (gaussianità) per valutare se i dati seguono una distribuzione gaussiana;
→ calcolo delle statistiche elementari parametriche (media, deviazione standard, varianza, quantili parametrici) se i dati seguono una distribuzione gaussiana;
→ calcolo delle statistiche elementari non parametriche (mediana, deviazione assoluta mediana o MAD, quartili e altri quantili non parametrici) se i dati non seguono una distribuzione gaussiana.
Si tratta del passo conclusivo per la variabile concentrazione della ferritina (espressa in µg/L) rilevata in 202 atleti australiani, in quanto con i test di normalità abbiamo stabilito che la variabile non è distribuita in modo gaussiano cone risulta evidente anche dalla sintesi grafica dei risultati.
Copiate
lo script, incollatelo nella
Console di R e premete ↵
Invio:
#
STATISTICHE ELEMENTARI NON PARAMETRICHE
#
library(DAAG)
# carica il pacchetto DAAG che include il set di dati ais
mydata
<- unlist(ais[c(5)]) # ci interessa la sola colonna con la ferritina
#
#
statistiche elementari non parametriche
#
min(mydata) # valore minimo
median(mydata)
# mediana
max(mydata) # valore massimo
range(mydata) # range
max(mydata)-min(mydata) # campo di variazione
mad(mydata)
# deviazione assoluta mediana (MAD)
quantile(mydata)
# quartili
#
#
quartili, decili e percentili della distribuzione campionaria
#
quantile(mydata,
probs=seq (0, 1, 0.25)) # con 0.25 calcola i quartili
della ferritina
quantile(mydata,
probs=seq (0, 1, 0.1)) # con 0.1 calcola i decili
quantile(mydata,
probs=seq (0, 1, 0.01)) # con 0.01 calcola i percentili
#
Non avrebbe senso ripetere l'analisi esplorativa dei dati, i test di normalità e la sintesi grafica dei risultati - per questi si rimanda agli script riportati nel percorso logico indicato all'inizio. Per cui qui ci limitiamo a calcolare le usuali statistiche elementari non parametriche.
Dopo avere caricato il pacchetto DAAG [1] contenente la tabella ais, la variabile ferr contenuta nella colonna 5 della tabella ais viene assegnata (<-) all'oggetto mydata, sul quale sono calcolate le statistiche elementari non parametriche con le funzioni:
→ min() per riportare il valore minimo osservato;
→ median() per calcolare la media;
→ max() per riportare il valore massimo osservato;
→ range() per calcolare il range qui correttamente inteso come "intervallo (di valori di una grandezza)";
→ max(mydata)-min(mydata) per calcolare il campo di variazione, talora indicato (impropriamente) con il termine "range";
→ mad() per calcolare la deviazione assoluta mediana MAD [2];
→ quantile() per calcolare i quartili.
> min(mydata) # valore minimo
[1] 8
> median(mydata) # mediana
[1] 65.5
> max(mydata) # valore massimo
[1] 234
> range(mydata) # range
[1] 8 234
> max(mydata)-min(mydata) # campo di variazione
[1] 226
> mad(mydata) # deviazione assoluta mediana (MAD)
[1] 37.8063
> quantile(mydata) # quartili
0% 25% 50% 75% 100%
8.00 41.25 65.50 97.00 234.00
Da
notare che la funzione quantile(), se impiegata specificando come unico argomento il nome della variabile, prevede
di default il calcolo dei quartili. Se si aggiunge l'argomento
probs
e si impiega la funzione seq()
per stabilire la sequenza di valori per i quali calcolarli [3] è
possibile calcolare i quantili
desiderati, che in questo caso sono
→ i
quartili impostando seq
(0, 1, 0.25)
→ i
decili impostando seq
(0, 1, 0.1)
→ i
percentili impostando seq
(0, 1, 0.01)
essendo a loro volta gli argomenti della funzione seq() il quantile iniziale (0 che
corrisponde al valore minimo osservato), il quantile finale (1
che corrisponde al valore massimo osservato) e l'incremento
da applicare per il calcolo dei quantili intermedi. Modificando opportunamente questi tre argomenti è possibile calcolare qualsiasi altra sequenza di quantili.
> quantile(mydata, probs=seq (0, 1, 0.25)) # con 0.25 calcola i quartili della ferritina
0% 25% 50% 75% 100%
8.00 41.25 65.50 97.00 234.00
> quantile(mydata, probs=seq (0, 1, 0.1)) # con 0.1 calcola i decili
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
8.0 30.0 39.2 44.0 55.0 65.5 76.0 90.7 107.0 138.4 234.0
> quantile(mydata, probs=seq (0, 1, 0.01)) # con 0.01 calcola i percentili
0% 1% 2% 3% 4% 5% 6% 7% 8% 9% 10%
8.00 13.03 19.02 20.03 21.04 22.00 25.06 26.07 29.00 29.09 30.00
11% 12% 13% 14% 15% 16% 17% 18% 19% 20% 21%
30.22 32.12 34.00 34.14 35.15 36.00 36.17 38.00 39.00 39.20 40.00
22% 23% 24% 25% 26% 27% 28% 29% 30% 31% 32%
40.22 41.00 41.00 41.25 43.00 43.00 43.28 44.00 44.00 45.31 46.64
33% 34% 35% 36% 37% 38% 39% 40% 41% 42% 43%
48.33 50.00 50.00 51.00 52.37 53.00 53.39 55.00 56.41 58.00 58.00
44% 45% 46% 47% 48% 49% 50% 51% 52% 53% 54%
58.44 59.45 60.46 61.47 63.48 64.00 65.50 66.51 68.00 69.00 70.54
55% 56% 57% 58% 59% 60% 61% 62% 63% 64% 65%
71.00 72.00 72.57 73.00 73.59 76.00 77.61 79.24 81.26 83.28 85.65
66% 67% 68% 69% 70% 71% 72% 73% 74% 75% 76%
86.66 87.00 88.00 89.69 90.70 91.71 93.00 94.00 97.00 97.00 100.52
77% 78% 79% 80% 81% 82% 83% 84% 85% 86% 87%
101.77 102.00 105.37 107.00 109.00 109.82 115.00 117.84 122.00 124.00 124.87
88% 89% 90% 91% 92% 93% 94% 95% 96% 97% 98%
126.88 131.78 138.40 142.82 154.60 163.44 176.94 182.95 188.80 211.37 212.98
99% 100%
219.94 234.00
Come
al solito lo script può essere riutilizzato molto facilmente,
assegnando (<-) all'oggetto
mydata i propri dati.
----------
[1] Vedere il post Il set di dati ais nel quale trovate anche come caricare i dati della tabella senza impiegare il pacchetto DAAG.
[2]
La Median Absolute Deviation about median o MAD ovvero la deviazione
assoluta mediana (dalla mediana) è l'equivalente non parametrico
della deviazione standard. Vedere: Rousseeuw PJ, Croux C.
Alternatives
to the Median Absolute Deviation.
Journal of the American Statistical Association 88 (424), 1273-1283,
1993. URL consultato il 04/01/2019: https://goo.gl/4Rh53b
[3]
Per la documentazione della funzione seq()
digitare help(seq) nella
Console di R.
Nessun commento:
Posta un commento