• Nenhum resultado encontrado

Uma ferramenta colaborativa para a análise de dados na Saúde Pública: aplicação no estudo de séries temporais para o Projeto Sífilis Não

N/A
N/A
Protected

Academic year: 2021

Share "Uma ferramenta colaborativa para a análise de dados na Saúde Pública: aplicação no estudo de séries temporais para o Projeto Sífilis Não"

Copied!
62
0
0

Texto

(1)

UNIVERSIDADEFEDERALDO RIO GRANDE DO NORTE

UNIVERSIDADEFEDERAL DORIOGRANDE DO NORTE

CENTRO DETECNOLOGIA

PROGRAMA DEPÓS-GRADUAÇÃO EMENGENHARIAELÉTRICA E DECOMPUTAÇÃO

Uma Ferramenta Colaborativa para a Análise

de Dados na Saúde Pública: Aplicação no

Estudo de Séries Temporais para o Projeto

Sífilis Não

Adriana Benício Galvão

Orientador: Prof. Dr. Ricardo Alexsandro de Medeiros Valentim

Dissertação de Mestrado apresentada ao Programa de Pós-Graduação em Engenharia Elétrica e de Computação da UFRN (área de concentração: Engenharia de Computação) como parte dos requisitos para obtenção do título de Mestre em Ciências.

Número de ordem PPgEEC: M556

Natal, RN, agosto de 2019

(2)

Galvão, Adriana Benício.

Uma ferramenta colaborativa para a análise de dados na Saúde Pública: aplicação no estudo de séries temporais para o Projeto Sífilis Não / Adriana Benício Galvão. - 2019.

46f.: il.

Dissertação (Mestrado)-Universidade Federal do Rio Grande do Norte, Centro de Tecnologia, Programa de Pós-Graduação em Engenharia Elétrica e de Computação, Natal, 2019.

Orientador: Dr. Ricardo Alexsandro de Medeiros Valentim.

1. Análise de Dados - Dissertação. 2. Big Data - Dissertação. 3. Estudos de Séries Temporais Dissertação. 4. Sífilis -Dissertação. I. Valentim, Ricardo Alexsandro de Medeiros. II. Título.

RN/UF/BCZM CDU 004.65

Universidade Federal do Rio Grande do Norte - UFRN Sistema de Bibliotecas - SISBI

Catalogação de Publicação na Fonte. UFRN - Biblioteca Central Zila Mamede

(3)

Agradecimentos

Agradeço, primordialmente, a Deus por todas as realizações em minha vida. À minha mãe e à minha irmã, pelo apoio durante toda minha jornada. Ao professor Ricardo pela orientação e pela confiança.

Aos pesquisadores do LAIS, Giovani e Rodrigo, sou grata pelas importantes ideias e discussões que tivemos acerca do projeto desenvolvido.

Aos meus amigos e aos meus colegas de pós-graduação, pelo incentivo para a realização deste trabalho.

Aos professores avaliadores da qualificação e da defesa, pelas sugestões e correções apon-tadas.

(4)
(5)

Resumo

Nos dias atuais, há uma tendência para o uso da análise de dados no intuito de im-plementar mudanças nos sistemas de saúde, que possibilitem, dentre outros benefícios, a redução de custos, a prevenção de doenças e a melhor prestação de serviços à popu-lação. Uma das iniciativas do governo brasileiro, nesse sentido, é o projeto Sífilis Não, o qual tem induzido ações voltadas ao controle da sífilis nas redes de atenção à saúde. O termo "Big Data na Saúde"vem sendo amplamente utilizado em diversos estudos que buscam, em geral, encontrar e avaliar os possíveis benefícios de big data para os cuidados na saúde. Muitos desses estudos, entretanto, se baseiam em análises teóricas e qualitati-vas, apresentando limitações na validação das soluções propostas e destacando desafios na formação de competências para o uso de tecnologias de big data. Nesse contexto, o presente trabalho teve o objetivo de elaborar e implementar uma ferramenta colaborativa e facilitadora para a análise de big data, que irá contribuir, em especial, para o estudo de séries temporais referentes às notificações de sífilis em gestantes e sífilis congênita, re-gistradas no Sistema de Informação de Agravos de Notificação (SINAN). Foi construído um framework que permite a colaboração entre profissionais com competências distintas na criação de programas experimentais de análise de grandes conjuntos de dados. O fra-meworkde desenvolvimento, junto às funcionalidades adicionadas para a importação de séries temporais e extração de suas características, compõem a ferramenta obtida neste trabalho. Para validá-la, foram utilizados dados reais, referentes a indicadores epidemio-lógicos da sífilis, provenientes de alguns Sistemas de Informação em Saúde (SIS).

(6)
(7)

Abstract

Nowadays, there is a tendency for the use of data analysis in order to implement chan-ges in health systems that enable, among other benefits, cost reduction, disease prevention and better service delivery to the population. One of the initiatives of the Brazilian go-vernment, in this sense, is the project "Syphilis No", which has induced actions aimed at controlling syphilis in health care networks. The term "Big Data in Health"has been wi-dely used in several studies that seek, in general, to find and evaluate the potential benefits of big data for health care. Many of these studies, however, are based on theoretical and qualitative analyzes, presenting limitations in the validation of the proposed solutions and highlighting challenges in the formation of competencies for the use of big data technolo-gies. In this context, the present study had the objective of elaborating and implementing a collaborative and facilitating tool for big data analysis, which will contribute, in particu-lar, to the study of time series regarding notifications of syphilis in pregnant women and congenital syphilis, recorded in the Notification of Injury Information System (SINAN). It was built a framework that allows collaboration between professionals with different skills in the creation of experimental programs for analyzing large datasets. The deve-lopment framework, along with the added functionalities for importing time series and extracting its features, make up the tool obtained in this study. To validate it, real data on epidemiological indicators of syphilis from some Health Information Systems (SIS) were used.

(8)
(9)

Sumário

Sumário i

Lista de Figuras iii

Lista de Tabelas v

Lista de Símbolos e Abreviaturas vii

1 Introdução 1

1.1 Motivação . . . 2

1.1.1 As Ferramentas de Big Data . . . 2

1.1.2 O Problema da Sífilis no Brasil . . . 4

1.2 Metodologia . . . 5

1.3 Contribuições . . . 7

1.4 Organização do Documento . . . 8

2 Teoria 9 2.1 Big Data . . . 9

2.2 Tecnologias de Big Data . . . 10

2.3 O Ambiente R . . . 12 2.4 Séries Temporais . . . 12 2.4.1 Média e Variância . . . 13 2.4.2 Estacionariedade . . . 13 2.4.3 Autocorrelação . . . 13 2.4.4 Tendência e Sazonalidade . . . 15 2.4.5 Entropia . . . 15

2.5 Serviço Web REST . . . 16

3 Estado da Arte 19 4 Implementação 25 4.1 Preparação do Ambiente . . . 25 4.2 Os Plugins . . . 26 5 Resultados e Discussões 31 i

(10)

6 Conclusão 41 6.1 Trabalhos Futuros . . . 42

(11)

Lista de Figuras

1.1 Taxa de detecção de sífilis entre 2010 e 2017. . . 4

1.2 Visão geral do framework implementado. . . 6

2.1 Frameworkde big data . . . 10

2.2 Arquitetura Hadoop . . . 11

2.3 Correlograma . . . 14

4.1 Arquivo exportado do TABNET. . . 28

4.2 Visualização dos recursos da API. . . 29

5.1 Parâmetros do recurso serie.caracteristicas. . . 32

5.2 Sífilis congênita em menores de um ano de 2007 a 2017 no Brasil. . . 33

5.3 Sífilis em gestantes de 2007 a 2017 no Brasil. . . 33

5.4 Nascidos vivos no Brasil de 2007 a 2017. . . 34

5.5 Óbitos por sífilis congênita no Brasil de 2007 a 2017. . . 34

5.6 Taxa de detecção de sífilis em gestantes entre 2007 e 2017. . . 37

5.7 Taxa de incidência de sífilis congênita entre 2007 e 2017. . . 37

5.8 Coeficiente de mortalidade por sífilis congênita entre 2007 e 2017. . . 38

(12)
(13)

Lista de Tabelas

3.1 Trabalhos sobre big data e suas implicações . . . 20 3.2 Trabalhos que abordam técnicas de análise de dados . . . 21 5.1 Indicadores epidemiológicos para monitoramento da sífilis. . . 35 5.2 Descrição das características e respectivas abreviações nas tabelas 5.3 e 5.4. 36 5.3 Características das séries de 2007 a 2017. . . 36 5.4 Características das séries de 2010 a 2017 . . . 38

(14)
(15)

Lista de Símbolos e Abreviaturas

ACF Auto Correlation Function

