1. Что такое «остаточный непараметрический анализ»?

1.1 Задача исследования

Мы хотим выяснить: различаются ли показатели кровотока (УЗДГ) у пациентов с разными классами ХСН?

Звучит просто, но есть ловушка: пациенты с ХСН 3 класса в среднем старше и иначе распределены по полу, чем пациенты с ХСН 2а. Если просто сравнить показатели между классами, мы рискуем принять эффект возраста или пола за эффект класса ХСН.

1.2 Простая аналогия

Представьте, что вы хотите узнать: правда ли, что менеджеры получают больше, чем рабочие?

Но менеджеры в среднем старше и имеют больший стаж. Если просто сравнить зарплаты — вы не поймёте, из-за чего разница: из-за должности или из-за стажа?

Правильный подход:

  1. Снять влияние стажа и возраста на зарплату (через регрессию)
  2. Сравнить остатки — то, что от зарплаты осталось после учёта стажа и возраста

Мы делаем ровно то же самое с показателями УЗДГ.

1.3 Алгоритм анализа: шаг за шагом

1.4 Почему не просто Краскел–Уоллис?

Подход Что делает Проблема
Обычный Краскел–Уоллис Сравнивает группы напрямую Не учитывает возраст и пол
Наш подход Сначала убирает возраст/пол, потом сравнивает ✅ Чистый эффект класса ХСН

1.5 Почему Краскел–Уоллис, а не ANOVA?

Потому что ANOVA требует нормального распределения данных. Показатели УЗДГ (скорости кровотока, индексы сопротивления) часто имеют скошенное распределение. Краскел–Уоллис работает с рангами данных и не требует нормальности.

Критерий Требует нормальности? Работает с рангами? Подходит при n < 30/группу?
ANOVA ✅ Да ❌ Нет ⚠️ Осторожно
Краскел–Уоллис ❌ Нет ✅ Да ✅ Да

2. Загрузка и подготовка данных

## Пациентов до фильтрации: 103
## Пациентов после фильтрации: 101
## Распределение по классам ХСН:
## 
## 2а 2б  3  К 
## 30 36 24 11
Первые 10 строк данных (отобранные переменные)
card_id sex age class_HSN Vs Vm Vd Qm RI
26 ж 61 0.937 0.328 0.000 0.258 1.000
27 м 84 3 2.044 0.834 0.178 0.655 0.913
28 м 58 5.381 2.554 1.144 2.006 0.787
29 м 80 3 0.394 0.117 0.000 0.092 1.000
30 м 80 3 0.937 0.419 0.000 0.329 1.000
31 м 79 3 1.003 0.608 0.000 0.477 1.000
32 м 72 3 1.012 0.458 0.000 0.360 1.000
20 м 53 3.872 2.217 0.994 1.742 0.743
33 ж 68 4.912 1.161 0.469 0.912 0.905
34 ж 68 3.591 0.941 0.647 0.739 0.820

3. Описательная статистика

3.1 Медиана и межквартильный интервал по классам ХСН

Поскольку распределения большинства показателей УЗДГ асимметричны, используем медиану и межквартильный интервал Q1–Q3 вместо среднего ± SD.

Описательная статистика показателей УЗДГ по классам ХСН
Класс ХСН Показатель УЗДГ n Медиана (Q1–Q3)
K 30 42.333 (36.524–48.287)
M 30 99.446 (98.892–99.618)
PI 30 1.869 (1.306–2.66)
Qas 30 0.052 (0.023–0.068)
Qm 30 1.326 (0.861–1.633)
Qs 30 2.883 (1.882–4.022)
RI 30 0.811 (0.744–0.915)
STI 30 88.649 (87.791–89.132)
Vas 30 0.066 (0.029–0.087)
Vd 30 0.656 (0.083–0.918)
Vm 30 1.689 (1.096–2.08)
Vs 30 3.67 (2.395–5.121)
K 36 47.677 (40.941–54.036)
M 36 99.696 (99.373–99.9)
PI 36 1.778 (1.152–2.505)
Qas 36 0.048 (0.033–0.064)
Qm 36 0.714 (0.558–0.857)
Qs 36 1.314 (0.952–2.094)
RI 36 0.857 (0.704–0.952)
STI 36 87.365 (85.224–88.67)
Vas 36 0.06 (0.041–0.078)
Vd 35 0.281 (0.033–0.446)
Vm 36 0.889 (0.691–1.067)
Vs 36 1.674 (1.212–2.668)
3 K 24 45.971 (42.432–53.405)
3 M 24 99.808 (99.694–99.917)
3 PI 24 2.168 (1.492–2.782)
3 Qas 24 0.05 (0.02–0.064)
3 Qm 24 0.548 (0.427–0.681)
3 Qs 24 1.093 (0.718–1.61)
3 RI 24 0.945 (0.846–1)
3 STI 24 86.536 (85.052–88.499)
3 Vas 24 0.062 (0.032–0.081)
3 Vd 24 0.112 (0–0.307)
3 Vm 24 0.638 (0.544–0.868)
3 Vs 24 1.392 (0.914–2.051)
К K 11 47.043 (31.719–52.094)
К M 11 99.876 (99.276–99.942)
К PI 11 2.172 (1.165–2.645)
К Qas 11 0.048 (0.007–0.087)
К Qm 11 0.422 (0.289–1.428)
К Qs 11 0.714 (0.471–3.914)
К RI 11 0.884 (0.744–1)
К STI 11 89.197 (85.584–89.935)
К Vas 11 0.013 (0.002–0.108)
К Vd 11 0.206 (0–0.623)
К Vm 11 0.537 (0.368–1.819)
К Vs 11 0.909 (0.6–4.982)

