форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
28 строки
679 B
Python
28 строки
679 B
Python
# Модуль 2
|
|
# Расчет корреляции
|
|
def corr(x,y):
|
|
if not x or not y:
|
|
# Ошибка! Отсутсвует аргумент.
|
|
return 22
|
|
import math
|
|
sum1=sum2=sum3=0
|
|
n=min(len(x),len(y))
|
|
if n<2:
|
|
# Ошибка! Малая выборка.
|
|
return 33
|
|
x=x[:n]
|
|
y=y[:n]
|
|
x_mean=sum(x)/n
|
|
y_mean=sum(y)/n
|
|
for i in range(n):
|
|
sum1+=(x[i]-x_mean)*(y[i]-y_mean)
|
|
sum2+=(x[i]-x_mean)**2
|
|
sum3+=(y[i]-y_mean)**2
|
|
if sum2!=0 and sum3!=0:
|
|
znam=math.sqrt(sum2*sum3)
|
|
else:
|
|
# Ошибка! Деление на ноль.
|
|
return 44
|
|
r=sum1/znam
|
|
return r
|