ПочатиПочніть безкоштовно

Сила кореляції

Інтуїтивно ми можемо подивитися на подані графіки й «побачити», чи «змінюються разом» дві змінні.

  • Набір даних A: x і y змінюються разом і, схоже, мають сильний зв'язок.
  • Набір даних B: помітна загальна висхідна тенденція; x і y пов'язані лише слабко.
  • Набір даних C: виглядає як випадкове розсіювання; x і y не змінюються разом і не пов'язані.

Data Set A

Data Set B

Data Set C

Згадайте, що відхилення — це різниця від середнього, а нормалізація полягала в поділі відхилень на стандартне відхилення. У цій вправі ви порівняєте 3 набори даних, обчисливши кореляцію, і визначите, у якому наборі даних змінні x та y корелюють найсильніше. Використайте надану таблицю даних data_sets — словник записів, у кожному з яких є ключі 'name', 'x', 'y' та 'correlation'.

Ця вправа є частиною курсу

Вступ до лінійного моделювання в Python

Переглянути курс

Інструкції до вправи

  • Доповніть визначення функції correlation() як середнє добутків нормованих відхилень x та y.
  • Проінтеруйте data_sets, обчисливши та зберігши кожне значення кореляції за допомогою correlation(record['x'], record['y']).
  • Запустіть код до цього місця (тобто до кінця циклу for) і перегляньте вивід. У якого набору даних кореляція найсильніша?
  • Присвойте назву набору даних (data_sets['A'], data_sets['B'] або data_sets['C']) з найсильнішою кореляцією змінній best_data.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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['____']
Редагувати та запускати код