始める無料で始める

相関の強さ

直感的には、与えられたプロットを見て、2つの変数が「一緒に変化している」かどうかを「見て取る」ことができます。

  • データセット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で学ぶ線形モデリング入門

コースを見る

演習の手順

  • xy の正規化した偏差の積の平均を用いて correlation() の関数定義を完成させてください。
  • 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['____']
コードを編集して実行