Estou procurando criar um modelo preditivo para prever a rotatividade e pretendo usar um modelo de sobrevivência de tempo discreto ajustado a um conjunto de dados de treinamento por período de pessoa (uma linha para cada cliente e período discreto em que eles estavam em risco, com um indicador de evento - igual a 1 se a rotatividade ocorreu nesse período, mais 0).
- Estou ajustando o modelo usando regressão logística comum usando a técnica de Singer e Willet.
- A rotatividade de um cliente pode acontecer em qualquer lugar durante um mês, mas é apenas no final do mês que sabemos sobre ele (ou seja, em algum momento do mês em que eles saíram). 24 meses estão sendo usados para treinamento.
- A variável de tempo usada é o tempo de origem da amostra - todos os clientes ativos em 31/12/2008 - todos recebem t = 0 a partir de janeiro de 2009 (não é a maneira clássica de fazê-lo, mas acredito que é a maneira de criar modelo preditivo versus modelo estatístico tradicional). Uma covariável usada é a posse do cliente naquele momento.
Há uma série de covariáveis que foram construídas - algumas que não mudam nas linhas do conjunto de dados (para um determinado cliente) e outras que mudam.
Essas covariáveis variantes do tempo são o problema e o que está me causando questionar um modelo de sobrevivência para previsão de rotatividade (em comparação com um classificador regular que prevê rotatividade nos próximos x meses com base nos dados atuais do instantâneo). Os invariantes no tempo descrevem a atividade no mês anterior e devem ser gatilhos importantes.
A implementação desse modelo preditivo, pelo menos com base no meu pensamento atual, é pontuar a base de clientes no final de cada mês, calculando a probabilidade / risco de rotatividade em algum momento do próximo mês. Então novamente pelos próximos 1,2 ou 3 meses. Então para os próximos 1,2,3,4,5,6 meses. Para a probabilidade de churn de 3 e 6 meses, eu usaria a curva de sobrevida estimada.
O problema:
Quando se trata de pensar em pontuação, como posso incorporar preditores variáveis no tempo? Parece que eu só posso pontuar com preditores invariantes no tempo ou incluir aqueles que são invariantes no tempo, você precisa torná-los invariantes no tempo - defina o valor "agora".
Alguém tem experiência ou opinião sobre esse uso de um modelo de sobrevivência?
Atualização baseada no comentário da @JVM:
O problema não é estimar o modelo, interpretar coeficientes, plotar os gráficos de perigo / sobrevivência de valores covariáveis interessantes usando os dados de treinamento etc. O problema está em usar o modelo para prever riscos para um determinado cliente. Digamos que, no final deste mês, quero pontuar todos que ainda são clientes ativos com esse modelo. Quero prever que o risco seja estimado em x períodos (risco de fechar a conta no final do próximo mês. Risco de fechar a conta no final de dois meses a partir de agora, etc.). Se houver covariáveis variáveis no tempo, seus valores serão desconhecidos em períodos futuros, então como utilizar o modelo?
Atualização final:
um conjunto de dados de período de pessoa terá uma entrada para cada pessoa e a cada período de tempo em que ela estiver em risco. Digamos que haja J períodos (talvez J = 1 ... 24 por 24 meses) Digamos que eu construa um modelo de sobrevivência de tempo discreto, onde, por simplicidade, apenas tratamos o tempo T como linear e temos duas covariáveis X e Z em que X é o tempo -invariante, o que significa que é constante em todos os períodos da i-ésima pessoa e Z varia no tempo, o que significa que cada registro da i-ésima pessoa pode assumir um valor diferente. Por exemplo, X pode ser o sexo dos clientes e Z pode ser quanto eles valeram para a empresa no mês anterior. O modelo para o logit do perigo para a i-ésima pessoa no j-ésimo período é:
As únicas soluções que posso pensar são:
- Não use covariáveis com variação de tempo como Z. Isso enfraqueceria bastante o modelo para prever o evento de agitação, já que, por exemplo, ver uma diminuição de Z nos indica que o cliente está se desengatando e talvez se preparando para sair.
- Use covariáveis que variam no tempo, mas as atrasam (como Z estava acima), o que nos permite prever quantos períodos passamos a variável (novamente, pensando no modelo que está registrando novos dados atuais).
- Use covariáveis variáveis no tempo, mas mantenha-as constantes na previsão (para que o modelo tenha sido ajustado para dados variados, mas para previsão, nós os deixamos constantes e simulamos como as alterações nesses valores, se realmente observadas posteriormente, impactarão o risco de agitação.