相関の強さ
直感的には、与えられたプロットを見て、2つの変数が「一緒に変化している」かどうかを「見て取る」ことができます。
- データセットA: x と y が一緒に変化しており、強い関係があるように見えます。
- データセットB: おおまかな上昇傾向がありますが、x と y の関係は緩やかに見えます。
- データセットC: ランダムな散布に見えます。x と y は一緒に変化しておらず、無関係に見えます。



偏差は平均からの差であり、標準偏差で割って正規化することを思い出してください。この演習では、3つのデータセットについて相関を計算し、x と y の相関が最も強いデータセットを特定します。data_sets というデータ表(各レコードが 'name', 'x', 'y', 'correlation' のキーを持つ辞書の集合)を使用してください。
この演習はコースの一部です
Pythonで学ぶ線形モデリング入門
演習の手順
xとyの正規化した偏差の積の平均を用いて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['____']