Main Content

선형 상관관계

소개

상관관계는 두 변수 간 선형 관계의 강도를 수치화한 것입니다. 두 변수 간에 상관관계가 없으면, 변수의 값이 나란히 증가하거나 감소하는 경향이 없는 것입니다. 그러나, 상관관계가 없는 두 변수가 반드시 서로 독립적인 것은 아닙니다. 비선형 관계를 가질 수도 있기 때문입니다.

선형 상관관계를 사용하면 특정 모델을 가정하거나 데이터에 특정 모델을 피팅할 필요 없이 변수 간에 선형 관계가 존재하는지 여부를 조사할 수 있습니다. 선형 상관관계가 적거나 없는 두 변수가 강한 비선형 관계를 가질 수도 있습니다. 그러나 모델을 피팅하기 전에 선형 상관관계를 계산하면 단순 관계를 갖는 변수를 쉽게 식별할 수 있습니다. 데이터의 산점도 플롯을 만들어 변수 간에 어떤 관계가 있는지 알아볼 수도 있습니다.

공분산은 두 변수 간 선형 관계의 강도를 두 변수의 분산에 대한 단위로 수치화한 것입니다. 상관관계는 표준화된 공분산으로, 어느 한 변수의 스케일과 별개로 선형 관계의 정도를 측정하는 무차원 양을 제공합니다.

다음 MATLAB® 함수는 표본 상관 계수와 공분산을 계산합니다. 이러한 표본 계수는 데이터 표본이 추출된 모집단의 실제 공분산과 상관 계수에 대한 추정값입니다.

함수

설명

corrcoef

상관 계수 행렬

cov

공분산 행렬

xcorr

확률 과정의 상호상관 수열(자기상관 포함)

공분산

MATLAB cov 함수를 사용하여 데이터 행렬(여기서 각 열은 개별 양을 나타냄)에 대한 표본 공분산 행렬을 계산합니다.

표본 공분산 행렬은 다음과 같은 속성을 가집니다.

  • cov(X)는 대칭 행렬입니다.

  • diag(cov(X))는 각 데이터 열에 대한 분산으로 구성된 벡터입니다. 이러한 분산은 해당하는 열에 있는 데이터의 퍼져 있는 정도, 즉 산포를 측정한 값을 나타냅니다. (var 함수는 분산을 계산합니다.)

  • sqrt(diag(cov(X)))는 표준편차로 구성된 벡터입니다. (std 함수는 표준편차를 계산합니다.)

  • 공분산 행렬의 비대각선 요소는 개별 데이터 열 사이의 공분산을 나타냅니다.

여기서 X는 벡터이거나 행렬일 수 있습니다. m×n 행렬인 경우, 공분산 행렬은 n×n이 됩니다.

공분산을 계산하는 예제를 실행하기 위해, 다음을 입력하여 24×3 행렬이 들어 있는 count.dat에서 샘플 데이터를 불러오십시오.

load count.dat

다음 구문을 입력하여 이 데이터에 대한 공분산 행렬을 계산합니다.

cov(count)

MATLAB에서 다음과 같은 결과가 반환됩니다.

ans =
    1.0e+003 *
       0.6437  0.9802  1.6567
       0.9802  1.7144  2.6908
       1.6567  2.6908  4.6278

이 데이터에 대한 공분산 행렬은 다음과 같은 형식을 갖습니다.

[s211s212s213s221s222s223s231s232s233]s2ij=s2ji

여기서 s2ij는 데이터의 열 i와 열 j 간의 표본 공분산입니다. count 행렬에 3개의 열이 있으므로 공분산 행렬은 3×3이 됩니다.

참고

벡터가 cov의 인수인 특별한 경우에 이 함수는 분산을 반환합니다.

상관 계수(Correlation Coefficient)

함수 corrcoef는 데이터 행렬(여기서 각 열은 개별 양을 나타냄)에 대한 표본 상관 계수로 구성된 행렬을 생성합니다. 상관 계수의 범위는 -1에서 1 사이입니다. 여기서,

  • 값이 1에 가까우면 데이터 열 간에 양의 선형 관계가 있음을 나타냅니다.

  • 값이 -1에 가까우면 데이터의 한 열이 데이터의 다른 한 열과 음의 선형 관계를 가짐을 나타냅니다(반 상관관계).

  • 값이 0에 가깝거나 0이면 데이터 열 간에 선형 관계가 없음을 암시합니다.

데이터 행렬이 m×n 행렬인 경우, 상관 계수 행렬은 n×n이 됩니다. 상관 계수 행렬에서의 요소 배치는 공분산 행렬에 있는 요소들의 위치에 대응됩니다. 공분산 항목의 설명을 참조하십시오.

상관 계수를 계산하는 예제를 실행하기 위해, 다음을 입력하여 24×3 행렬이 들어 있는 count.dat에서 샘플 데이터를 불러오십시오.

load count.dat

다음 구문을 입력하여 상관 계수를 계산합니다.

corrcoef(count)

그러면 다음과 같이 상관 계수로 구성된 3×3 행렬이 반환됩니다.

ans = 
    1.0000    0.9331    0.9599
    0.9331    1.0000    0.9553
    0.9599    0.9553    1.0000

모든 상관 계수가 1에 가까우므로, count 행렬의 각 데이터 열 쌍 간에 강한 양의 상관관계가 있음을 알 수 있습니다.