R - Statistica di base
R
Statistica di base
Funzioni principali
- Si considera il data table 'Iris' già presente in R. Contiene le colonne 'Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width' e 'Species'.
- Ecco le funzioni statistiche principali.
- Minimo e Massimo di una colonna.
# Minimo, Massimo.
print(min(iris$Sepal.Length))
[1] 4.3
print(max(iris$Sepal.Length))
[1] 7.9
- Media, Mediana e Moda di una colonna. Per calcolare la moda, si può utilizzare la funzione table() che restituisce una tabella con la frequenza della colonna.
# Media, Mediana, Moda.
print(mean(iris$Sepal.Length))
[1] 5.843333
print(median(iris$Sepal.Length))
[1] 5.8
print(table(iris$Sepal.Length))
4.3 4.4 4.5 4.6 4.7 4.8 4.9 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6 6.1 6.2 6.3 6.4 6.5
1 3 1 4 2 5 6 10 9 4 1 6 7 6 8 7 3 6 6 4 9 7 5
6.6 6.7 6.8 6.9 7 7.1 7.2 7.3 7.4 7.6 7.7 7.9
2 8 3 4 1 1 3 1 1 1 4 1
- Quantili di una colonna, sia numericamente che con un grafico (la funzione boxplot() genera un grafico nella finestra Plots di R).
# Quantili.
print(quantile(iris$Sepal.Length))
0% 25% 50% 75% 100%
4.3 5.1 5.8 6.4 7.9
boxplot(iris$Sepal.Length)
- Varianza e Deviazione Standard di una colonna.
# Varianza, Deviazione Standard.
var(iris$Sepal.Length)
[1] 0.6856935
sd(iris$Sepal.Length)
[1] 0.8280661
- Somma Cumulata e Prodotto Cumulato di una colonna.
# Somma cumulata e Prodotto Cumulato.
cumsum(iris$Sepal.Length)
[1] 5.1 10.0 14.7 19.3 24.3 29.7 34.3 39.3 43.7 48.6 54.0 58.8 63.6 67.9
[15] 73.7 79.4 84.8 89.9 95.6 100.7 106.1 111.2 115.8 120.9 125.7 130.7 135.7 140.9
(continua)
cumprod(iris$Sepal.Length)
[1] 5.100000e+00 2.499000e+01 1.174530e+02 5.402838e+02 2.701419e+03 1.458766e+04
[7] 6.710325e+04 3.355162e+05 1.476271e+06 7.233730e+06 3.906214e+07 1.874983e+08
(continua)
Analisi di base
- La funzione sort() permette di ordinare un vettore.
# Ordinare gli elementi.
x <- sort(iris$Sepal.Length)
- È possibile calcolare le frequenze assolute, relative e cumulate.
# Distribuzione delle frequenze assolute.
table(iris$Sepal.Length)
# Distribuzione delle frequenze relative.
table(iris$Sepal.Length) / length(iris$Sepal.Length)
# Frequenze cumulate assolute.
cumsum(table(iris$Sepal.Length))
# Frequenze cumulate relative.
cumsum(table(iris$Sepal.Length) / length(iris$Sepal.Length))
- Si possono definire delle classi per suddividere gli elementi di un vettore.
- Nell'esempio seguente si definiscono 4 classi: da 4 a 5, da 5 a 6, da 6 a 7 e da 7 a 8. In ogni intervallo l'estremo destro è compreso, quello sinistro è escluso.
# Distribuzione in classi.
limiti <- c(4, 5, 6, 7, 8)
classi <- cut(iris$Sepal.Length, breaks = limiti, right = FALSE)
# Frequenze assolute delle classi.
freq.ass <- table(classi)
print(freq.ass)
[4,5) [5,6) [6,7) [7,8)
22 61 54 13
# Frequenze assolute cumulate delle classi.
freq.ass.cum <- cumsum(table(classi))
print(freq.ass.cum)
[4,5) [5,6) [6,7) [7,8)
22 83 137 150
# Frequenze relative delle classi.
freq.rel <- table(classi) / (sum(table(classi)))
print(freq.rel)
[4,5) [5,6) [6,7) [7,8)
0.14666667 0.40666667 0.36000000 0.08666667
# Frequenze relative cumulate delle classi.
freq.rel.cum <- cumsum(table(classi) / (sum(table(classi))))
print(freq.rel.cum)
[4,5) [5,6) [6,7) [7,8)
0.1466667 0.5533333 0.9133333 1.0000000
# Tabella riassuntiva.
tab.riass <- cbind(freq.ass, freq.ass.cum, freq.rel, freq.rel.cum)
print(tab.riass)
freq.ass freq.ass.cum freq.rel freq.rel.cum
[4,5) 22 22 0.14666667 0.1466667
[5,6) 61 83 0.40666667 0.5533333
[6,7) 54 137 0.36000000 0.9133333
[7,8) 13 150 0.08666667 1.0000000