Разбираемся · Создание онлайн-курсов

Корреляция Спирмена: как сопоставить два результата ученика курса

Разберём ранги на шести условных парах, посчитаем коэффициент вручную и отделим связь результатов от прироста знаний и причинного эффекта обучения.

В этом материале

Задайте вопрос о порядке результатов

Автор курса хочет проверить, занимают ли участники с более высоким баллом входной задачи более высокие места и по итоговой работе. Это вопрос о связи двух показателей у одних и тех же людей. Он отличается от вопроса «на сколько баллов улучшился каждый ученик» и не доказывает, что курс вызвал наблюдаемые различия.

Коэффициент Спирмена описывает монотонную связь: имеют ли большие значения одного показателя тенденцию сопровождаться большими или меньшими значениями другого. Его диапазон — от −1 до 1. Связь не обязана быть прямой линией в исходных единицах. Определение и ограничения расчёта приведены в документации SciPy.

До вычислений полезно построить точечную диаграмму двух результатов. Она помогает заметить необычные пары и форму зависимости. Один коэффициент может скрывать важные особенности, например разные направления связи в отдельных группах или зависимость, которая сначала растёт, а затем снижается.

Соберите пары без потери соответствия

Для упражнения возьмём шесть вымышленных участников А–Е. Входная задача оценивается от 0 до 12, итоговая работа — от 0 до 60. Пары «входной балл; итоговый балл» следующие: А — 2; 10, Б — 4; 30, В — 6; 20, Г — 8; 40, Д — 10; 60, Е — 12; 50. Это специально подготовленные данные для проверки арифметики.

Каждая строка должна сохранять код человека и оба его результата. Нельзя независимо отсортировать исходные столбцы: так балл одного участника окажется рядом с работой другого. При необходимости сортируйте целые строки. Для ранжирования создайте дополнительные колонки, сохранив исходные пары.

Если работа ещё не проверена, не заменяйте пропуск нулём. Покажите число полных пар и количество исключённых наблюдений с причинами. Для настоящего отчёта также зафиксируйте версии заданий, правила оценки и попытку, которую включаете. Повторные работы одного человека нельзя незаметно считать независимыми новыми участниками.

Переведите оба показателя в ранги

Присвоим меньшему значению ранг 1, следующему — 2 и так далее. Ранги первого показателя у А–Е равны 1, 2, 3, 4, 5, 6. Ранги второго в том же порядке участников — 1, 3, 2, 4, 6, 5. Порядок поменялся внутри пар Б–В и Д–Е, остальные места совпали.

В руководстве NIST по ранговой корреляции описано независимое ранжирование двух переменных и усреднение рангов при одинаковых значениях. Например, отдельный набор 10, 20, 20, 40 получает ранги 1, 2,5, 2,5, 4. Нельзя произвольно назначить двум одинаковым двадцаткам места 2 и 3 по порядку строк.

Одинаковая длина двух колонок недостаточна: ранги должны по-прежнему относиться к тем же людям. Проверьте две строки вручную и сохраните направление ранжирования. Если у одной переменной меньшему значению дать лучший ранг, а у другой — большему, знак результата изменит смысл.

Посчитайте контрольный коэффициент без совпадающих рангов

В основном примере все значения внутри каждого показателя различаются. Для такого случая можно использовать сокращённую формулу: rₛ = 1 − 6 × сумма квадратов разностей рангов / (n × (n² − 1)). Здесь n равно числу полных пар, то есть шести. Формула относится к ранговым разностям, а не к разности исходных баллов разных шкал.

Разности «первый ранг минус второй» равны 0, −1, 1, 0, −1, 1. Их квадраты — 0, 1, 1, 0, 1, 1; сумма равна 4. Подставляем: 1 − 6 × 4 / (6 × 35) = 1 − 24 / 210 = 31 / 35, приблизительно 0,886.

Положительное значение отражает в этом придуманном наборе преимущественное сохранение порядка. Оно не означает «курс эффективен на 88,6%», не является долей освоенного материала и не показывает прирост баллов. Две шкалы имеют разные максимумы, но переход к рангам позволяет обсудить порядок, а не приравнивать их единицы.

Обработайте повторы и неопределённость отдельно

При совпадающих значениях используйте средние ранги и вычисляйте корреляцию Пирсона между получившимися ранговыми колонками либо применяйте проверенную реализацию Спирмена. Сокращённую формулу из предыдущего раздела без поправок на повторы для такого набора не переносите. Если все значения одного показателя одинаковы, коэффициент не определён: это не нулевая связь.

Шести условных пар достаточно для демонстрации вычисления, но они не подтверждают устойчивую закономерность среди будущих учеников. Для вывода о реальных данных нужны обоснованный план анализа, объём наблюдений и оценка неопределённости. Автоматическое p-значение тоже требует внимания: SciPy рекомендует для небольших выборок рассматривать перестановочную проверку вместо опоры на асимптотическое приближение.

Не перебирайте множество разных входных заданий, чтобы показать только самое высокое число. Сначала запишите, какую именно связь собирались проверять и какое решение она может поддержать. Это сохраняет смысл анализа, даже если результат окажется слабым или неудобным для исходной гипотезы.

Завершите анализ конкретным учебным вопросом

Для нашего набора корректная запись такова: «В шести демонстрационных парах ранговая корреляция около 0,886; две пары участников поменялись местами. Причины различий не исследовались». В рабочем курсе следующий шаг — рассмотреть сами задания и работы: какие умения объединяют проверки и где возникает несовпадение?

Не используйте этот коэффициент как единственный способ назначения учебного маршрута. Высокая связь внутри группы не гарантирует точного прогноза для конкретного человека. Если задача состоит в повторяемости одного теста, обратитесь к ретестовой надёжности: там важны также сдвиги и абсолютные расхождения, которые корреляция может не показать.

Сохраните исходные пары, ранги, правило обработки пропусков и ограниченный вывод. Такой отчёт помогает обсуждать устройство курса и выбирать следующую проверку. Автоматический расчёт Спирмена внутри Umhub или готовая диагностика способностей ученика для этого сценария не предполагаются.

Источники

  1. документации SciPy ↗
  2. руководстве NIST по ранговой корреляции ↗
Создать аккаунт и собирать свою библиотеку →
От знаний — к своему курсу

Создайте свой курс в Umhub

Примените то, что узнали: соберите программу, добавьте материалы и пригласите учеников.

Создать курс