28 votos

Añadir ponderaciones a la regresión logística para datos desequilibrados

Quiero modelar una regresión logística con datos desequilibrados (9:1). Quería probar la opción de pesos en el glm en R, pero no estoy 100% seguro de lo que hace.

Digamos que mi variable de salida es c(0,0,0,0,0,0,0,0,0,1) . ahora quiero darle al "1" 10 veces más peso. así que le doy el argumento de los pesos weights=c(1,1,1,1,1,1,1,1,1,1,1,10) .

Cuando lo haga, se tendrá en cuenta en el cálculo de la máxima probabilidad. ¿Estoy en lo cierto? La clasificación errónea de un "1" es 10 veces peor que la clasificación errónea de un "0".

19voto

Klaus Puntos 1

La ponderación es un procedimiento que pondera los datos para compensar las diferencias entre la muestra y la población (King 2001). Por ejemplo, en los sucesos raros (como el fraude en el riesgo de crédito, las muertes en la literatura médica) tendemos a muestrear todos los 1 (sucesos raros) y una fracción de 0 (no sucesos). En estos casos, tenemos que ponderar las observaciones en consecuencia.

Ejemplo: Supongamos que en una población de 500.000 transacciones hay 50 transacciones fraudulentas. En este caso se

  1. Muestra de las 50 transacciones fraudulentas (100% del fraude)
  2. 10% de las transacciones buenas (10% de 500.000 son 50.000 transacciones buenas)

En este caso, se asignaría un peso de 1 a las transacciones fraudulentas y un peso de 10 a las transacciones buenas. Esto se denomina método de máxima probabilidad ponderada. Lo importante es que la ponderación está relacionada con las proporciones del muestreo

Remitirse: Regresión logística en datos de eventos raros (King 2001)

15voto

Klaus Puntos 1

Ching, no tienes que hacer que tu conjunto de datos esté equilibrado en términos de 1's y 0's. Todo lo que necesitas es un número suficiente de 1's para que la máxima probabilidad converja. Si observas la distribución de los 1 (100.000) en tu conjunto de datos, no deberías tener ningún problema. Puedes hacer un sencillo experimento aquí

  1. Muestrear el 10% de los 1 y el 10% de los 0 y utilizar un peso de 10 para ambos
  2. Muestrear el 100% de los 1's y el 10% de los 0's y utilizar un peso de 10 para los 0's

En ambos casos, obtendrá presupuestos idénticos. De nuevo, la idea de la ponderación está relacionada con el muestreo. Si se utiliza todo el conjunto de datos, no hay que ponderarlo. En su lugar, utilizaría un 10% de los 1 y un 10% de los 0.

En R, se utilizaría glm . Aquí hay un código de ejemplo:

glm(y ~ x1 + x2, weights = wt, data =data, family = binomial("logit"))

En su conjunto de datos debería haber una variable wt para los pesos.

Si utiliza el 10% de los 0 y los 1, su wt tendrá un valor de 10.

Si utilizas el 10% de los 0 y el 100% de los 1: wt tendrá un valor de 10 para las observaciones con y=0 y de 1 para las observaciones con y=1

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X