API Application Programming Interface GB Gigabytes

HDFS Hadoop Distributed File System HIV Human Immunodeficiency Virus HTML Hypertext Markup Language HTTP Hypertext Transfer Protocol

HUOL Hospital Universitário Onofre Lopes IBD Interface de Big Data

JDBC Java Database Connectivity JSON JavaScript Object Notation

LAIS Laboratório de Inovação Tecnológica em Saúde MBD Módulo de Big Data

MPD Módulo de Processamento de Dados MTR Módulo de Transferência de Recursos PNG Portable Network Graphics

RAM Random Access Memory REST Representational State Transfer

SIM Sistema de Informações sobre Mortalidade

SINAN Sistema de Informação de Agravos de Notificação SINASC Sistema de Informações sobre Nascidos Vivos SIS Sistema de Informação em Saúde

(16)

SO Sistema Operacional

SQL Structured Query Language UDF User Defined Function

UFRN Universidade Federal do Rio Grande do Norte URL Uniform Resource Locator

(17)

Capítulo 1

Introdução

Sabe-se que um dos maiores custos, em todo o mundo, está nos investimentos em saúde, por diversos fatores: redução da mortalidade infantil, envelhecimento da popula-ção, carência de cuidados preventivos, entre outros. Concomitante à maior demanda por serviços de saúde, a própria população exige melhores cuidados preventivos, diagnósti-cos, tratamentos e acompanhamentos individuais. Por isso, muito vem sendo investido em pesquisas, estudos e experimentos que, sobretudo, conectam diferentes áreas de co-nhecimento e permitem avanços tecnológicos em direção a quarta revolução industrial (Brasil 2018a).

Assim, em meio à imensa quantidade de dados produzidos e registrados eletronica-mente todos os dias, e seu valor em potencial, muitos investimentos estão sendo direcio-nados para a comunicação e integração de dados entre diversos Sistemas de Informação em Saúde (SIS), para o processamento, a exploração e a análise de dados. Em meio ao quarto paradigma da ciência (Hey et al. 2009), o qual se baseia na computação intensiva de dados, há grandes perspectivas em relação aos benefícios que podem ser conseguidos com a exploração de grandes e heterogêneos conjuntos de dados. Na saúde, tais benefícios estão associados, por exemplo, à medicina baseada em evidências, à individualização dos tratamentos médicos, à agregação de diferentes bases de dados para obter diagnósticos mais precisos que aqueles produzidos com dados isolados, a previsões de surtos de do-enças, ao monitoramento da eficácia de tratamentos e intervenções de saúde. Entretanto, ainda há grandes barreiras a serem enfrentadas para a concretização dessas perspectivas. Para Hey et al. (2009), é necessário produzir melhor as ferramentas para suportar todo o ciclo de pesquisa: desde a captura e o tratamento de dados até a análise e visualiza-ção de dados. De fato, nos últimos anos, tem havido um crescente e contínuo avanço no desenvolvimento de ferramentas promissoras.

As tecnologias de big data oferecem a possibilidade de trabalhar com grandes volu-mes de dados, que podem ter origem em diversas fontes e estar em uma variedade de formatos, além de agregar maior velocidade de processamento e maior confiabilidade em relação à perda de dados. Para Jokonya (2014), o potencial de criação de valor de big dataestá na agregação de conjuntos de dados em algoritmo para fornecer insights raros com conjuntos de dados individuais. Como exemplo de experiência local, que revela um pouco sobre o impacto positivo da simples integração de dados entre sistemas, pode ser

(18)

2 CAPÍTULO 1. INTRODUÇÃO

citado o aumento dos diagnósticos de HIV no Brasil, que teve um incremento de 11,3% em 1997, após decisão do Ministério da Saúde em utilizar como critério de identificação não só as notificações registradas no Sistema de Informação de Agravos de Notificação (SINAN), mas também os dados do Siscel de CD4/CD8 e Carga Viral. (Paz 2010).

Manyika et al. (2011) acredita que big data pode ajudar a reduzir o desperdício e ineficiência na saúde pública por meio da análise de padrões de doença, rastreamento de surtos e transmissões para melhorar a vigilância em saúde e acelerar a resposta a epide-mias; do desenvolvimento mais rápido de vacinas mais direcionadas; e da transformação de grandes quantidades de dados em informações acionáveis que possam ser usadas para identificar necessidades, fornecer serviços e prever e prevenir crises, especialmente para o benefício da população. Uma das atuais iniciativas do governo brasileiro, no sentido de prevenir doenças, reduzir custos e ao mesmo tempo incentivar a formação de conhe-cimento tecnológico atualizado, é o projeto Sífilis Não. O projeto tem induzido ações voltadas ao controle da sífilis nas redes de atenção à saúde, com atuação de apoiadores locais, investindo em pesquisas e na produção de conhecimentos por meio de estudos ope-racionais, ao passo que potencializa a capacidade técnica de vigilância e cuidado integral. Esse trabalho faz parte do projeto Sífilis Não e buscou, dentre outros objetivos, prover uma plataforma de análise de dados, integrada a um ambiente funcional de tecnologias para processamento de grande volume de dados, que permitisse a realização de rápidas análises envolvendo conjuntos de dados provenientes de distintos Sistemas de Informação em Saúde (SIS).

1.1

Motivação

1.1.1

As Ferramentas de Big Data

No contexto de grande volume de dados de diferentes origens, em diferentes formatos, e que precisam ser processados em alta velocidade, algumas técnicas e ferramentas tradi-cionais apresentam desempenho insuficiente. Assim, metodologias e formas de incentivo para o uso de tecnologias de big data na saúde têm sido tópicos relevantes de pesquisa. Alguns estudos buscaram os potenciais benefícios de big data e o que falta para sua evolu-ção na saúde (Sagiroglu & Sinanc (2013); Mehta & Pandit (2018); Jee & Kim (2013); Luo et al. (2016); Murdoch & Detsky (2013); Hansen et al. (2014); Bates et al. (2014)). Outros se basearam em revisões da literatura e discutiram as capacidades analíticas necessárias, as tecnologias existentes, frameworks conceituais que possam ser implementados para agregar valor de negócio, e os principais desafios, como privacidade, cultura das organi-zações, investimentos e competências para a análise de dados (Raghupathi & Raghupathi (2014); Jokonya (2014); Anisetti (2018); Wang & Hajli (2017)). Entretanto, esses estudos consideraram uma abordagem qualitativa para as pesquisas, oferecendo frameworks ge-néricos de big data e acrescentando como limitações as validações das metodologias e/ou frameworkspropostos. Conforme Mehta & Pandit (2018), não há evidências mínimas so-bre como a análise de big data pode melhorar efetivamente a qualidade dos cuidados na

(19)

1.1. MOTIVAÇÃO 3

saúde e não há estudos de avaliação econômica sobre sua relação custo-benefício, ou seja, embora muitos de seus benefícios em potencial sejam citados na literatura, há carência de análises econômicas sobre eles e estudos práticos que lidem com dados reais e produzam evidências concretas.

Apesar da grande diversidade de ferramentas de big data disponíveis, o uso efetivo de-las é pouquíssimo significativo na área da saúde. Para Raghupathi & Raghupathi (2014), existem grandes dificuldades relacionadas à complexidade do uso das tecnologias dis-poníveis, que requerem muita programação e exigem a aplicação de várias habilidades. Elas surgiram de maneira ad hoc, principalmente, como ferramentas e plataformas de de-senvolvimento de código aberto e, portanto, não têm o suporte e a facilidade de uso das ferramentas proprietárias. Segundo os autores, para o sucesso da análise de big data na saúde, são necessárias facilidades, como a disponibilidade dinâmica de numerosos algo-ritmos analíticos, modelos e métodos, de forma amigável e transparente.

Mehta & Pandit (2018) destacaram que faltam analistas habilidosos em big data com conhecimento de saúde, que tenham a capacidade de identificar ferramentas e dados cor-retos para as análises em saúde e interpretar as percepções obtidas a partir delas. Há a necessidade, nesse sentido, de ferramentas facilitadoras para a análise de grande volume de dados na saúde, que possam ser utilizadas por profissionais que não são exclusivamente da área de computação ou de áreas correlatas.

