Корреляция сроков обработки заявок

тема: Описательная статистика · уровень: продвинутый

Условие

Провайдер анализирует завершённые заявки в службу поддержки. Для каждой заявки известны время ожидания первого ответа и общее время решения проблемы.

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

Для каждого из двух числовых признаков значения заменяются рангами: наименьшее значение получает ранг 1, следующее — ранг 2 и так далее. Пусть \(d_i\) — разность рангов времени ожидания и времени решения для заявки \(i\). При \(n \ge 2\) коэффициент Спирмена равен

\[ \rho = 1 - \frac{6\sum_{i=1}^{n} d_i^2}{n(n^2-1)}. \]

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

Формат ввода

В первой строке дано целое число \(n\) — количество заявок.

В следующих \(n\) строках содержатся три целых числа: wait_minutes, resolve_minutes, channel_code — время ожидания первого ответа в минутах, общее время решения в минутах и код канала обращения соответственно.

Формат вывода

Выведите коэффициент ранговой корреляции Спирмена с тремя знаками после десятичной точки.

Ограничения

\(1 \le n \le 4000\).

\(1 \le wait\_minutes \le 10^9\).

\(1 \le resolve\_minutes \le 10^9\).

\(1 \le channel\_code \le 5\).

Все значения wait_minutes попарно различны. Все значения resolve_minutes попарно различны.

Решить задачу с автопроверкой на Python →

Куда дальше