Độ mạnh tương quan
Về trực giác, bạn có thể nhìn các biểu đồ và “nhận ra” liệu hai biến có “thay đổi cùng nhau” hay không.
- Bộ dữ liệu A: x và y thay đổi cùng nhau và có vẻ có mối quan hệ mạnh.
- Bộ dữ liệu B: có xu hướng tăng nhẹ; x và y có vẻ chỉ liên hệ lỏng lẻo.
- Bộ dữ liệu C: trông như nhiễu ngẫu nhiên; x và y không có vẻ thay đổi cùng nhau và không liên quan.



Hãy nhớ rằng độ lệch là chênh lệch so với giá trị trung bình, và ta chuẩn hóa bằng cách chia độ lệch cho độ lệch chuẩn. Trong bài này bạn sẽ so sánh 3 bộ dữ liệu bằng cách tính hệ số tương quan và xác định bộ dữ liệu nào có cặp biến x và y tương quan mạnh nhất. Sử dụng bảng dữ liệu data_sets, một danh sách các bản ghi (dictionary), mỗi bản ghi có các khóa 'name', 'x', 'y', và 'correlation'.
Bài tập này là một phần của khóa học
Nhập môn Mô hình tuyến tính với Python
Hướng dẫn bài tập
- Hoàn thiện định nghĩa hàm
correlation()bằng cách lấy trung bình của tích các độ lệch đã chuẩn hóa củaxvày. - Lặp qua
data_sets, tính và lưu từng giá trị tương quan bằngcorrelation(record['x'], record['y']). - Chạy mã đến thời điểm này (tức là kết thúc vòng lặp for) và xem kết quả in ra. Bộ dữ liệu nào có tương quan mạnh nhất?
- Gán tên của bộ dữ liệu (
data_sets['A'],data_sets['B'], hoặcdata_sets['C']) có tương quan mạnh nhất vào biếnbest_data.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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['____']