Além da facilidade no uso, são necessários avanços nas funcionalidades das ferramen-tas analíticas para aplicação na saúde. Na análise de séries temporais, por exemplo, são utilizadas técnicas tradicionais, amplamente conhecidas por estatísticos na Epidemiolo-gia, como os modelos auto-regressivos (AR, MA, ARMA, ARIMA, SARIMA), podendo ser aplicadas no estudo de tendências, correlações e/ou previsões das ocorrências de epi-demias, como a sífilis. Algumas dessas técnicas, entretanto, ainda não têm implementa-ções específicas nas bibliotecas de código aberto atuais para a análise de grande volume de dados ou apresentam limitações: MLlib, por exemplo, é uma biblioteca que contém diversos métodos escaláveis para aprendizagem de máquina, porém não abrange os mode-los auto-regressivos para análise de séries temporais e não provê solução para a previsão de vários pontos futuros por meio de regressão multivariada (Galicia et al. 2018). Time Series for Spark (Ryza 2018) é uma biblioteca específica para a análise de séries tem-porais em larga escala, nas linguagens scala, java e python, que foi desenvolvida para resolver problemas e necessidades da área financeira, principalmente, e apresenta limita-ções quanto ao tamanho da série suportado. O algoritmo implementado assume que cada série temporal, de um conjunto de séries, pode ser inteiramente carregado na memória de uma única máquina. Além disso, a biblioteca não está, atualmente, em desenvolvimento ativo pelo autor e, assim como a MLlib, é específica para o framework Apache Spark.

(20)

4 CAPÍTULO 1. INTRODUÇÃO

1.1.2

O Problema da Sífilis no Brasil

A Sífilis, causada pelo Treponema Pallidum, é uma das principais infecções sexual-mente transmissíveis (IST). Em 2016, a sífilis foi declarada como um grave problema de saúde pública no Brasil. A prevenção da Transmissão Vertical (TV) da sífilis – que ocorre durante o período gestacional – é prevista no Plano Plurianual (PPA) como uma prioridade. A figura 1.1 mostra o aumento constante no número de casos de sífilis con-gênita, sífilis em gestantes e sífilis adquirida, registrados no Sistema de Informação de Agravos de Notificação (SINAN). O aumento pode ser atribuído, em parte, pelo aumento da cobertura de testagem, com a ampliação do uso de testes rápidos, redução do uso de preservativo, resistência dos profissionais de saúde à administração da penicilina na Aten-ção Básica e desabastecimento mundial de penicilina. Além disso, o aprimoramento do sistema de vigilância pode se refletir no aumento de casos notificados (Brasil 2017).

Figura 1.1: Taxa de detecção de sífilis entre 2010 e 2017.

Em resposta aos desafios para o controle da epidemia de sífilis, o Departamento de Doenças de Condições Crônicas e Infecções Sexualmente Transmissíveis, da Secretaria de Vigilância em Saúde, do Ministério da Saúde (DCCI/SVS/MS), elaborou uma agenda de ações estratégicas para redução da sífilis no Brasil. Essa agenda resultou na iniciativa de uma emenda parlamentar de 200 milhões de reais, destinada à implementação de um projeto de resposta rápida à sífilis em 100 municípios prioritários, que respondem por aproximadamente 65% dos casos de sífilis do país. O projeto foi concebido para induzir ações voltadas ao controle da sífilis nas redes de atenção à saúde, com atuação de apoia-dores locais; produzir conhecimentos por meio de estudos operacionais; e potencializar a capacidade técnica de vigilância e cuidado integral.

(21)

1.2. METODOLOGIA 5

Nesse contexto, alguns indicadores podem auxiliar no monitoramento da sífiils (Brasil 2018b):

• A taxa de detecção de sífilis em gestantes em um determinado local: mede a frequência de casos de sífilis na gestação e orienta as ações de vigilância epide-miológica da doença no local;

• A taxa de incidência de sífilis congênita em um determinado local: mede o risco de ocorrência de casos novos de sífilis congênita por transmissão vertical da bactéria Treponema pallidumno local;

• O coeficiente de mortalidade infantil específica por sífilis congênita: mede o risco de óbito em crianças em consequência da sífilis congênita no mesmo local de resi-dência e ano.

1.2

Metodologia

Diante dos desafios expostos, o presente trabalho buscou desenvolver uma ferramenta que pudesse ser construída cooperativamente, entre profissionais de diferentes áreas, para a análise de grandes volumes de dados, com aplicação na análise de séries temporais e, em especial, na Saúde e Epidemiologia.

Podem ser citados como requisitos da ferramenta:

• Interagir com tecnologias específicas para processamento de grandes conjuntos de dados, como o Sistema de Arquivos Distribuídos do Hadoop (HDFS) e o Apache Hive, e possibilitar que a maior parte do processamento exigido nas análises seja realizada nesse ambiente;

• Permitir a inclusão de novas funcionalidades por meio de plugins em R;

• Permitir a execução de scripts avulsos e disponibilizar para consulta os resultados gerados nas análises realizadas;

• Conter funcionalidades para a importação, visualização e extração de características de séries temporais;

• Permitir sua utilização por sistemas externos/clientes por meio de serviço web REST.

O software foi desenvolvido com uma arquitetura organizada em três módulos prin-cipais (figura 1.2): Módulo de Big Data (MBD), Módulo de Processamento de Dados (MPD) e Módulo de Transferência de Recursos (MTR).

(22)

6 CAPÍTULO 1. INTRODUÇÃO

Figura 1.2: Visão geral do framework implementado.

No Módulo de Big Data (MBD) estão dados históricos mensais provenientes de distin-tos Sistemas de Informação em Saúde, quais sejam: Sistema de Informações sobre Mor-talidade (SIM), Sistema de Informações sobre Nascidos Vivos (SINASC) e Sistema de Informação de Agravos de Notificação (SINAN). Tais fontes foram escolhidas por apre-sentarem os dados necessários para os indicadores epidemiológicos da sífilis que serão construídos posteriormente, na etapa de validação da solução desenvolvida. O objetivo do MBD é permitir o processamento do grande volume de dados em tempo viável, distri-buindo os dados e paralelizando o processamento. Esse objetivo é conseguido a partir do uso de tecnologias de big data consolidadas no mercado: Hadoop e Hive. Desse modo, a ferramenta em questão poderá lidar com grandes conjuntos de dados quando implantada em ambiente produtivo, composto por vários servidores.

O Módulo de Processamento de Dados (MPD) comporta diferentes plugins que con-tém métodos para a interação com as tecnologias do ecossistema Hadoop no MBD, os quais compõem a Interface de Big Data (IBD), e métodos para a criação, atualização (incremental), consulta parametrizada e extração de características estatísticas das séries temporais, que incluem: entropia, estacionariedade, autocorrelação, tendência, lineari-dade, sazonalilineari-dade, aleatorielineari-dade, diferenciação e correlação cruzada. Tais característi-cas foram escolhidas por serem amplamente utilizadas em estudos de séries temporais na Epidemiologia, em especial, para a identificação de modelos autorregressivos, integrados e de médias móveis.

Os plugins permitem que diferentes profissionais cooperem para a evolução da fer-ramenta/plataforma. Assim, a ferramenta é construída coletivamente, conforme especi-ficado nos plugins que a compõem, podendo o sistema ser considerado colaborativo por ser uma tecnologia computacional que apoia o trabalho em grupo. A forma de interação é assíncrona distribuída, em que cada colaborador mantém o código fonte de seu plugin e o envia para o repositório remoto por meio da ferramenta de versionamento "git", infor-mando as alterações que foram realizadas. Além disso, para melhor gerenciamento dos recursos, cada plugin é de autoria de um único colaborador, que o nomeia e declara todas as suas funções no padrão "[nome do plugin].[nome do método]". Dessa forma, é

(23)

possí-1.3. CONTRIBUIÇÕES 7

vel identificar facilmente cada autor e seu trabalho. Cada plugin deve apresentar em sua definição as funções que serão incluídas automaticamente na API do serviço web e res-pectivos parâmetros com descrições que estarão visíveis para todos. As funções que não forem incluídas na definição ainda assim estarão disponíveis para uso em outros plugins.

A Camada de Transferência de Recursos disponibiliza um serviço REST, cuja API de acesso por sistemas clientes (externos) é construída dinamicamente com os métodos existentes e sinalizados nos plugins. Cada método web pode ser chamado diretamente pela URL ou por meio de uma interface documental e interativa incluída na ferramenta. De modo geral, o serviço recebe parâmetros por meio da URL de acesso, manipula valores numéricos indexados no tempo, armazena resultados no Sistema de Arquivos Distribuídos do Hadoop (HDFS) e retorna respostas nos formatos de texto literal, HTML, JSON ou PNG. Toda plataforma foi desenvolvida em R para facilitar a inclusão de plugins nessa linguagem.

Como forma de validação da solução, ou seja, da verificação de seu funcionamento de acordo com o que foi proposto, ela foi aplicada na construção e análise de indicadores epidemiológicos para o monitoramento da sífilis, retirados do Boletim Epidemiológico da Sífilis 2018, elaborado pelo Ministério da Saúde do Brasil.

1.3

Contribuições

