Italiano - Media, Mediana e Moda

Ciao, aspiranti programmatori R! Oggi esploreremo il mondo della statistica descrittiva utilizzando R. Come il tuo amico insegnante di scienze informatiche del quartiere, sono qui per guidarti attraverso i concetti di media, mediana e moda. Non preoccuparti se non hai mai scritto una riga di codice prima - inizieremo dal principio e cresceremo insieme.

R - Mean, Median & Mode

Media

Iniziamo con la media, che è probabilmente la misura di tendenza centrale più comune. In termini semplici, è ciò che spesso chiamiamo "media".

Calcolo Base della Media

Per calcolare la media in R, utilizziamo la funzione mean(). Ecco un esempio semplice:

numbers <- c(10, 20, 30, 40, 50)
result <- mean(numbers)
print(result)

Questo stamperà: 30

Spieghiamo un po':

  1. Creiamo un vettore chiamato numbers utilizzando la funzione c().
  2. Utilizziamo la funzione mean() per calcolare la media di questi numeri.
  3. Salviamo il risultato in una variabile chiamata result.
  4. Infine, stampiamo il risultato.

Media con Valori NA

Ora, cosa succede se abbiamo dati mancanti, rappresentati da NA in R? Vediamo:

numbers_with_na <- c(10, 20, NA, 40, 50)
result_with_na <- mean(numbers_with_na)
print(result_with_na)

Questo stamperà: NA

Oops! R restituisce NA perché non sa come gestire il valore mancante. Ma non preoccuparti, abbiamo una soluzione!

Applicazione dell'Opzione NA

Possiamo dire a R di ignorare i valori NA utilizzando l'opzione na.rm:

numbers_with_na <- c(10, 20, NA, 40, 50)
result_na_removed <- mean(numbers_with_na, na.rm = TRUE)
print(result_na_removed)

Questo stamperà: 30

Molto meglio! impostando na.rm = TRUE, stiamo dicendo a R di rimuovere i valori NA prima di calcolare la media.

Applicazione dell'Opzione Trim

A volte, vogliamo escludere valori estremi dal nostro calcolo della media. È qui che l'opzione trim diventa utile. Ci permette di tagliare una percentuale di valori da entrambe le estremità dei dati prima di calcolare la media.

numbers <- c(1, 2, 3, 4, 5, 100)  # Nota l'outlier 100
result_trimmed <- mean(numbers, trim = 0.1)
print(result_trimmed)

Questo stamperà un valore vicino a 3.5

Impostando trim = 0.1, stiamo rimuovendo il 10% dei dati da entrambe le estremità prima di calcolare la media. Questo aiuta a ridurre l'impatto degli outlier.

Mediana

La mediana è il valore centrale quando un set di dati è ordinato da minimo a massimo. È meno influenzata dagli outlier rispetto alla media.

numbers <- c(1, 3, 5, 7, 9, 11, 13)
result_median <- median(numbers)
print(result_median)

Questo stamperà: 7

La funzione median() funziona in modo simile a mean(). Ha anche un'opzione na.rm per gestire i valori NA:

numbers_with_na <- c(1, 3, NA, 7, 9, 11, 13)
result_median_na <- median(numbers_with_na, na.rm = TRUE)
print(result_median_na)

Questo stamperà: 8

Moda

Curiosamente, R non ha una funzione integrata per la moda (il valore più frequente). Ma non preoccuparti! Possiamo creare la nostra funzione:

get_mode <- function(v) {
uniqv <- unique(v)
uniqv[which.max(tabulate(match(v, uniqv)))]
}

numbers <- c(1, 2, 2, 3, 3, 3, 4, 4, 5)
result_mode <- get_mode(numbers)
print(result_mode)

Questo stamperà: 3

Spieghiamo questa funzione personalizzata:

  1. unique(v) ottiene i valori unici nel vettore.
  2. match(v, uniqv) trova le posizioni delle corrispondenze.
  3. tabulate() conta le occorrenze.
  4. which.max() trova la posizione del conteggio massimo.
  5. Restituiamo il valore in quella posizione.

Riepilogo delle Funzioni

Ecco una tabella comoda che riepiloga le funzioni che abbiamo imparato:

Misura Funzione Opzioni
Media mean() na.rm, trim
Mediana median() na.rm
Moda Funzione personalizzata N/A

Ricorda, la pratica fa perfezione! Prova queste funzioni con diversi set di dati e esplora come cambiare le opzioni influenzi i risultati.

Mentre chiudiamo, mi viene in mente una storia dai miei primi giorni di apprendimento R. Una volta ho passato ore a cercare di calcolare la media di un set di dati, solo per realizeare che avevo dimenticato di rimuovere i valori NA. Non essere come me - controlla sempre i tuoi dati e usa na.rm = TRUE quando necessario!

Buon codice, e may le tue avventure statistiche in R siano piene di intuizioni e momenti di comprensione!

Credits: Image by storyset