開始使用免費開始

相關性強度

直覺上,我們可以觀察下列圖形來「看」兩個變數是否「一起變動」。

  • 資料集 A:x 與 y 一起變動,關係看起來很強。
  • 資料集 B:大致往上走;x 與 y 的關聯看起來較鬆散。
  • 資料集 C:像是隨機散佈;x 與 y 看起來不一起變動,彼此無關。

資料集 A

資料集 B

資料集 C

回想一下,偏差是與平均數之間的差,而我們會以標準差來做標準化(把偏差除以標準差)。在這個練習中,你將透過計算相關性來比較這 3 個資料集,並判斷哪一個資料集的變數 x 與 y 的相關性最強。請使用提供的資料表 data_sets,這是由多筆紀錄組成的字典,每筆都有 'name'、'x'、'y'、'correlation' 這些鍵。

本練習屬於課程

Python 線性建模入門

檢視課程

練習說明

  • 完成 correlation() 的函式定義,使用 xy 的「標準化偏差乘積」的平均值。
  • 走訪 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['____']
編輯並執行程式碼