Regresión logística: maximizar los verdaderos positivos - falsos positivos

9

Tengo un modelo de regresión logística (ajuste a través de glmnet en R con regularización neta elástica), y me gustaría maximizar la diferencia entre los verdaderos positivos y los falsos positivos. Para hacer esto, me vino a la mente el siguiente procedimiento:

  1. Ajustar el modelo de regresión logística estándar
  2. Usando el umbral de predicción como 0.5, identifique todas las predicciones positivas
  3. Asigne el peso 1 para observaciones predichas positivamente, 0 para todos los demás
  4. Ajustar modelo de regresión logística ponderada

¿Cuáles serían los defectos con este enfoque? ¿Cuál sería la forma correcta de proceder con este problema?

La razón para querer maximizar la diferencia entre el número de verdaderos positivos y falsos negativos se debe al diseño de mi aplicación. Como parte de un proyecto de clase, estoy construyendo un participante autónomo en un mercado en línea: si mi modelo predice que puede comprar algo y venderlo más tarde a un precio más alto, hace una oferta. Me gustaría mantener la regresión logística y los resultados binarios de salida (ganar, perder) en función de los costos fijos y los incrementos de precio unitario (gano o pierdo la misma cantidad en cada transacción). Un falso positivo me duele porque significa que compro algo y no puedo venderlo a un precio más alto. Sin embargo, un falso negativo no me hace daño (solo en términos de costo de oportunidad) porque solo significa que si no hubiera comprado, pero si lo hubiera hecho, habría ganado dinero. Similar,

Estoy de acuerdo en que el corte de 0.5 es completamente arbitrario, y cuando optimicé el modelo del paso 1 en el umbral de predicción que produce la mayor diferencia entre los positivos verdaderos / falsos, resulta ser más cercano a 0.4. Creo que esto se debe a la naturaleza sesgada de mis datos: la relación entre negativos y positivos es de aproximadamente 1: 3.

En este momento, estoy siguiendo los siguientes pasos:

  1. Datos divididos en entrenamiento / prueba
  2. Ajuste el modelo en el entrenamiento, haga predicciones en el conjunto de pruebas y calcule la diferencia entre positivos verdaderos / falsos
  3. Ajuste el modelo en su totalidad, haga predicciones en el conjunto de pruebas y calcule la diferencia entre positivos verdaderos / falsos

La diferencia entre los positivos verdaderos / falsos es menor en el paso 3 que en el paso 2, a pesar de que el conjunto de entrenamiento es un subconjunto del conjunto completo. Como no me importa si el modelo en el n. ° 3 tiene más negativos verdaderos y menos negativos falsos, ¿hay algo que pueda hacer sin alterar la función de probabilidad en sí misma?

tmakino
fuente
Antes de preguntar cuáles serían los defectos con este enfoque, tal vez debería escribir por qué este enfoque debería funcionar, en su opinión. ¿Por qué crees que los pasos 2-4 mejoran el resultado?
user31264
Además, ¿estoy en lo cierto al final de que elimine el modelo del paso 1 y use solo el modelo del paso 4?
user31264
Sí, estaba planeando usar el modelo equipado con todo el conjunto de datos, pero no tiene sentido hacerlo porque tiene un rendimiento inferior al modelo equipado con el conjunto de entrenamiento.
tmakino
2
No tengo una fuente sobre esto en este momento ... pero ¿sabe que puede optimizar un modelo de regresión logística para maximizar el área bajo la curva (característica de funcionamiento del receptor) (o AUC)? No hay necesidad de reinventar la rueda.
AdamO
2
Lo que no entiendo bien aquí es por qué no ha incluido nada sobre el precio futuro previsto en su modelo, ni ha incluido la magnitud de la ganancia / pérdida en la optimización. Seguramente, una decisión de "comprar" que conduce a una pérdida del 99% es mucho peor que una decisión de "comprar" que conduce a una pérdida del 1%, a pesar de que ambos son falsos positivos.
probabilityislogic

Respuestas:

24

