форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
23 строки
843 B
Python
23 строки
843 B
Python
def calculate_correlation(list1, list2):
|
|
"""Модуль 2: Вычисляет коэффициент корреляции для двух списков"""
|
|
# Если списки разной длины, используем минимальную длину
|
|
n = min(len(list1), len(list2))
|
|
|
|
# Берем только первые n элементов из каждого списка
|
|
x = list1[:n]
|
|
y = list2[:n]
|
|
mean_x = sum(x)/n
|
|
mean_y = sum(y)/n
|
|
chisl = 0
|
|
sum1 = 0
|
|
sum2 = 0
|
|
for i in range(n):
|
|
chisl += (x[i] - mean_x) * (y[i] - mean_y)
|
|
sum1 += (x[i] - mean_x) ** 2
|
|
sum2 += (y[i] - mean_y) ** 2
|
|
znam = (sum1 * sum2) ** 0.5
|
|
if znam == 0:
|
|
return ('Ошибка, деление на ноль')
|
|
correlation = chisl / znam
|
|
return correlation
|