Всё началось с раздражения. Не академического интереса, не гранта, не бизнес-плана — с профессионального раздражения практикующего психиатра, который двадцать лет назначает пациентам одни и те же опросники.
PHQ-9. Девять вопросов. Каждому. Всегда одни и те же, в одном и том же порядке. Человек, который пришёл с паническими атаками и не спит третью неделю, получает тот же набор вопросов, что и человек с ангедонией, который спит по четырнадцать часов. Тест не знает, кто перед ним. Тест не хочет знать.
Когда я написал Telegram-бот с классическими методиками — PHQ-9, GAD-7, шкала Бека, — я думал, что делаю что-то полезное. И делал: доступность, анонимность, мгновенный результат. Но чем больше я смотрел на результаты, тем отчётливее видел проблему, которую знал все двадцать лет, но впервые мог попытаться решить.
Проблема простая: клиническая реальность не линейна. Пациент — не анкета. Депрессия не существует в вакууме; она переплетена с тревогой, с историей травмы, с паттернами отношений, с телесными симптомами, которые пациент считает «просто усталостью». Один тест видит один фрагмент. Второй тест видит другой. Но они не разговаривают друг с другом. Каждый — как врач-специалист, который смотрит только на свой орган и не интересуется соседним.
Когда тесты начали разговаривать
Идея была в каком-то смысле очевидной. Если результат PHQ-9 показывает тяжёлую депрессию — имеет смысл проверить биполярность, предложить MDQ. Если GAD-7 указывает на выраженную тревогу — стоит уточнить, нет ли панического расстройства, и дать PDSS. Не отдельные тесты, а маршрут. Чекап, где каждый следующий шаг зависит от предыдущего.
Я спроектировал pipeline engine — систему, в которой шаги связаны условиями. YAML-конфиги, expression-based routing: если значение такое — идём сюда, если другое — туда. Это работало. Это реально работало. Маршрут из трёх-четырёх тестов за пятнадцать минут давал картину, на сборку которой в кабинете уходил час. Пациент не заполнял лишнего, потому что система предлагала только релевантное.
Но вот что я заметил: ветвление работало между тестами — на макроуровне. Система решала, какой тест показать следующим. А внутри каждого теста — всё те же фиксированные вопросы. PHQ-9 оставался девятью вопросами, опросник Янга — девяноста. Человек с очевидно высокой тревогой всё равно отвечал на все пункты GAD-7, включая те, которые ничего нового о нём уже не скажут.
Это как GPS, который умеет выбирать между маршрутами, но внутри каждого маршрута не знает объездных дорог. Он привезёт вас правильно — через пробку.
А потом я обнаружил вещь, которую, наверное, каждый психометрист знает со второго курса, но которая для меня стала откровением: вопросы внутри одного теста неравны по силе. Не все девять пунктов PHQ-9 одинаково информативны. Первые два — про сниженное настроение и ангедонию — настолько мощные скринеры, что существуют как отдельный инструмент: PHQ-2. Два вопроса, которые с высокой чувствительностью отсекают норму от клинически значимой депрессии. Та же история с тревогой: GAD-2 — укороченная версия GAD-7, два пункта вместо семи. А в опроснике панического расстройства PHQ-PD из пятнадцати вопросов первые три — скрининговые; если на них ответ отрицательный, оставшиеся двенадцать можно не задавать.
Это изменило мой взгляд на чекап. Если внутри каждого теста есть вопросы-ключи, которые несут основную диагностическую нагрузку, — зачем в маршруте всегда запускать полную версию? Можно начать с PHQ-2. Если скрининг отрицательный — депрессию снимаем с повестки, идём дальше. Если положительный — разворачиваем полный PHQ-9, уточняем тяжесть. То же с тревогой: GAD-2 как ворота, GAD-7 — если нужно. Pipeline engine стал не просто маршрутизировать между тестами, а регулировать глубину погружения в каждый.
Это уже было адаптивностью — пусть и ручной, экспертной, зашитой в конфиги. Я сам решал, где поставить короткий скринер, а где — полную версию. Но сам факт, что вопросы различаются по информативности, что некоторые из них несут непропорционально много диагностического сигнала, — этот факт запустил цепочку мыслей, которая привела дальше, чем я ожидал.
Если два вопроса из девяти несут основную нагрузку — что, если бы система сама определяла, какие вопросы «сильные» для конкретного человека? Не экспертно заданные пары-тройки скринеров, а динамический выбор в реальном времени?
Название для интуиции
Момент, когда находишь формальное название для чего-то, что нащупывал руками, — странное переживание. Не «эврика», а скорее «а, вот как это называется». Computerized Adaptive Testing — CAT. Оказалось, что идея адаптивного выбора вопросов формализована в психометрике десятилетия назад, в рамках теории ответа на задание — Item Response Theory, IRT.
Суть, если коротко: за каждым набором вопросов стоит некий латентный признак — θ (тета). Уровень депрессии, например, или выраженность тревоги. Этот признак нельзя измерить напрямую — только через ответы на вопросы. Но вопросы различаются по своей информативности. Одни хорошо «работают» в зоне лёгких состояний, другие — в зоне тяжёлых. Классический тест задаёт все вопросы и усредняет. CAT после каждого ответа пересчитывает оценку θ и выбирает следующий вопрос — тот, который даст максимум информации именно для текущей оценки.
Разница принципиальная. Мой pipeline engine ветвил между тестами: «какой конструкт исследовать дальше?» CAT ветвит внутри одного конструкта: «какой вопрос задать дальше, чтобы уточнить именно то, что пока неясно?» Макро против микро. Оба нужны, но это разные масштабы адаптивности.
Для клинициста это означает вещь, которую трудно переоценить. Представьте пациента, который на первые три вопроса о тревоге ответил однозначно: выраженная тревога, высокие баллы. Классический тест продолжит спрашивать ещё четыре-пять вопросов из той же зоны — он не умеет иначе. CAT поймёт: в этой зоне шкалы уже всё ясно, нужно уточнить нюансы. Может быть, соматический компонент. Может быть, избегание. Может быть, степень функциональных нарушений. Не больше вопросов — лучше вопросы.
Двадцать лет я наблюдал, как пациенты устают от опросников. Не потому что вопросов много, а потому что вопросы ощущаются нерелевантными. «Я же вам уже ответил, что не сплю — зачем спрашивать про энергию?» Пациент интуитивно чувствует избыточность. Он прав. Тест мог бы быть умнее, но тест проектировали в эпоху бумаги и карандаша, когда адаптивность была технически невозможна.
Банк вопросов как фундамент
Осознание пришло не мгновенно: чтобы прийти к CAT, нужно перестать мыслить тестами и начать мыслить банками вопросов. Тест — замкнутая сущность: фиксированный набор, фиксированный порядок, фиксированная интерпретация. Банк вопросов — открытая: пул айтемов, каждый из которых калиброван, типизирован и может быть выбран или пропущен алгоритмом.
Так родилась идея авторского инструмента — попытка спроектировать его так, чтобы с самого начала он был архитектурно готов к адаптивности. Первый домен — тревога. Пятьдесят пять вопросов, каждый типизирован по роли: сигнальные отлавливают наличие симптома, механистические — вскрывают, как тревога поддерживается, контекстные — в каких ситуациях она проявляется. Шкалы ответов нормализованы, веса — провизорные, ждущие калибровки на реальных данных.
Сейчас тест линейный. Все пятьдесят пять вопросов, каждому. Я не буду делать вид, что это уже CAT — это не CAT. Это банк, который спроектирован так, чтобы однажды стать адаптивным. Разница существенная, и мне важно её не затушёвывать.
Для CAT нужны IRT-параметры: дискриминативность, сложность, угадывание — числовые характеристики каждого айтема, которые невозможно назначить экспертно. Их можно только откалибровать. А для калибровки нужны данные. Минимум пятьсот респондентов, а лучше — больше. Поэтому сейчас задача не алгоритмическая, а вполне земная: пилот, сбор ответов, накопление выборки. Потом — калибровка, оценка модели, отбор айтемов. И только тогда — адаптивный алгоритм.
Цель понятна: тест, который за пятнадцать-двадцать вопросов даёт профиль тревоги, эквивалентный по точности полному банку из пятидесяти пяти. Не сокращение ради сокращения — адаптивная точность. Каждый вопрос работает, ни один не тратит время пациента впустую.
Оглядываясь, я вижу логику пути, которой не видел, когда шёл. Бот с тестами — pipeline между тестами — банк вопросов — будущий CAT. Каждый шаг казался отдельным решением, а оказался ступенью. Pipeline engine не был «ошибкой, которую заменит CAT» — он решает свою задачу и продолжит её решать. Маршрутизация между конструктами и адаптивный выбор внутри конструкта — не конкуренты, а два слоя одной системы.
Но есть что-то, что изменилось необратимо: способ думать о измерении. Раньше я думал тестами — готовыми инструментами с фиксированной формой. Теперь я думаю вопросами — калиброванными единицами информации, которые можно комбинировать, фильтровать, выбирать в реальном времени. Это сдвиг не технический — концептуальный. И он, пожалуй, важнее любого кода, который я написал или напишу.
Я не знаю, сколько времени займёт путь от линейного пилота до работающего CAT. Знаю, что данных пока нет, инфраструктура не протестирована под нагрузкой, а IRT-калибровка — отдельное поле экспертизы, в котором я новичок. Но направление выбрано, архитектура заложена, и каждый респондент, который пройдёт тест, приближает момент, когда система начнёт задавать не все вопросы, а правильные.
Двадцать лет я задаю пациентам вопросы. Пора научить систему делать это так же — вслушиваясь в ответы.
Как устроен первый модуль — Профиль тревоги. Почему свои инструменты, а не чужие — чужие вопросы, свои инструменты. Как клиническая практика привела к трансдоменной архитектуре — когда всё связано. Методология ядра — psychometrica.pro/methodology/core.