반응형

15-01 공분산 (cov)

DataFrame.cov(min_periods=None, ddof=1)

 

개요


cov 메서드는 결측값을 제외한 쌍별 공분산을 구하는 메서드입니다.
공분산이란 확률변수가 2가지 일때 얼마나 퍼져있는가를 구하는 방법입니다.
즉, 두 값을 X축 Y축으로 놓고 점산도를 그렸을때 퍼진 정도라고 할 수 있습니다.

 

사용법


기본 사용법
※ 자세한 내용은 아래 예시를 참고 바랍니다.
df.cov(min_periods=None, ddof=1)
min_periods : 공분산을 구할 최소 요소의 갯수 입니다. 요소의 갯수가 모자르면 NaN을 반환합니다.

반응형

 

예시


먼저 기본적인 사용법 예시를 위해 5x2짜리 객체 3개를 생성하겠습니다.

col = ['X','Y']
data1 = [[-6,-3],[-4,-1],[-2,-3],[0,1],[2,2]]
data2 = [[7,-4],[4,-1],[2,0],[-1,3],[-4,9]]
data3 = [[3,-4],[3,-1],[3,0],[3,3],[3,9]]
df1 = pd.DataFrame(data=data1, columns=col)
df2 = pd.DataFrame(data=data2, columns=col)
df3 = pd.DataFrame(data=data3, columns=col)

여기에 사진 첨부


기본적인 사용법
df1은 좌표평면상에서 x가 증가할때 y도 증가하는 경향을 가집니다.
이때 공분산(cov)값은 0보다 크며 양의 상관관계라고 합니다.

print(df1.cov())
>>
      X    Y
X  10.0  6.0
Y   6.0  5.2

df2은 좌표평면상에서 x가 증가할때 y는 감소하는 경향을 가집니다.
이때 공분산(cov)값은 0보다 작으며 음의 상관관계라고 합니다.

print(df2.cov())
>>
       X      Y
X  18.30 -20.55
Y -20.55  24.30

df3은 좌표평면상에서 y가 변하여도 x는 변하지 않습니다.
이처럼 x와 y가 상관 없는경우 공분산(cov)값은 0입니다.

print(df3.cov())
>>
     X     Y
X  0.0   0.0
Y  0.0  24.3


min_periods인수의 사용
min_periods인수는 공분산에 이용될 요소의 최소 갯수를 제한합니다.
이 숫자보다 요소의 수가 적을 경우 NaN을 반환합니다.

print(df3.cov(min_periods=6))
>>
    X   Y
X NaN NaN
Y NaN NaN
반응형

+ 최근 글