Корреляция метрик фильмов

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

Условие

В базе онлайн-кинотеатра для каждого фильма сохранены число просмотров в первую неделю проката и средняя длительность просмотра в минутах. Часть значений может отсутствовать и обозначается строкой NA.

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

Пусть после удаления строк с пропусками осталось k фильмов, их значения равны x_i и y_i. Обозначим их средние как и ȳ. Коэффициент корреляции Пирсона определяется формулой:

r = Σ((x_i - x̄)(y_i - ȳ)) / √(Σ(x_i - x̄)² · Σ(y_i - ȳ)²).

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

Формат ввода

В первой строке задано целое число n — количество фильмов.

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

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

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

Ограничения

1 ≤ n ≤ 2000.

Длина идентификатора фильма составляет от 1 до 20 символов. Идентификатор состоит из латинских букв, цифр и символа _.

Если значение не равно NA, то число просмотров является целым числом от 0 до 1 000 000 000, а средняя длительность просмотра является целым числом от 0 до 1000.

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

Куда дальше