Pagina personale di:
Carlo Vecchio
appunti di C#, R, SQL Server, ASP.NET, algoritmi, numeri
Vai ai contenuti

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





© 2020 Carlo Vecchio
Torna ai contenuti