Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

corr

선형 상관 또는 순위 상관

설명

rho = corr(X)는 입력 행렬 X의 각각의 열 쌍 간의 쌍별(Pairwise) 선형 상관 계수로 구성된 행렬을 반환합니다.

예제

rho = corr(X,Y)는 입력 행렬 XY의 각각의 열 쌍 간의 쌍별 상관 계수로 구성된 행렬을 반환합니다.

예제

[rho,pval] = corr(X,Y)는 0이 아닌 상관관계가 있다는 대립가설에 대비해 상관관계가 없다는 가설을 검정하는 데 사용되는 p-값으로 구성된 행렬인 pval도 반환합니다.

예제

[rho,pval] = corr(___,Name,Value)는 위에 열거된 구문에 나와 있는 입력 인수와 함께 하나 이상의 이름-값 쌍의 인수를 사용하여 옵션을 지정합니다. 예를 들어, 'Type','Kendall'은 켄달(Kendall)의 타우 상관 계수 계산을 지정합니다.

예제

모두 축소

두 행렬 간 상관관계를 찾아 두 개의 열 벡터 간 상관관계와 비교합니다.

표본 데이터를 생성합니다.

rng('default')
X = randn(30,4);
Y = randn(30,4);

행렬 X의 2열과 행렬 Y의 4열 간의 상관관계를 추가합니다.

Y(:,4) = Y(:,4)+X(:,2);

XY의 열 간의 상관관계를 계산합니다.

[rho,pval] = corr(X,Y)
rho = 4×4

   -0.1686   -0.0363    0.2278    0.3245
    0.3022    0.0332   -0.0866    0.7653
   -0.3632   -0.0987   -0.0200   -0.3693
   -0.1365   -0.1804    0.0853    0.0279

pval = 4×4

    0.3731    0.8489    0.2260    0.0802
    0.1045    0.8619    0.6491    0.0000
    0.0485    0.6039    0.9166    0.0446
    0.4721    0.3400    0.6539    0.8837

예상대로 X의 2열과 Y의 4열 간의 상관 계수, 즉 rho(2,4)가 가장 높으며, 이는 두 열 간의 높은 양의 상관관계를 나타냅니다. 대응하는 p-값인 pval(2,4)는 표시된 4자리까지 0입니다. p-값이 유의수준 0.05보다 작기 때문에 '두 열 간에 상관관계가 없다'는 가설이 기각됨을 나타냅니다.

corrcoef를 사용하여 XY 간의 상관관계를 계산합니다.

[r,p] = corrcoef(X,Y)
r = 2×2

    1.0000   -0.0329
   -0.0329    1.0000

p = 2×2

    1.0000    0.7213
    0.7213    1.0000

corr 함수와 다르게 MATLAB® 함수 corrcoef는 입력 행렬 XY 간의 상관관계를 계산하기 전에 이 두 입력 행렬을 열 벡터 X(:)Y(:)로 변환합니다. 따라서 행렬 X의 2열과 행렬 Y의 4열이 변환된 열 벡터에서 서로 다른 섹션에 있으므로 이 두 열 간의 상관관계가 더 이상 존재하지 않게 됩니다.

XY 간의 상관 계수를 나타내는 r의 비대각선 요소의 값은 낮습니다. 이 값은 XY 간에 상관관계가 거의 없음을 나타냅니다. 마찬가지로, p-값을 나타내는 p의 비대각선 요소의 값은 유의수준 0.05보다 훨씬 더 높습니다. 이 값은 'XY 간에 상관관계가 없다'는 가설을 기각하기 위한 충분한 증거가 없음을 나타냅니다.

두 행렬의 열 간 양의 상관관계, 음의 상관관계, 0이 아닌 상관관계에 대한 대립가설을 검정합니다. 각 경우의 상관 계수의 값과 p-값을 비교합니다.

표본 데이터를 생성합니다.

rng('default')
X = randn(50,4);
Y = randn(50,4);

행렬 X의 1열과 행렬 Y의 4열 간에 양의 상관관계를 추가합니다.

Y(:,4) = Y(:,4)+0.7*X(:,1);

X의 2열과 Y의 2열 간에 음의 상관관계를 추가합니다.

Y(:,2) = Y(:,2)-2*X(:,2);

'상관관계가 0보다 크다'는 대립가설을 검정합니다.

[rho,pval] = corr(X,Y,'Tail','right')
rho = 4×4

    0.0627   -0.1438   -0.0035    0.7060
   -0.1197   -0.8600   -0.0440    0.1984
   -0.1119    0.2210   -0.3433    0.1070
   -0.3526   -0.2224    0.1023    0.0374

pval = 4×4

    0.3327    0.8405    0.5097    0.0000
    0.7962    1.0000    0.6192    0.0836
    0.7803    0.0615    0.9927    0.2298
    0.9940    0.9397    0.2398    0.3982

