RMSE (Root Mean Squared Error) para modelos logísticos

10

Tenho uma pergunta sobre a validade do uso do RMSE (Root Mean Squared Error) para comparar diferentes modelos logísticos. A resposta é ou 0ou 1e as previsões são probabilidades entre 0- 1?

A maneira aplicada abaixo também é válida com as respostas binárias?

# Using glmnet
require(glmnet)
load(url("https://github.com/cran/glmnet/raw/master    /data/BinomialExample.RData"))
cvfit = cv.glmnet(x, y, family = "binomial", type.measure = "mse")
A <- predict(cvfit, newx = x, s = "lambda.min", type = "response")
RMSE1 <- mean((y - A)^2)
# 0.05816881

# glm
mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")
mydata$rank <- factor(mydata$rank)
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
AAA <- predict(mylogit, newdata = mydata, type = "response")
RMSE2 <- mean((mydata$admit - AAA)^2)
# 0.194714
Ahmed El-Gabbas
fonte
11
Nesse caso, é chamado de pontuação Brier, consulte actuaries.org/ASTIN/Colloquia/Hague/Papers/Lo.pdf

Respostas:

14

Para entender por que "[a] resposta é uma 0ou 1[mas] as previsões são probabilidades entre 0- 1", você precisa entender o tipo de modelo com o qual está trabalhando. Afaste os métodos de penalização e a validação cruzada, e você está executando uma regressão logística básica. Os parâmetros são adequados para as probabilidades de log / escala logística. Isso é chamado de "preditor linear". (Para saber mais sobre isso, pode ser útil ler minha resposta aqui: Diferença entre os modelos logit e probit .) Se você inserisse um valor x e simplificasse, o valor seria o logaritmo natural previsto do modelo para as chances de 'sucesso' ( 1) Se você exponenciaria esse valor, teria as probabilidades previstas do modelode sucesso'. Para obter uma probabilidade prevista , você precisará converter as probabilidades em uma probabilidade via probabilidades / (1 + probabilidades). (Para saber mais sobre isso, pode ser útil ler minha resposta aqui: Interpretação de previsões simples para razões de chances na regressão logística .) Isso ainda não o leva a uma classe prevista . Para conseguir isso, você precisaria comparar sua probabilidade prevista com algum limite e, se for menor que o limite, prever 'falha' ( 0), ou 'sucesso' ( 1). O limite padrão mais comum é 0,5, mas esse geralmente não é o ideal. A predict.glm()função de R permitirá que você usetype="link", que gera previsões na escala do preditor linear (ou seja, antes de todas as transformações acima), mas isso não ajudará nesse contexto. Usar type="response"fornece as probabilidades previstas.


Ao tentar avaliar até que ponto um modelo de regressão binário (por exemplo, logística) prevê uma resposta, você tem várias opções:

  1. A primeira e mais intuitiva é comparar a classe prevista com a classe observada e calcular a porcentagem correta. Embora seja intuitivo, tem problemas. Depende, em parte, do limiar ser ideal, além de outros aspectos do modelo serem adequados. Ele também descarta muitas informações (ou seja, a que distância do limite está a probabilidade prevista), o que não é uma boa coisa a se fazer.
  2. Sua próxima opção é usar a área sob a curva ROC (Receiver Operating Characteristic). A maioria das pessoas usa essa opção; é consideravelmente melhor do que usar a porcentagem correta. A coisa sobre a AUC que a maioria das pessoas não percebe é que ela está realmente medindo a ordem apropriada de suas previsões, não a precisão real. Ou seja, se você tivesse previsto probabilidades para quatro observações de .2, .4, .6, .8e adicionado 0,01 a todas elas ( .21, .41, .61, .81), a AUC seria a mesma, mesmo que os dois conjuntos de probabilidades previstas não possam ser igualmente precisos.
  3. A terceira maneira de avaliar seu modelo seria usar uma função de pontuação adequada. Talvez a função de pontuação mais popular em seu contexto seja a pontuação de Brier . Como observa o @fcoppens, o método no seu código é a pontuação Brier. Ele avaliará não apenas se o modelo prevê adequadamente que uma observação tem mais probabilidade de ser um 'sucesso' do que outra observação, mas se a probabilidade prevista do modelo está realmente correta.

É lamentável que a pontuação de Brier seja menos conhecida e usada. Embora a relativa intuitividade desses métodos seja: porcentagem correta> AUC> pontuação de Brier, sua verdadeira informatividade é o oposto: pontuação Brier> AUC> porcentagem correta. Se você deseja apenas uma medida simples do desempenho do seu modelo, a distinção entre esses métodos é menos importante, mas se você deseja usar esses métodos para otimizar um modelo ou selecionar um modelo, usar um método inferior levará a um desempenho pior .

- Reinstate Monica
fonte
1

Usar o RMSE faz muito mais sentido se o seu termo de erro for distribuído normalmente com média zero, mas em resultados binários não é. Portanto, acho que você deve usar abordagens diferentes que se prestem a resultados binários, como comparar diferenças de probabilidade.

JorgeG
fonte