o teste de Shapiro Wilk é insensível nas caudas?


8

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?


1
Em qual artigo você leu isso?
Glen_b -Reinstala Monica

2
Veja minha resposta aqui para uma pergunta semelhante. Também possui referências a trabalhos com pesquisa empírica, comparações com diferentes alternativas, incluindo distribuições de cauda longa.
Aksakal

Respostas:


5

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.n


Quantificando a sensibilidade

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 serfxfithx

ddxif(x1,x2,,xn).

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, deixeffxiδ0

sδ±Euf=f(x1,,xEu-1,xEu±δσ,xEu+1,,xn)-f(x1,x2,,xn)δσ

σxf

(|sδ/2Eu|+|sδ/2-Eu|,Eu=1,2,,n).

δ/2δσ

Avaliando a sensibilidade dos testes distributivos

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.

n=4,12,36.(2,2)nFórmulas de Filliben , também conhecidas como "pontos de plotagem Weibull").

10,0003

Resultados

δ=110-12

Figura

1n

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.

Código

O Rcó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)
  }
}

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?]

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.