예상대로 X의 1열과 Y의 4열 간의 상관 계수 rho(1,4)가 가장 높은 양수 값을 가지며, 이는 두 열 간에 높은 양의 상관관계가 성립됨을 나타냅니다. 대응하는 p-값인 pval(1,4)는 표시된 4자리까지 0이며, 이는 유의수준 0.05보다 낮습니다. 이러한 결과는 '두 열 간에 상관관계가 없다'는 귀무가설이 기각됨을 나타내며 상관관계가 0보다 크다는 결론에 이르게 합니다.

'상관관계가 0보다 작다'는 대립가설을 검정합니다.

[rho,pval] = corr(X,Y,'Tail','left')
rho = 4×4

    0.0627   -0.1438   -0.0035    0.7060
   -0.1197   -0.8600   -0.0440    0.1984
   -0.1119    0.2210   -0.3433    0.1070
   -0.3526   -0.2224    0.1023    0.0374

pval = 4×4

    0.6673    0.1595    0.4903    1.0000
    0.2038    0.0000    0.3808    0.9164
    0.2197    0.9385    0.0073    0.7702
    0.0060    0.0603    0.7602    0.6018

예상대로 X의 2열과 Y의 2열 간의 상관 계수, 즉 rho(2,2)가 절댓값이 가장 큰 음수 값(-0.86)을 가지며, 이는 두 열 간에 높은 음의 상관관계가 성립됨을 나타냅니다. 대응하는 p-값인 pval(2,2)는 표시된 4자리까지 0이며, 이는 유의수준 0.05보다 낮습니다. 이러한 결과는 이번에도 귀무가설이 기각됨을 나타내며 상관관계가 0보다 작다는 결론에 이르게 합니다.

'상관관계가 0이 아니다'는 대립가설을 검정합니다.

[rho,pval] = corr(X,Y)
rho = 4×4

    0.0627   -0.1438   -0.0035    0.7060
   -0.1197   -0.8600   -0.0440    0.1984
   -0.1119    0.2210   -0.3433    0.1070
   -0.3526   -0.2224    0.1023    0.0374

pval = 4×4

    0.6654    0.3190    0.9807    0.0000
    0.4075    0.0000    0.7615    0.1673
    0.4393    0.1231    0.0147    0.4595
    0.0120    0.1206    0.4797    0.7964

p-값 pval(1,4)pval(2,2)는 표시된 4자리까지 모두 0입니다. p-값이 유의수준 0.05보다 낮기 때문에 상관 계수 rho(1,4)rho(2,2)는 0과 현저히 다릅니다. 따라서 귀무가설이 기각되며 상관관계가 0이 아닙니다.

입력 인수

모두 축소

입력 행렬로, n×k 행렬로 지정됩니다. X의 행은 관측값에 대응되고, 열은 변수에 대응됩니다.

예: X = randn(10,5)

데이터형: single | double

입력 행렬로, X가 n×k1 행렬로 지정된 경우 n×k2 행렬로 지정됩니다. Y의 행은 관측값에 대응되고, 열은 변수에 대응됩니다.

예: Y = randn(20,7)

데이터형: single | double

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: corr(X,Y,'Type','Kendall','Rows','complete')는 누락값을 포함하지 않는 행만 사용하여 켄달(Kendall)의 타우 상관 계수를 반환합니다.

상관관계 유형으로, 'Type'과 함께 다음 값 중 하나가 쉼표로 구분되어 지정됩니다.

