Detecção de Outliers em Dados Micrometeorológicos Thiago M. Ventura1, Henrique O. Marques2, Allan G. de Oliveira1, Claudia A. Martins1, Marta C. J. A. Nogueira1, Wagner R. S. Teixeira1, Josiel M. de Figueiredo1, Andréia G. Bonfante1 1 Universidade Federal de Mato Grosso (UFMT) 78.060-900 – Cuiabá – MT – Brasil 2 Universidade de São Paulo (USP) 13.566-590 – São Carlos – SP – Brasil {thiago, allan, claudia, josiel, andreia.bonfante}@ic.ufmt.br, [email protected], [email protected], [email protected] Abstract. For the study of the environment is necessary the analysis of environmental data. However, such data may contain errors, like outliers, making the data analysis more difficult. For this reason the detection of outliers is useful and, hence, this paper proposes a new method to detect them. The techniques used were Neural Networks and Genetic Algorithms, besides the concept of distance function, to detect possible outliers in micrometeorological data. Results in the simulations demonstrated a good performance of the method reaching a precision of 100% when there were few outliers and 96.66% when the number of outliers was increased. Resumo. Para realizar o estudo do meio ambiente é necessário a análise de dados ambientais. Entretanto, tais dados podem conter erros, como outliers, prejudicando a análise desses dados. Por isso a detecção dos outliers é útil e, sendo assim, este trabalho propõe um novo método para detectá-los. Foram utilizadas técnicas de Redes Neurais e Algoritmos Genéticos, além do conceito de função distância, para detectar os outliers em dados micrometeorológicos. Os resultados encontrados nas simulações mostraram um bom desempenho do método, alcançando uma precisão de 100% quando houve poucos outliers e de 96,66% quando a quantidade de outliers foi aumentada. 1. Introdução Dados micrometeorológicos geralmente são coletados por meio de sensores em estações micrometeorológicas, e representam valores mensurados de variáveis climáticas como temperatura, umidade relativa do ar, dentre outras. A leitura desses dados são, normalmente, realizadas 24 horas por dia para cada variável climática, gerando várias séries temporais relacionadas entre si. Assim, a série de dados micrometeorológica possui, em cada momento de leitura registrado, um dado multivariado. Um conjunto de dados multivariados é um conjunto que tem muitas variáveis dependentes e podem ser correlacionadas entre si em diferentes graus [Santos 2004]. Os valores dos dados coletados e armazenados em estações micrometeorológicas podem conter erros. A ação de animais próximos aos equipamentos e fortes mudanças no tempo podem atrapalhar as leituras dos sensores, causando falhas no armazenamento dos dados. Além do mais, sensores são aparelhos eletrônicos e estão sujeitos a falhas. Outliers são dados que parecem desviar significativamente dos outros membros da amostra da qual faz parte [Grubbs 1969]. São valores que não estão coerentes com o restante da série de dados, podendo ser falhas ou ruídos causados por erros de equipamentos que se deseja eliminar em uma etapa de pré-processamento. Alguns métodos de detecção de outliers são os métodos estatísticos, métodos baseados na distância e na densidade dos dados [Chen et al. 2010]. Um método simples consiste em estabelecer um valor mínimo e máximo para os dados válidos e considerar como outliers os dados que saem desse limite. Em métodos baseado em estatística, podem assumir que os dados possuem uma distribuição normal e consideram que os dados fora dessa distribuição normal são outliers [Hodge e Austin 2004]. Apesar de serem métodos simples e com ordem de complexidade linear em termos de tempo de execução, os métodos estatísticos exigem conhecimento da distribuição dos dados e das relações entre os parâmetros dessa distribuição [Chen et al. 2010]. Nos métodos baseados na distância dos dados, os outliers são aqueles dados que se distanciam mais dos outros dados baseando-se em algum métrica. Esse método possui ordem de complexidade quadrática, e necessita de um ajuste refinado, que dificulta a definição dos parâmetros em aplicações práticas [Chen et al. 2010]. Uma dificuldade na detecção de outliers é que os métodos em geral necessitam de conhecimento específico sobre os dados, sendo necessário modificá-los a cada aplicação. Logo, seria de grande utilidade um método que não fosse necessário um estudo aprofundado nos dados. Isso é possível agregando algumas técnicas da área de inteligência artificial (IA). Sendo assim, o objetivo deste trabalho consiste em utilizar de tais técnicas para realizar a detecção de outliers, facilitando a interação e aplicação do método em diversos tipos de dados micrometeorológicos, aproveitando da característica de dados multivariados para detectar valores incoerentes na série de dados. 2. Metodologia Os dados utilizados neste trabalho foram coletados em Barão de Melgaço - MT, a 165 km de Cuiabá. As variáveis climáticas processadas contemplam saldo de radiação, temperatura do solo, temperatura do ar, umidade do ar, velocidade do vento e umidade do solo. Esses dados foram coletados durante o período de 08/01/2010 à 30/04/2010, sendo que em cada dia foram realizadas cerca de 48 leituras. No total, foram obtidos 5404 valores para cada variável climática, não contendo nenhum valor ausente. Além dos dados que representam as variáveis climáticas, também é levado em consideração o horário em que a leitura foi realizada. Uma amostra dos dados é apresentada na Tabela 1. Como mencionado, foram utilizadas técnicas de IA, mais especificamente Redes Neurais Artificiais (RNA) e Algoritmos Genéticos (AG), para detectar os possíveis outliers em uma série de dados. RNA têm sido utilizadas com sucesso para modelar relações envolvendo séries temporais complexas [Haykin 2000]. A maior vantagem das RNA sobre os métodos convencionais é que elas não requerem informação detalhada sobre os processos físicos do sistema a ser modelado, sendo este descrito explicitamente na forma matemática [Sudheer et al. 2003]. Tabela 1. Exemplo dos dados utilizados Dia Hora 8 8 8 8 8 8 10:00 10:30 11:00 11:30 12:00 12:30 Saldo de Temperatura Temperatura Radiação do solo do ar 366,76 31,32 29,55 457,04 31,43 29,94 523,73 32,11 30,65 723,24 32,80 31,48 764,08 34,16 31,59 811,97 35,29 32,25 Umidade do ar 67,65 66,80 64,93 63,44 60,94 57,05 Velocidade Umidade do vento do solo 2,327 5,74 1,719 5,73 1,754 5,70 1,408 5,67 2,125 5,64 1,445 5,61 Neste trabalho, a RNA tem o objetivo de estimar um determinado valor de uma variável climática específica, baseada nos valores das outras variáveis climáticas. Por exemplo, a RNA pode estimar o valor da temperatura do ar, às 10:00 horas, usando valores das outras variáveis climáticas no mesmo horário, como mostra a Figura 1. Figura 1. Estimando um valor de uma variável climática Esta ação pode ser realizada para todas as variáveis da base de dados. Dessa forma, pode-se obter um valor estimado para cada leitura da temperatura. Como pode ser visto em [Ventura 2012], os valores estimados são bem próximos aos valores reais lidos pelos sensores, devido ao desempenho da RNA e da forte relação entre as variáveis climáticas. Neste trabalho, a detecção de outliers consiste em comparar os valores estimados com os valores reais, sendo que quanto maior a diferença entre esses valores, maior a probabilidade do valor ser um possível outlier na série de dados. No entanto, um obstáculo em conseguir uma boa estimativa por parte da RNA, é definir uma arquitetura adequada aos dados utilizados. O comportamento dos dados varia consideravelmente dependendo das variáveis climáticas utilizadas ou mesmo de onde foram obtidas. Para contornar esse problema foram utilizados AG, que são métodos estocásticos de busca de um ótimo global, no qual os indivíduos (possível solução) mais aptos tendem a sobressair [Assumpção et al. 2011]. Neste trabalho, um indivíduo é composto pelos parâmetros de uma RNA, ou seja, o indivíduo mais evoluído tem as melhores informações na especificação da RNA para os dados climáticos. Os parâmetros a serem determinados são: algoritmo de treinamento, função de ativação para a camada oculta e para a camada de saída, taxa de aprendizagem, taxa de momentum e os sensores utilizados. Como existem vários sensores no conjunto de dados, nem todos podem ser úteis para auxiliar na estimativa. Isto pode prejudicar os cálculos caso o fenômeno que tal sensor representa não tenha relação com o fenômeno do sensor principal. Por esse motivo que um dos parâmetros a ser determinado pelo AG são os sensores que devem ser utilizados. A RNA utilizada foi configurada para ter no máximo 200 épocas, no qual os possíveis algoritmos de treinamento são os de back propagation, resilient propagation, manhattan update rule e levenberg-marquardt backpropagation. As funções de ativação disponíveis são logarithmic, linear, sigmoid e hyperbolic tangent. Já no AG, foi criada uma população de 40 indivíduos e aplicados os operadores de seleção, cruzamento com ponto único e de mutação (taxa de 10%). A proposta deste trabalho foi a utilização de RNA, cujos parâmetros da arquitetura utilizou AG, para estimar valores de variáveis climáticas e, posteriormente, compará-las com os valores reais, verificando sua divergência com relação ao restante da série de dados. A diferença entre o dado obtido pelos sensores e o valor estimado pela RNA é a distância entre os dados. Quanto maior a distância, maior a possibilidade daquele dado ser um outlier. Foi criada a equação de distância para este método da seguinte forma: d=(r–e)/r, onde d é a distância calculada, r é o valor do dado real, ou seja, o valor armazenado pelos sensores, e e é o valor estimado pelo método. Para testar essa metodologia, foram utilizados dados para detectar possíveis outliers no sensor de temperatura do ar. Foram feitas duas simulações de outliers na base de dados. Em ambas as simulações, valores selecionados aleatoriamente foram modificados em 25%, tornando-os outliers. A diferença entre uma simulação e outra foi na quantidade de outliers inseridos em cada série de dados, sendo que na 1ª simulação foram alterados 1% da série de dados e na 2ª simulação 15%. Para avaliar o desempenho da metodologia, foi analisado tanto a sua precisão quanto a sua sensitividade. A precisão é calculada verificando os dados que foram sinalizados como possíveis outliers e que realmente são outliers (existentes). Já a sensitividade é avaliada verificando os dados detectados corretamente como outliers em comparação com todos os outliers existentes na base de dados (Figura 2). Figura 2. Classificação dos dados para a análise de desempenho 3. Resultados Na 1ª simulação, 54 valores foram modificados tornando-os outliers. Nesse caso, o limite de distância considerado para detectar os outliers foi de 0,1. Com esse limite, foi obtida uma precisão de 100% e uma sensitividade de 100% também. Isso quer dizer que foram detectados 54 outliers, e nenhum foi detectado incorretamente. Na Figura 3 é mostrada uma comparação entre os dados reais da série de dados obtidos pela leitura dos sensores e os valores estimados pelo método. Observe que ambos estão bem próximos um do outro, mostrando uma boa estimativa obtida. Figura 3. Gráfico comparativo da primeira simulação em 2 dias Pode ser visualizado 3 outliers que estão divergindo da série de dados. Em outras técnicas, os dois primeiros outliers poderiam ser considerados como dados normais, já que estes estão com um valor menor do que outros dados reais, como as leituras realizadas por volta das 15:00 do segundo dia do gráfico. A RNA utilizada para esta simulação foi criada com o algoritmo de treinamento levenberg-marquardt, com as funções de ativação hyperbolic tangent e linear, com uma taxa de momentum de 0,7 e taxa de aprendizagem de 0,4, utilizando todos os sensores. Na 2ª simulação, 811 valores foram modificados para simular outliers para verificar o desempenho do método com um número maior de outliers na mesma série de dados. Na Figura 4 é mostrado o gráfico comparativo da 2ª simulação. Figura 4. Gráfico comparativo da segunda simulação em 1 dia Pode ser observado que a estimativa, em comparação com as leituras reais, apresentou uma menor precisão com relação à primeira simulação. Isto provavelmente ocorreu por causa da grande quantidade de outliers, o qual interfere na detecção dos padrões contidos na série. Ainda, há outliers em sequência (perto das 7:30 horas). Foram detectadas esses outliers, no qual talvez outros métodos não conseguiriam. Nessa simulação, o melhor valor limite para considerar os outliers foi de 0,12. Com esse valor, foi possível obter uma precisão de 96,66% e uma sensitividade de 96,42%. Nesse caso, 782 outliers foram detectados corretamente e 27 não eram outliers mas foram considerados como tal pelo método. A RNA da 2ª simulação também foi criada com o algoritmo de treinamento levenberg-marquardt, com as funções de ativação logarithmic e linear, com uma taxa de momentum de 0,2 e taxa de aprendizagem de 0,7, utilizando apenas três sensores. 4. Considerações finais Este trabalho apresenta um método que é capaz de detectar outliers em séries de dados micrometeorológicos com o uso de técnicas da área de IA, como as redes neurais artificiais e os algoritmos genéticos, além de aplicar o conceito de distância. Para validar o funcionamento do método, foram feitas duas simulações, uma com 1% de outliers e outra com 15%. Em ambos os casos houve um bom desempenho por parte do método de detecção de outliers, obtendo 100% de precisão na primeira simulação e 96,66% na segunda simulação. Trabalhos futuros desta pesquisa contemplarão a geração de novos testes, englobando outras variáveis climáticas, menores diferenças do outliers para o dado real e maiores quantidades de outliers simulados na série de dados, aumentando o número de outliers em sequência. Com a execução de mais testes e modificações do método, espera-se uma melhoria na precisão e sensitividade podendo, posteriormente, liberação do método para a comunidade científica em forma de uma framework. Referências Assumpção, M. E., Christoforo, A. L., Panzera, T. H., Brito, J. N., Lamim-Filho, P. C. M. (2011) “Emprego de algoritmos genéticos na determinação das dimensões Ótimas de uma torre treliçada” In: XI Congresso Nacional de Engenharia Mecânica, Metalúrgica e Industrial. Porto Alegre, RS: ABEMEC, p. 1–7. Chen, S., Wang, W., Zuylen H. (2010) “A comparison of outlier detection algorithms for ITS data”. Expert Systems with Applications 37, 1169-1178. Grubbs, F. E. (1969) “Procedures for detecting outlying observations in samples”. Technometrics 11, p 1–21. Haykin, S. S. (2000) “Redes Neurais - Princípios e Prática”. Bookman. Hodge, V. J., Austin, J. (2004) “A Survey of Outlier Detection Methodologies”. Kluwer Academic Publishers, p 13-18. Santos, S. R. (2004) “A Framework for the Visualization of Multidimensional and Multivariate Data”. 196 p. Tese – The University of Leeds. Sudheer, K. P., Gosain, A. K., Ramasastri, K. S. (2003) “Estimating actual evapotranspiration from limited climatic data using neural computing technique” Journal of Irrigation and Drainage Engineering-asce 129. Ventura, T. M. (2012) “Preenchimento de Falhas de Dados Micrometeorológicos Utilizando Técnicas de Inteligência Artificial”. 73 p. Dissertação – Programa de PósGraduação em Física Ambiental – UFMT.