Detectar cuándo intervenir, no predecir depresión.
Detect when to intervene, not predict depression.
El primer dataset público multi-año de sensorización pasiva en salud mental, desarrollado por la Universidad de Washington. Durante 4 años consecutivos (2018–2021) recogió datos de smartphones y Fitbit de estudiantes universitarios: actividad, sueño, movilidad y uso del móvil, junto con cuestionarios clínicos de depresión.
El objetivo era construir un sistema que detectara depresión a partir del comportamiento, sin depender de que el paciente la reportara.
The first multi-year public dataset of passive sensing in mental health, developed by the University of Washington. Over 4 consecutive years (2018–2021) it collected smartphone and Fitbit data from university students: activity, sleep, mobility and phone use, alongside clinical depression questionnaires.
The goal was to build a system that could detect depression from behavior, without relying on patient self-report.
Los autores publicaron junto al dataset un benchmark de 18 algoritmos. El mejor llegó al 54.7% de precisión, apenas 9.7 puntos sobre predecir al azar. La caída respecto a los resultados que esos mismos algoritmos reportaban en sus papers originales fue de casi 19 puntos. La conclusión de los propios autores: el factor que más rompe los modelos no es técnico, son las diferencias individuales. Lo que para una persona es señal de deterioro, para otra es su estado habitual.
The authors published a benchmark of 18 algorithms alongside the dataset. The best reached 54.7% accuracy, only 9.7 points above random. The drop compared to the results those same algorithms reported in their original papers was almost 19 points. The authors' own conclusion: the factor that breaks models the most is not technical — it's individual differences. What for one person is a deterioration signal, for another is their normal state.
Cambia la pregunta. En lugar de "¿se parece esta persona a alguien deprimido?", pregunta "¿se está esta persona alejando de su propio patrón?". Cada paciente es su propia referencia. El sistema toma dos decisiones, no una. Primero, sobre quién puede operar de forma fiable: durante las primeras semanas construye un baseline individual y evalúa si es estable; mientras no lo sea, el usuario permanece en background sin disparar alertas, y el sistema reevalúa periódicamente hasta que el patrón se estabilice. Solo sobre los usuarios con baseline fiable, monitoriza desviaciones sostenidas y convergentes en tres dimensiones conductuales: activación, ritmo y uso pasivo. Cuando el patrón propio se rompe, dispara la decisión de intervención.
It changes the question. Instead of "does this person look like someone depressed?", it asks "is this person drifting away from their own pattern?". Each patient is their own reference. The system makes two decisions, not one. First, who it can operate on reliably: during the first weeks it builds an individual baseline and evaluates whether it is stable; while it is not, the user stays in the background without triggering alerts, and the system reevaluates periodically until the pattern stabilizes. Only over users with a reliable baseline, the system monitors sustained convergent deviations across three behavioral dimensions: activation, rhythm and passive use. When the personal pattern breaks, the intervention decision is triggered.
El dataset y los conceptos del proyecto
The dataset and project concepts
GLOBEM recogió datos durante cuatro años consecutivos, una cohorte de estudiantes universitarios cada año: 2018, 2019, 2020 y 2021. Identificadas como INS-W_1, INS-W_2, INS-W_3 e INS-W_4. Cada participante generó datos diarios a través de su smartphone y un Fitbit, organizados en seis sensores: actividad física, sueño, localización, uso de pantalla, llamadas y proximidad por WiFi/Bluetooth.
El proyecto usa los cuatro primeros. Los dos últimos se descartan: tienen demasiados datos faltantes o son señales ruidosas que confundirían al modelo.
GLOBEM collected data during four consecutive years, one cohort of university students per year: 2018, 2019, 2020 and 2021. Identified as INS-W_1, INS-W_2, INS-W_3 and INS-W_4. Each participant generated daily data through their smartphone and a Fitbit, organized into six sensors: physical activity, sleep, location, screen use, calls and WiFi/Bluetooth proximity.
The project uses the first four. The last two are discarded: they have too much missing data or are noisy signals that would confuse the model.
Esos cuatro sensores se agrupan en tres dimensiones que capturan aspectos distintos del comportamiento de una persona.
Activación: cuánto se mueve y cuánto sale de casa. La construyen los datos de actividad física y localización.
Ritmo: cómo de regulares son sus patrones diarios. La construyen los datos de sueño.
Uso pasivo: cómo se relaciona con el móvil. La construyen los datos de pantalla. El sistema vigila las tres a la vez. El deterioro real rara vez se manifiesta en una sola dimensión: aparece como un cambio sostenido y convergente en al menos dos.
Those four sensors are grouped into three dimensions that capture different aspects of a person's behavior.
Activation: how much they move and how much they leave home. Built from physical activity and location data.
Rhythm: how regular their daily patterns are. Built from sleep data.
Passive use: how they interact with their phone. Built from screen data. The system monitors all three at once. Real deterioration rarely manifests in a single dimension: it appears as a sustained, convergent change in at least two.
El dataset no entrega los datos crudos del sensor. Entrega features ya procesadas que resumen el comportamiento de los últimos N días. Por ejemplo, el número medio de pasos diarios de los últimos 7 días, o la duración media del sueño de los últimos 14.
Esas ventanas se llaman 7dhist y 14dhist. El proyecto trabaja con las de 7 días, no con las de 14. Razón: las de 14 días requieren que cada participante tenga al menos 14 días previos de datos válidos antes de poder calcular cualquier cosa, lo que reduce mucho el número de personas elegibles. Las de 7 días son menos profundas pero permiten incluir más participantes.
The dataset does not deliver raw sensor data. It delivers pre-processed features that summarize behavior over the last N days. For example, average daily step count over the last 7 days, or average sleep duration over the last 14.
Those windows are called 7dhist and 14dhist. The project works with 7-day windows, not 14-day. Reason: 14-day features require each participant to have at least 14 prior days of valid data before any computation, which significantly reduces the number of eligible people. 7-day features are less deep but allow including more participants.
Antes de poder detectar que alguien se está desviando, hay que saber cuál es su normal. El proyecto define el baseline como el patrón conductual medio de cada persona durante sus primeras tres semanas en el estudio. Cada persona es su propia referencia: no se compara con otros, se compara consigo mismo.
A partir de ese baseline, cada día posterior se traduce en una distancia respecto a su propio patrón normal. Esa distancia, medida en desviaciones típicas individuales, es el z-score intra-sujeto. Cuando el z-score se mantiene alto durante varios días seguidos en al menos dos de las tres dimensiones, el sistema considera que hay deterioro.
Before being able to detect that someone is drifting, you need to know what their normal is. The project defines the baseline as each person's average behavioral pattern during their first three weeks in the study. Each person is their own reference: not compared to others, compared to themselves.
From that baseline, each subsequent day translates into a distance from their own normal pattern. That distance, measured in individual standard deviations, is the intra-subject z-score. When the z-score stays high for several consecutive days in at least two of the three dimensions, the system flags deterioration.
Marco metodológico
Methodological framework
Cada persona actúa como su propio grupo de control. El análisis no parte de comparar a un individuo con una población de referencia, sino de observar su evolución a lo largo del tiempo y construir una línea base de funcionamiento habitual.br
Sobre esa trayectoria individual, el objetivo es identificar desviaciones sostenidas respecto a su patrón basal: cambios en conducta, ritmo o estabilidad que indiquen que la persona empieza a alejarse de su funcionamiento esperado.
Each person acts as their own control group. The analysis does not start by comparing an individual to a reference population, but by observing their evolution over time and building a baseline of habitual functioning.
On top of that individual trajectory, the goal is to identify sustained deviations from the baseline pattern: changes in behavior, rhythm or stability that indicate the person is starting to drift from expected functioning.
A partir de la línea base de cada participante, se monitorizan desviaciones persistentes, cambios de tendencia y posibles puntos de cambio que indiquen el inicio del deterioro conductual.
Baseline individual por sujeto, z-score intra-sujeto, run rules de persistencia, convergencia multivariable y CUSUM/EWMA para señales de deterioro sostenido. Change point detection (BOCPD, PELT) para localizar el inicio del deterioro.
From each participant's baseline, persistent deviations, trend changes and possible change points are monitored to flag the onset of behavioral deterioration.
Individual baseline per subject, intra-subject z-score, persistence run rules, multivariable convergence and CUSUM/EWMA for sustained deterioration signals. Change point detection (BOCPD, PELT) to locate the onset of deterioration.
Estado del proyecto
Project status
Bloques del proyecto
Project blocks
Cada bloque cierra con cuatro preguntas no negociables — decisión, renuncia, uso real, trade-off — y documenta las lecturas técnicas que lo sustentan. Este es mi sistema de control: si un bloque no responde a las cuatro, no se cierra.
Each block closes with four non-negotiable questions — decision, trade-off given up, real-world use, trade-off accepted — and documents the technical readings that support it. This is my control system: if a block does not answer all four, it does not close.
ruptures).ruptures).src/api/main.py)pytestdocker compose up). La lógica de cálculo (z-scores, SPC, alertas) queda accesible programáticamente vía API para integración futura con otros sistemas (apps clínicas, dashboards hospitalarios, EHR).docker compose up). Computation logic (z-scores, SPC, alerts) remains programmatically accessible via API for future integration with other systems (clinical apps, hospital dashboards, EHR).Bibliografía consolidada
Consolidated references
Las lecturas se distribuyen dentro de cada bloque para mostrar qué sustenta cada decisión. Esta sección recoge el índice consolidado, ordenado por para qué sirve cada fuente.
Readings are distributed within each block to show what supports each decision. This section collects the consolidated index, ordered by what each source is used for.
ruptures. El algoritmo offline que se usará en la fase de análisis retrospectivo de trayectorias.ruptures library. The offline algorithm that will be used in the retrospective trajectory analysis phase.Glosario
Glossary
El notebook técnico documenta cada decisión implementada. El análisis exploratorio, la construcción del baseline y el pipeline de features están disponibles en GitHub.
The technical notebook documents every decision that was implemented. The exploratory analysis, baseline construction, and feature pipeline are available on GitHub
Ver notebook en GitHub → View the notebook on GitHub → Actualizado a medida que avanzan los bloques Updated as the blocks progress