Сила корреляции
Взглянув на графики, можно интуитивно «увидеть», изменяются ли две переменные совместно.
- Набор данных A: x и y изменяются вместе и, по всей видимости, тесно связаны.
- Набор данных B: прослеживается приблизительная восходящая тенденция; x и y связаны лишь слабо.
- Набор данных C: данные выглядят как случайный разброс; x и y не изменяются совместно и не связаны между собой.



Напомним, что отклонения вычисляются относительно среднего значения, а нормировка выполняется путём деления отклонений на стандартное отклонение. В этом упражнении вы сравните три набора данных, вычислив корреляцию и определив, в каком из них переменные x и y связаны наиболее сильно. Используйте предоставленную таблицу данных data_sets — словарь записей, каждая из которых содержит ключи 'name', 'x', 'y' и 'correlation'.
Это упражнение является частью курса
Введение в линейное моделирование на Python
Инструкции к упражнению
- Завершите определение функции
correlation(), используя среднее значение произведений нормированных отклоненийxиy. - Выполните итерацию по
data_sets, вычисляя и сохраняя корреляцию для каждой записи с помощьюcorrelation(record['x'], record['y']). - Запустите код вплоть до этой точки (то есть до конца цикла
for) и проверьте вывод. У какого набора данных корреляция наиболее сильная? - Присвойте переменной
best_dataназвание набора данных (data_sets['A'],data_sets['B']илиdata_sets['C']) с наиболее сильной корреляцией.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Complete the function that will compute correlation.
def correlation(x,y):
x_dev = x - np.____(x)
y_dev = y - np.____(y)
x_norm = x_dev / np.____(x)
y_norm = y_dev / np.____(y)
return np.____(x_norm * y_norm)
# Compute and store the correlation for each data set in the list.
for name, data in data_sets.items():
data['correlation'] = ____(data['x'], data['y'])
print('data set {} has correlation {:.2f}'.format(name, data['correlation']))
# Assign the data set with the best correlation.
best_data = data_sets['____']