3.2 Боксплоты показателей с наибольшим разбросом


4. Шаг 1: Линейные модели с поправкой на возраст и пол

4.1 Зачем нужна регрессия перед сравнением?

Для каждого показателя УЗДГ строим линейную модель:

\[Y_i = \beta_0 + \beta_1 \cdot \text{возраст}_i + \beta_2 \cdot \text{пол}_i + \varepsilon_i\]

Остатки \(\hat{\varepsilon}_i = Y_i - \hat{Y}_i\) — это значения показателя, очищенные от влияния возраста и пола. Именно их мы будем сравнивать между классами ХСН.

💡 Простыми словами: если пациент старше среднего и его Vm выше, чем «ожидалось» для его возраста и пола — остаток будет положительным. Мы сравниваем именно эти «неожиданные» отклонения между классами ХСН.

4.2 Коэффициенты моделей


5. Шаги 2–3: Краскел–Уоллис на остатках

5.1 Логика теста

После получения остатков применяем критерий Краскела–Уоллиса — непараметрический аналог однофакторного дисперсионного анализа.

Нулевая гипотеза \(H_0\): медианы остатков одинаковы во всех группах ХСН (то есть класс ХСН не связан с показателем после учёта возраста и пола).

Чтобы снизить вероятность ложноположительных результатов при одновременном тестировании 12 показателей, применяем поправку Benjamini–Hochberg (FDR).

5.2 Результаты

Критерий Краскела–Уоллиса на остатках (поправка FDR)
Показатель χ² p-value p (FDR) Значимо?
K 3.1995 0.36190 0.4825
M 3.2255 0.35810 0.4825
PI 1.6016 0.65900 0.7908
Qas 0.0275 0.99880 0.9988
Qm 9.9942 0.01862 0.1117
Qs 5.6706 0.12880 0.2712
RI 7.9748 0.04654 0.1396
STI 3.9447 0.26750 0.4586
Vas 0.6559 0.88350 0.9638
Vd 8.6162 0.03485 0.1394
Vm 10.1759 0.01713 0.1117
Vs 5.5505 0.13560 0.2712

📌 Интерпретация: Чем выше столбец, тем убедительнее различие между классами ХСН по данному показателю. Столбцы правее пунктирной линии соответствуют статистически значимым результатам (p FDR < 0.05).


6. Шаг 4: Тест Данна — между какими классами?

6.1 Зачем нужен пост-хок?

Краскел–Уоллис отвечает лишь на вопрос «есть ли хоть какие-то различия?». Чтобы узнать, между какими конкретными парами классов (2а vs 2б, 2а vs 3, 2б vs 3 и т.д.) они обнаруживаются, применяем тест Данна с поправкой BH.

💡 Это как услышать «в классе есть высокие ученики» (Краскел–Уоллис) — и потом найти, кто именно выше кого (тест Данна).

6.2 Результаты парных сравнений

