Quantcast
Channel: Blog do Mauro Pichiliani » análise
Viewing all articles
Browse latest Browse all 5

Analisando a frequência cardíaca (BPM)

$
0
0

Figura1_capaA frequência cardíaca medida por meio de Batimentos por Minuto (BPM) é uma das métricas que vem sendo muito utilizadas por diversos dispositivos, incluindo os wearables. Neste post vou falar um pouco sobre que tipo de análise e o que é possível fazer com estes dados.

Figura2_apple-watchAssim como diversos outros tipos dados coletados por sensores, os dados fornecidos por um medidor cardíaco tal como um smartwatch ou uma cinta específica para quem faz exercícios aeróbicos podem ser analisados e utilizados de diversas maneiras. Portanto, o que vou comentar neste post é útil tanto para os dados de BPM como para outros tipos de sensores que produzem dados mais ou menos no mesmo formato, sejam eles coletados em projetos que envolvam wearables ou iOT (Internet of Things).

Print

Do ponto de vista técnico, os dados de BPM coletados são tratados por meio de uma disciplina chamada de processamento digital de sinais, ou DSP. Existem muitas teorias, algoritmos e técnicas desta área que podem ajudam quem deseja lidar com este tipo de dado. Recomendo para quem se interessar por isso procurar se aprofundar nesta área, pois existe muita coisa legal que pode ser feita a partir da quantidade de conhecimento acumulada sob a sigla DSP.

Considerando que já obtemos os dados brutos de BPM a partir de um sensor, a primeira coisa que precisamos fazer é uma limpeza para obter somente dados válidos e, por exemplo, eliminar valores negativos ou que estejam muito fora da escala esperada para um batimento cardíaco humano. O segundo passo, dependendo de algumas característicos do conjunto de dados, é considerar algum tipo de tratamento tal como um filtro de Kalman ou semelhante. Depois destes passos podemos pensar em começar a analisar mais de perto os dados.

Apesar da métrica se chamar BPM é comum os dispositivos e sensores coletarem os dados em uma frequência menor como, por exemplo, uma mediação por segundo. Uma vez que os dados já tenho sido processados e armazenados adequadamente recomenda-se dar uma olhada por cima em sua distribuição através de um gráfico de linha onde coloca-se no eixo X a unidade de tempo e no eixo Y o valor BPM obtido. Observar os dados desta maneira ajuda a compreendê-los melhor, nem que seja apenas uma parcela do total de dados.

Figura4_healthy-hrUma das primeiras análises que pode ser feita nos dados BPM é descobrir onde estão os picos mais altos e os valores mais baixos. Isso pode ser associado com algum tipo de evento que aconteceu no mesmo momento e, inclusive, diversas aplicações usam esta abordagem para criar gatilhos ou ações quando certo patamar ou pico de dados for alcançado. Por exemplo: regras do tipo “se o BPM for maior que 120 emitir aviso de ‘faça uma pausa de 5 minutos’” são comuns em aplicações, considerando que uma alta frequência cardíaca pode estar relacionada a um alto nível de nervosismo ou stress. Sem contar a análise para exercícios que indica a faixa adequada de BPM.

Depois da análise de picos também é importante obter medidas de centralidade como a média, mediana, moda e calcular a variância. Tais medidas gerais pode sem acompanhadas de teste de distribuição (especialmente a distribuição normal) para ajudar a compreender os dados. A partir deste ponto já é possível utilizar técnicas de análises um pouco mais avançadas.

Uma técnica de mineração de dados para classificação automática em grupos, tal como o K-means, pode ser muito útil para identificar, por exemplo, quanto tempo por dia a pessoa está com uma alta frequência cardíaca. A figura abaixo, obtida a partir dos dados coletados no meu experimento com o Android, mostra como foi classificada uma série de dados BPM em três categorias (baixo BPM, BPM médio e alto BPM) representadas pelo uso de cores diferentes nos pontos do gráfico.

Figura5_DadosClusterizados

Outra análise possível é identificar se há uma certa repetição (padrão) na frequência. Neste ponto já estamos entrando em análises de séries temporais (time series) que já contam com diversos algoritmos da literatura para análise, classificação e predição.

Figura6_TiposSerieTemporal

Existem alguns algoritmos que permitem identificar um ou mais motifs, que nada mais são do que padrões para a série temporal. No caso do BPM este tipo de padrão pode ser associado com outros dados como, por exemplo, a atividade que a pessoa estava realizado ou o local por onde ela passou (obtido por dados de um GPS).

Além da descoberta de padrões também é interessante classificar a série temporal de dados BPM em uma sequência de caracteres, tal como o resultado do algoritmo iSAX. Com diversas séries temporais representadas por uma sequência de caracteres é possível empregar outros algoritmos de machine learning (Apriori, Clustering, LCS, etc) que permitem comparar uma série com outra. Tal comparação pode indicar, por exemplo, se a hora de ida ao trabalho (6h -> 7h) é tão estressantes quanto o horário da volta (18h -> 17h).

Figura7_sax

A partir dos dados de BPM é possível gerar a quantidade de calorias gastas. Para isso geralmente é preciso contar com algum tipo de modelo representado por uma equação, tal como esta aqui. O cálculo deste tipo de dado derivado também requer a idade, o peso, o sexo da pessoa e o tempo total medido. De qualquer forma, a análise de calorias permite comparações e indicações para dizer, por exemplo, que o tempo que a pessoa ficou em uma reunião foi o suficiente para gastar a quantidade de calorias equivalentes às calorias ingeridas pelo consumo de um bombom.

Por fim, também é possível utilizar a série de dados BPM para gerar previsões, apesar deste tipo de análise não ser comum devido aos diversos fatores externos que podem tornar a previsão não tão interessante. Por exemplo, usando as ferramentas de API do Eureqa é possível gerar um modelo de dados prevendo (baseado nos dados históricos) que na próxima semana o usuário vai ficar muito nervoso ou estressado pelo menos um dia da semana e recomendar algum tipo de atividade para aliviar ou amenizar este stress.




Viewing all articles
Browse latest Browse all 5