Métricas de erro para validação cruzada de modelos Poisson

29

Estou validando cruzadamente um modelo que está tentando prever uma contagem. Se esse fosse um problema de classificação binária, eu calcularia a AUC fora da dobra e, se esse fosse um problema de regressão, calcularia o RMSE ou o MAE fora da dobra.

Para um modelo de Poisson, que métricas de erro posso usar para avaliar a "precisão" das previsões fora da amostra? Existe uma extensão de AUC de Poisson que analisa quão bem as previsões ordenam os valores reais?

Parece que muitas competições do Kaggle por contagens (por exemplo, número de votos úteis que uma revisão de yelp terá ou número de dias que um paciente passará no hospital) usam o erro quadrático médio do log ou o RMLSE.


/ Edit: Uma coisa que eu tenho feito é calcular deciles dos valores previstos e, em seguida, ver as contagens reais, ordenadas por decil. Se o decil 1 é baixo, o decil 10 é alto e os decilitros estão aumentando estritamente, eu chamo o modelo de "bom", mas tenho tido problemas para quantificar esse processo e convenci de que há um melhor aproximação.

/ Edit 2: estou procurando uma fórmula que aceite valores reais e previstos e retorne alguma métrica "erro" ou "precisão". Meu plano é calcular essa função nos dados que não estão dobra durante a validação cruzada e depois usá-la para comparar uma grande variedade de modelos (por exemplo, uma regressão de Poisson, uma floresta aleatória e um GBM ).

Por exemplo, uma dessas funções é RMSE = sqrt(mean((predicted-actual)^2)). Outra função seria a AUC . Nenhuma função parece correta para dados de poisson.

Zach
fonte
Para modelos de Poisson, você pode usar o desvio; que é semelhante a um MSE, mas mais adequado a um Poisson. Se o tamanho das suas amostras não for pequeno, um MSE ponderado seria bastante semelhante.
Glen_b -Reinstala Monica
@Glen_b qual é a fórmula para o desvio?
Zach
1
Desvio . Como você está se ajustando ao seu modelo de Poisson?
Glen_b -Reinstala Monica
Duas maneiras diferentes, variando de uma regressão de poisson penalizada a um gbm. Estou procurando uma boa métrica de erro para comparar modelos diferentes. Obrigado pelo conselho.
Zach
A regressão de Poisson deve, pelo menos, dar-lhe um desvio automaticamente
Glen_b -Reinstar Monica

Respostas:

37

Existem algumas regras de pontuação estritas e adequadas para os dados de contagem que você pode usar. Regras de pontuação são penalidades introduzidas com sendo a distribuição preditiva e o valor observado. Eles têm várias propriedades desejáveis, em primeiro lugar que uma previsão mais próxima da verdadeira probabilidade sempre recebe menos penalidade e existe uma melhor (única) melhor previsão e é quando a probabilidade prevista coincide com a verdadeira probabilidade. Assim, minimizar a expectativa de significa relatar as verdadeiras probabilidades. Veja também Wikipedia .P y s ( y , P )s(y,P)Pys(y,P)

Freqüentemente, toma-se uma média daqueles sobre todos os valores previstos,

S=1ni=1ns(y(i),P(i))

Qual regra a ser adotada depende do seu objetivo, mas darei uma caracterização aproximada quando cada uma for boa para ser usada.

No que segue, uso para a função de massa de probabilidade preditiva e a função de distribuição cumulativa preditiva. Um passa por todo o suporte da distribuição de contagem (ou seja, ). indica uma função indicadora. e são a média e o desvio padrão da distribuição preditiva (que geralmente são quantidades estimadas diretamente nos modelos de dados de contagem). f(y)Pr(Y=y)F(y)k0,1,,Iμσ

Regras de pontuação estritamente adequadas

  • Brier Score : (estável para desequilíbrio de tamanho em preditores categóricos)s(y,P)=2f(y)+kf2(k)
  • Escore de Dawid-Sebastiani : (bom para a escolha geral do modelo preditivo; estável para o desequilíbrio de tamanho nos preditores categóricos)s(y,P)=(yμσ)2+2logσ
  • Escore de desvio : ( é um termo de normalização que depende apenas de , nos modelos de Poisson é geralmente considerado o desvio saturado; bom para uso com estimativas de uma estrutura de ML)s(y,P)=2logf(y)+gygyy
  • Escore logarítmico : (calculado com muita facilidade; estável para desequilíbrio de tamanho em preditores categóricos)s(y,P)=logf(y)
  • Escore de probabilidade classificada : (bom para contrastar previsões diferentes de contagens muito altas; suscetível ao desequilíbrio de tamanho em preditores categóricos)s(y,P)=k{F(k)I(yk)}2
  • Escore esférico : (estável para desequilíbrio de tamanho em preditores categóricos)s(y,P)=f(y)kf2(k)

Outras regras de pontuação (não tão apropriadas, mas frequentemente usadas)

  • Escore de erro absoluto :(não apropriado)s(y,P)=|yμ|
  • Escore de erro ao quadrado : (não estritamente adequado; suscetível a discrepantes; suscetível ao desequilíbrio de tamanho nos preditores categóricos)s(y,P)=(yμ)2
  • Escore de erro ao quadrado normalizado de Pearson : (não estritamente adequado; suscetível a outliers; pode ser usado para verificar se o modelo verifica se o escore médio é muito diferente de 1; estável para desequilíbrio de tamanho em preditores categóricos)s(y,P)=(yμσ)2

Exemplo de código R para regras estritamente apropriadas:

library(vcdExtra)
m1 <- glm(Freq ~ mental, family=poisson, data=Mental) 

# scores for the first observation
mu <- predict(m1, type="response")[1]
x  <- Mental$Freq[1]

# logarithmic (equivalent to deviance score up to a constant) 
-log(dpois(x, lambda=mu))

# quadratic (brier)
-2*dpois(x,lambda=mu) + sapply(mu, function(x){ sum(dpois(1:1000,lambda=x)^2) })

# spherical
- dpois(x,mu) / sqrt(sapply(mu, function(x){ sum(dpois(1:1000,lambda=x)^2) }))

# ranked probability score
sum(ppois((-1):(x-1), mu)^2) + sum((ppois(x:10000,mu)-1)^2)

# Dawid Sebastiani
(x-mu)^2/mu + log(mu)
Momo
fonte
@Momo, é um tópico antigo, mas muito bom e útil. Pergunta, porém, sobre o escore logarítmico. Você usou a função -log(f(y)). O -sinal realmente deveria estar lá? No link da wikipedia da regra de pontuação ( en.wikipedia.org/wiki/Scoring_rule#Logarithmic_scoring_rule ), a pontuação logarítmica como sem sinal negativo: L(r,i)=ln(ri)isso é normal? Finalmente, nesse caso, uma pontuação mais alta é melhor ou pior?
Bastien
É melhor (ou pelo menos mais conservador e mais realista) calcular essas medidas em um conjunto de dados de validação que não fazia parte dos dados usados ​​para estimar os modelos?
Fred
Dado que os GLMs são adequados usando mínimos quadrados ponderados iterativamente, como em bwlewis.github.io/GLM , qual seria a objeção de fato de calcular um R2 ponderado na escala de links GLM, usando pesos de 1 / variância como pesos (que glm devolve nos pesos do slot em um ajuste glm)? Isso também funcionaria para uma câmera Poisson, certo?
Tom Wenseleers
Veja stats.stackexchange.com/questions/412580/… para obter um exemplo reproduzível ...
Tom Wenseleers