Eu tenho um conjunto de dados com a seguinte estrutura:
a word | number of occurrence of a word in a document | a document id
Como posso executar um teste para distribuição normal em R? Provavelmente é uma pergunta fácil, mas eu sou um novato em R.
r
distributions
normality-assumption
Skarab
fonte
fonte
zipfR
pacote.Respostas:
Se entendi sua pergunta corretamente, para testar se as ocorrências de palavras em um conjunto de documentos seguem uma distribuição Normal, basta usar um teste shapiro-Wilk e alguns qqplots. Por exemplo,
Os comandos qqplot fornecem:
Você pode ver que o segundo conjunto de dados claramente não é Normal pelas caudas pesadas ( Mais informações ).
No teste de normalidade Shapiro-Walk, o valor p é grande para o primeiro conjunto de dados (> .9), mas muito pequeno para o segundo conjunto de dados (<.01). Isso levará você a rejeitar a hipótese nula pelo segundo.
fonte
qqline
deve ter 1 inclinação e mu interceptar.Supondo que seu conjunto de dados seja chamado
words
e tenha umacounts
coluna, você pode plotar o histograma para ter uma visualização da distribuição:onde 100 é o número de posições
Você também pode fazer um gráfico QQ normal usando
Por fim, você também pode usar o teste Shapiro-Wilk para normalidade
Embora, observe esta discussão: Teste de normalidade: 'Essencialmente inútil?'
fonte
Nenhum teste mostrará que seus dados têm uma distribuição normal - somente será capaz de mostrar quando os dados forem suficientemente inconsistentes com o normal e você rejeitará o nulo.
Mas as contagens não são normais, são números inteiros positivos - qual é a probabilidade de uma observação de uma distribuição normal ter um valor que não é um número inteiro? (... esse é um evento de probabilidade 1).
Por que você testaria a normalidade neste caso? É obviamente falso.
[Em alguns casos, pode não ser necessariamente importante que você saiba que seus dados não são realmente normais. Dados reais nunca (ou quase nunca) serão realmente extraídos de uma distribuição normal.]
Se você realmente precisa fazer um teste, o teste Shapiro-Wilk (
?shapiro.test
) é um bom teste geral de normalidade, amplamente utilizado.fonte
Uma maneira mais formal de observar a normalidade é testar se a curtose e a inclinação são significativamente diferentes de zero.
Para fazer isso, precisamos obter:
para curtose e:
Skewness.
Ambos os testes são unilaterais, portanto, você precisará multiplicar o valor-p por 2 para se tornar bilateral. Se o seu valor p for maior que um, você precisará usar 1-kurtosis.test () em vez de kurtosis.test.
Se você tiver outras perguntas, envie um email para [email protected]
fonte
kurtosis()
eskewness()
do pacote momentos ? Os resultados usandornorm()
amostras são diferentes.Além do teste de Shapiro-Wilk do pacote de estatísticas, o pacote nortest (disponível no CRAN) fornece outros testes de normalidade.
fonte
Usando o
nortest
pacote de R, esses testes podem ser realizados:Realizar teste de normalidade Anderson-Darling
Realize o teste de Cramér-von Mises para normalidade
Realize o teste qui-quadrado de Pearson para normalidade
Realize o teste Shapiro-Francia para normalidade
Muitos outros testes podem ser feitos usando o
normtest
pacote. Veja a descrição em https://cran.r-project.org/web/packages/normtest/normtest.pdffonte