Mathematics/probability statistics

상관계수

jwjwvison 2022. 3. 26. 14:06

 

 이를 프로그램으로 확인해보자.

# 결합확률 정의
prob=np.array([2,4,3,1,1,4])/15
fxy=JPD(['X','Y'],[2,3],prob)
print(fxy)

# 확률분포 확인
np.sum(fxy.values)
# 1.0
# X주변확률 구하기
fx=fxy.marginal_distribution(['X'],inplace=False)
print(fx)

# X의 기댓값 구하기
x=np.array([1,2])
EX=np.dot(x,fx.values)
EX.round(3)
# 1.4

# X의 제곱 기댓값 구하기
EXX=np.dot(x*x,fx.values)
EXX.round(3)
# 2.2

# x의 표준편차 구하기
SDX=np.sqrt(EXX-EX**2)
SDX.round(3)
# 0.49
# Y의 주변분포, 기댓값, 제곱합, 표준편차

# Y의 주변분포
fy=fxy.marginal_distribution(['Y'],inplace=False)

# Y의 기댓값
y=np.array([1,2,3])
EY=np.dot(y,fy.values)

# Y의 제곱 기댓값
EYY=np.dot(y*y, fy.values)

# Y의 표준편차
SDY=np.sqrt(EYY-EY**2)
# 공분산 구하기
# xy값 구성
xy=np.outer(x,y).reshape(-1,)
xy

# XY 기댓값
EXY=np.dot(xy,fxy.values.reshape(-1,))
EXY.round(3)
# 3.267
# 공분산 계산
CovXY=EXY-EX*EY
CovXY.round(3)
# 0.093
# 상관계수 값
rho=CovXY/(SDX * SDY)
rho.round(3) 
# 0.247

'Mathematics > probability statistics' 카테고리의 다른 글

베르누이 분포  (0) 2022.03.26
독립  (0) 2022.03.26
주변분포와 조건부분포  (0) 2022.03.26
조건부확률  (0) 2022.03.26
기댓값  (0) 2022.03.23