Este trabalho faz parte de uma das metas atuais do LAIS/HUOL/UFRN, que objetiva a realização de estudos e pesquisas para explorar novas abordagens e tecnologias de inter-venção para assistência, preinter-venção e controle da sífilis. Ele está inserido em um projeto maior, que conta com dois outros subprojetos, cujos enfoques estão na importação de dados para o ambiente de big data e apresentação de indicadores ao usuário final.

A intenção é que a ferramenta desenvolvida faça uso dos dados carregados automati-camente pelo subprojeto de importação de dados e seja utilizada pelo subprojeto de apre-sentação para a geração de indicadores sobre dados indexados no tempo. Desse modo, ela funciona como uma camada de análise, intermediadora das camadas de grandes conjuntos de dados e apresentação, específica para processamento e análise de séries temporais. Vale ressaltar que os subprojetos de importação e apresentação não estiveram em desenvolvi-mento paralelo a este. No entanto, conforme necessidades venham surgindo futuramente, novas funcionalidades podem ser adicionadas facilmente à ferramenta desenvolvida, por meio de plugins.

A ferramenta permite a construção de indicadores para monitoramento da sífilis e apresenta métodos para a extração de características das séries a fim de prover infor-mações para estudá-las de um modo geral, para entender seus comportamentos frente a intervenções externas, prover insumos para algoritmos de classificação e aprendizagem

(24)

8 CAPÍTULO 1. INTRODUÇÃO

de máquina, possibilitar a identificação de modelos matemáticos e, com isso, realizar previsões (quando possível).

Dado que um dos desafios para uma adoção mais ampla da análise de big data nos serviços de saúde é permitir a aplicação do conhecimento de estudiosos da área da saúde na análise de dados, a implementação de soluções técnicas mais direcionadas à saúde pública, que possam ser facilmente utilizadas, e até mesmo criadas, por estatísticos, epi-demiologistas e profissionais da saúde em geral, podem contribuir para o desenvolvimento de novas aplicações de big data com alto valor de negócio agregado e para os avanços de big data na saúde pública. A ferramenta permite a colaboração no desenvolvimento de soluções em saúde entre diferentes profissionais, ao passo que abstrai complexidades rela-cionadas a competências técnicas específicas, como ao processamento do grande volume de dados. Desse modo, analistas podem aplicar suas técnicas de domínio para realizar análises com foco nas questões de interesse, como na descoberta de padrões de compor-tamento epidemiológicos, correlações, periodicidades, intervenções não programadas e seus efeitos, em novas formas de ação preventiva de doenças, entre outras questões.

Além de tudo, a ferramenta viabiliza o rápido início no desenvolvimento de programas experimentais para análise de grandes conjuntos de dados na saúde. Uma vez que grande parte das intenções da e-Ciência pode ser implementada tecnicamente por tecnologias de big data, como o compartilhamento de dados gerados por diferentes pesquisadores e o reuso, a ferramenta tem potencial aplicação nessa área. Contribuindo, assim, para o surgimento de estudos práticos e quantitativos na Saúde Pública.

Em suma, este trabalho se apresenta como uma abordagem prática e simplificada para implementações de análise de big data na saúde, em contraposição às metodologias con-ceituais na literatura. Além disso, está associado a outros três problemas relacionados a tecnologias para processamento de grande volume de dados: 1) Escassez de ferramen-tas ou bibliotecas que contenham técnicas tradicionais de análise de séries temporais na saúde; 2) Dependência das soluções existentes, para análise de séries temporais, com fra-meworks de big data específicos, como Spark; 3) Complexidade das tecnologias atuais, tanto para uso quanto para a adição de contribuições por diferentes profissionais em áreas de conhecimento variadas, dentro do contexto de saúde.

1.4

Organização do Documento

Neste documento, o capítulo 2 introduz os principais conceitos e tecnologias envol-vidos no presente trabalho; o capítulo 3 apresenta os trabalhos na literatura a respeito de big data, saúde pública e séries temporais, no intuito de desvendar o estado da arte de big datana saúde; o 4 apresenta detalhes de implementação da ferramenta colaborativa para análise de dados na saúde; o capítulo 5 descreve a ferramenta resultante do presente trabalho e os procedimentos realizados para sua validação; e o capítulo 6 fornece uma visão geral do que foi realizado nesse projeto e apresenta opções para trabalhos futuros.

(25)

Capítulo 2

Teoria

Neste capítulo serão apresentados os principais conceitos para contextualização do trabalho proposto e principais tecnologias: conceitos de big data e frameworks básicos, tecnologias da plataforma, a linguagem R e a Transferência de Estado Representacional (REST).

2.1

Big Data

As tecnologias de big data oferecem a possibilidade de trabalhar com um grande volume de dados, que podem ter origem em diversas fontes e estar em uma variedade de formatos, além de agregar maior velocidade de processamento e maior confiabilidade em relação à perda de dados, aumentando o potencial das análises na descoberta de evidências valiosas. Um dos principais diferenciais das aplicações analíticas de big data é permitir que analistas não precisem limitar previamente os dados necessários para seus estudos. Alguns dados pertinentes podem ser evidenciados a partir das análises em curso. Vários autores elaboraram denominações para Big Data na Saúde, dentre as quais:

“Big Data é comumente definido através dos 4 Vs: volume (escala ou quantidade de dados), velocidade (velocidade e análise de dados em tempo real ou quase em tempo real), variedade (diferentes formas de dados, geralmente de diferentes fontes de dados) e veracidade (garantia da qualidade dos dados)” (Bian et al.)

"Big Data na Saúde se refere a conjuntos de dados eletrônicos tão grandes e comple-xos que são difíceis (ou impossíveis) de gerenciar com software e/ou hardware tradicio-nais; nem podem ser facilmente gerenciados com ferramentas e métodos tradicionais ou comuns de gerenciamento de dados"(Raghupathi & Raghupathi, 2014).

Para implementar aplicações bem-sucedidas de big data na saúde, alguns trabalhos buscaram construir frameworks arquiteturais baseados em revisões da literatura. Raghu-pathi & RaghuRaghu-pathi (2014) propôs um framework pioneiro no contexto de big data para o domínio da saúde, ilustrado na figura 2.1, o qual consiste nas camadas de fonte de dados, transformação, plataforma e aplicações analíticas. A camada de fonte de dados foca principalmente em fontes de dados internas e externas de saúde, encontradas em

(26)

10 CAPÍTULO 2. TEORIA

vários locais e em vários formatos. A camada de transformação é responsável por ope-rações como extração, transformação e carga de dados na plataforma de big data, por meio de várias técnicas de preparação de dados, como operações de middleware e data warehousing. A camada de plataforma de big data é composta por várias ferramentas do ecossistema Hadoop para executar operações específicas no Sistema de Arquivos Distri-buídos do Hadoop usando o modelo de programação MapReduce. A camada analítica realiza operações como consulta, relatórios, processamento analítico online e técnicas de mineração de dados.

Figura 2.1: Framework de big data

Segundo Groves et al. (2013), algumas das capacidades de big data incluem: reportar, monitorar, minerar dados, avaliar e predizer/simular. Tais capacidades podem contribuir significativamente para a realização das atribuições dos sistemas de saúde pública, desde a coleta de dados até a produção de evidências que seriam dificilmente conseguidas sem a análise de grandes e distintos conjuntos de dados em um tempo de processamento satis-fatório.

2.2

Tecnologias de Big Data

Os principais frameworks para processamento de dados massivos, disponíveis atual-mente, foram inicialmente concebidos por grandes empresas. Hadoop foi introduzido pelo Yahoo! em 2007 para permitir o processamento de grandes conjuntos de dados em um ambiente de computação distribuída com clusters de servidores de baixo custo. Hoje, é um projeto de código aberto, mantido pela Apache Foundation, já implementado em grandes organizações como Amazon, IBM, Cloudera e Dell. Hadoop foi influenciado pela arquitetura da Google, composta pelo conceito MapReduce para a computação e

(27)

2.2. TECNOLOGIAS DE BIG DATA 11

Google File System(GFS) para o armazenamento dos dados. No Hadoop, foi implemen-tado o conceito de MapReduce e criado o Sistema de Arquivos Distribuídos do Hadoop (HDFS).

O Sistema de Arquivos Distribuídos do Hadoop foi projetado para armazenar con-juntos de dados muito grandes de forma distribuída e confiável e para transmitir esses conjuntos de dados em alta largura de banda para aplicativos de usuário. Ao distribuir ar-mazenamento e computação em vários servidores, o recurso pode crescer com demanda, mantendo-se econômico em todos os tamanhos. O HDFS armazena metadados do sistema de arquivos e dados do aplicativo separadamente. Como em outros sistemas de arquivos distribuídos, armazena metadados em um servidor dedicado, chamado de NameNode. Dados de aplicativos são armazenados em outros servidores chamados DataNodes. To-dos os servidores estão totalmente conectaTo-dos e se comunicam entre si usando protocolos baseados em TCP. (Konstantin Shvachko 2010)

