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.
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':
- Creiamo un vettore chiamato
numbers
utilizzando la funzionec()
. - Utilizziamo la funzione
mean()
per calcolare la media di questi numeri. - Salviamo il risultato in una variabile chiamata
result
. - 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:
-
unique(v)
ottiene i valori unici nel vettore. -
match(v, uniqv)
trova le posizioni delle corrispondenze. -
tabulate()
conta le occorrenze. -
which.max()
trova la posizione del conteggio massimo. - 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