Situação
Estou trabalhando em um problema em que estou usando os dados do sensor para prever a falha da máquina antes que ela ocorra e preciso de alguns conselhos sobre quais métodos explorar.
Especificamente, quero identificar indicações de falhas iminentes antes que elas realmente ocorram. Idealmente, isso seria com prazo de entrega suficiente para que pudéssemos consertar o que acontecesse antes que causasse falha.
Problema
O obstáculo conceitual em que estou é que sei que poderia ajustar vários modelos de classificação (regressão logística, árvore de decisão, vizinho mais próximo etc.) aos dados para identificar a probabilidade de falha, dados parâmetros específicos naquele momento. No entanto, não consigo descobrir como identificar a indicação de uma falha futura com tempo suficiente para realmente fazer algo a respeito.
Possíveis abordagens
Eu estou familiarizado com a Análise de Sobrevivência, mas, como não tenho dados de várias máquinas, e não é como se, após um reparo, a máquina estivesse de volta a 100%, não acho que isso se encaixe necessariamente.
Também pensei em dedicar o tempo em que uma falha ocorre, alterando-a de volta 1 hora e ver quão preciso eu posso prever esse ponto. Se eu puder, mova o alvo de volta mais uma hora e veja quanto tempo de lead posso prever com confiança. Mas não tenho certeza se é apropriado fazer isso.
Dado disponível
Os dados que tenho são registrados de uma máquina durante um período de 1 ano. Existem aproximadamente 60 sensores que são gravados a cada dois minutos. Esses sensores medem variáveis como as temperaturas dos diferentes componentes que compõem a máquina (incluindo a configuração do termostato versus a temperatura real), a velocidade em que a máquina está funcionando, pressões de vapor em toda a máquina, velocidades do ventilador, se a máquina está ou não funcionando , etc.
Além das leituras do sensor, aprimorei o conjunto de dados para incluir também o motivo pelo qual a máquina não está funcionando (por exemplo: mudança de turno, manutenção preventiva, falha). Incluí um exemplo resumido de como são os dados na parte inferior deste post. Alterei o exemplo para capturar parte da variedade capturada em todo o conjunto de dados. Na realidade, quando a máquina para de funcionar, ela fica inativa por 2 minutos a 2 dias, dependendo do motivo. Além disso, as variáveis não mudam necessariamente tão rapidamente quanto no exemplo abaixo, mas eu queria fornecer alguma variedade.
+-----------------+----------+-------------+------------+------------+-------+-------+-----+--------------------------+------------+
| Datetime | CircFan | CircFanAct | EntrySpeed | ExhaustFan | Speed | Temp1 | Run | Reason | TimeBtwRun |
+-----------------+----------+-------------+------------+------------+-------+-------+-----+--------------------------+------------+
| 2009-10-19 0:00 | 100 | 600 | 461 | 40 | 45 | 1126 | 1 | | NA |
| 2009-10-19 0:02 | 100 | 600 | 0 | 39 | 45 | 1120 | 0 | shift change | 0:00 |
| 2009-10-19 0:04 | 100 | 600 | 0 | 39 | 45 | 1118 | 0 | shift change | 0:02 |
| 2009-10-19 0:06 | 95 | 600 | 461 | 39 | 45 | 1119 | 1 | | 0:00 |
| 2009-10-19 0:08 | 95 | 599 | 461 | 40 | 45 | 1120 | 1 | | 0:02 |
| 2009-10-19 0:10 | 95 | 598 | 461 | 40 | 45 | 1120 | 1 | | 0:04 |
| 2009-10-19 0:12 | 95 | 597 | 461 | 40 | 45 | 1130 | 1 | | 0:06 |
| 2009-10-19 0:14 | 100 | 597 | 0 | 40 | 45 | 699 | 0 | failure | 0:00 |
| 2009-10-19 0:16 | 100 | 597 | 0 | 40 | 45 | 659 | 0 | failure | 0:02 |
| 2009-10-19 0:18 | 100 | 597 | 0 | 40 | 45 | 640 | 0 | failure | 0:04 |
| 2009-10-19 0:20 | 100 | 600 | 461 | 40 | 45 | 1145 | 1 | | 0:00 |
| 2009-10-19 0:22 | 100 | 600 | 461 | 40 | 45 | 1144 | 1 | | 0:02 |
| 2009-10-19 0:24 | 80 | 600 | 461 | 40 | 45 | 1138 | 1 | | 0:04 |
| 2009-10-19 0:26 | 80 | 600 | 461 | 41 | 45 | 1133 | 1 | | 0:06 |
| 2009-10-19 0:28 | 80 | 600 | 461 | 41 | 45 | 1134 | 1 | | 0:08 |
| 2009-10-19 0:30 | 100 | 600 | 461 | 41 | 45 | 1134 | 1 | | 0:10 |
| 2009-10-19 0:31 | 100 | 600 | 461 | 41 | 45 | 1133 | 1 | | 0:11 |
| 2009-10-19 0:34 | 100 | 600 | 461 | 40 | 45 | 1140 | 1 | | 0:13 |
| 2009-10-19 0:36 | 100 | 600 | 100 | 40 | 45 | 788 | 0 | preventative maintenance | 0:00 |
| 2009-10-19 0:38 | 100 | 600 | 100 | 40 | 45 | 769 | 0 | preventative maintenance | 0:02 |
+-----------------+----------+-------------+------------+------------+-------+-------+-----+--------------------------+------------+