AI-моніторинг психічного стану через носимі пристрої
Пацієнти з хронічним стресом часто не помічають погіршення до кризи. Носимі пристрої — Apple Watch, Garmin, Oura Ring — фіксують фізіологію (ЧСС, HRV, ЕКС), але сирі дані безкорисні без інтелектуальної інтерпретації. Наша команда з 7+ років досвіду в AI/ML для healthcare розробляє системи, які перетворюють сирі сенсорні потоки в інтерпретовані метрики стресу та тривоги. Ключова проблема — міжперсональна варіабельність: RMSSD = 30 мс може бути нормою для одного і сигналом тривоги для іншого. Без персоналізації моделі помиляються в 40% випадків. Ми пропонуємо рішення, яке адаптується під кожного користувача за 2 тижні збору даних. Результат — AUC 0.82–0.88 на тестах, що на 15–20% краще єдиних моделей. Оцінимо ваш проєкт за 2 дні і запропонуємо рішення під ключ. Зв'яжіться з нами для попереднього аналізу.
Фізіологічні маркери психічного стану
Вегетативна нервова система (ВНС) безпосередньо відображає стрес-відповідь. Симпатична активація веде до тахікардії, зниження HRV, посилення потовиділення та підвищення температури шкіри. Ключові біомаркери зведено в таблицю:
| Біомаркер | Фізіологічний сенс | Індикатор стресу |
|---|---|---|
| RMSSD (HRV) | Парасимпатичний тонус | Зниження = стрес |
| LF/HF ratio | Симпато-вагальний баланс | Зростання = симпатична активація |
| EDA tonic (SCL) | Базовий рівень збудження | Підвищення при хронічному стресі |
| EDA phasic (SCR) | Гострі реакції | Частота та амплітуда зростають |
| Периферична температура | Вазоконстрикція | Зниження при симпатичній активації |
| Актиграфія | Рухова активність | Неспокій, порушення сну |
Feature Engineering з фізіологічних даних
HRV фічі в часовій та частотній областях:
def compute_hrv_stress_features(rr_intervals_ms, window_sec=300): """ 5-хвилинне вікно — стандарт для HRV аналізу (Task Force) """ rr = np.array(rr_intervals_ms) # Часові метрики time_features = { 'rmssd': np.sqrt(np.mean(np.diff(rr)**2)), 'sdnn': np.std(rr), 'pnn50': np.mean(np.abs(np.diff(rr)) > 50), 'mean_rr': np.mean(rr), 'cv_rr': np.std(rr) / np.mean(rr) # coefficient of variation } # Частотні метрики (PSD через Welch) from scipy.signal import welch f, psd = welch(rr - np.mean(rr), fs=4.0, nperseg=256) # upsampled to 4 Hz lf_mask = (f >= 0.04) & (f < 0.15) hf_mask = (f >= 0.15) & (f < 0.40) lf_power = np.trapz(psd[lf_mask], f[lf_mask]) hf_power = np.trapz(psd[hf_mask], f[hf_mask]) freq_features = { 'lf_power_ms2': lf_power, 'hf_power_ms2': hf_power, 'lf_hf_ratio': lf_power / (hf_power + 1e-8), 'total_power': np.trapz(psd, f) } return {**time_features, **freq_features} EDA обробка з використанням neurokit2:
import neurokit2 as nk def process_eda_signal(eda_raw, sampling_rate=64): """ neurokit2: розкладання EDA на tonic (SCL) + phasic (SCR) компоненти """ signals, info = nk.eda_process(eda_raw, sampling_rate=sampling_rate) return { 'scl_mean': signals['EDA_Tonic'].mean(), 'scr_count': len(info['SCR_Onsets']), # число гострих стрес-реакцій 'scr_amplitude_mean': signals['SCR_Amplitude'].mean(), 'scr_recovery_time': signals['SCR_RecoveryTime'].mean() } Як AI аналізує дані носимих пристроїв?
Ми будуємо бін-класифікатори стресу на основі Random Forest або XGBoost, використовуючи комбінацію HRV, EDA та актиграфії. Моделі навчаються на публічних датасетах (WESAD, DEAP) з подальшою адаптацією під цільову популяцію через transfer learning. Для продакшену застосовуємо ONNX Runtime з INT8-квантизацією — latency p99 < 50 мс на пристрої.
Чому персоналізований baseline критичний?
Абсолютне значення RMSSD = 30 мс може бути нормою для однієї людини і низьким для іншої. Ми використовуємо ковзне середнє за 2 тижні для кожного користувача:
def personalized_stress_score(current_hrv, personal_baseline_hrv): """ Відносне відхилення від персонального baseline Більш інтерпретовано, ніж абсолютні значення """ hrv_deviation = (current_hrv['rmssd'] - personal_baseline_hrv['rmssd_mean']) / personal_baseline_hrv['rmssd_std'] return -hrv_deviation # інвертуємо: зниження HRV = зростання стресу Мультимодальна фузія
Late fusion об'єднує scores від кожного сенсора, що забезпечує надійність при відсутності одного з каналів (наприклад, немає EDA):
def fuse_modalities(hrv_features, eda_features, actigraphy_features): hrv_score = hrv_stress_model.predict_proba([hrv_features])[0][1] eda_score = eda_stress_model.predict_proba([eda_features])[0][1] activity_score = activity_stress_model.predict_proba([actigraphy_features])[0][1] final_score = 0.45 * hrv_score + 0.35 * eda_score + 0.20 * activity_score return final_score Такий підхід дає AUC 0.82–0.88 на внутрішніх тестах — це на 15–20% краще, ніж використання тільки HRV.
Порівняння моделей: що обрати?
| Модель | AUC (WESAD) | Latency p99 (мс) | Розмір (MB) |
|---|---|---|---|
| Random Forest | 0.78 | 2.1 | 0.5 |
| XGBoost | 0.82 | 3.4 | 1.2 |
| LightGBM | 0.81 | 2.8 | 0.8 |
| Нейромережа (MLP) | 0.85 | 8.0 | 2.5 |
XGBoost дає краще співвідношення точності та швидкості. Для edge-пристроїв ми квантизуємо до INT8 — розмір стискається в 4 рази без втрати AUC.
Цифрове фенотипування настрою
Digital phenotyping зі смартфона включає screen time, GPS-трекінг, соціальні взаємодії та патерни сну. За цими даними ми передбачаємо PHQ-9 score з точністю AUC 0.75-0.82. Це не замінює опитувальник, але дозволяє виявляти тенденції без активного заповнення.
Обмеження та етичні аспекти
Точність моделей залежить від контексту: лабораторний стрес (TSST) відрізняється від реального. Ми не ставимо діагнози — система рекомендує звернутися до фахівця при високому stress-score. Всі психологічні дані обробляються на edge для дотримання GDPR (Art. 9). Навчальні вибірки містять bias — ми працюємо над диверсифікацією.
Детальні метрики HRV
| Метрика | Опис | Стрес-індикатор |
|---|---|---|
| SDNN | Стандартне відхилення NN-інтервалів | <50 мс: високий ризик |
| pNN50 | Частка сусідніх RR >50 мс | <3%: знижений парасимпатичний тонус |
| HF (0.15-0.40 Hz) | Парасимпатична активність | Зниження при стресі |
| LF/HF | Симпато-вагальний баланс | >2: симпатична домінанта |
Процес роботи
- Аналітика — аудит ваших пристроїв і потоків даних, вибір біомаркерів.
- Проектування — архітектура пайплайну: збір, передобробка, зберігання (InfluxDB + pgvector).
- Розробка — моделі та квантизація, інтеграція з мобільним додатком.
- Тестування — A/B тести, валідація на реальних користувачах.
- Деплой — CLI, мобільний SDK або хмарний API з моніторингом.
Що входить в результат
Ми передаємо: документацію пайплайну, навчені моделі з метриками, SDK для iOS/Android, дашборди в Grafana, інструкцію з адаптації під нові пристрої. Гарантуємо підтримку 3 місяці після деплою.
Строки
Базовий stress-монітор (HRV + baseline + мобільний додаток) — від 4 до 5 тижнів. Повний цикл з EDA, digital phenotyping та edge-обробкою — від 3 до 4 місяців. Вартість розраховується індивідуально після попереднього аудиту.
Отримайте консультацію AI-інженера з 7+ років досвіду в healthcare ML. Економія бюджету до 40% за рахунок раннього виявлення стресу — оцініть вигоду для вашого проєкту.