MapReduce, conforme definição em Dean & Ghemawat (2004), é um modelo de programação e uma implementação associada para processar e gerar grandes conjuntos de dados. Os usuários especificam uma função de mapeamento que processa um par chave/valor para gerar um conjunto de pares de chave/valor intermediários e uma fun-ção de redufun-ção que mescla todos os valores intermediários associados à mesma chave intermediária.

Em complemento à arquitetura do framework Hadoop, foram surgindo novos subpro-jetos para resolver problemas específicos (figura 2.2), compondo todo um ecossistema de tecnologias de big data.

Figura 2.2: Arquitetura Hadoop

O Apache Hive, por exemplo, é um dos componentes que facilita as consultas aos dados, fornecendo uma linguagem similiar ao SQL. Mahout é uma biblioteca para de-senvolvimento de aplicações de aprendizagem de máquina. Ambari, por sua vez, é uma ferramenta web para o gerenciamento e monitoramento de outros componentes Hadoop. Com a necessidade de processos iterativos sobre os dados, surgiu o Apache Spark, desen-volvido pela Universidade de Berkeley, na Califórnia. A implantação do Spark no HDFS

(28)

12 CAPÍTULO 2. TEORIA

permite a paralelização do processamento de dados em memória, alcançando velocidades de processamento muito mais rápidas do que com o Hadoop básico (Zaharia 2018). Além disso, o Apache Spark suporta várias linguagens (Java, Python, R e Scala) e oferece di-ferentes módulos especializados, como a biblioteca de aprendizado de máquina MLlib. Devido a essas características, o Spark vem sendo amplamente utilizado para diversas aplicações de análise de dados.

2.3

O Ambiente R

R (Gentleman & Robert 1996) é um ambiente de software livre para computação es-tatística e criação de gráficos, largamente utilizado por estatísticos e cientistas de dados. É extensível e fornece uma ampla variedade de técnicas estatísticas, como modelagem linear e não linear, testes estatísticos clássicos, análise de séries temporais, classificação, agrupamento, etc. Alguns pacotes do R para análise de séries temporais incluem: tse-ries, tsfeatures, forecast, entre outros. Dentre os pacotes que lidam com tecnologias da arquitetura Hadoop, podem ser citados: RHive, Sparklyr e SparkR; para criar APIs web: plumber.

2.4

Séries Temporais

Uma série temporal é uma sequência de dados obtidos em intervalos regulares de tempo durante um período específico. Na análise de uma série temporal, primeiramente deseja-se modelar o fenômeno estudado para, a partir daí, descrever o comportamento da série, fazer estimativas e, por último, avaliar quais os fatores que influenciaram seu comportamento, buscando definir relações de causa e efeito entre duas ou mais séries. Para tanto, há um conjunto de técnicas estatísticas disponíveis que dependem do modelo definido (ou estimado para a série), bem como do tipo de série analisada e do objetivo do trabalho (Latorre & Cardoso 2001).

Em alguns artigos estudados que trataram sobre séries temporais e aplicações na saúde pública (Huang et al. (2017); Lapointe-shaw et al. (2017); Basile (2018); Geue et al. (2016); Milojevic et al. (2017)), foram encontradas, dentre outras técnicas para análise de séries: decomposição sazonal, correlação cruzada e correlação de Pearson entre duas sé-ries, modelos de regressão linear, modelos autoregressivos de Box e Jenkins (AR, ARMA, ARIMA, etc), verificação de estacionariedade usando o teste de Dickey-Fuller aumentado, teste de autocorrelação usando Ljung–Box e séries temporais interrompidas.

Neste trabalho foram utilizados os conceitos estatísticos descritos nas subseções a seguir.

(29)

2.4. SÉRIES TEMPORAIS 13

2.4.1

Média e Variância

A média X de uma série de N observações é dada por:

X= 1 N· N

k=1 Xk (2.1)

A variância, em uma série de N observações, é dada por:

V(X ) = 1 N· N

k=1 (Xk− X)2 (2.2)

2.4.2

Estacionariedade

Uma série temporal estacionária é aquela cujas propriedades, média e variância, por exemplo, não dependem do tempo em que a série é observada. Assim, as séries temporais com tendências ou sazonalidade não são estacionárias.

É possível converter uma série não estacionária em outra estacionária recorrendo a algumas técnicas. A mais comum delas consiste em realizar diferenças sucessivas da série original, até se obter uma série estacionária. Normalmente, será suficiente uma ou duas diferenças.

Dada uma série X(j), a primeira diferença é definida por:

∆Z(t) = Z(t) − Z(t − 1) (2.3) A n-ésima diferença é:

∆nZ(t) = ∆[∆n−1Z(t)] (2.4)

O teste de Dickey-Fuller Aumentado (ADF) é um teste de raiz unitária para averiguar estacionariedade. Raízes unitárias podem causar resultados imprevisíveis em sua análise de séries temporais. A hipótese nula para esse teste é que existe uma raiz unitária. A hipótese alternativa padrão é que a série temporal é estacionária. Em geral, um valor p inferior a 5% significa que a hipótese nula pode ser rejeitada.

2.4.3

Autocorrelação

Assim como a correlação (equação 2.5) mede a relação linear entre duas variáveis Y e Z, a autocorrelação mede a relação linear entre os valores defasados de uma série temporal.

(30)

14 CAPÍTULO 2. TEORIA

p=pCov(Y, Z)

