Divulgación completa: esta es la tarea. He incluido un enlace al conjunto de datos ( http://www.bertelsen.ca/R/logistic-regression.sav )
Mi objetivo es maximizar la predicción de incumplimientos de préstamos en este conjunto de datos.
Todos los modelos que se me ocurrieron hasta ahora predicen> 90% de los no morosos, pero <40% de los morosos hacen que la eficiencia de clasificación sea general ~ 80%. Entonces, me pregunto si hay efectos de interacción entre las variables. Dentro de una regresión logística, aparte de probar cada combinación posible, ¿hay alguna manera de identificar posibles efectos de interacción? O, alternativamente, una forma de aumentar la eficiencia de la clasificación de los morosos.
Estoy atascado, cualquier recomendación sería útil en su elección de palabras, código R o sintaxis SPSS.
Mis variables principales se resumen en el siguiente histograma y diagrama de dispersión (con la excepción de la variable dicotómica)
Una descripción de las variables primarias:
age: Age in years
employ: Years with current employer
address: Years at current address
income: Household income in thousands
debtinc: Debt to income ratio (x100)
creddebt: Credit card debt in thousands
othdebt: Other debt in thousands
default: Previously defaulted (dichotomous, yes/no, 0/1)
ed: Level of education (No HS, HS, Some College, College, Post-grad)
Las variables adicionales son solo transformaciones de lo anterior. También intenté convertir algunas de las variables continuas en variables categóricas e implementarlas en el modelo, no hubo suerte allí.
Si desea ingresarlo en R, rápidamente, aquí está:
## R Code
df <- read.spss(file="http://www.bertelsen.ca/R/logistic-regression.sav", use.value.labels=T, to.data.frame=T)
fuente
Respuestas:
En conjuntos de datos desequilibrados como este, generalmente puede mejorar el rendimiento de la clasificación alejándose del uso de una probabilidad ajustada de .5 como punto de corte para clasificar los casos en morosos y no morosos. Por ejemplo, obtengo tasas de clasificación correctas de .88 y .58 con un punto de corte de .4 para un glm con todas las interacciones de segundo orden. (Lo que probablemente conduce a un sobreajuste y parece tener algunos problemas de rango, pero esa es otra historia).
Código:
salida parcial:
fuente
No soy un experto en regresión logística, pero ¿no es solo un problema de datos no balanceados? Probablemente tenga muchos más no incumplidores que incumplidores, lo que puede cambiar la predicción para tratar mejor con una clase más grande. Trate de echar a algunos no morosos y vea qué sucede.
fuente
En la regresión logística, distribuciones muy sesgadas de las variables de resultado (donde hay muchos más eventos no relacionados con eventos o viceversa), es necesario ajustar el punto de corte o el disparador de probabilidad, pero no tendrá mucho efecto en la clasificación general eficiencia Esto siempre será más o menos el mismo, pero actualmente está subclasificando eventos ya que la probabilidad de "oportunidad" en dicho conjunto de datos siempre lo hará más propenso a clasificar en no eventos. Esto necesita ser ajustado para. De hecho, en tal situación, no es raro ver que la eficiencia general de la clasificación disminuya, ya que anteriormente se infló por error de cálculo debido al azar.
Piénselo de esta manera, si tiene un evento en el que el 90% no lo hace y el 10% lo hace, entonces si coloca a todos en el grupo "no lo haga", automáticamente obtendrá el 90% correcto, y eso fue sin siquiera intentarlo, solo pura casualidad, inflado por la asimetría de su distribución.
El tema de las interacciones no está relacionado con este sesgo, y debe ser impulsado por la teoría. Lo más probable es que siempre mejore la clasificación agregando términos adicionales, incluso simplemente agregando interacciones, pero lo hace a menudo sobreajustando el modelo. Luego debe regresar y ser capaz de interpretar esto.
Matt P Analista de datos, Universidad de Illinois Urbana Champaign
fuente
Puede intentar incluir todos los efectos de interacción. Luego puede usar la regresión logística regularizada L1 / L2 para minimizar el sobreajuste y aprovechar las características útiles. Realmente me gusta el paquete glmnet de Hastie / Tibshirani (http://cran.r-project.org/web/packages/glmnet/index.html).
fuente
Sé que su pregunta es acerca de la regresión logística y, como se trata de una tarea, su enfoque puede verse limitado. Sin embargo, si su interés está en las interacciones y la precisión de la clasificación, puede ser interesante usar algo como CART para modelar esto.
Aquí hay un código R para producir el árbol básico. He puesto rpart suelto en el marco de datos enire aquí. Quizás no sea el mejor enfoque sin un conocimiento previo y un método de validación cruzada:
No estoy seguro de cómo producir la tabla de clasificación. No debería ser demasiado difícil de los valores pronosticados del objeto modelo y los valores originales. ¿Alguien tiene algún consejo aquí?
fuente
predict
método de predicción,table(originalClasses,predictedClasses)
para la construcción de tablas. Intenté RF (generalmente tiene una precisión como en CART sobreajustado, pero no sobreajustado) y el resultado no fue mucho mejor queglm
.