Não normalidade em resíduos


8

Refiro-me a este post, que parece questionar a importância da distribuição normal dos resíduos, argumentando que isso, juntamente com a heterocedasticidade, poderia ser potencialmente evitado usando erros padrão robustos.

Eu considerei várias transformações - raízes, logs etc. - e tudo está se mostrando inútil para resolver completamente o problema.

Aqui está um gráfico QQ dos meus resíduos:

Gráfico de normalidade

Dados

  • Variável dependente: já com transformação logarítmica (corrige problemas externos e um problema de assimetria nesses dados)
  • Variáveis ​​independentes: idade da empresa e várias variáveis ​​binárias (indicadores) (Mais adiante, tenho algumas contagens, para uma regressão separada como variáveis ​​independentes)

O iqrcomando (Hamilton) em Stata não determina nenhum erro grave que exclua a normalidade, mas o gráfico abaixo sugere o contrário e o teste de Shapiro-Wilk também.


4
Eu não ficaria preocupado com esse gráfico, os desvios parecem bastante leves. Se desejar, você pode adicionar limites de confiança a esse gráfico usando o qenvpacote.
Maarten Buis

4
Concordo com @MaartenBuis que você não deve se preocupar muito com o enredo. Eu não recomendaria confiar em um teste formal de normalidade (por exemplo, teste de Shapiro) dos resíduos. Em amostras grandes, o teste quase sempre rejeita a hipótese . Aqui está uma resposta informativa de Glen, que aborda exatamente a questão do teste formal da normalidade dos resíduos.
precisa

4
Veja também isto e isto . Observe também que, à medida que o tamanho da amostra aumenta, suas suposições normais se tornam menos críticas. A menos que você tenha muitos preditores, essa não normalidade moderada não deve ter nenhuma conseqüência. O problema não é apenas que os testes de hipótese serão rejeitados quando as amostras forem grandes - eles também respondem à pergunta errada em outros tamanhos de amostra.
Glen_b -Reinstala Monica

3
O valor diz que os desvios da normalidade são maiores do que se espera que aconteçam por acaso, não diz que esses desvios são grandes o suficiente para colocar em risco o seu modelo. Com base no seu gráfico, meu julgamento seria que você está bem. p
Maarten Buis

5
O que importa é o efeito em sua inferência . A única forma de inferência que um efeito tão minúsculo teria algum impacto seria com um intervalo de previsão ... e mesmo lá, eu provavelmente a usaria com pouca correção, a menos que precisasse de um intervalo de previsão até o final ( diga 99% ou mais). O mais preocupante seria questões como dependência e viés e má especificação do modelo para a média ou variância.
Glen_b -Reinstala Monica

Respostas:


9

Uma maneira de adicionar um "sabor de teste" ao seu gráfico é adicionar limites de confiança ao seu redor. No Stata, eu faria o seguinte:

sysuse nlsw88, clear
gen lnw = ln(wage)

reg lnw i.race grade c.ttl_exp##c.ttl_exp union

predict resid if e(sample), resid

qenvnormal resid, mean(0) sd(`e(rmse)') overall reps(20000) gen(lb ub)

qplot resid lb ub, ms(oh none ..) c(. l l)     ///
    lc(gs10 ..) legend(off) ytitle("residual") ///
    trscale(`e(rmse)' * invnormal(@))          ///
    xtitle(Normal quantiles)

insira a descrição da imagem aqui


3
Observe que os usuários do Stata precisam instalar primeiro qenv(por ssc install qenv).
Nick Cox

Eu vou olhar para isso hoje e ver se eu sou capaz de obter os limites de confiança
Cesare Camestre

Recebendo um erro: resid qenvnormal, médio (0) se ( `e (RMSE) ') representantes globais (20000) gen (lb ub) - opção se () não permitidos
Cesare Camestre

1
correto, deveria ter sido sd(). É normal (sem trocadilhos) que qenvcom a overallopção leve muito tempo.
Maarten Buis

1
A ajuda para qenvnormalexplica que você precisa instalar qplot. Você deve ler a ajuda. Mais importante, acho que você está usando uma versão muito antiga do qplot. Instale a partir do pacote gr42_6 em stata-journal.com/software/sj12-1
Nick Cox

5

Uma coisa a ter em mente ao examinar esses gráficos de qq é que as caudas tendem a se desviar da linha mesmo que a distribuição subjacente seja verdadeiramente normal e não importa o tamanho do N. Isso está implícito na resposta de Maarten . Isso ocorre porque, à medida que N aumenta, as caudas ficam cada vez mais distantes e cada vez mais raros. Portanto, sempre haverá muito poucos dados nas caudas e sempre serão muito mais variáveis. Se a maior parte da sua linha está onde o esperado e apenas as caudas se desviam, geralmente você pode ignorá-las.

Uma maneira que eu uso para ajudar os alunos a aprender como avaliar seus gráficos de qq quanto à normalidade é gerar amostras aleatórias a partir de uma distribuição conhecida como normal e examinar essas amostras. Existem exercícios em que eles geram amostras de vários tamanhos para ver o que acontece quando N muda e também aqueles em que eles pegam uma distribuição de amostra real e a comparam com amostras aleatórias do mesmo tamanho. O pacote TeachingDemos de R tem um teste de normalidade que usa um tipo semelhante de técnica.

# R example - change the 1000 to whatever N you would like to examine
# run several times
y <- rnorm(1000); qqnorm(y); qqline(y)

Concordo, mas esse foi um dos pontos-chave de Maarten em sua resposta e é por isso que os intervalos são usados ​​para sinalizar incertezas.
Nick Cox

Você está sugerindo que esta resposta é redundante? Acho que parte disso está implícito na resposta de Maarten, mas não acho que seja um ponto-chave ou completo. A resposta de Maarten é boa. Esta resposta é diferente, mas relacionada.
João

Não é redundante, mas uma referência cruzada à resposta de Maarten provavelmente ajudaria futuros leitores.
Nick Cox

Para ser explícito sobre o vínculo entre isso e minha resposta: se você olhasse por baixo do capô qenv, veria que essa técnica de simulação está no centro de como as faixas de confiança são computadas.
Maarten Buis

1
Adicionou um link ... #
John
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.