O teste de Shapiro Wilk é insensível à cauda da distribuição das amostras? Eu li essa declaração em um artigo, mas não consigo descobrir por que, a partir da estatística de teste W. Alguém poderia me ajudar a entender isso?
O teste de Shapiro Wilk é insensível à cauda da distribuição das amostras? Eu li essa declaração em um artigo, mas não consigo descobrir por que, a partir da estatística de teste W. Alguém poderia me ajudar a entender isso?
Respostas:
A situação é complicada, mas os resultados tendem ao contrário desta afirmação: para tamanhos moderados de conjuntos de dados , o teste Shapiro-Wilk é mais sensível nas caudas do que em outros lugares.
Entendo "sensível" como a extensão em que os resultados variam quando os valores no conjunto de dados são perturbados. (Outra interpretação possível é que "sensibilidade" se entende em termos do poder do teste para detectar desvios do comportamento da cauda de uma distribuição Normal. No entanto, como "sensibilidade" e "poder" são comuns, termos estatísticos bem entendidos com significados distintos, essa segunda interpretação não parece apropriada.)
Genericamente, considere os "resultados" do teste (que normalmente seriam tomados como um valor p) como uma função dos dados ordenados x . Então, podemos querer definir a sensibilidade de f para o i- ésimo elemento de x a ser
Existem alguns problemas com isso, no entanto. Primeiro, pode não ser diferenciável. Segundo, a sensibilidade a mudanças extremamente pequenas pode ser menos relevante do que a sensibilidade a mudanças maiores. Para lidar com estas complicações que podem (1) utilização dirigidos diferenças finitas para explorar as alterações em f quando x i é aumentado separadamente e diminuiu e (2) obter estas diferenças de desvios que são sensíveis em comparação com a difusão dos dados. Para este fim, dado um desvio δ ≥ 0, deixe
A sensibilidade pode variar com o conjunto de dados. Deveríamos avaliar quando os dados estão em conformidade com a hipótese nula ou quando estão longe da nula? Ambas as avaliações podem ser informativas. Mas para testes distributivos enfrentamos a complicação de que a alternativa nem sempre é parametrizável: embora a hipótese nula possa ser que os dados sejam amostrados de uma distribuição Normal, a alternativa seria que eles sejam amostrados de qualquer distribuição.
Fórmulas de Filliben , também conhecidas como "pontos de plotagem Weibull").
Em geral, o teste SW apresenta sensibilidades substancialmente maiores que o teste KS. As razões para isso são complicadas, mas observe especialmente que dois testes de distribuição não podem ser comparados com base apenas na sensibilidade: você também deve considerar os valores de p nos quais essas sensibilidades são medidas.
O R
código usado para produzir esses resultados a seguir. Ele está estruturado para ser facilmente modificado para estender o estudo em qualquer direção desejada: diferentes tamanhos de amostra, diferentes distribuições de conjuntos de dados e diferentes testes de distribuição.
filliben <- function(n) {
a <- 2^(-1/n); c(1-a, (2:(n-1) - 0.3175)/(n + 0.365), a)
}
sensitivity <- function(x, f, delta=1, ...) {
s <- delta * sd(x) / 2
e <- function(i) {u <- rep(0, length(x)); u[i] <- s; u}
f.x <- f(x)
sapply(1:length(x), function(i) f(x + e(i)) - f.x) / abs(s)
}
sensitivity.abs <- function(x, f, delta, ...) {
abs(sensitivity(x, f, delta/2, ...)) + abs(sensitivity(x, f, -delta/2, ...))
}
delta <- 1
beta <- function(q) qbeta(q, 1/2, 1/2) # A bimodal distribution
par(mfrow=c(3, 4))
for (n in c(4, 12, 36)) {
x <- filliben(n)
for (f.s in c("qnorm", "qunif", "qexp", "beta")) {
# Perform the tests.
y <- do.call(f.s, list(x))
y <- (y - mean(y))
cat(n, f.s, shapiro.test(y)$p.value, ks.test(y, "pnorm")$p.value, "\n")
# Compute sensitivities.
shapiro.s <- sensitivity.abs(y, function(x) shapiro.test(x)$p.value, delta)
ks.s <- sensitivity.abs(y, function(x) ks.test(x, "pnorm")$p.value, delta)
shapiro.s <- pmax(1e-12, shapiro.s) # Eliminate zeros for log plotting
ks.s <- pmax(1e-12, ks.s) # Eliminate zeros for log plotting
# Plot results.
plot(c(1,n), range(c(shapiro.s, ks.s)), type="n", log="y",
main=f.s, xlab="Rank", ylab=paste0("Sensitivity, n=", n))
points(shapiro.s, pch=16, col="Red")
points(ks.s, pch=24, bg="Blue")
lines(shapiro.s, col="#801010")
lines(ks.s, col="#101080", lty=3)
}
}
Não acho que seja particularmente insensível; Eu diria que é mais sensível lá do que o teste de Lilliefors, por exemplo, e estou tendo problemas para pensar em outro teste comparável de qualidade do ajuste em uso amplo * que acho que será muito mais sensível às caudas.
Se olharmos para as comparações de poder dos testes de bondade de ajuste (nos quais existem papéis numéricos), o Shapiro Wilk geralmente apresenta um desempenho muito bom em uma ampla variedade de situações, incluindo algumas que eu consideraria relacionadas à "sensibilidade às caudas".
Edit: Eu já passei por vários estudos de comparação de poder, incluindo alternativas simétricas de cauda pesada e alternativas com pequenas quantidades de contaminação por outliers (as duas maneiras mais óbvias de olhar para a 'sensibilidade às caudas') e o Shapiro-Wilk faz extremamente bem, geralmente superando até o Anderson-Darling nessa tarefa (uma tarefa na qual se espera que o AD se destaque).
[Os autores dizem como essa sensibilidade foi medida ou com a qual foi comparada? O documento fornece alguma justificativa ou contexto para a reivindicação?]