Gráfico de interpretação de resíduos versus valores ajustados da regressão de Poisson

25

Estou tentando ajustar dados com um GLM (regressão de Poisson) em R. Quando plotei os resíduos versus os valores ajustados, o gráfico criou múltiplas "linhas" (quase lineares com uma ligeira curva côncava). O que isto significa?

library(faraway)
modl <- glm(doctorco ~ sex + age + agesq + income + levyplus + freepoor + 
            freerepa + illness + actdays + hscore + chcond1 + chcond2,
            family=poisson, data=dvisits)
plot(modl)

insira a descrição da imagem aqui

jocelyn
fonte
Não sei se você pode fazer o upload do enredo (às vezes os novatos não podem), mas se não, você poderia ao menos adicionar alguns dados e código R à sua pergunta para que as pessoas possam avaliá-lo?
gung - Restabelece Monica
Jocelyn, atualizamos sua postagem com as informações que você coloca em um comentário. Também marquei isso como homeworkdesde que você falou sobre uma tarefa.
chl
tente plot (jitter (mod1)) para ver se o gráfico é um pouco mais legível. Por que você não define resíduos para nós e nos dá o seu melhor palpite para interpretar você mesmo o gráfico.
Michael Bishop
11
A partir da pergunta, vou assumir que você entende a distribuição de Poisson & Pois reg, e o que uma plotagem de resíduos versus valores ajustados diz (atualizar se estiver errado); assim, você está apenas se perguntando sobre a aparência estranha dos pontos na trama. Por ser uma lição de casa, não respondemos exatamente como nossa política geral, mas fornecemos dicas. Percebo que você tem muitas covariáveis, gostaria de saber se você tem 1 covariáveis ​​contínuas e muitas binárias.
gung - Restabelece Monica
11
Dois acompanhamentos do comentário de gung. Primeiro, tente table(dvisits$doctorco). A que correspondem as 10 linhas curvas do seu gráfico nesta tabela? Além disso, com mais de 5.000 observações, não se preocupe muito em ajustar 13 coeficientes de regressão.
guest

Respostas:

29

Essa é a aparência que você espera desse gráfico quando a variável dependente é discreta.

Cada traço curvilíneo de pontos no gráfico corresponde a um valor fixo da variável dependente y . Todos os casos em que y = k tem uma previsão y ; seu residual - por definição - é igual a k - y . A trama de k - y contra y é, obviamente, uma linha com o declive - um . Em regressão de Poisson, o eixo x é mostrado numa escala logarítmica: é log ( y ) . As curvas agora dobram-se exponencialmente. Como kkyy=ky^ky^ky^y^1log(y^)kvaria, essas curvas aumentam em valores integrais. Exponenciá-los fornece um conjunto de curvas quase paralelas. (Para provar isso, o gráfico será explicitamente construído abaixo, colorindo separadamente os pontos pelos valores de .)y

Podemos reproduzir o enredo em questão bastante de perto por meio de um modelo semelhante, mas arbitrário (usando pequenos coeficientes aleatórios):

# Create random data for a random model.
set.seed(17)
n <- 2^12                       # Number of cases
k <- 12                         # Number of variables
beta = rnorm(k, sd=0.2)         # Model coefficients
x <- matrix(rnorm(n*k), ncol=k) # Independent values
y <- rpois(n, lambda=exp(-0.5 + x %*% beta + 0.1*rnorm(n)))

# Wrap the data into a data frame, create a formula, and run the model.
df <- data.frame(cbind(y,x))    
s.formula <- apply(matrix(1:k, nrow=1), 1, function(i) paste("V", i+1, sep=""))
s.formula <- paste("y ~", paste(s.formula, collapse="+"))
modl <- glm(as.formula(s.formula), family=poisson, data=df)

# Construct a residual vs. prediction plot.
b <- coefficients(modl)
y.hat <- x %*% b[-1] + b[1]     # *Logs* of the predicted values
y.res <- y - exp(y.hat)         # Residuals
colors <- 1:(max(y)+1)          # One color for each possible value of y
plot(y.hat, y.res, col=colors[y+1], main="Residuals v. Fitted")

Resíduos vs.

whuber
fonte
6
(+1) A cor mostra muito o que está acontecendo.
cardeal
Então, o enredo acima é preocupante? Os textos (Modelagem Estatística para Pesquisadores Biomédicos: Uma Introdução Simples à Análise de Dados Complexos, Dupont, 2002, p. 316, por exemplo) indicam que o gráfico ajustado versus residual deve ser centrado sobre a linha residual zero e um ventilador (se não processado) resíduos) ou não (se desvio, por exemplo). Com um intervalo limitado de contagens na variável de resultado, você obtém essas bandas e, como no gráfico acima, elas não estão centradas na linha em y = 0. Como sabemos o gráfico residual do OP (ou o gráfico de exemplo feita nesta resposta) indica que o modelo está ajustando bem os dados?
Meg
11
@ Meg Esse conselho não se aplica diretamente aos resíduos de um GLM. Observe que o modelo usado para ilustrar essa resposta é conhecido por estar correto, porque é o usado para gerar os dados.
whuber
1/2: Obrigado @whuber. Entendo que, para esta resposta, sabe-se que o modelo está correto, pois os dados foram simulados a partir de uma determinada distribuição, mas, na prática, é desconhecido (como no post do OP). Além disso, o que eu escrevi sobre resíduos se aplica à regressão de POI (nem todos os GLMs, não, mas este) - a referência que eu dei foi discutir especificamente a regressão de POI. Eu só vi textos mostrar resíduos de POI padronizados (Pearson ou desvio, por exemplo) centrados em y = 0, então não tenho certeza do que devo procurar, porque para este modelo (que está obviamente correto), o gráfico parece Nada como isso.
Meg
2/2: Você tem uma referência que discute os resíduos de PI mais detalhadamente por acaso?
Meg
8

Às vezes, listras como essas em gráficos residuais representam pontos com valores observados (quase) idênticos que obtêm previsões diferentes. Olhe para os seus valores-alvo: quantos valores únicos são? Se minha sugestão estiver correta, deve haver 9 valores exclusivos no seu conjunto de dados de treinamento.

Boris Gorelik
fonte
11
0,1,,9
-3

Esse padrão é característico de uma correspondência incorreta da família e / ou vínculo. Se você tiver dados em excesso de dispersão, talvez deva considerar as distribuições binomial negativa (contagem) ou gama (contínua). Além disso, você deve plotar seus resíduos contra o preditor linear transformado, não os preditores ao usar modelos lineares generalizados. Para transformar o preditor de Poisson, você precisa pegar duas vezes a raiz quadrada do preditor linear e plotar seus resíduos contra isso. Os resíduos ainda mais não devem ser exclusivamente resíduos pearson, tente desvios residuais e resíduos estudados.

Ryan Barnhart
fonte
3
Por que 2 vezes a raiz quadrada, quando o elo canônico da família de poisson em um glm é log? Não deveria ser exp () do preditor linear? Mas não vejo qual é o problema de plotar resíduos contra o próprio preditor linear, que acho que é o que está sendo feito aqui - talvez você possa expandir isso.
31812 Peter Ellis
Você se importaria de explicar que aspecto do "padrão" está chamando sua atenção para uma possível especificação incorreta do modelo, Ryan? Parece ser uma coisa sutil, mas é potencialmente um insight importante.
whuber