Eu tenho um gráfico de valores residuais de um modelo linear em função dos valores ajustados, onde a heterocedasticidade é muito clara. No entanto, não tenho certeza de como devo proceder agora, porque, tanto quanto eu entendo essa heterocedasticidade, torna meu modelo linear inválido. (Isso está certo?)
Use um ajuste linear robusto usando a
rlm()
função doMASS
pacote, pois é aparentemente robusto à heterocedasticidade.Como os erros padrão dos meus coeficientes estão errados por causa da heterocedasticidade, posso apenas ajustar os erros padrão para serem robustos à heterocedasticidade? Usando o método publicado no Stack Overflow aqui: Regressão com erros padrão corrigidos por heterocedasticidade
Qual seria o melhor método para lidar com o meu problema? Se eu usar a solução 2, minha capacidade de previsão do meu modelo é completamente inútil?
O teste Breusch-Pagan confirmou que a variação não é constante.
Meus resíduos em função dos valores ajustados são assim:
(versão ampliada)
fonte
gls
e uma das estruturas de variação do pacote nlme.Respostas:
É uma boa pergunta, mas acho que é a pergunta errada. Sua figura deixa claro que você tem um problema mais fundamental que a heterocedasticidade, ou seja, seu modelo tem uma não linearidade que você não considerou. Muitos dos problemas em potencial que um modelo pode ter (não linearidade, interações, outliers, heterocedasticidade, não Normalidade) podem se disfarçar. Eu não acho que exista uma regra rígida, mas em geral eu sugiro lidar com problemas na ordem
(por exemplo, não se preocupe com a não linearidade antes de verificar se há observações estranhas que estão distorcendo o ajuste; não se preocupe com a normalidade antes de se preocupar com a heterocedasticidade).
Nesse caso em particular, eu ajustaria um modelo quadrático
y ~ poly(x,2)
(oupoly(x,2,raw=TRUE)
ouy ~ x + I(x^2)
e ver se isso faz o problema desaparecer).fonte
Listo vários métodos para lidar com a heterocedasticidade (com
R
exemplos) aqui: Alternativas à ANOVA unidirecional para dados heterocedásticos . Muitas dessas recomendações seriam menos ideais porque você tem uma única variável contínua, em vez de uma variável categórica de vários níveis, mas pode ser bom ler como uma visão geral de qualquer maneira.Para a sua situação, os mínimos quadrados ponderados (talvez combinados com uma regressão robusta se você suspeitar que possa haver alguns valores discrepantes) seria uma escolha razoável. Usar os erros sanduíche Huber-White também seria bom.
Aqui estão algumas respostas para suas perguntas específicas:
fonte
Carregue
sandwich package
e calcule a matriz var-cov da sua regressãovar_cov<-vcovHC(regression_result, type = "HC4")
(leia o manual desandwich
). Agora, com olmtest package
uso dacoeftest
função:fonte
Como é a distribuição dos seus dados? Parece uma curva de sino? Do assunto, ele pode ser normalmente distribuído? A duração de uma ligação telefônica pode não ser negativa, por exemplo. Portanto, nesse caso específico de chamadas, uma distribuição gama a descreve bem. E com gama você pode usar o modelo linear generalizado (glm em R)
fonte