# 공분산을 계산하는 함수
def covariance( x, y ):
n = len( x )
return sum_of_product( deviation( x ), deviation( y ) ) / ( n-1 )
# 표준편차를 계산하는 함수
def standard_deviation( x ):
return math.sqrt( variance( x ) ) # math 모듈의 제곱근 함수 sqrt( )를 사용
# 상관계수를 계산하는 함수
def correlation( xs, ys ):
stdev_x = standard_deviation( xs )
stdev_y = standard_deviation( ys )
if stdev_x > 0 and stdev_y > 0:
return covariance( xs, ys ) / ( stdev_x * stdev_y )
else :
return 0 # 편차가 존재하지 않는다면 상관관계는 0
# x와 y 리스트와 correlation( ) 함수를 사용해 상관관계를 계산
x=[ 41, 43, 38, 37 ]
y=[ 61, 63, 56, 55 ]
print( correlation( x, y ) )
x=[ 35, 45, 35, 34 ]
y=[ 65, 54, 64, 67 ]
print( correlation( x, y ) )
x=[ 35, 45, 35, 34 ]
y=[ 65, 66, 64, 68 ]
print( correlation( x, y ) )