# Vi sono vari modi per definire la asimmetria di una distribuzione di dati, che # nella letteratura internazionale viene chiamata skewness. Chi voglia approfondire # l'argomento veda en.wikipedia.org/wiki/Skewness o mathworld.wolfram.com/Skewness.html. # Il più usato (dovuto a Pearson e Fisher, come altri indici di asimmetria), a cui in # genere ci riferisce quando di parla di "skewness", è pari a M(((X–M(X))^3)/sigma^3: # è la media dello scarto cubico (dalla media) divisa per il cubo dello s.q.m. (in modo # da "astrarre" dalla dispersione dei dati). Se i dati sono simmetrici rispetto alla # media l'indice è nullo; se hanno una coda verso destra è positivo; se l'hanno verso # sinistra l'indice è negativo. Può andare da -∞ a ∞. Qualche esempio: V <- function(dati) mean((dati-mean(dati))^2) # la varianza sk <- function(dati) sum((dati-mean(dati))^3/sqrt(V(dati))^3)/length(dati) x <- c(1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5) # o, equivalentemente: x <- c(1,rep(2,2),rep(3,4),rep(4,9),rep(5,16)) y <- -x; y [1] -1 -2 -2 -3 -3 -3 -3 -4 -4 -4 -4 -4 -4 -4 -4 -4 -5 -5 -5 -5 -5 -5 -5 -5 [25] -5 -5 -5 -5 -5 -5 -5 -5 # Rappresentiamo i dati con istogrammi centrati in 1, 2, ..., affiancati dev.new(width=4,height=4,xpos=50,ypos=1); hist(x,seq(-0.5,5.5,1)) dev.new(width=4,height=4,xpos=300,ypos=1); hist(y,seq(-5.5,0.5,1)) # I coefficienti di asimmetria sk(x); sk(y) [1] -1.243813 [1] 1.243813 # Tra i vari indici di asimmetria usati vi è quello di Bowley: # ((Q3-Q2)-(Q2-Q1))/(Q3-Q1) dove Qi è l'i-mo quartile (Q2 è la mediana) # Il significato geometrico è abbastanza evidente, ma è un indicatore che non # tiene conto delle "code" (eslude i dati prima del 1º quartile e dopo il 3º) e che # è significativo solo in casi molto particolari. Vediamo come non ha alcun senso # nel caso dei nostri dati: # [ ricordiamo che fivenum dà min, 1qua., 2qua., 3qua., max ] Q <- function(dati,n) fivenum(dati)[n+1] # i quartili sk2 <- function(x) ((Q(x,3)-Q(x,2))-(Q(x,2)-Q(x,1)))/(Q(x,3)-Q(x,1)) sk2(x); sk2(y) [1] 0 [1] 0 # Ottengo un indice nullo! # # Ecco come effettuare i calcoli con WolframAlpha: # skewness{1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5} # ottengo: -(2597*sqrt(3/374))/187 = -1.24381 # skewness(-{1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5}) # ottengo: (2597*sqrt(3/374))/187 = 1.24381 # Quartileskewness{1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5} # ottengo: 0 # # In Excel è usato un indice di asimmetria derivato da quello di Fisher e # Pearson pari a: sk3 <- function(x) sk(x)*length(x)^2/((length(x)-1)*(length(x)-2)) sk3(x) [1] -1.374464 # Un altro indice di asimmetria (dovuto a Pearson) è pari a: sk4 <- function(x) (mean(x)-median(x))/sqrt(V(x)) sk4(x) [1] -0.3231104 # Questo indice ha la caratteristica di stare tra -1 ed 1 (a volte viene # usato il valore opposto a questo: (median(x)-mean(x))/sqrt(V(x)) # # In definitiva, lo stesso coefficiente di asimmetria puo' essere usato in # casi particolari per confrontare dati dello stesso tipo. Ma il suo uso # significativo richiede competenze a attenzioni molto particolari: meglio # non usare a scatola nera coefficienti di questo tipo e basarsi sulle # rappresentazioni grafiche o su "propri" indici di asimmetria riferiti ai # percentili!!!