Bài 25
Đề bài: Tính hệ số tương quan Pearson giua 2 bien X và Y.
r = sum((xi - x_bar)(yi - y_bar)) / sqrt(sum(xi-x_bar)^2 * sum(yi-y_bar)^2)
Nhan xet: |r| > 0.8: manh | 0.5-0.8: trung bình | < 0.5: yeu
Ví dụ: X = [1,2,3,4,5], Y = [2,4,5,4,5]
Kết quả:
x_bar = 3.0, y_bar = 4.0
r = 0.894
Tuong quan duong MANH
Đăng nhập để giáo viên có thể giao bài và nhận bài nộp của bạn.
Câu trả lời
import math
X = list(map(float, input("Nhap cac gia tri X (cach nhau dau cach): ").split()))
Y = list(map(float, input("Nhap cac gia tri Y (cach nhau dau cach): ").split()))
if len(X) != len(Y):
print("X va Y phai co cung so phan tu!")
else:
n = len(X)
x_bar = sum(X) / n
y_bar = sum(Y) / n
tu_so = sum((X[i]-x_bar)*(Y[i]-y_bar) for i in range(n))
mau_X = sum((X[i]-x_bar)**2 for i in range(n))
mau_Y = sum((Y[i]-y_bar)**2 for i in range(n))
mau_so = math.sqrt(mau_X * mau_Y)
if mau_so == 0:
print("Mot trong hai bien la hang so, khong tinh duoc r")
else:
r = tu_so / mau_so
print(f"\nx_bar = {round(x_bar,4)}, y_bar = {round(y_bar,4)}")
print(f"r = {round(r, 6)}")
abs_r = abs(r)
if abs_r > 0.8:
muc_do = "MANH"
elif abs_r > 0.5:
muc_do = "TRUNG BINH"
else:
muc_do = "YEU"
huong = "DUONG" if r > 0 else "AM"
print(f"Tuong quan {huong} {muc_do} (|r| = {round(abs_r,4)})")