V(Y ·V (Z) (2.5)

Em que Cov(Y,Z) é a covariância entre as variáveis Y e Z:

Cov(Y, Z) = 1 N N

k=1 (Yk−Y )(Zk− Z) (2.6)

Assim, é calculado um coeficiente de correlação rkpara cada defasagem k. r1mede a

relação entre Xt e Xt−1, r2mede a relação entre Xte Xt−2, e assim por diante.

rk=Cov(Xt, Xt−k)

V(Xt) (2.7)

Os coeficientes de autocorrelação são plotados para mostrar a função de autocorrela-ção (ACF). O gráfico também é conhecido como um correlograma.

Figura 2.3: Correlograma

Um valor absoluto alto de r1significa que os valores futuros da série são mais

depen-dentes do valor passado, o que, em certa medida, indica a previsibilidade de uma série temporal (Kang et al. 2017).

(31)

2.4. SÉRIES TEMPORAIS 15

O teste Ljung-Box, também conhecido como teste Portmanteau, é uma versão modifi-cada da estatística qui-quadrado de Box-Pierce, que examina a hipótese nula de indepen-dência dos valores de uma dada série temporal. Caso a hipótese nula seja rejeitada, ou seja, o teste apresente valor p inferior a um percentual corresponente a uma tolerância ad-mitida, em geral 5%, aceita-se a hipótese alternativa de que há dependência entre valores da série.

2.4.4

Tendência e Sazonalidade

Uma série temporal xt pode ser decomposta em componente de tendência (Tt),

com-ponente sazonal (St) e componente aleatória (At) usando, por exemplo, a técnica de

"De-composição Sazonal e de Tendência usando Loess"(Cleveland & Terpenning 1990). xt= St+ Tt+ At (2.8)

Existe tendência quando ocorre uma mudança a longo prazo no nível médio de uma série temporal (Hyndman & Athanasopoulos 2014). Enquanto que um padrão sazonal existe quando a série é influenciada por fatores sazonais, como o trimestre ou mês do ano.

A força da tendência de uma série temporal xt é medida comparando-se as variâncias

da série sem tendência e sem sazonalidade At e a série sem sazonalidade (xt - St) (Wang

& Hyndman 2006):

FT = 1 − V(At) V(xt− St)

(2.9) A força da sazonalidade em xt, por sua vez, pode ser estimada da seguinte forma

(Wang & Hyndman 2006):

FS= 1 − V(At) V(xt− Tt)

(2.10)

2.4.5

Entropia

Uma estimativa da entropia de Shannon da densidade espectral fx(λ) de um processo

estacionário xté dada por:

F = −

Z π

−π

fx(λ) · log fx(λ)dλ (2.11)

onde fx(λ) é uma estimativa do espectro da série temporal. Como fx(λ) descreve

a importância da frequência λ dentro do domínio de período de xt, a entropia de

(32)

16 CAPÍTULO 2. TEORIA

pequeno de F sugere que xt contém mais sinal e é mais previsível. Por outro lado, um

valor relativamente grande de F indica mais incerteza sobre o futuro e, portanto, a série temporal é mais difícil de prever (Kang et al. 2017).

2.5

Serviço Web REST

Transferência de Estado Representacional (REST) é um modelo arquitetural para pro-jetos de software distribuído, baseado em comunicação via rede. A lógica de projeto por trás da arquitetura da web pode ser descrita por um estilo arquitetural que consiste no con-junto de restrições aplicadas a elementos dentro da arquitetura (Fielding 2000). Algumas das restrições que compõem o estilo REST foram especificadas por Fielding (2000):

• Clientes e servidores são separados por uma interface por razões de interesse. Ao separar as preocupações da interface do usuário das preocupações com armazena-mento de dados, melhora-se a portabilidade da interface do usuário em várias plata-formas e aprimora-se a escalabilidade, simplificando os componentes do servidor. Além disso, a separação permite que os componentes evoluam de forma indepen-dente, suportando assim o requisito de escala de internet de múltiplos domínios organizacionais.

• A comunicação entre cliente-servidor deve ser sem estado (stateless) por natureza, de modo que cada solicitação do cliente para o servidor deva conter todas as infor-mações necessárias para entender a solicitação, não podendo aproveitar qualquer contexto armazenado no servidor.

• Para melhorar a eficiência da rede, adicionando restrições de cache forma-se o es-tilo client-cache-stateless-server. As restrições de cache exigem que os dados em uma resposta a uma solicitação sejam rotulados implícita ou explicitamente como armazenáveis ou não em cache. Se uma resposta puder ser armazenada em cache, o cachedo cliente terá o direito de reutilizar esses dados de resposta para solicitações equivalentes posteriores. A vantagem de adicionar restrições de cache é que elas têm o potencial de eliminar parcialmente ou completamente algumas interações, melhorando a eficiência, a escalabilidade e o desempenho percebido pelo usuário, reduzindo a latência média de uma série de interações. O trade-off, no entanto, é que um cache pode diminuir a confiabilidade se os dados obsoletos dentro do cache diferirem significativamente dos dados que seriam obtidos se o pedido tivesse sido enviado diretamente para o servidor.

(33)

2.5. SERVIÇO WEB REST 17

REST define um conjunto de príncipios arquiteturais para a concepção de serviços da web com foco nos recursos de uma aplicação. Um recurso é qualquer informação que possa ser identificada. Também pode ser definido como um mapeamento conceitual para uma ou mais entidades/valores em um determinado instante. REST foi amplamente aceita na web como uma alternativa mais simples a serviços da web com base em SOAP, chegando a ser adotada por provedores convencionais da web, como Yahoo! e Google. A implementação de um serviço web REST no trabalho proposto permitirá que aplicações em qualquer linguagem de programação possam consumir informações acerca dos dados previamente armazenados, sem qualquer detalhe sobre como eles são processados.

(34)
(35)

Capítulo 3

Estado da Arte

Os trabalhos representativos, que se relacionam com este e revelam o estado da arte de big datana saúde, com especial atenção à Saúde Pública e Epidemiologia, foram dividi-dos em três grupos: trabalhos que tratam de big data apresentando seu potencial na saúde, suas implicações, tecnologias, metodologias e frameworks que incluem a camada de aná-lise de dados (tabela 3.1); trabalhos que abordam técnicas de anáaná-lise de séries temporais, aplicadas sobre dados de saúde para atender objetivos específicos, sem mencionar uma infraestrutura de big data (tabela 3.2); e trabalhos que envolvem tanto análise de séries quanto tecnologias de big data, os quais se relacionam diretamente com este.

Concernente ao último grupo, Galicia et al. (2018) elaborou um novo algoritmo, que utiliza a biblioteca do Spark para aprendizagem de máquina, MLlib, no intuito de resol-ver o problema de regressão para vários pontos futuros. O principal objetivo do trabalho desenvolvido foi introduzir uma metodologia que permitesse MLlib ser usada para a pre-dição de séries temporais. A solução apresentada, porém, era específica para o problema de regressão multivariada e funcionava somente junto ao Apache Spark.

(36)

20 CAPÍTULO 3. ESTADO DA ARTE

Tabela 3.1: Trabalhos sobre big data e suas implicações Trabalho Características Limitações

Exploring the path to big data analytics success in healthcare, Wang & Hajli (2017)

Propôs um modelo de va-lor de negócio guiado pela análise de big data. Foi uti-lizada a teoria baseada em recursos e visão de cons-trução de capacidades para explicar como constituir as capacidades analíticas de big data.

Os materiais utilizados fo-ram, principalmente, rela-tórios de fornecedores de TI e institutos de saúde. Havia pouco material aca-dêmico disponível, devido à natureza incipiente da adoção de Big Data na Saúde.

Big data analytics in healthcare: promise and potential, Raghupathi & Raghupathi (2014)

Revisão da análise de big data nos cuidados da saúde. Discutiu benefícios, desafios, esboçou um fra-meworkarquitetural e uma metodologia e descreveu exemplos na literatura.

Concluiu que a análise de big data na saúde é um campo promissor para for-necer insights de grande quantidade de dados e me-lhorar resultados enquanto reduz custos, mas se ba-seou em revisão da litera-tura.

Concurrence of big data analytics and healthcare: A systematic review, Mehta & Pandit (2018)

Selecionou artigos descri-tivos e estudos de usabili-dade da análise de big data na saúde e na medicina, com o objetivo de determi-nar o escopo da análise de big datana saúde.

Revisão da literatura. Con-cluiu que há escassez de informações sobre evidên-cias do uso real da aná-lise de big data na área da saúde.

Towards a Big Data Fra-mework for the Prevention and Control of HIV/AIDS, TB and Silicosis in the Mining Industry, Jokonya (2014)

Propôs um framework inte-grado de big data para au-xiliar na prevenção e con-trole de HIV/AIDS, tuber-culose e silicose na indús-tria de mineração.

Framework construído a partir de uma revisão da li-teratura e não validado.

Privacy-aware Big Data Analytics as a service for public health policies in smart cities, Anisetti (2018)

Propôs um novo processo de criação de políticas pú-blicas assistido por Big Data. Baseou-se na abor-dagem da Análise de Big Data como Serviço, que é conduzida por uma Avali-ação de Conformidade de Privacidade.

Não houve comprovação da efetividade do novo pro-cesso proposto.

(37)

21

Tabela 3.2: Trabalhos que abordam técnicas de análise de dados Trabalho Características

Google-driven search for big data in autoimmune geoepidemiology: Analysis of 394,827 patients with systemic au-toimmune diseases, Ramos-Casals et al. (2015)

Utilizou o motor de busca da Google para coletar e mesclar grandes séries de doen-ças autoimunes sistêmicas, com o obje-tivo de obter a figura geoepidemiológica de alta de definição de cada doença.

Leveraging hospital big data to monitor flu epidemics, Bouzillé & Chazard (2018)

Mostrou que grandes dados de hospitais parecem ter um grande potencial para mo-nitorar epidemias de influenza, além de fornecer características adicionais dos pa-cientes.

A machine learning method to monitor China’s AIDS epidemics with data from Baidu trends, Nan & Gao (2018)

Utilizou dados da engine de pesquisa Baidu para monitorar e prever AIDS na China, utilizando séries temporais men-sais de janeiro de 2011 a junho de 2017. Cloud enabled data analytics and

visua-lization framework for health-shocks pre-diction, Mahmud et al. (2016)

Apresentou um framework de visualiza-ção e análise de dados para predivisualiza-ção de surtos baseado em um dataset de larga es-cala com dados de 1000 lares no Paquis-tão.

Google as a cancer control tool in Queens-land, Huang et al. (2017)

Investigou a correlação potencial de ín-dices de volume de pesquisas de internet mensais (SVIs) e taxas de incidência pa-dronizadas por idade observadas mensal-mente (ASRs) para câncer de mama, cân-cer colorretal, melanoma e câncân-cer de prós-tata.

Real-time predictive seasonal influenza model in Catalonia, Spain Basile (2018)

Projetou um modelo preditivo espacial em tempo real da taxa de incidência de ILI (Influenza Like Illness) na Catalunha usando previsões de uma e duas sema-nas, levando em consideração a distribui-ção geográfica dos surtos durante a tem-porada de influenza de 2015-2016.

(38)

22 CAPÍTULO 3. ESTADO DA ARTE

Ainda com relação ao último grupo de trabalhos, existem algumas soluções para a análise de séries temporais em larga escala:

• A biblioteca Time Series for Spark (spark-ts) (Ryza 2018) foi desenvolvida para resolver problemas e necessidades da área financeira, principalmente. O projeto não é direcionado para uso no ambiente R e, atualmente, não está mais em desenvolvi-mento pelo autor principal. Sua principal limitação é que o algoritmo implementado assume que cada série temporal, de um conjunto de séries, pode ser inteiramente carregada na memória de uma única máquina. De modo geral, essa limitação existe para o carregamento de dados em memória, como é feito no Spark.

• Semelhante ao spark-ts, a biblioteca Flint, desenvolvida pela Two Sigma, propõe a adição de funcionalidades ao Apache Spark para a manipulação de séries tempo-rais. Porém, ela não apresenta funcionalidades para a extração de características e modelagem das séries e está limitada ao uso do Apache Spark.

• O Apache Zeppelin oferece a possibilidade de executar comandos em diversas lin-guagens de programação para realizar análises sobre dados por intermédio de tec-nologias de big data do ecossistema Hadoop. Entretanto, os comandos em R são executados somente junto ao Apache Spark e não há possibilidade de agregação de novas funcionalidades à ferramenta.

• A empresa H2O, presente no Vale do Silício, possui um produto direcionado à aná-lise de séries temporais em ambiente escalável. Entretanto, muitas funcionalidades não são gratuitas.

• A Plataforma de Ciência de Dados Aplicada à Saúde (PCDAS), desenvolvida pela Fio Cruz, oferece acesso a grandes bases de dados da plataforma, permitindo a análise visual de situações de saúde, a extração de subconjuntos de dados de in-teresse dos pesquisadores e o processamento distribuído e escalável. Além disso, oferece a possibilidade de conexão aos dados da plataforma via R Studio Server. A diferença da PCDAS para a ferramenta desenvolvida é que essa última permite o in-cremento de suas próprias funcionalidades de forma colaborativa e completamente customizável; os artefatos produzidos a partir dela podem ser gerados em qualquer formato desejado e todo código necessário para o processamento objetivado pode ser submetido para execução no Hadoop, por exemplo, para a geração dos artefatos gráficos. Inclusive, a ferramenta desenvolvida poderia funcionar junto à PCDAS para acessar dados de saúde. Nesse caso, essa plataforma faria o papel do MBD.

(39)

23

Por fim, tendo em vista os artigos recentes apresentados na tabela 3.1, este trabalho não apresentou a limitação de se basear somente em conceitos teóricos para esboçar um framework. Além de propor um framework de desenvolvimento, este trabalho imple-mentou uma ferramenta com base nele e realizou experimentações práticas para validá-la quanto sua proposta. Com relação às soluções que permitem o processamento de séries temporais usando grandes conjuntos de dados, a partir de scripts em R, a principal li-mitação está na dependência do Apache Spark para o funcionamento, o qual efetua o carregamento de todos os dados em memória para posterior processamento, podendo se apresentar como uma limitação dependendo do tamanho da série. Na ferramenta desen-volvida, o processamento da série temporal é requisitado ao Hadoop. Contudo, não há impedimentos para a adição de plugin para o Apache Spark posteriormente.

(40)
(41)

Capítulo 4

Implementação

Neste capítulo serão explicados os procedimentos e algoritmos implementados para o desenvolvimento da ferramenta colaborativa para análise de dados, com principal aplica-ção na análise de séries temporais.

4.1

Preparação do Ambiente

Como explicado no capítulo 1, foi adotada uma arquitetura composta por três módu-los: Módulo de Big Data, Módulo de Processamento de Dados e Módulo de Transferência de Recursos.

O Módulo de Big Data representa a camada de plataforma e ferramentas, proposta por Raghupathi & Raghupathi (2014), e abriga componentes da arquitetura Hadoop. Para esse módulo, foi realizada a instalação da versão 2.9.2 do Hadoop básico (HDFS, Ma-pReduce e YARN) no modo local/independente (padrão) e Apache Hive versão 2.1.1, em um computador com 4GB de memória RAM, processador Intel Core i3 e, inicialmente, Sistema Operacional (SO) Windows 10. As tentativas de preparação do ambiente que não obtiveram sucesso estão descritas a seguir, assim como as de sucesso, para possivel-mente auxiliar outros pesquisadores que se deparem com a necessidade de preparação de ambiente Hadoop para desenvolvimento de aplicações.

Tendo em vista a implementação da Interface de Big Data, o pacote RHive 2.0, após algumas adaptações do código fonte para funcionamento no Windows, foi adicionado ao R para estabelecer conexão com o Hive e permitir a criação de funções definidas pelo usuário (UDFs). A intenção era escrever quaisquer algoritmos de análise de dados em R, preparar UDFs com eles e executar tais funções no Hadoop, onde são realizadas as operações map e reduce. Entretanto, essa forma de implementação escolhida não foi bem-sucedida. Foram encontrados muitos erros associados à plataforma Windows e à utilização de pacotes do R nas UDFs. Então, optou-se por utilizar um SO Debian a partir de um Subsistema do Windows para Linux (WSL). Nessa instância do Debian, após a instalação de vários programas de desenvolvimento de software, foi compilada, instalada

(42)

26 CAPÍTULO 4. IMPLEMENTAÇÃO

e iniciada a versão 2.7.3 do Apache Ambari para auxiliar no provisionamento do novo ambiente de tecnologias para processamento de grande volume de dados. No entanto, a interface web do Ambari e suas funcionalidades não funcionaram como esperado, devido à baixa capacidade de memória RAM do computador utilizado. Por isso, optou-se por instalar manualmente o Hadoop e o Hive no novo ambiente.

Foram instaladas as versões 2.9.2 e 2.3.4 do Hadoop e Hive, respectivamente, com configurações iguais às efetuadas na tentativa anterior. Desta vez, uma outra solução para o problema de execução de algoritmos genéricos escritos em R foi implementada: os scripts foram executados diretamente no Hadoop por meio do seu recurso de stre-amming, configurado para realizar somente a etapa de mapeamento. Finalmente, essa solução se mostrou favorável para o objetivo pretendido. Foram adicionados dois plu-ginsna Interface de Big Data (IBD), contendo métodos para a manipulação de arquivos no HDFS, utilizando comandos de sistema, e métodos para a execução de consultas com Hive, acessando-o por meio de conexão JDBC.

Com isso, foi implementada a base do framework, que possibilitou desenvolver e testar as demais funcionalidades que compõem o Módulo de Processamento de Dados, as quais, por sua vez, não são específicas para manipulação de grande volume de dados. Elas foram incluídas para a criação/atualização de séries temporais e execução de script que realiza operações e testes estatísticos com os dados das séries, no intuito de obter suas caracterís-ticas. O script para extração de características apresenta código em R semelhante ao que seria executado localmente com poucos dados. A diferença está na utilização de funções da IBD para operações que envolvem persistência e leitura de dados (no ambiente de big data).

4.2

Os Plugins

Os plugins são arquivos em R, adicionados no repositório de códigos do projeto. Esses seguem o seguinte padrão:

• Os nomes dos métodos são no formato [nome do plugin].[nome do método]; • Implementam um método [nome do plugin].def que retorna uma lista de

pa-râmetros das funções públicas, ou seja, daquelas que estarão disponíveis na API web. As demais poderão ser chamadas apenas por outros plugins. Cada parâmetro é definido como uma lista e tem os seguintes itens:

– func: nome da função; – name: nome do parâmetro; – desc: descrição do parâmetro;

– type: tipo de dado do parâmetro. Os tipos aceitos são os mesmos do pacote plumber: text, int, bool, logical, double ou numeric;

(43)

4.2. OS PLUGINS 27

– required: FALSE para parâmetro não obrigatório e TRUE para parâmetro obri-gatório;

– out: tipo de dado de saída: json, html, png, jpeg ou qualquer outro tipo de conteúdo html desejado a ser devolvido na resposta HTTP;

Os plugins da Interface de Big Data são o hdfs, que contém funções para interação com o HDFS e outros recursos do Hadoop, e o hive. As funções de ambos plugins estão descritas abaixo:

• hdfs.get: Obtém um arquivo do HDFS.

• hdfs.echo: Escreve um texto em um arquivo do HDFS. • hdfs.put: Salva um arquivo no HDFS.

• hdfs.list: Lista os arquivos de um determinado diretório. • hdfs.remove: Remove um arquivo.

• hdfs.test: Verifica se um arquivo existe. • hdfs.cat: Retorna o conteúdo de um arquivo.

• hdfs.streaming: Utiliza o recurso de streamming do Hadoop para criar um job MapReduce que executa na etapa de mapeamento o script completo informado. Não há etapa de redução. Além do script, devem ser informados como parâmetros os arquivos de entrada e saída do job.

• hive.persist: Realiza operações de persistência nos dados gerenciados pelo Hive. Todos eles se tratam de séries temporais.

• hive.tables: Lista as séries/tabelas existentes.

• hive.query: Realiza consultas sobre as séries temporais na linguagem HiveQL. • hive.drop: Remove uma série caso exista.

• hive.create: Cria uma tabela/série com campos delimitados por caractere. • hive.load_from_local: Importa dados de um arquivo para uma tabela/série. • hive.get: Retorna os dados de uma série durante o período informado.

(44)

28 CAPÍTULO 4. IMPLEMENTAÇÃO

Foram implementados dois plugins com funções públicas que desempenham proces-samentos sobre séries temporais. O plugin tabnet contém a função tabnet.importar, que permite a importação de arquivos do TABNET com conteúdo em texto delimitado por ponto e vírgula, conforme exemplificado na figura 4.1.

Figura 4.1: Arquivo exportado do TABNET.

O plugin serie adiciona as seguintes funções:

• serie.importar: cria uma série temporal a partir de arquivo delimitado por ponto e vírgula. Nesse arquivo, cada linha contém uma data e um valor inteiro ou deci-mal. Para execução da função, caso seja informado o nome de uma série existente, os dados do arquivo são acrescidos aos dados da série existente, salvo quando o parâmetro "sobrescrever"é igual a "S";

• serie.listar: lista as séries existentes;

• serie.print: lista os valores de uma determinada série durante o período infor-mado;

• serie.plot: plota em gráfico a série do período informado, salva no HDFS e retorna a imagem PNG;

• serie.razao: cria uma nova série temporal igual a razão entre outras duas, po-dendo ser aplicado um inteiro multiplicador.

• serie.resumo: mostra o sumário da série, obtido com o comando summary do R; • serie.caracteristicas: processa as características da série durante o período

desejado. Após o recebimento da requisição, um processo assíncrono é iniciado. Desse modo, o serviço responde com mensagem informando que está processando

(45)

4.2. OS PLUGINS 29

a requisição e continua seu processamento. Após o término, caso seja recebida nova requisição, o serviço mostra o resultado do processamento; ressalvando os casos em que o parâmetro "reprocessar"é preenchido com "S".

• serie.caracteristicas.grafico: mostra um resultado gráfico obtido no pro-cessamento das características de uma determinada série.

• serie.correlacaocruzada: cria e retorna um gráfico de correlação cruzada entre duas séries temporais.

Todos as funções especificadas na definição dos plugins (retorno da função "[plu-gin].def") são inclusas na API web REST componente do Módulo de Transferência de Recursos. A API foi criada com o pacote plumber (Allen 2015), o qual faz uso do Swag-ger UI: uma interface, ou documentação visual, Swag-gerada automaticamente a partir de sua especificaçao OpenAPI. Ela permite visualizar e interagir com os recursos da API, ou seja, com cada uma das funções públicas acrescentadas nos plugins, como pode ser visualizado na figura 4.2.

(46)

30 CAPÍTULO 4. IMPLEMENTAÇÃO

De forma sucinta, o algoritmo que transforma as funções existentes nos plugins em recursos da ferramenta disponíveis para uso por sistemas externos/clientes, funciona da seguinte forma: obtém todas as funções declaradas em todos os plugins e relaciona cada uma delas com o respectivo plugin por meio do nome padronizado "[nome do plu-gin].[nome do método]". Após isso, verifica quais delas estão na função de definição "[nome do plugin].def". Para as que estão, guarda o tipo de dado de saída e os nomes dos parâmetros informados e usa-os para adicionar dinamicamente os pontos de término (endpoints) do serviço web, iniciando-o em seguida.

(47)

Capítulo 5

Resultados e Discussões

Este capítulo descreve o processo de validação da ferramenta resultante do presente trabalho, que teve por base sua utilização na construção de séries temporais correspon-dentes a indicadores epidemiológicos da sífilis e subsequente extração de características estatísticas das séries. Além do processo de validação, são discutidas a experiência de uso e as principais particularidades da ferramenta desenvolvida que se relacionam com a problemática exposta no capítulo 1.

Foram utilizados dados obtidos do TABNET: um tabulador de domínio público, de-senvolvido pelo Datasus, que possibilita consultar as bases de dados do Sistema Único de Saúde (SUS). Os dados correspondem aos quantitativos mensais, entre 2007 e 2017 no Brasil, de: casos confirmados de sífilis em gestantes e sífilis congênita, notificados no SINAN, por mês e ano de diagnóstico; nascidos vivos, registrados no SINASC; e óbi-tos em menores de um ano por sífilis congênita (CID-10: A50) por mês e ano de óbito, registrados no SIM.

Com isso, a partir da ferramenta foram realizados os seguintes procedimentos: 1. Criação das séries temporais que serão utilizadas como parâmetro na construção

dos indicadores, por meio da função tabnet.importar;

2. Obtenção da série correspondente ao indicador desejado, a partir da execução da função serie.razao;

3. Extração das características estatísticas do indicador, ao longo do tempo, por meio da execução da função serie.caracteristicas;

4. Consulta das características e gráficos produzidos (métodos serie.caracteristicas e serie.grafico).

A ferramenta foi acessada localmente pela URL "http://127.0.0.1:8000/__swagger__/"em um navegador de internet, no qual foram realizadas todas as operações de uso. A interface do swagger permitiu interagir facilmente com todos os recursos da API, informando os parâmetros solicitados para cada função e obtendo as respostas, conforme demonstrado na figura 5.1.

(48)

32 CAPÍTULO 5. RESULTADOS E DISCUSSÕES

Figura 5.1: Parâmetros do recurso serie.caracteristicas.

O software permitiu a importação de séries temporais, a partir de arquivos no formato de texto exportado pelo TABNET, por meio da função tabnet.importar. Essa função converte o arquivo no formato de texto exportado do TABNET em arquivo no formato esperado pela função serie.importar, a qual de fato insere os dados da série temporal que se deseja construir.

Observa-se que o plugin do TABNET representa uma funcionalidade associada a um conhecimento específico, que não tem relação com processamento de grande volume de dados ou séries temporais, mas que igualmente compõe a ferramenta, o que corrobora sua característica de ser inteiramente customizável e consentir cooperação independente do conhecimento do autor com relação a big data.

(49)

33

Figura 5.2: Sífilis congênita em menores de um ano de 2007 a 2017 no Brasil.

(50)

34 CAPÍTULO 5. RESULTADOS E DISCUSSÕES

Figura 5.4: Nascidos vivos no Brasil de 2007 a 2017.

(51)

35

A função serie.razao foi utilizada para aplicar as fórmulas da tabela 5.1, as quais foram extraídas do Boletim Epidemiológico da Sífilis (Brasil 2018b). Ela permite obter a razão entre duas séries temporais e aplicar um multiplicador na série resultante. Junto à função serie.importar, que possibilita adicionar novos valores de séries temporais já existentes na plataforma, essas funções formam um importante componente da aná-lise de séries temporais, que é a etapa de manipulação, oferecida por bibliotecas como flinte spark-ts, implementadas para o Apache Spark. Na ferramenta desenvolvida as operações de manipulação de séries são executadas com auxílio do Apache Hive.

Tabela 5.1: Indicadores epidemiológicos para monitoramento da sífilis.

Indicador Equação

Taxa de detecção de sífilis em gestantes no Brasil

casosDeSi f ilisEmGestantes totalNascidosVivos · 1000

(5.1)

Taxa de incidência de sífilis congênita em menores de um ano no Brasil

casosDeSi f ilisCongenita

totalNascidosVivos · 1000 (5.2)

Coeficiente de mortalidade por sífilis con-gênita em menores de um ano no Brasil

obitosPorSi f ilisCongenita

totalNascidosVivos · 100000 (5.3)

As características estatísticas das séries construídas, correspondentes aos indicadores epidemiológicos, foram obtidas para o período de 2007 a 2017. Para tanto, foi utilizada a função serie.caracteristicas, a qual criou e executou um job map/reduce no ambi-ente Hadoop para execução do script em R que gerou as características da tabela 5.2. O scriptcompleto é executado no ambiente de big data, sem troca de dados intermediários com o requisitante da execução do job.

Referências

Documentos relacionados

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Os ativos não circulantes classificados como disponível para venda são mensurados pelo menor montante entre o seu custo contábil e o seu valor justo, líquido das despesas com a

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Os casos não previstos neste regulamento serão resolvidos em primeira instância pela coorde- nação do Prêmio Morena de Criação Publicitária e, em segunda instância, pelo

ed è una delle cause della permanente ostilità contro il potere da parte dell’opinione pubblica. 2) Oggi non basta più il semplice decentramento amministrativo.

O prescritor pode facultar, ao utente, uma guia de tratamento que contém a mesma informação da mensagem ou email e, ainda, informação adicional, como a informação

A sistemática de se determinar a geração de viagens utilizando-se taxas definidas pelos diversos métodos a partir de pesquisas de O/D, incorrem no problema de utilização

da quem praticasse tais assaltos às igrejas e mosteiros ou outros bens da Igreja, 29 medida que foi igualmente ineficaz, como decorre das deliberações tomadas por D. João I, quan-