Um teste exato sempre produz um valor P mais alto que um teste aproximado?


8

Fiz uma simulação para o teste Mcnemar, e a resposta parecia ser sim.

Fiquei me perguntando se isso sempre pode ser dito que o valor exato de P é maior (ou não menor) do que o valor de p que é alcançado através de uma aproximação.

algum código, por exemplo:

set.seed(234)
n <- 100 # number of total subjects
P <- numeric(100)
P_exact <- numeric(100)
for(i in 1:100)
{
x = table(sample(1:2, n, T), sample(1:2, n, T))
P[i] <- mcnemar.test(x, correct = F)$p.v
P_exact[i] <- binom.test(x[2,1],x[1,2]+x[2,1])$p.valu
}

#for different n - the level of problem is worse
#plot(jitter(P,0,.01), P_exact )
plot(P, P_exact )
abline(0,1)

Respostas:


14

Não, o valor p de uma distribuição assintoticamente válida nem sempre é menor que um valor p exato. Considere dois exemplos de testes "não paramétricos" tradicionais:

Teste Wilcoxon Rank-Sum para mudança de local (por exemplo, mediana) para duas amostras independentes de tamanho n1 e n2 calcula a estatística de teste da seguinte maneira:

  1. coloque todos os valores observados em uma grande amostra de tamanho N=n1+n2
  2. classifique esses valores de 1,,N
  3. somar as classificações para o primeiro grupo, chame isso LN+. Freqüentemente, a estatística do teste é definida comoW=LN+n1(n1+1)2 (essa estatística de teste é idêntica à U de Mann-Whitney), mas isso não importa para o formato da distribuição.

A distribuição exata para LN+ para fixo n1 e n2é encontrado gerando todas as combinações possíveis de classificações para o primeiro grupo e calculando a soma em cada caso. A aproximação assintótica usa , isto é, uma aproximação normal-normal da estatística de teste transformada em .(Nn1)z:=Ln+n1(N+1)/2(n1n2(N+1))/12N(0,1)z

Da mesma forma, o teste de Kruskal-Wallis-H para mudança de localização (por exemplo, mediana) para amostras independentes de usa uma estatística de teste baseada nas somas de classificação em cada grupo : . Novamente, a distribuição exata de H é encontrada gerando todas as combinações de classificações para os grupos. Para 3 grupos, existem dessas combinações. A aproximação assintótica usa uma .pR+jjH: =12N(N+1)j=1p1nj(R+j-njN+12)2(Nn1)(N-n1n2)χp-12

Agora podemos comparar as formas de distribuição em termos da função de distribuição cumulativa para determinados tamanhos de grupo. O valor p (do lado direito) para um dado valor da estatística de teste é igual a para a distribuição contínua. No caso discreto, o valor p para (o -ésimo valor possível para a estatística de teste) é . O diagrama mostra que a distribuição exata produz valores p às vezes maiores, às vezes menores, no teste H: para (o 32º de 36 possíveis valores H), o valor p exato é 0,075 ( com o código abaixo ), enquanto o valor p aproximado é 0,082085 ( ). ParaF()t1-F(t)tmm1-F(tm-1)H=5sum(dKWH_08[names(dKWH_08) >= 5])1-pchisq(5, P-1)H=2(15º valor possível), o valor p exato é 0,425 ( sum(dKWH_08[names(dKWH_08) >= 2])), o aproximado é igual a 0,3678794 ( 1-pchisq(2, P-1)).

insira a descrição da imagem aqui

#### Wilcoxon-Rank-Sum-Test: exact distribution
n1      <- 5                           # group size 1
n2      <- 4                           # group size 2
N       <- n1 + n2                     # total sample size
ranks   <- t(combn(1:N, n1))           # all possible ranks for group 1
LnPl    <- apply(ranks, 1, sum)        # all possible rank sums for group 1 (Ln+)
dWRS_9  <- table(LnPl) / choose(N, n1) # exact probability function for Ln+
pWRS_9  <- cumsum(dWRS_9)              # exact cumulative distribution function for Ln+
muLnPl  <- (n1    * (N+1)) /  2        # normal approximation: theoretical mean
varLnPl <- (n1*n2 * (N+1)) / 12        # normal approximation: theoretical variance

