A) Qual é o melhor índice individual do grau em que os dados violam a normalidade?
B) Ou é apenas melhor falar sobre vários índices de violação da normalidade (por exemplo, assimetria, curtose, prevalência externa)?
Eu votaria em B. Violações diferentes têm consequências diferentes. Por exemplo, distribuições simétricas e unimodais com caudas pesadas tornam seus ICs muito amplos e, presumivelmente, reduzem o poder de detectar quaisquer efeitos. A média, no entanto, ainda atinge o valor "típico". Para distribuições muito assimétricas, a média, por exemplo, pode não ser um índice muito sensível do "valor típico".
C) Como os intervalos de confiança podem ser calculados (ou talvez uma abordagem bayesiana) para o índice?
Não conheço estatística bayesiana, mas, quanto ao teste clássico de normalidade, gostaria de citar Erceg-Hurn et al. (2008) [2]:
Outro problema é que os testes de suposição têm suas próprias suposições. Os testes de normalidade geralmente assumem que os dados são homoscedásticos; testes de homoscedasticidade assumem que os dados são normalmente distribuídos. Se as premissas de normalidade e homoscedasticidade forem violadas, a validade dos testes de suposição poderá ser seriamente comprometida. Estatísticos proeminentes descreveram os testes de suposição (por exemplo, o teste de Levene, o teste de Kolmogorov – Smirnov) embutidos em software como o SPSS como fatalmente defeituoso e recomendaram que esses testes nunca fossem usados (D'Agostino, 1986; Glass & Hopkins, 1996).
D) Que tipo de legendas verbais você poderia atribuir a pontos desse índice para indicar o grau de violação da normalidade (por exemplo, leve, moderada, forte, extrema etc.)?
Micceri (1989) [1] fez uma análise de 440 conjuntos de dados em larga escala em psicologia. Ele avaliou a simetria e o peso da cauda e definiu critérios e rótulos. Os rótulos para assimetria variam de 'relativamente simétrico' a 'moderado -> extremo -> assimetria exponencial'. As etiquetas para o peso da cauda variam de 'Uniforme -> menor que gaussiano -> Sobre gaussiano -> Moderado -> Extremo -> Dupla contaminação exponencial'. Cada classificação é baseada em vários critérios robustos.
Ele descobriu que, desses 440 conjuntos de dados, apenas 28% eram relativamente simétricos e apenas 15% eram sobre gaussianos em relação aos pesos de cauda. Portanto, o belo título do artigo:
O unicórnio, a curva normal e outras criaturas improváveis
Escrevi uma R
função que avalia automaticamente os critérios de Micceri e também imprime os rótulos:
# This function prints out the Micceri-criteria for tail weight and symmetry of a distribution
micceri <- function(x, plot=FALSE) {
library(fBasics)
QS <- (quantile(x, prob=c(.975, .95, .90)) - median(x)) / (quantile(x, prob=c(.75)) - median(x))
n <- length(x)
x.s <- sort(x)
U05 <- mean(x.s[(.95*n ):n])
L05 <- mean(x.s[1:(.05*n)])
U20 <- mean(x.s[(.80*n):n])
L20 <- mean(x.s[1:(.20*n)])
U50 <- mean(x.s[(.50*n):n])
L50 <- mean(x.s[1:(.50*n)])
M25 <- mean(x.s[(.375*n):(.625*n)])
Q <- (U05 - L05)/(U50 - L50)
Q1 <- (U20 - L20)/(U50 - L50)
Q2 <- (U05 - M25)/(M25 - L05)
# mean/median interval
QR <- quantile(x, prob=c(.25, .75)) # Interquartile range
MM <- abs(mean(x) - median(x)) / (1.4807*(abs(QR[2] - QR[1])/2))
SKEW <- skewness(x)
if (plot==TRUE) plot(density(x))
tail_weight <- round(c(QS, Q=Q, Q1=Q1), 2)
symmetry <- round(c(Skewness=SKEW, MM=MM, Q2=Q2), 2)
cat.tail <- matrix(c(1.9, 2.75, 3.05, 3.9, 4.3,
1.8, 2.3, 2.5, 2.8, 3.3,
1.6, 1.85, 1.93, 2, 2.3,
1.9, 2.5, 2.65, 2.73, 3.3,
1.6, 1.7, 1.8, 1.85, 1.93), ncol=5, nrow=5)
cat.sym <- matrix(c(0.31, 0.71, 2,
0.05, 0.18, 0.37,
1.25, 1.75, 4.70), ncol=3, nrow=3)
ts <- c()
for (i in 1:5) {ts <- c(ts, sum(abs(tail_weight[i]) > cat.tail[,i]) + 1)}
ss <- c()
for (i in 1:3) {ss <- c(ss, sum(abs(symmetry[i]) > cat.sym[,i]) + 1)}
tlabels <- c("Uniform", "Less than Gaussian", "About Gaussian", "Moderate contamination", "Extreme contamination", "Double exponential contamination")
slabels <- c("Relatively symmetric", "Moderate asymmetry", "Extreme asymmetry", "Exponential asymmetry")
cat("Tail weight indexes:\n")
print(tail_weight)
cat(paste("\nMicceri category:", tlabels[max(ts)],"\n"))
cat("\n\nAsymmetry indexes:\n")
print(symmetry)
cat(paste("\nMicceri category:", slabels[max(ss)]))
tail.cat <- factor(max(ts), levels=1:length(tlabels), labels=tlabels, ordered=TRUE)
sym.cat <- factor(max(ss), levels=1:length(slabels), labels=slabels, ordered=TRUE)
invisible(list(tail_weight=tail_weight, symmetry=symmetry, tail.cat=tail.cat, sym.cat=sym.cat))
}
Aqui está um teste para a distribuição normal padrão, um com 8 df e um log-normal:t
> micceri(rnorm(10000))
Tail weight indexes:
97.5% 95% 90% Q Q1
2.86 2.42 1.88 2.59 1.76
Micceri category: About Gaussian
Asymmetry indexes:
Skewness MM.75% Q2
0.01 0.00 1.00
Micceri category: Relatively symmetric
> micceri(rt(10000, 8))
Tail weight indexes:
97.5% 95% 90% Q Q1
3.19 2.57 1.94 2.81 1.79
Micceri category: Extreme contamination
Asymmetry indexes:
Skewness MM.75% Q2
-0.03 0.00 0.98
Micceri category: Relatively symmetric
> micceri(rlnorm(10000))
Tail weight indexes:
97.5% 95% 90% Q Q1
6.24 4.30 2.67 3.72 1.93
Micceri category: Double exponential contamination
Asymmetry indexes:
Skewness MM.75% Q2
5.28 0.59 8.37
Micceri category: Exponential asymmetry
[1] Micceri, T. (1989). O unicórnio, a curva normal e outras criaturas improváveis. Boletim Psicológico, 105 , 156-166. doi: 10.1037 / 0033-2909.105.1.156
[2] Erceg-Hurn, DM e Mirosevich, VM (2008). Métodos estatísticos robustos e modernos: uma maneira fácil de maximizar a precisão e o poder de sua pesquisa. American Psychologist, 63 , 591-601.