2016-12-03 1 views
1

저는 파이썬과 선형 대수학에 익숙하지 않습니다. 매트릭스의 공분산에 대한 질문이 있습니다. numpy.cov는 실제로 무엇을합니까

제가 첫번째 컬럼 년 초 열 1996 2016

I이었다 범위 년 것을 풀어 비디오 게임 (0 내지 10)의 평균 점수를 나타내고, 21 (2)에 의한 행렬을 가지고 데이터를 가지고 노는 것이고, np.cov (X)를하면 알게되었습니다. 매우 흥미로운 그래프가 있습니다. 나는 아래 그래프를 열거 할 것이다. 공분산은 데이터 집합의 변수들 사이의 의존성을 보여 주지만,이 공분산 그래프에 기초하여 게임의 평균 점수는 해가 갈수록 증가한다고 말할 수 있습니까?

enter image description here

감사합니다.

+0

선택한 "공분산"태그는 통계 데이터가 아닌 다형성과 관련이 있습니다. 제거되었습니다. –

답변

3

계산이 중요하지 않습니다. 기본적으로 np.cov(X)에 대해 X의 각 행은 변수를 나타내고 열에는 관측 값이 표시됩니다. 예를 들어, 첫 번째 행은 1 년 동안 비가 내릴 수도 있고, 또 다른 행은 비디오 게임의 평균 등급 일 수도 있고, 또 다른 행은 2012와 같이 올해 자체의 숫자 일 수도 있습니다. 그러면 C = np.cov(X)은 3 x 3 행렬 C를 제공합니다. 여기서 각 대각선 항목 그 행에 얼마나 차이가 있는지를 알려주고, 대각선이 아닌 항목은 서로 다른 행이 어떻게 상관되어 있는지를 말해줍니다. 즉, 행 i와 행 j의 상관 계수는 C[i,j]/sqrt(C[i,i]*C[j,j])이다.

데이터가 X = [[7.5, 2010], [8.2, 2011], [8.1, 2013]] 인 경우, np.cov(X)은 의미가 없습니다. 7.5 및 2010은 동일한 변수에 대한 두 가지 관측치가 아니기 때문입니다. 오히려, 7.5, 8.2 및 8.1은 동일한 변수 (게임 등급)의 다른 관찰입니다. 당신이 사용해야하는 것은 변수를 열 것을

C = np.cov(X, rowvar=False) 

이 NumPy와 얘기하는 것입니다. 당신은 오프 대각선 기간이 긍정적이기 때문에,이 두 변수는 양의 상관 관계 것은 사실입니다 내 예를

[[ 0.14333333, 0.38333333], 
    [ 0.38333333, 2.33333333]] 

(2 개 변수가 있기 때문에), 2 (2)에 의한 행렬을 얻을 것이다. 구체적으로, 상관 계수는 C[0,1]/np.sqrt(C[0,0]*C[1,1])이고, 이는 매우 강한 상관 관계를 나타내는 0.66이다.

관련 문제