Trace: • correlation_coefficient
Correlation_coefficient
Коэфициент кореляции показывает есть ли линейная зависимость у точек.
Допустим у нас есть стандартные отклонения для x(SDx) и y(SDy). Для начала нам нужно перевести xi и yi в стандартные единицы по формуле:
назовём получившиеся массивы как x* и y* соответственно. Теперь получаем коэфициент кореляции по формуле:
Результат будет от -1 до 1. Чем ближе результат к нулю, тем хаотичнее расположены точки. Если результат близок к 1, то точки расположены на линии идущей вверх, если близок к -1, то линия идёт вниз.
import math
M=lambda x: float(sum(x))/len(x)
def S(X):
a = [((x) - M(X))**2 for x in X]
return math.sqrt(M(a))
X=[1,2,3,4,5,6]
Y=[1,2,3,4,5,7]#!!!
def StdUnits(X):
a = [(x) - M(X) for x in X]
Xstar = [x/S(X) for x in a]
return Xstar
def corr(X,Y):
a=StdUnits(X)
b=StdUnits(Y)
c=[a[i]*b[i] for i in range(len(a))]
return sum(c)/len(c)
print corr(X,Y) #0.98 because of 7 in Y