Тест Данна: парные сравнения классов ХСН на остатках (поправка BH)
Показатель Сравнение Z p p (BH) Значимо?
Vs 2а - 2б 1.7350 0.082750 0.24820
Vs 2а - 3 2.1061 0.035190 0.21120
Vs 2б - 3 0.5612 0.574600 0.86200
Vs 2а - К 1.5454 0.122200 0.24450
Vs 2б - К 0.3362 0.736700 0.88400
Vs 3 - К -0.0881 0.929800 0.92980
Vm 2а - 2б 2.1024 0.035520 0.10660
Vm 2а - 3 2.9691 0.002986 0.01792
Vm 2б - 3 1.1134 0.265500 0.39830
Vm 2а - К 2.0249 0.042880 0.08577
Vm 2б - К 0.5631 0.573300 0.68800
Vm 3 - К -0.2730 0.784800 0.78480
Vas 2а - 2б -0.2765 0.782200 1.00000
Vas 2а - 3 -0.0722 0.942500 0.94250
Vas 2б - 3 0.1844 0.853700 1.00000
Vas 2а - К 0.5940 0.552500 1.00000
Vas 2б - К 0.8062 0.420100 1.00000
Vas 3 - К 0.6293 0.529100 1.00000
Vd 2а - 2б 1.4741 0.140400 0.28090
Vd 2а - 3 2.8933 0.003812 0.02287
Vd 2б - 3 1.6059 0.108300 0.32490
Vd 2а - К 1.4599 0.144300 0.21650
Vd 2б - К 0.4276 0.668900 0.66890
Vd 3 - К -0.7629 0.445500 0.53460
Qs 2а - 2б 1.7925 0.073060 0.21920
Qs 2а - 3 2.1269 0.033430 0.20060
Qs 2б - 3 0.5288 0.596900 0.89540
Qs 2а - К 1.5263 0.126900 0.25390
Qs 2б - К 0.2754 0.783000 0.93960
Qs 3 - К -0.1221 0.902800 0.90280
Qm 2а - 2б 2.0280 0.042560 0.08513
Qm 2а - 3 2.9453 0.003227 0.01936
Qm 2б - 3 1.1584 0.246700 0.37000
Qm 2а - К 2.0287 0.042490 0.12750
Qm 2б - К 0.6204 0.535000 0.64200
Qm 3 - К -0.2514 0.801500 0.80150
Qas 2а - 2б -0.1480 0.882300 1.00000
Qas 2а - 3 -0.0203 0.983800 1.00000
Qas 2б - 3 0.1178 0.906200 1.00000
Qas 2а - К -0.0852 0.932100 1.00000
Qas 2б - К 0.0190 0.984800 0.98480
Qas 3 - К -0.0673 0.946400 1.00000
PI 2а - 2б -0.1335 0.893800 1.00000
PI 2а - 3 -1.0967 0.272800 1.00000
PI 2б - 3 -1.0145 0.310300 0.93100
PI 2а - К 0.1206 0.904000 0.90400
PI 2б - К 0.2191 0.826500 1.00000
PI 3 - К 0.9416 0.346400 0.69280
RI 2а - 2б -1.1601 0.246000 0.36900
RI 2а - 3 -2.8118 0.004926 0.02956
RI 2б - 3 -1.8339 0.066670 0.20000
RI 2а - К -0.8685 0.385100 0.46210
RI 2б - К -0.0562 0.955200 0.95520
RI 3 - К 1.2741 0.202600 0.40520
STI 2а - 2б 1.5655 0.117500 0.35240
STI 2а - 3 1.8320 0.066960 0.40170
STI 2б - 3 0.4353 0.663300 0.79600
STI 2а - К 0.7397 0.459500 0.91900
STI 2б - К -0.3665 0.714000 0.71400
STI 3 - К -0.6618 0.508100 0.76210
K 2а - 2б -1.7181 0.085780 0.51470
K 2а - 3 -1.2774 0.201500 0.60440
K 2б - 3 0.2842 0.776300 0.93150
K 2а - К -0.7071 0.479500 0.95900
K 2б - К 0.5093 0.610500 0.91580
K 3 - К 0.2762 0.782400 0.78240
M 2а - 2б -1.3576 0.174600 0.52380
M 2а - 3 -1.4851 0.137500 0.82510
M 2б - 3 -0.2698 0.787300 0.94480
M 2а - К -1.3306 0.183300 0.36660
M 2б - К -0.3873 0.698600 1.00000
M 3 - К -0.1711 0.864100 0.86410

7. Сохранение результатов

## Файл сохранён: Анализ_данных_УЗДГ.xlsx

8. Заключение

8.1 Резюме алгоритма

## 
## ╔══════════════════════════════════════════════════════════════════╗
## ║               АЛГОРИТМ АНАЛИЗА — КРАТКОЕ РЕЗЮМЕ                ║
## ╠══════════════════════════════════════════════════════════════════╣
## ║                                                                  ║
## ║  ШАГ 1. Линейная регрессия: УЗДГ ~ возраст + пол               ║
## ║         → убираем влияние демографических ковариат              ║
## ║                                                                  ║
## ║  ШАГ 2. Остатки регрессии                                        ║
## ║         → «очищенные» значения УЗДГ                             ║
## ║                                                                  ║
## ║  ШАГ 3. Краскел–Уоллис: остатки ~ класс ХСН                    ║
## ║         → есть ли различия между группами?                      ║
## ║         → поправка FDR (Benjamini–Hochberg) на 12 тестов        ║
## ║                                                                  ║
## ║  ШАГ 4. Тест Данна: парные сравнения классов                    ║
## ║         → 2а–2б, 2а–3, 2б–3, 2а–К, 2б–К, 3–К                  ║
## ║         → поправка BH внутри каждого показателя                 ║
## ║                                                                  ║
## ╚══════════════════════════════════════════════════════════════════╝

8.2 Когда применять этот подход?

Ситуация Рекомендация
Несколько групп, нет нормальности ✅ Краскел–Уоллис
Есть ковариаты (возраст, пол) ✅ Остаточный подход через lm()
Нужны парные сравнения ✅ Тест Данна с поправкой BH
Много тестов одновременно ✅ Поправка FDR (BH)
Нормальность подтверждена ➡️ ANOVA + Tukey HSD

Дата создания отчёта: 2026-03-11

Программное обеспечение: R 4.5.1, пакеты: readxl, dplyr, tidyr, FSA, ggplot2, broom, writexl, gridExtra, ggsci