Eu sei que os modelos estatísticos tradicionais como Cox Riscos Proporcionais de regressão e alguns modelos de Kaplan-Meier podem ser usados para prever dias até a próxima ocorrência de uma falha digamos evento etc. ie análise de sobrevida
Questões
- Como a versão de regressão de modelos de aprendizado de máquina como GBM, redes neurais etc. pode ser usada para prever dias até a ocorrência de um evento?
- Acredito que apenas o uso de dias até a ocorrência como variável de destino e a simples execução de um modelo de regressão não funcionará? Por que não funciona e como pode ser corrigido?
- Podemos converter o problema da análise de sobrevivência em uma classificação e obter probabilidades de sobrevivência? Se então, como criar a variável de destino binário?
- Quais são os prós e os contras da abordagem de aprendizado de máquina versus regressão de riscos proporcionais de Cox e modelos de Kaplan-Meier etc?
Imagine que os dados de entrada de amostra estejam no formato abaixo
Nota:
- O sensor faz o ping dos dados em intervalos de 10 minutos, mas às vezes os dados podem estar ausentes devido a um problema de rede, etc., conforme representado pela linha com NA.
- var1, var2, var3 são os preditores, variáveis explicativas.
- fail_flag informa se a máquina falhou ou não.
- Temos dados dos últimos 6 meses a cada 10 minutos para cada ID de máquina
EDITAR:
A previsão de saída esperada deve estar no formato abaixo
Nota: quero prever a probabilidade de falha de cada uma das máquinas nos próximos 30 dias no nível diário.
machine-learning
classification
survival
cox-model
kaplan-meier
GeorgeOfTheRF
fonte
fonte
failure_flag
.Respostas:
Para o caso de redes neurais, essa é uma abordagem promissora: WTTE-RNN - Previsão de menos rotatividade de hackers .
A essência desse método é usar uma Rede Neural Recorrente para prever parâmetros de uma distribuição Weibull a cada etapa do tempo e otimizar a rede usando uma função de perda que leva em consideração a censura.
O autor também lançou sua implementação no Github .
fonte
Veja estas referências:
https://www.stats.ox.ac.uk/pub/bdr/NNSM.pdf
http://pcwww.liv.ac.uk/~afgt/eleuteri_lyon07.pdf
Observe também que modelos tradicionais baseados em riscos, como Riscos Proporcionais de Cox (CPH), não são projetados para prever o tempo até o evento, mas para inferir o impacto das variáveis (correlação) contra i) observações de eventos e, portanto, ii) uma curva de sobrevivência . Por quê? Veja o MLE do CPH.
Portanto, se você deseja prever mais diretamente algo como "dias até a ocorrência", o CPH pode não ser aconselhável; outros modelos podem servir melhor a sua tarefa, conforme observado nas duas referências acima.
fonte
Como o @dsaxton disse, você pode criar um modelo de tempo discreto. Você o configurou para prever p (falha no dia em que sobreviveu ao dia anterior). Suas entradas são o dia atual (em qualquer representação que você quiser), por exemplo, uma codificação quente, inteiro, .. Spline ... Assim como quaisquer outras variáveis independentes que você deseja
Então você cria linhas de dados, para cada amostra que sobreviveu até o tempo t-1, morreu no tempo t (0/1).
Portanto, agora a probabilidade de sobreviver até o tempo T é o produto de p (não morra no momento t dado não morreu em t-1) para t = 1 a T. Ou seja, você faz previsões de T a partir do seu modelo e depois multiplicar juntos.
Eu diria que a razão pela qual não é uma idéia prever diretamente o tempo até o fracasso é por causa da estrutura oculta do problema. Por exemplo, o que você insere para máquinas que não falharam. A estrutura subjacente é efetivamente os eventos independentes: falha no momento t dado não falha até t-1. Por exemplo, se você assumir que é constante, sua curva de sobrevivência se tornará exponencial (consulte os modelos de risco)
Observe no seu caso que você pode modelar em um intervalo de 10 minutos ou agregar o problema de classificação até o nível do dia.
fonte