Este es un tiempo de set-up, pero la pura reto intelectual valdrá la pena lo prometo ;-)
Tengo datos de marketing, donde existe un tratamiento y un control (i.e un cliente recibe ningún tratamiento). El evento de interés (la obtención de un préstamo) es relativamente poco frecuente (<1%). Mi objetivo es modelar el incremento de elevación entre la tasa de respuesta, el tratamiento y el de control (grupo tratado libro de la tasa de control de grupo de la libreta de tasa) y utilizar el modelo para tomar decisiones acerca de la oms para promover en el futuro.
El grupo tratado es grande (de 600.000 registros) y el control es de aproximadamente un 15% el tamaño.
Este es un ejercicio de marketing y queremos orientar a aquellos que necesitan ser dirigidos a tomar la medida de su interés y no perder fondos en los que va a "hacer de todos modos".
Tengo cientos de variables y han experimentado con diversas formas de Elevar el modelado AKA Neto de Modelos de Elevación. He probado muchos de los estado-de-la-arte de los métodos en la literatura y en la práctica común. Ninguno muy estable en este conjunto de datos por desgracia.
Sé que (teóricamente y después de algunos experimentos) que hay algunas variables que pueden afectar el incremento de ascensor. Así, he creado una matriz con las combinaciones de los niveles de estas variables y el número de registros en el grupo tratado, el número en el grupo de control y el número de eventos de interés en cada uno. Así, a partir de cada fila de la matriz se puede calcular el incremento de ascensor. Hay 84 filas de la matriz.
Yo era pensar en el modelado de este (diferencia) proporción el uso de un beta de la regresión, pero la cuenta en algunas filas son muy repuestos (tal vez no hay registros en el control y con más frecuencia, no hay eventos de interés). Esto se puede ver en la parte superior par de filas de los datos de la muestra anterior.
Comencé a pensar en la búsqueda de la solución óptima a las filas de la matriz para seleccionar. Las filas que se han seleccionado el número de treatedHH y treatedLoans se suman, junto con el control. Estoy buscando maximizar los beneficios que puede ser estimado a partir de estos números.
Me empujaron a los datos a través de un algoritmo genético para determinar las filas que se van a mantener. Tengo una solución que se devuelve y el resultado fue mejor que incluir a todos (que es el caso base). Pero, cuando me encontré con que la selección de la validación de la muestra I de particiones, el resultado no fue así.
Mi pregunta: ¿existe una forma de diseño de la validación cruzada en esta función de aptitud, de modo que la solución no más de fit - supongo que sucedió en mi primer intento.
Aquí es la función de aptitud he utilizado:
calcProfit<-function(selectVec=c())
{
TreatLoans<-sum(selectVec*dat$TreatedLoans)
ControLoans<-sum(selectVec*dat$ControlLoans)
TreatHH<-sum(selectVec*dat$treatedHH)
ControlHH<-sum(selectVec*dat$controlHH)
Incre.RR<-(TreatLoans/TreatHH)-(ControLoans/ControlHH)
Incre.Loans<- Incre.RR * TreatHH
Incre.Rev <- Incre.Loans*1400
Incre.Profit<- (-1)*(Incre.Rev - (0.48*TreatHH))
Incre.Profit
}
y la llamada en R: rbga.results = rbga.bin(size=84, zeroToOneRatio=3,evalFunc=calcProfit,iters=5000)