RMSE (Root Mean Squared Error) per i modelli logistici


10

Ho una domanda sulla validità dell'utilizzo di RMSE (Root Mean Squared Error) per confrontare diversi modelli logistici. La risposta è o 0o 1e le previsioni sono probabilità tra 0- 1?

Il modo applicato di seguito è valido anche con le risposte binarie?

# 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

1
In questo caso è chiamato il punteggio Brier, vedi actuaries.org/ASTIN/Colloquia/Hague/Papers/Lo.pdf

Risposte:


14

Per capire perché "[t] la risposta è 0o 1[ma] le previsioni sono probabilità tra 0- 1", è necessario comprendere il tipo di modello con cui si sta lavorando. Elimina i metodi di penalizzazione e la convalida incrociata e stai eseguendo una regressione logistica di base. I parametri si adattano alla quota di log / scala logistica. Questo si chiama "predittore lineare". (Per ulteriori informazioni, potrebbe essere utile leggere la mia risposta qui: Differenza tra i modelli logit e probit .) Se si inserisse un valore x e si semplificasse, il valore sarebbe il logaritmo naturale previsto dal modello delle probabilità di "successo" ( 1). Se esponessi quel valore, avresti le probabilità previste dal modellodi "successo". Per ottenere una probabilità prevista , è necessario convertire le probabilità in una probabilità tramite probabilità / (1 + probabilità). (Per ulteriori informazioni su questo, può aiutarti a leggere la mia risposta qui: Interpretazione di semplici previsioni a rapporti di probabilità nella regressione logistica .) Questo non ti porta ancora a una classe prevista . Per ottenere ciò, dovresti confrontare la tua probabilità prevista con una certa soglia, e se è inferiore alla soglia predire 'fallimento' ( 0), altrimenti 'successo' ( 1). La soglia predefinita più comune è 0,5, ma spesso non è ottimale. La predict.glm()funzione di R ti permetterà di usaretype="link", che genera previsioni sulla scala del predittore lineare (cioè prima di tutte quelle trasformazioni sopra), ma che non ti aiuterà in questo contesto. L'uso type="response"ti dà le probabilità previste.


Quando si tenta di valutare in che misura un modello di regressione binario (ad esempio, logistico) prevede una risposta, sono disponibili diverse opzioni:

  1. Il primo e più intuitivo è confrontare la classe prevista con la classe osservata e calcolare la percentuale corretta. Sebbene sia intuitivo, ha dei problemi. È in parte subordinato al fatto che la soglia sia ottimale oltre che gli altri aspetti del modello siano opportunamente adattati. Getta anche molte informazioni (cioè, quanto lontano dalla soglia è la probabilità prevista), che non è una buona cosa da fare.
  2. L'opzione successiva è utilizzare l'area sotto la curva Caratteristica operativa del ricevitore (ROC). Molte persone usano questa opzione; è molto meglio che usare la percentuale corretta. La cosa sull'AUC che la maggior parte delle persone non capisce, però, è che sta effettivamente misurando il corretto ordinamento delle previsioni, non la loro effettiva accuratezza. Cioè, se avessi previsto le probabilità per quattro osservazioni di .2, .4, .6, .8, e tu avessi aggiunto .01 a tutte ( .21, .41, .61, .81), l'AUC sarebbe la stessa anche se entrambi gli insiemi di probabilità previste non possono essere ugualmente accurati.
  3. Il terzo modo per valutare il tuo modello sarebbe utilizzare una funzione di punteggio adeguata. Forse la funzione di punteggio più popolare nel tuo contesto è il punteggio di Brier . Come osserva @fcoppens, il metodo nel tuo codice è il punteggio Brier. Valuterà non solo se il modello prevede in modo appropriato che un'osservazione ha più probabilità di essere un "successo" rispetto a un'altra osservazione, ma se la probabilità prevista del modello è effettivamente corretta.

È un peccato che il punteggio di Brier sia meno conosciuto e usato. Sebbene l'intuitività relativa di questi metodi sia: percentuale corretta> AUC> punteggio Brier, la loro vera informatività è l'opposto: punteggio Brier> AUC> percentuale corretta. Se si desidera solo una semplice misura delle prestazioni del proprio modello, la distinzione tra questi metodi è meno importante, ma se si desidera utilizzare questi metodi per ottimizzare un modello o selezionare un modello, l'utilizzo di un metodo inferiore comporterà prestazioni peggiori .


1

L'uso di RMSE ha molto più senso se il termine di errore è distribuito normalmente con zero medio, ma nei risultati binari non lo è. Pertanto, penso che dovresti usare approcci diversi che si prestano a risultati binari, come il confronto delle differenze nella probabilità.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.