Evaluación del rendimiento de la predicción de series temporales

9

Tengo un modelo dinámico de Bayes ingenuo entrenado en un par de variables temporales. La salida del modelo es la predicción de P(Event) @ t+1, estimada en cada uno t.

La gráfica de P(Event)versus timees como se da en la figura a continuación. En esta figura, la línea negra representa P(Event)lo predicho por mi modelo; la línea roja horizontal representa la probabilidad previa de que ocurra el evento; y las líneas verticales punteadas representan las (cinco) ocurrencias de eventos en la serie de tiempo.

Idealmente, deseo ver el P(Event)pico predicho antes de observar cualquier evento y permanecer cerca de cero cuando no hay perspectiva de un evento.

P (Evento) versus Gráfico de tiempo

Quiero poder informar qué tan bien funciona mi modelo (la línea negra) al predecir los sucesos del evento. Un candidato obvio para comparar mi modelo es la probabilidad previa de evento (la línea roja), que si se usara como predictor predeciría el mismo valor de probabilidad para todos t.

¿Cuál es el mejor método formal para lograr esta comparación?

PD: Actualmente estoy usando la puntuación (intuitiva) como se codifica a continuación, donde una puntuación general más baja indica un mejor rendimiento de predicción. Descubrí que en realidad es bastante difícil vencer al anterior con esta puntuación:

# Get prediction performance
model_score = 0; prior_score=0; 

for t in range(len(timeSeries)):

   if(timeSeries[t]== event):  # event has happened
      cur_model_score = 1- prob_prediction[t]; 
      cur_prior_score = 1 - prior
   else: # no event
      cur_model_score = prob_prediction[t] - 0;
      cur_prior_score = prior - 0;

   model_score = model_score + abs(cur_model_score);
   prior_score = prior_score + abs(cur_prior_score);
Zhubarb
fuente
¿Crees que podrías imponer una función de pérdida significativa? ¿Hay alguna manera de decir cuánto ganas / pierdes adivinando correcta / incorrectamente?
James
Pensé en esto, pero no quiero inventar una función de pérdida arbitraria que pueda ajustar para lograr un rendimiento bajo o alto como lo deseo.
Zhubarb

Respuestas:

1

Puede crear una curva ROC. Para un valor dado de p entre 0 y 1, predice que el evento va a suceder si la probabilidad pronosticada es mayor que p. Luego calcula TPR y FPR que le da un solo punto en la curva ROC. Al variar p entre cero y uno se obtiene la curva completa. Por ejemplo, para p <0.005, el predictor basado en el previo siempre dirá que el evento ocurrirá en todo momento.

Para más, ver:

http://en.wikipedia.org/wiki/Receiver_operating_characteristic

James
fuente
Solo para agregar que AUC está disponible como estadística resumida para estas curvas.
conjeturas