trend · 1.1.0
Растёт или снижается?
Наклон Тейла–Сена с тестом Манна–Кендалла по одному значению в день. Плотные данные с часов сводятся к недельным медианам. Тест корректируется, когда соседние дни похожи друг на друга (Yue–Wang).
Anpheros Research · Движок закономерностей здоровья
Медицинскую карту обычно читают по одному значению. Самое важное — медленное снижение, неделя, не похожая на другие, или симптом, который всё возвращается, — видно только за месяцы. Anpheros находит это с помощью фиксированной версионированной статистики, и каждый вывод приходит вместе с данными, на которых он основан.
Рис. 0 · Синтетический пациент, 180 дней систолического давления. Точки: значения по дням. Линия: тренд Тейла–Сена.
01 · Проблема
Что обычно показывает карта
128 mmHg
Последнее систолическое давление. Выглядит нормально и ничего не говорит о том, куда всё движется.
Что сообщает движок
−7.7 мм рт. ст. / 6 месяцев
Синтетический пациент со снижением на 8 мм рт. ст., заложенным на шесть месяцев. Наклон восстановлен вместе с периодом, неопределённостью и измерениями, на которых он основан.
Сегодня моделям ИИ поручают читать медицинские карты. Получив несколько чисел, модель угадывает тренд. Мы считаем, что тренд нужно вычислять, а не угадывать, и только потом передавать модели вместе с доказательствами.
02 · Метод
У каждого вопроса один статистический метод, выбранный для немногочисленных, нерегулярных, личных данных. У каждого метода есть номер версии, поэтому его результаты воспроизводимы.
trend · 1.1.0
Наклон Тейла–Сена с тестом Манна–Кендалла по одному значению в день. Плотные данные с часов сводятся к недельным медианам. Тест корректируется, когда соседние дни похожи друг на друга (Yue–Wang).
baseline_deviation · 1.1.0
Последние 7 дней сравниваются с днями 8–60 тестом Манна–Уитни или разностью средних с поправкой на автокорреляцию AR(1). Сравнение идёт с нормой самого человека, а не со средним по населению.
event_rate_change
Дни с симптомом относительно дней, когда человек вообще что-то отмечал: последние 30 дней против 90 предыдущих, точным тестом. День без записей не считается днём без симптома.
recurrence
Интервалы между началами эпизодов сравниваются с моделированием Монте-Карло эпизодов, расставленных случайно. Моделирование задаётся отпечатком самих данных, поэтому одна и та же карта всегда даёт одно и то же p-значение.
Правило «подтверждено»
q < 0.05 и |изменение| ≥ порог
Все тесты одного запуска корректируются вместе по Бенджамини–Хохбергу. Вывод статистически подтверждён, только если скорректированное q-значение мало, а изменение достаточно велико, чтобы иметь значение для этого показателя. Всё остальное сообщается как описание с пометкой «слабо» или «не проверено».
03 · Проверка
Движок закономерностей, который находит что-то у каждого, хуже, чем никакой. Мы проверили его на синтетических пациентах без заложенных закономерностей и на других — с известными закономерностями известной величины.
0%
из 600 запусков на синтетических картах без закономерностей дали хоть один подтверждённый вывод. Цель: не более 5%.
0%
составляла доля ложных тревог нашего первого теста отклонения на данных с часов. Соседние дни похожи, а тест этого не знал. Мы ввели поправку на автокорреляцию до любого выпуска.
0 ms
на полный запуск по типичному году карты одного человека. Насыщенная карта за пять лет занимает 236 мс.
Рис. 1 · Чувствительность: доля заложенных закономерностей, найденных как подтверждённые, при эффекте вдвое выше порога
Детектор частоты симптомов самый слабый: утроение он замечает примерно в одном случае из четырёх. Пропуск движок сообщает как «слабо» или «не проверено», но никогда как «изменений нет».
04 · Ограничения
05 · Воспроизводимость
Id вывода получается из его данных, версии метода и конфигурации. Если карта меняется, меняется и id, а старый id отвечает, что данные изменились. Вывод пересчитывается по запросу, никогда не хранится, и каждый ссылается на измерения, на которых он основан.
"type": "trend",
"summary_text": "Systolic blood pressure fell by about 7.7 mmHg over 180 days.",
"strength": "moderate",
"statistics": { "p_value": 0.0004, "q_value": 0.0031 },
"evidence_total": 58,
"method": { "name": "trend", "version": "1.1.0" },
"engine_version": "0.2.1",
"review": { "thresholds_reviewed_by_clinician": false },
"safety": { "not_a_diagnosis": true, "causal_claim": false }
Рис. 2 · Сокращённый вывод для синтетического пациента. Значения приведены для примера.
06 · Работайте с нами
Разработчикам
REST-эндпоинты, четыре инструмента MCP для ИИ-агентов, раздел закономерностей в Context API и SDK для TypeScript и Dart. Попробуйте в бесплатной песочнице с синтетическими пациентами.
Руководство для разработчиков →Исследователям
Мы хотим, чтобы методы оспаривали. Поговорите с нами о проверке методов, сценариях валидации, лонгитюдных бенчмарках и совместных исследованиях.
Начать разговор →Врачам
У каждого показателя есть порог изменения, о котором стоит сообщить, и ни один ещё не проверен клинически. Мы ищем врачей, которые проверят их по одному показателю.
Предложить проверку →Health Pattern Engine 0.2.1 · бета. Реальные карты анализируются только с отдельного согласия каждого пациента.