Programo y hago desarrollo basado en pruebas. Después de hacer un cambio en mi código, ejecuto mis pruebas. Algunas veces tienen éxito y otras fallan. Antes de ejecutar una prueba, escribo un número de 0.01 a 0.99 para creer que la prueba tendrá éxito.
Quiero saber si estoy mejorando para predecir si mi prueba tendrá éxito o no. También sería bueno si puedo rastrear si soy mejor para predecir si la prueba tendrá éxito los lunes o los viernes. Si mi capacidad de predecir el éxito de la prueba se correlaciona con otras métricas que sigo, quiero saber.
Eso me deja con la tarea de elegir la métrica correcta. En Superforcasting, Philip Tetlock propone utilizar el puntaje Brier para medir qué tan bien están calibrados los expertos. Otra métrica que se ha propuesto en la literatura es la regla de puntuación logarítmica . También hay otros posibles candidatos.
¿Cómo decido qué métrica utilizar? ¿Existe algún argumento para favorecer una regla de puntuación sobre las demás?
fuente
Respuestas:
Supongo que está haciendo pruebas unitarias para su código.
Una idea que se me ocurre, que tal vez no haga exactamente lo que quieres, es usar un modelo lineal.
El beneficio de hacerlo es que puede crear un montón de otras variables que puede incluir en el análisis.
Digamos que tiene un vector que incluye el resultado de sus pruebas, y otro vector x que incluye sus predicciones del resultado.Y X
Ahora puedes simplemente ajustar el modelo lineal
y encuentre el valor de , cuanto mayor sea el valor de b indicaría que sus predicciones están mejorando.si si
Lo que hace que este enfoque sea agradable es que ahora puede comenzar a agregar un montón de otras variables para ver si eso crea un mejor modelo, y esas variables pueden ayudar a hacer mejores predicciones. Las variables podrían ser un indicador para el día de la semana, por ejemplo, para el lunes siempre sería 1 y cero para todos los demás días. Si incluye esa variable en el modelo, obtendría:
También podría crear una nueva variable donde otorgue una puntuación para evaluar la dificultad de la tarea que realizó. Si tiene control de versiones, entonces podría usar, por ejemplo, el número de líneas de código como dificultad, es decir, cuanto más código escriba, más probable es que algo se rompa.
Otras variables podrían ser, número de tazas de café ese día, indicador de los próximos plazos, lo que significa que hay más estrés para terminar cosas, etc.
También puede usar una variable de tiempo para ver si sus predicciones están mejorando. Además, cuánto tiempo pasó en la tarea, o cuántas sesiones pasó en ella, si estaba haciendo una solución rápida y podría ser descuidada, etc.
Al final, tiene un modelo de predicción, donde puede intentar predecir la probabilidad de éxito. Si logra crear esto, tal vez ni siquiera tenga que hacer sus propias predicciones, simplemente puede usar todas las variables y tener una idea bastante clara de si las cosas funcionarán.
La cuestión es que solo querías un solo número. En ese caso, puede usar el modelo simple que presenté al principio y solo usar la pendiente, y rehacer los cálculos para cada período, luego puede ver si hay una tendencia en ese puntaje a lo largo del tiempo.
Espero que esto ayude.
fuente
Aunque esto está lejos de ser una respuesta y más una referencia, podría ser una buena idea consultar Steyerberg E - Epidemiology 2012 .
En este artículo, Steyerberg y sus colegas explican diferentes formas de verificar el rendimiento del modelo de predicción para modelos con resultados binarios (éxito o fracaso). La calibración es solo una de estas medidas. Dependiendo de si desea tener una probabilidad precisa , una clasificación precisa o una reclasificación precisa, es posible que desee utilizar diferentes medidas de rendimiento del modelo. Aunque este manuscrito se refiere a modelos que se utilizarán en la investigación biomédica, creo que también podrían aplicarse a otras situaciones (la suya).
Más específico para su situación, las métricas de calibración son realmente difíciles de interpretar porque resumen (es decir, el promedio) la calibración en todo el rango de posibles predicciones. En consecuencia, es posible que tenga un buen puntaje de resumen de calibración, mientras que sus predicciones estaban apagadas en un rango importante de probabilidades pronosticadas (por ejemplo, puede tener un puntaje de brier bajo (= bueno), mientras que la predicción de éxito está desactivada por encima o por debajo de un cierto probabilidad predicha) o viceversa (una puntuación de resumen deficiente, mientras que las predicciones están bien calibradas en el área crítica). Por lo tanto, le sugiero que piense si existe un rango tan crítico de probabilidad de éxito pronosticado en su caso. Si es así, use las medidas apropiadas (por ejemplo, índices de reclasificación). Si no (lo que significa que está interesado en la calibración general), use brier,
Para concluir, cualquiera de las medidas de resumen de calibración requiere su primer paso para trazar sus probabilidades predichas versus la probabilidad observada (vea la respuesta de Outlier, por ejemplo, cómo hacerlo). Luego, se puede calcular la medida de resumen, pero la elección de la medida de resumen debe reflejar el objetivo de predecir el éxito del fracaso en primer lugar.
fuente
He hecho un modelo de predicción con datos escasos y es un gran desafío calibrar su modelo en estos casos. Te diré lo que hice, puedes obtener ayuda de eso.
Hice 20 contenedores de probabilidad pronosticada e intenté trazar la probabilidad de éxito promedio pronosticada y real. Para la probabilidad pronosticada promedio, tomé el promedio del rango de bin. Para la probabilidad real promedio, calculé el conteo real de éxito y fracaso en los contenedores, de los cuales obtuve la probabilidad real (mediana) de éxito en el contenedor. Para reducir el impacto de los valores atípicos, eliminé los datos del 5% superior e inferior antes de tomar la probabilidad media real en cada contenedor.
Una vez que obtuve estos, podría trazar fácilmente los datos.
fuente