Трекеры активности сделали внутреннюю работу нашего тела доступной для всех, кто хочет их носить и хочет больше знать о своей частоте сердечных сокращений в состоянии покоя, режимах сна и результатах упражнений. В некоторых случаях эти трекеры даже спасали жизни. То, как мы собираем огромные объемы данных, действительно вдохновляет, но можем ли мы получить больше от наших Fitbits, часов Apple и Garmin? К сожалению, для большинства это может быть скорее развлекательным устройством, чем полезным инструментом для здорового населения. Что вы делаете с записанными данными за сотни ночей? Вносили ли вы изменения в режим сна на основе процента времени бодрствования, отображаемого на ваших часах? Вы серьезно относитесь к своему пульсу в состоянии покоя и предпринимаете шаги, чтобы его снизить?

Давайте посмотрим на эти вопросы с точки зрения науки о данных. Носимые устройства непрерывно собирают физиологические измерения и генерируют гигабайты данных каждую минуту. Fitbit сообщает, что у них зарегистрировано более 150 миллиардов часов сердечного ритма и более 6 миллиардов записанных ночей человеческого сна.

Хотя эти данные чрезвычайно полезны для сбора информации на уровне населения, как ваш личный анализ может помочь вам в улучшении жизни? Вся информация находится у вас под рукой (или на вашем запястье), и мы можем сделать ее действенной.

Если у вас есть Fitbit, вот пример того, как вы можете использовать частоту сердечных сокращений своего тела в состоянии покоя в качестве карты, чтобы выявить любые закономерности, выбросы и время для изменений.

Получите собственные данные Fitbit

Первый шаг - загрузить ваши собственные данные из Fitbit с помощью пакета fitbitr (используйте devtools :: install_github (teramonagi / fitbitr)). Вам нужно будет получить собственный токен (см. Инструкции здесь).

token <- fitbitr::oauth_token(language = "en_US")

Пульс в течение всего дня

Предположим, мы хотим начать с загрузки данных о вашей ежедневной частоте пульса за 5 дней января:

df_hr <- get_heart_rate_intraday_time_series_multiple(token = token, date_start = "2020-01-05", date_end = "2020-01-10")
df_hr$time <- times(df_hr$time)
kable(head(df_hr)) %>% kable_styling(position = "center", full_width = F)

Теперь давайте посмотрим на график зависимости вашего пульса от времени суток:

breaks2 <- c(0.0000000, 0.2500000, 0.500000, 0.7500000, 0.9999999)
labels2 <- times(breaks2)
ggplot(df_hr, aes(x = time, y = value, col = as.factor(day))) + 
  geom_line(alpha = 0.7) +
  scale_x_continuous(labels = labels2, breaks = breaks2) +
  ylab("Heart rate") +
  guides(color = guide_legend(title = "Date")) +
  theme_bw()

Мы можем заметить, что частота пульса низкая ночью, а затем колеблется в течение дня в зависимости от активности. Однако его может быть трудно интерпретировать, не углубляясь во временные ряды и обработку физиологических сигналов.

Мы будем использовать пульс в состоянии покоя (ЧСС), который считается моментальным снимком того, как работает ваша сердечная мышца. К счастью для нас, Fitbit использует собственный алгоритм для расчета RHR, и он доступен через их API:

rhr <- get_activity_time_series(token, "restingHeartRate", date = as.character(Sys.Date()), period = "max")
rhr$dateTime <- as.Date(rhr$dateTime)
rhr$value <- as.numeric(rhr$value)
ggplot(rhr, aes(x = dateTime, y = value)) +
  geom_line(col = "gray") +
  stat_smooth(aes(x = dateTime, y = value), method = "lm", formula = y ~ poly(x, 21), se = FALSE) +
  theme_bw() + 
  ylab("RHR") + 
  xlab("")

Мы видим, что здесь есть некоторая периодичность и структура, но трудно сказать, что влияет на RHR, не глядя на дополнительные данные. На это влияет сон? По обучению? По диете? Хотя было бы действительно полезно посмотреть на агрегированные данные от многих людей (и мы делаем это в InsideTracker!), Здесь мы рассматриваем пример «n из 1».

Когда я комбинирую сон и частоту сердечных сокращений, я могу рассчитать еженедельную оценку сна (формулы и код здесь не показаны) и увидеть тенденцию:

Конечно, нам нужно гораздо больше данных, чтобы сделать выводы, но этот предварительный анализ выглядит многообещающим и предполагает, что может существовать корреляция между качеством сна и RHR. И это создает возможности для улучшения: довольно легко внести изменения в привычки сна, которые могут привести к общему улучшению здоровья.

Есть множество других факторов, влияющих на вашу относительную частоту сердечных сокращений и спортивные результаты. В прошлом месяце я работал над сном и диетой, и уже вижу некоторые улучшения. Мне интересно, как простые изменения и забавная статистика могут помочь вам в архивировании ваших целей и, наконец, понять смысл всех данных, генерируемых вашими часами.

Об авторе / докладчике ODSC East:

Светлана Виноградова, специалист по данным в Inside Tracker, возглавляет группу Data Science по интеграции биомаркеров крови и данных ДНК с физиологическими данными трекеров активности для улучшения рекомендаций по образу жизни и выявления новых закономерностей и оптимальных зон в сне, частоте сердечных сокращений и биомаркерах крови.

До Inside Tracker Светлана была научным сотрудником в онкологическом институте Даны Фарбер и Гарвардской медицинской школе, где она работала биоинформатиком, разрабатывая статистические методы для изучения эпигенетических механизмов, влияющих на экспрессию генов.

Светлана имеет докторскую степень в области биоинформатики и математической биологии Московского государственного университета им. М.В. Ломоносова. Во время получения докторской степени она работала над разработкой алгоритмов для изучения вторичных структур РНК, а также с удовольствием преподавала и разрабатывала биоинформатику, алгоритмы и курсы R-программирования.