Uma mensagem de aviso que pode encontrar no R é:

 Mensagem de aviso: glm.fit: ocorreram probabilidades ajustadas numericamente 0 ou 1 

Este aviso ocorre quando se ajusta um modelo de regressão logística e as probabilidades previstas de uma ou mais observações no seu quadro de dados são indistinguíveis de 0 ou 1.

Vale a pena notar que se trata de um mensagem de aviso Mesmo que receba este erro, o seu modelo de regressão logística continuará a ser ajustado, mas pode valer a pena analisar a estrutura de dados original para ver se existem valores atípicos que estejam a causar o aparecimento desta mensagem de aviso.

Este tutorial partilha a forma de abordar esta mensagem de aviso na prática.

Como reproduzir o aviso

Suponha que ajustamos um modelo de regressão logística ao seguinte quadro de dados em R:

 #criar quadro de dados df <- data. frame (y = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1), x1 = c(3, 3, 4, 4, 3, 2, 5, 8, 9, 9, 9, 9, 8, 9, 9, 9), x2 = c(8, 7, 7, 6, 5, 6, 5, 2, 2, 3, 4, 3, 7, 4, 4)) #ajustar modelo de regressão logística modelo2,0728e+01 em 14 graus de liberdade Desvio residual: 5,6951e-10 em 12 graus de liberdade AIC: 6 Número de iterações da Pontuação de Fisher: 24 

O nosso modelo de regressão logística é ajustado com sucesso aos dados, mas recebemos uma mensagem de aviso de que probabilidades ajustadas numericamente 0 ou 1 ocorreram .

Se utilizarmos o modelo de regressão logística ajustado para fazer previsões sobre o valor da resposta das observações no quadro de dados original, podemos ver que quase todas as probabilidades previstas são indistinguíveis de 0 e 1:

 #utilizar o modelo ajustado para prever os valores da resposta df$y_pred = predict(model, df, type=" response ") #visualizar a estrutura de dados actualizada df y x1 x2 y_pred 1 0 3 8 2.220446e-16 2 0 3 7 2.220446e-16 3 0 4 7 2.220446e-16 4 0 4 6 2.220446e-16 5 0 3 5 2.220446e-16 6 0 2 6 2.220446e-16 7 0 5 5 1.494599e-10 8 1 8 2 1.000000e+00 9 1 9 2 1.000000e+00 10 1 9 3 1.000000e+00 11 1 9 4 1.000000e+00 12 1 8 3 1.000000e+00 13 1 97 1.000000e+00 14 1 9 4 1.000000e+00 15 1 9 4 1.000000e+00 

Como lidar com o aviso

Existem três formas de lidar com esta mensagem de aviso:

(1) Ignorar.

Em alguns casos, pode simplesmente ignorar esta mensagem de aviso porque não indica necessariamente que algo está errado com o modelo de regressão logística. Significa simplesmente que uma ou mais observações no quadro de dados têm valores previstos indistinguíveis de 0 ou 1.

(2) Aumentar a dimensão da amostra.

Noutros casos, esta mensagem de aviso aparece quando está a trabalhar com quadros de dados pequenos, em que simplesmente não há dados suficientes para fornecer um ajuste fiável do modelo. Para resolver este erro, basta aumentar o tamanho da amostra das observações que introduz no modelo.

(3) Remover os valores anómalos.

Noutros casos, este erro ocorre quando existem outliers no quadro de dados original e quando apenas um pequeno número de observações tem probabilidades ajustadas próximas de 0 ou 1. Ao remover estes outliers, a mensagem de aviso desaparece frequentemente.