No parece querer una regresión logística en absoluto. Lo que usted dice es "Me gustaría maximizar la diferencia entre los verdaderos positivos y los falsos positivos". Esa es una buena función objetiva, pero no es una regresión logística. Veamos de qué se trata.

Primero, alguna notación. La variable dependiente será :Yi

Yi={1Purchase i was profitable0Purchase i was un-profitable

Las variables independientes (las cosas que usa para intentar predecir si debe comprar) serán (un vector). El parámetro que intenta estimar será (un vector). Predecirá comprar cuando . Para la observación , predice comprar cuando o cuando la función del indicador .XiβXiβ>0iXiβ>01Xiβ>0=1

Un verdadero positivo sucede en la observación cuando y . Un falso positivo en la observación sucede cuando y . Desea encontrar el que maximiza los verdaderos positivos menos los falsos positivos, o: iYi=11Xiβ>0=1iYi=01Xiβ>0=1β

maxβi=1NYi1Xiβ>0i=1N(1Yi)1Xiβ>0

Esta no es una función objetivo especialmente familiar para estimar un modelo de respuesta discreta, pero tenga conmigo mientras hago un poco de álgebra sobre la función objetivo:

i=1NYi1Xiβ>0i=1N(1Yi)1Xiβ>0=i=1NYi1Xiβ>0i=1N1Xiβ>0+i=1NYi1Xiβ>0=i=1NYi1Xiβ>0i=1N1Xiβ>0+i=1NYi1Xiβ>0+i=1N1i=1N1+i=1NYii=1NYi=i=1NYi1Xiβ>0+i=1N(1Yi)(11Xiβ>0)i=1N1+i=1NYi

Bien, ahora observe que los dos últimos términos en esa suma no son funciones de , por lo que podemos ignorarlos en la maximización. Finalmente, acabamos de demostrar que el problema que desea resolver, "maximizar la diferencia entre los verdaderos positivos y los falsos positivos" es el mismo que este problema: β

maxβi=1NYi1Xiβ>0+i=1N(1Yi)(11Xiβ>0)

¡Ahora, ese estimador tiene un nombre! Se llama el estimador de puntaje máximo. Es una forma muy intuitiva de estimar el parámetro de un modelo de respuesta discreta. El parámetro se elige para maximizar el número de predicciones correctas. El primer término es el número de verdaderos positivos, y el segundo término es el número de verdaderos negativos.

Esta es una forma bastante buena de estimar un modelo de respuesta discreta (binario). El estimador es consistente, por ejemplo. (Manski, 1985, J de Econometrics) Sin embargo, hay algunas rarezas en este estimador. Primero, no es único en muestras pequeñas. Una vez que haya encontrado una que resuelva la maximización, cualquier otra que haga exactamente las mismas predicciones en su conjunto de datos resolverá la maximización --- entonces, infinitamente s cercanas a la que encontró. Además, el estimador no es asintóticamente normal, y converge más lentamente que los estimadores de máxima verosimilitud típicos --- raíz de cubo lugar de raízβββNNconvergencia. (Kim y Pollard, 1990, Ann of Stat) Finalmente, no se puede usar bootstrapping para hacer inferencia al respecto. (Abrevaya y Huang, 2005, Econometrica) Sin embargo, hay algunos documentos que usan este estimador --- hay uno divertido sobre la predicción de resultados en el torneo de baloncesto de la NCAA por Caudill, International Journal of Forecasting, abril de 2003, v. 19, iss. 2, págs. 313-17.

Un estimador que supera la mayoría de estos problemas es el estimador de puntaje máximo suavizado de Horowitz (Horowitz, 1992, Econometrica y Horowitz, 2002, J de Econometrics). Proporciona un estimador único de raíz consistente, asintóticamente normal y único que es susceptible de arranque. Horowitz proporciona un código de ejemplo para implementar su estimador en su página web.N

Cuenta
fuente
Gracias por incluir el álgebra para equiparar mi función de costo con el estimador de puntaje máximo. Con la función indicadora dada para , ¿significa esto que siempre clasificaré como positivo y como negativo? Además, ¿se calcula p (la salida del modelo) utilizando la función logística con input ? El enfoque actual que estoy usando es la función de costo AUC, luego optimizo el umbral de predicción para encontrar el valor con la mayor diferencia entre los verdaderos positivos y los falsos positivos. Entiendo que su respuesta encuentra explícitamente la máxima diferenciaβTx>0p>0.5p<=0.5βTx
tmakino
(continuación) definiéndolo en la función de costo (y fijando el umbral de predicción en 0.5), omitiendo así el paso intermedio que he tomado. Sin embargo, el AUC ya existe en el paquete de regresión que estoy usando (glmnet) mientras que el estimador de puntaje máximo no. ¿Crees que mi enfoque es razonable dado mi objetivo?
tmakino
1
Desafortunadamente, no estoy muy familiarizado con el método AUC, por lo que no puedo decir qué tan apropiado es aquí. En el estimador de puntaje máximo, realmente no hay una , porque no está asumiendo un modelo logístico. Simplemente decide predecir 1 cuando y luego encuentra el mejor . pXiβ>0β
Bill
15

Hay varias cosas mal con ese enfoque, que incluyen:

  • Buscando un límite para una probabilidad continua
  • Usando un corte arbitrario de 0.5
  • Suponiendo que el costo de un "falso positivo" y un "falso negativo" son los mismos para todos los sujetos
  • Usar pesas que no sean fraccionarias
  • Usando pesos estimados
  • Anulación de la estimación de máxima verosimilitud
  • No utilizar la teoría de decisión óptima de Bayes, que dicta que las decisiones óptimas se basan en información completa (no en si algo excede a otra cosa) y funciones de utilidad / pérdida / costo
Frank Harrell
fuente
1
Gracias, ¿hay alguna manera de lograr esto mientras se mantiene la regresión logística (es decir, sin tocar la función de probabilidad)?
tmakino
Depende de lo que sea "esto". ¿Cuál es el objetivo final y cómo se utilizará el modelo?
Frank Harrell el
Edité mi pregunta para proporcionar detalles sobre lo que estoy tratando de lograr.
tmakino
1
A menos que me falte algo, nada de lo que haya agregado implicaría el uso de un punto de corte. Tenga en cuenta que una probabilidad predicha proporciona su propia tasa de error.
Frank Harrell el
8

El mejor enfoque para lograr lo que intenta describir es probablemente optimizar directamente los parámetros de regresión logística con una función de pérdida de AUC. El libro de texto "Métodos estadísticos en medicina de diagnóstico" de Zhou describe este método.

El AUC (área bajo la curva característica operativa del receptor - o ROC) se interpreta aproximadamente como la probabilidad de que un "caso" muestreado aleatoriamente tenga un valor de marcador más alto que un "control". Esta es una medida de la discriminación del modelo, o su capacidad para clasificar correctamente el resultado. El ROC es una curva en el plano unitario que muestra la sensibilidad frente a la especificidad 1 para todos los posibles valores de marcador (resultados ajustados) en un modelo de regresión.

Al usar la formulación tradicional del modelo de regresión logística,

logit Pr(Y=1|X)=α+βX

Con las razones de probabilidad de registro para los parámetros del modelo, puede definir aproximadamente una función de pérdida basada en AUC para obtener parámetros óptimos. A diferencia de la regresión logística basada en la probabilidad, la regresión de AUC no es regular y puede converger a máximos locales en el espacio de parámetros.

AdamO
fuente
1
Pensé que AUC no es lo mejor aquí porque hay una pequeña pérdida por falso negativo, pero una gran pérdida por falso positivo.
probabilidadislogica
Bueno, el verdadero problema es que OP tiene un resultado continuo (ROI) y lo dicotomiza como una pérdida / ganancia. Pero dividir los pelos a un lado, con la regresión ROC en general , las regiones de corte del marcador "estúpido" de hecho cuentan para las AUC. Puede usar el AUC parcial si especifica previamente qué cuenta como valores de marcador significativos versus estúpidos, y la regresión de AUC parcial tiene las mismas capacidades de rendimiento (y problemas).
AdamO