Quero avaliar a precisão dos testes de normalidade em diferentes tamanhos de amostra em R (percebo que os testes de normalidade podem ser enganosos ). Por exemplo, para examinar o teste de Shapiro-Wilk, estou realizando a seguinte simulação (bem como plotando os resultados) e esperaria que, à medida que o tamanho da amostra aumentasse, a probabilidade de rejeitar as reduções nulas:
n <- 1000
pvalue_mat <- matrix(NA, ncol = 1, nrow = n)
for(i in 10:n){
x1 <- rnorm(i, mean = 0, sd = 1)
pvalue_mat[i,] <- shapiro.test(x1)$p.value
}
plot(pvalue_mat)
Meu pensamento seria que, à medida que o tamanho da amostra cresce, deve haver uma menor taxa de rejeição, no entanto, parece bastante uniforme. Acho que estou entendendo mal isso - todos e quaisquer pensamentos são bem-vindos.
r
simulation
power-analysis
normality-assumption
user94759
fonte
fonte
Respostas:
Você está simulando sob a hipótese nula (distribuição normal); portanto, a taxa de rejeição tenderá ao nível de significância conforme o esperado. Para avaliar o poder, você precisa simular sob qualquer distribuição não normal. Existem infinitas possibilidades / cenários (por exemplo, distribuições gama com assimetria crescente, distribuição t com df decrescente etc.) para escolher, dependendo do escopo do seu estudo.
fonte
A compreensão da análise de poder dos testes estatísticos de hipóteses pode ser aprimorada, realizando-se alguns e observando atentamente os resultados.
O segundo critério exige que estipulemos de que maneira (s) e por quanto o nulo falha em ser verdadeiro. Nos casos de livros didáticos, isso é fácil, porque as alternativas são limitadas em escopo e claramente especificadas. Em testes de distribuição como o Shapiro-Wilk, as alternativas são muito mais vagas: são "não-normais". Ao escolher entre os testes de distribuição, é provável que o analista precise realizar seu próprio estudo de potência pontual para avaliar quão bem os testes funcionam em relação a hipóteses alternativas mais específicas que são motivo de preocupação no problema em questão.
R
rdist
, o nome de uma função para produzir uma amostra aleatória de alguma distribuiçãon
, o tamanho das amostras a serem solicitadasrdist
n.iter
, o número dessas amostras para obter...
rdist
Os demais parâmetros controlam a exibição dos resultados; eles são incluídos principalmente como uma conveniência para gerar os números nesta resposta.
Depois de especificar os parâmetros, esse código também é apenas uma linha. Ele produz a seguinte saída:
Um pequeno estudo desse quadro fornece uma boa intuição sobre o poder. Gostaria de chamar a atenção para seus aspectos mais importantes e úteis:
breaks
sim
É divertido saber que muito pode ser coletado do que, na verdade, equivale a três linhas de código: uma para simular amostras de iid de uma distribuição especificada, uma para aplicá-la a uma matriz de distribuições nulas e a terceira para aplicá-la a uma matriz de distribuições alternativas. Estas são as três etapas que entram em qualquer análise de poder: o resto é apenas resumir e interpretar os resultados.
fonte
(Mais do que um comentário, talvez não seja uma resposta completa)
Deixando de lado as considerações dos testes tendenciosos (que não são incomuns na qualidade do ajuste, portanto vale a pena mencionar), há três situações relacionadas à taxa de rejeição que se pode considerar:
1) a taxa de rejeição ao simular a partir do nulo (como você parece estar fazendo na sua pergunta)
2) a taxa de rejeição ao simular a partir de alguma alternativa
Aqui a taxa de rejeição deve aumentar à medida que n aumenta.
3) a taxa de rejeição para alguma coleta de dados reais
Na prática, o nulo nunca é realmente verdadeiro e os dados reais terão uma mistura de quantidades de não normalidade (conforme medido pela estatística do teste). Se o grau de não normalidade não estiver relacionado ao tamanho da amostra, a taxa de rejeição deve aumentar à medida que n aumenta.
Portanto, de fato, em nenhuma dessas situações devemos ver a taxa de rejeição diminuir com o tamanho da amostra.
fonte