corr은 상관관계의 변환에 스튜던트 t 분포(Student's t distribution)를 사용하여 피어슨의 상관관계에 대한 p-값을 계산합니다. 이 상관관계는 XY가 정규분포인 경우 정확합니다. corr은 정확한 순열 분포(소규모 표본 크기의 경우) 또는 대규모 표본 근삿값을 사용하여 켄달의 타우와 스피어만의 로(rho)에 대한 p-값을 계산합니다.

예: 'Type','Spearman'

계산에 사용할 행으로, 'Rows'와 함께 다음 값 중 하나가 쉼표로 구분되어 지정됩니다.

설명
'all'누락값(NaN)에 상관없이 입력값의 모든 행을 사용합니다.
'complete'누락값이 없는 입력값의 행만 사용합니다.
'pairwise'i 또는 j에 누락값이 없는 행을 사용하여 rho(i,j)를 계산합니다.

'pairwise' 값과 다르게 'complete' 값은 항상 양의 정부호 행렬 또는 양의 준정부호 행렬 rho를 생성합니다. 또한, 입력값(X 또는 Y)의 행이 누락값을 포함하는 경우 'complete' 값은 일반적으로 더 적은 수의 관측값을 사용하여 rho를 추정합니다.

예: 'Rows','pairwise'

대립가설로, 'Tail'과 함께 표에 나와 있는 값 중 하나가 쉼표로 구분되어 지정됩니다. 'Tail'은 '상관관계가 없다'는 가설을 검정하기 위한 p-값을 계산하는 데 기준이 되는 대립가설을 지정합니다.

설명
'both''상관관계가 0이 아니다'는 대립가설을 검정합니다.
'right''상관관계가 0보다 크다'는 대립가설을 검정합니다.
'left''상관관계가 0보다 작다'는 대립가설을 검정합니다.

corr은 두 개의 한쪽 꼬리 검정에 대한 p-값에서 더 유의미한 값에 2를 곱하여 양쪽 꼬리 검정에 대한 p-값을 계산합니다.

예: 'Tail','left'

출력 인수

모두 축소

쌍별 선형 상관 계수로, 행렬로 반환됩니다.

  • 행렬 X만 입력할 경우, rho는 대칭 k×k 행렬이고, 여기서 k는 X에 포함된 열의 개수입니다. 항목 rho(a,b)X의 열 a와 열 b 간의 쌍별 선형 상관 계수입니다.

  • 행렬 X와 행렬 Y를 입력할 경우, rho는 k1×k2 행렬이고, 여기서 k1과 k2는 각각 XY의 열 개수입니다. 항목 rho(a,b)X의 열 a와 Y의 열 b 간의 쌍별 선형 상관 계수입니다.

p-값으로, 행렬로 반환됩니다. pval의 각 요소는 rho의 대응 요소에 대한 p-값입니다.

pval(a,b)가 작은 값인 경우(즉, 0.05보다 작은 경우), 상관관계 rho(a,b)는 0에서 현저하게 멀어진 값이 됩니다.

세부 정보

모두 축소

피어슨(Pearson)의 선형 상관 계수

피어슨의 선형 상관 계수는 가장 일반적으로 사용되는 선형 상관 계수입니다. 평균이 각각 X¯a=i=1n(Xa,i)/n,Y¯b=j=1n(Yb,j)/n인 행렬 X의 열 Xa와 행렬 Y의 열 Yb의 경우, 피어슨 선형 상관 계수 rho(a,b)는 다음과 같이 정의됩니다.

rho(a,b)=i=1n(Xa,iX¯a)(Yb,iY¯b){i=1n(Xa,iX¯a)2j=1n(Yb,jY¯b)2}1/2,

여기서 n은 각 열의 길이입니다.

상관 계수의 값은 –1에서 +1 사이의 범위에 있을 수 있습니다. 값이 –1이면 완벽한 음의 상관관계를 나타내고, 값이 +1이면 완벽한 양의 상관관계를 나타냅니다. 값이 0이면 두 열 간에 상관관계가 없음을 나타냅니다.

켄달(Kendall)의 타우 계수

켄달의 타우는 i<j를 충족하며 서로 일치하는, 즉 Xa,iXa,jYb,iYb,j가 동일한 부호를 갖는 (i,j) 쌍의 개수 계산을 기반으로 합니다. 켄달의 타우 방정식에는 정규화 상수의 동순위(Tie) 조정이 포함되며, 이를 대개 타우-b라고 합니다.

행렬 X의 열 Xa 및 행렬 Y의 열 Yb에 대해 켄달의 타우 계수는 다음과 같이 정의됩니다.

τ=2Kn(n1),

여기서는 다음이 성립됩니다. K=i=1n1j=i+1nξ*(Xa,i,Xa,j,Yb,i,Yb,j),

ξ*(Xa,i,Xa,j,Yb,i,Yb,j)={1if(Xa,iXa,j)(Yb,iYb,j)>00if(Xa,iXa,j)(Yb,iYb,j)=01if(Xa,iXa,j)(Yb,iYb,j)<0.

상관 계수의 값은 –1에서 +1 사이의 범위에 있을 수 있습니다. 값이 –1이면 하나의 열 순위가 다른 열 순위와 반대임을 나타내고, 값이 +1이면 두 순위가 동일함을 나타냅니다. 값이 0이면 두 열 간에 관계가 없음을 나타냅니다.

스피어만의 로(Spearman's Rho)

스피어만의 로(rho)는 열 Xa 및 열 Yb의 순위에 적용되는 피어슨(Pearson)의 선형 상관 계수와 같습니다.

각 열의 모든 순위가 고유한 경우 방정식은 다음과 같이 단순화할 수 있습니다.

rho(a,b)=16d2n(n21),

여기서 d는 두 열의 순위 차이이며, n은 각 열의 길이입니다.

corr(X,Y)와 비교하여 MATLAB® 함수 corrcoef(X,Y)가 다른 점은 corrcoef(X,Y)는 두 개의 열 벡터 XY의 상관 계수로 구성된 행렬을 반환한다는 점입니다. XY가 열 벡터가 아닌 경우, corrcoef(X,Y)는 이들을 열 벡터로 변환합니다.

참고 문헌

[1] Gibbons, J.D. Nonparametric Statistical Inference. 2nd ed. M. Dekker, 1985.

[2] Hollander, M., and D.A. Wolfe. Nonparametric Statistical Methods. Wiley, 1973.

[3] Kendall, M.G. Rank Correlation Methods. Griffin, 1970.

[4] Best, D.J., and D.E. Roberts. "Algorithm AS 89: The Upper Tail Probabilities of Spearman's rho." Applied Statistics, 24:377-379.

확장 기능

버전 내역

R2006a 이전에 개발됨