#### Kruskal-Wallis-H-Test: exact distribution
P  <- 3                                # number of groups
Nj <- c(3, 3, 2)                       # group sizes
N  <- sum(Nj)                          # total sample size
IV <- rep(1:P, Nj)                     # factor group membership
library(e1071)                         # for permutations()
permMat <- permutations(N)             # all permutations of total sample
getH <- function(rankAll) {            # function to calc H for one permutation
    Rj <- tapply(rankAll, IV, sum)
    H  <- (12 / (N*(N+1))) * sum((1/Nj) * (Rj-(Nj*(N+1) / 2))^2)
}

Hscores <- apply(permMat, 1, getH)     # all possible H values for given group sizes
dKWH_08 <- table(round(Hscores, 4)) / factorial(N)  # exact probability function
pKWH_08 <- cumsum(dKWH_08)             # exact cumulative distribution function

Note que eu calculo a distribuição exata de H gerando todas as permutações, nem todas as combinações. Isso é desnecessário e computacionalmente muito mais caro, mas é mais simples escrever no caso geral ... Agora, faça o gráfico comparando as formas das funções.

dev.new(width=12, height=6.5)
par(mfrow=c(1, 2), cex.main=1.2, cex.lab=1.2)
plot(names(pWRS_9), pWRS_9, main="Wilcoxon RST, N=(5, 4): exact vs. asymptotic",
     type="n", xlab="ln+", ylab="P(Ln+ <= ln+)", cex.lab=1.4)
curve(pnorm(x, mean=muLnPl, sd=sqrt(varLnPl)), lwd=2, n=200, add=TRUE)
points(names(pWRS_9), pWRS_9, pch=16, col="red")
abline(h=0.95, col="blue")
legend(x="bottomright", legend=c("exact", "asymptotic"),
       pch=c(16, NA), col=c("red", "black"), lty=c(NA, 1), lwd=c(NA, 2))

plot(names(pKWH_08), pKWH_08, type="n", main="Kruskal-Wallis-H, N=(3, 3, 2):
     exact vs. asymptotic", xlab="h", ylab="P(H <= h)", cex.lab=1.4)
curve(pchisq(x, P-1), lwd=2, n=200, add=TRUE)
points(names(pKWH_08), pKWH_08, pch=16, col="red")
abline(h=0.95, col="blue")
legend(x="bottomright", legend=c("exakt", "asymptotic"),
       pch=c(16, NA), col=c("red", "black"), lty=c(NA, 1), lwd=c(NA, 2))

Observe que esses testes exigem que as distribuições tenham a mesma forma em cada grupo, caso contrário, não são um teste apenas para localização.


2
(+1) Resposta agradável e código R muito limpo!
chl

Que resposta incrível. Se eu pudesse aceitar duas vezes - eu aceitaria. Obrigado Caracal, eu tenho muito a aprender ...
Tal Galili

4

Nem sempre, embora geralmente. Acho que depende do tipo de estatística, do teste. Apenas sentei e experimentei o qui-quadrado de Pearson e o qui-quadrado da razão de verossimilhança nos conjuntos de dados de 20 a 100 casos. Para Pearson, eu achei a significância exata menor do que a assintótica em 10% das vezes. Para LR - 0%. Abaixo está um exemplo de tabela de frequência e os testes, nos quais o qui-quadrado de Pearson tem o sig exato. menor que o sig assintótico.

7   12   4
26  12  17
6   10   6

Chi-Square Tests
                    Value      df   Asymp. Sig. (2-sided)   Exact Sig. (2-sided)
Pearson Chi-Square  8.756(a)    4       .068                   .067
Likelihood Ratio    8.876       4       .064                   .073

a   0 cells (.0%) have expected count less than 5. The minimum expected count is 5.94.
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.