Main Content

corrcoef

상관 계수(Correlation Coefficient)

설명

예제

R = corrcoef(A)A에 대한 상관 계수 행렬을 반환합니다. 여기서 A의 열은 확률 변수를 나타내며 행은 관측값을 나타냅니다.

예제

R = corrcoef(A,B)는 두 확률 변수 AB 간의 계수를 반환합니다.

예제

[R,P] = corrcoef(___)는 관측한 현상 간에 관계가 없다는 가설(귀무가설)을 테스트하기 위한 p-값 행렬과 상관 계수 행렬을 반환합니다. 위에 열거된 구문에서 사용된 모든 인수와 함께 이 구문을 사용하십시오. P의 어떤 비대각선 요소가 유의수준보다 작으면(디폴트 값은 0.05임) 그 요소에 대응하여 상관관계를 나타내는 R의 값은 유의미한 것으로 간주됩니다. R에 복소수 요소가 포함되면 구문이 유효하지 않은 걸로 봐야 합니다.

예제

[R,P,RL,RU] = corrcoef(___)는 각 계수의 95% 신뢰구간에 대한 하한 및 상한이 포함된 행렬을 포함합니다. R에 복소수 요소가 포함되면 구문이 유효하지 않은 걸로 봐야 합니다.

예제

___ = corrcoef(___,Name,Value)는 하나 이상의 Name,Value 쌍 인수를 추가 옵션으로 지정하여 위에 열거된 구문에 나와 있는 출력 인수를 반환합니다. 예를 들어, corrcoef(A,'Alpha',0.1)은 90% 신뢰구간을 지정하고, corrcoef(A,'Rows','complete')NaN 값이 하나 이상 포함된 A의 모든 행을 생략합니다.

예제

모두 축소

정규분포된 두 개의 난수 열과, 그 열과의 상대적인 관계로 정의된 하나의 열로 구성된 행렬의 상관 계수를 구합니다. A의 세 번째 열이 두 번째 열의 배수이므로 이들 두 변수 간에는 직접적인 상관관계가 있습니다. 따라서 R(2,3) 요소와 (3,2) 요소의 상관 계수는 1입니다.

x = randn(6,1);
y = randn(6,1);
A = [x y 2*y+3];
R = corrcoef(A)
R = 3×3

    1.0000   -0.6237   -0.6237
   -0.6237    1.0000    1.0000
   -0.6237    1.0000    1.0000

각각 10개 관측값으로 구성된, 정규분포된 두 개의 확률 벡터 사이의 상관 계수 행렬을 구합니다.

A = randn(10,1);
B = randn(10,1);
R = corrcoef(A,B)
R = 2×2

    1.0000    0.4518
    0.4518    1.0000

추가된 네 번째 열이 다른 세 열의 합과 같은, 정규분포된 확률 행렬의 상관 계수와 p-값을 구합니다. A의 마지막 열이 다른 열의 선형 결합이므로 네 번째 변수와 각각의 세 변수 간에는 상관관계가 생깁니다. 따라서 P의 네 번째 행과 네 번째 열에는 매우 작은 p-값이 포함되게 되며 그들 행과 열 간의 유의미한 상관관계를 나타냅니다.

A = randn(50,3);       
A(:,4) = sum(A,2); 
[R,P] = corrcoef(A)
R = 4×4

    1.0000    0.1135    0.0879    0.7314
    0.1135    1.0000   -0.1451    0.5082
    0.0879   -0.1451    1.0000    0.5199
    0.7314    0.5082    0.5199    1.0000

P = 4×4

    1.0000    0.4325    0.5438    0.0000
    0.4325    1.0000    0.3146    0.0002
    0.5438    0.3146    1.0000    0.0001
    0.0000    0.0002    0.0001    1.0000

추가된 네 번째 열이 다른 세 열의 합계와 같은, 정규분포된 확률 행렬을 만들고 상관 계수, p-값, 계수의 하한과 상한을 계산합니다.

A = randn(50,3);       
A(:,4) = sum(A,2); 
[R,P,RL,RU] = corrcoef(A)
R = 4×4

    1.0000    0.1135    0.0879    0.7314
    0.1135    1.0000   -0.1451    0.5082
    0.0879   -0.1451    1.0000    0.5199
    0.7314    0.5082    0.5199    1.0000

P = 4×4

    1.0000    0.4325    0.5438    0.0000
    0.4325    1.0000    0.3146    0.0002
    0.5438    0.3146    1.0000    0.0001
    0.0000    0.0002    0.0001    1.0000

RL = 4×4

    1.0000   -0.1702   -0.1952    0.5688
   -0.1702    1.0000   -0.4070    0.2677
   -0.1952   -0.4070    1.0000    0.2825
    0.5688    0.2677    0.2825    1.0000

RU = 4×4

    1.0000    0.3799    0.3575    0.8389
    0.3799    1.0000    0.1388    0.6890
    0.3575    0.1388    1.0000    0.6974
    0.8389    0.6890    0.6974    1.0000

행렬 RLRU는 기본적으로 95% 신뢰구간에 따라 각 상관 계수에 대해 하한과 상한을 각기 제공합니다. 신뢰율 100*(1-Alpha)%를 정의하는 Alpha 값을 지정하여 신뢰수준을 변경할 수 있습니다. 예를 들어, 99% 신뢰구간을 경계값 RLRU에 반영하여 계산하려면 Alpha 값으로 0.01을 사용하십시오. 신뢰가 높을수록 잠재적인 상관관계 값의 범위는 좀 더 포괄적이어야 하므로 RLRU의 상관 계수 경계값으로 정의된 신뢰구간은 95%와 비교했을 때 99% 신뢰에서 더 큽니다.

[R,P,RL,RU] = corrcoef(A,'Alpha',0.01)
R = 4×4

    1.0000    0.1135    0.0879    0.7314
    0.1135    1.0000   -0.1451    0.5082
    0.0879   -0.1451    1.0000    0.5199
    0.7314    0.5082    0.5199    1.0000

P = 4×4

    1.0000    0.4325    0.5438    0.0000
    0.4325    1.0000    0.3146    0.0002
    0.5438    0.3146    1.0000    0.0001
    0.0000    0.0002    0.0001    1.0000

RL = 4×4

    1.0000   -0.2559   -0.2799    0.5049
   -0.2559    1.0000   -0.4792    0.1825
   -0.2799   -0.4792    1.0000    0.1979
    0.5049    0.1825    0.1979    1.0000

RU = 4×4

    1.0000    0.4540    0.4332    0.8636
    0.4540    1.0000    0.2256    0.7334
    0.4332    0.2256    1.0000    0.7407
    0.8636    0.7334    0.7407    1.0000

NaN 값이 들어 있는 정규분포 행렬을 만들고 나서, NaN이 들어 있는 행을 계산에서 제외하여 상관 계수 행렬을 구합니다.

A = randn(5,3);
A(1,3) = NaN;
A(3,2) = NaN;
A
A = 5×3

    0.5377   -1.3077       NaN
    1.8339   -0.4336    3.0349
   -2.2588       NaN    0.7254
    0.8622    3.5784   -0.0631
    0.3188    2.7694    0.7147

R = corrcoef(A,'Rows','complete')
R = 3×3

    1.0000   -0.8506    0.8222
   -0.8506    1.0000   -0.9987
    0.8222   -0.9987    1.0000

계산에 NaN 값을 모두 포함시키려면 'all'을 사용하십시오.

R = corrcoef(A,'Rows','all')
R = 3×3

     1   NaN   NaN
   NaN   NaN   NaN
   NaN   NaN   NaN

각 쌍별(Pairwise)로 2열 상관 계수를 구하려면 'pairwise'를 사용하십시오. 2열 중 하나에 NaN이 포함된 경우 해당 행은 생략됩니다.

R = corrcoef(A,'Rows','pairwise')
R = 3×3

    1.0000   -0.3388    0.4649
   -0.3388    1.0000   -0.9987
    0.4649   -0.9987    1.0000

입력 인수

모두 축소

입력 배열로, 행렬로 지정됩니다.

  • A가 스칼라인 경우 corrcoef(A)NaN을 반환합니다.

  • A가 벡터인 경우 corrcoef(A)1을 반환합니다.

데이터형: single | double
복소수 지원 여부:

추가 입력 배열로, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다.

  • AB는 크기가 동일해야 합니다.

  • AB가 스칼라이면 corrcoef(A,B)1을 반환합니다. 그러나 AB가 같은 경우 corrcoef(A,B)NaN을 반환합니다.

  • AB가 행렬이나 다차원 배열이면 corrcoef(A,B)는 각 입력값을 해당 벡터 표현으로 변환하며 이는 corrcoef(A(:),B(:))corrcoef([A(:) B(:)])와 동일합니다.

  • AB가 0×0의 빈 배열이면 corrcoef(A,B)NaN 값으로 구성된 2×2 행렬을 반환합니다.

데이터형: single | double
복소수 지원 여부:

이름-값 인수

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

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

예: R = corrcoef(A,'Alpha',0.03)

유의수준으로, 0과 1 사이의 숫자로 지정됩니다. 'Alpha' 파라미터의 값은 상관 계수에 대해 신뢰율 100*(1-Alpha)%를 정의하며 이 값이 RLRU의 경계를 결정합니다.

데이터형: single | double

NaN 옵션의 사용으로, 다음 값 중 하나로 지정됩니다.

  • 'all' — 입력값의 모든 NaN 값을 계산에 포함시켜 상관 계수를 구합니다.

  • 'complete'NaN 값이 있는 입력값 행을 모두 제외하고 상관 계수를 구합니다. 이 옵션은 항상 양의 준정부호 행렬을 반환합니다.

  • 'pairwise' — 각 쌍별(Pairwise)로 NaN이 들어 있는 행을 제외하고 2열의 상관 계수를 구합니다. 이 옵션은 양의 준정부호가 아닌 행렬을 반환할 수 있습니다.

데이터형: char

출력 인수

모두 축소

상관 계수로, 행렬로 반환됩니다.

  • 하나의 행렬 입력값의 경우, R의 크기는 [size(A,2) size(A,2)]이며, A가 나타내는 확률 변수(열)의 개수를 기반으로 합니다. 대각선 요소는 일반적으로 1로 설정되고 비대각선 요소가 변수 쌍의 상관 계수를 나타냅니다. 상관 계수 값의 범위는 -1에서 1 사이일 수 있는데 -1은 직접적인 음의 상관관계를 나타내고 0은 상관관계가 없음을 나타내며 1은 직접적인 양의 상관관계를 나타냅니다. R은 대칭 행렬입니다.

  • 입력 인수가 두 개인 경우, R은 2×2 행렬이 됩니다. R의 대각선 요소는 1로 설정되고 비대각선 요소가 상관 계수를 나타냅니다.

  • 확률 변수가 상수인 경우 다른 모든 변수와의 상관관계는 정의되지 않으며 각각의 행 값과 열 값은 NaN이 됩니다.

P-값으로, 행렬로 반환됩니다. P는 대칭 행렬이며, R과 크기가 같습니다. 대각선 요소는 모두 1이며, 비대각선 요소가 각 변수 쌍에 대한 p-값입니다. P-값의 범위는 0에서 1 사이입니다. 0에 인접한 값은 R에서의 유의미한 상관관계를 나타내며 귀무가설(Null Hypothesis)을 따를 확률이 낮음을 나타냅니다.

상관 계수의 하한으로, 행렬로 반환됩니다. RL은 대칭 행렬이며, R과 크기가 같습니다. 대각선 요소는 모두 1이며, 비대각선 요소는 R에 있는 상관 계수에 대응하는 값으로써 그 계수의 95% 신뢰구간에 대한 하한을 나타냅니다. R에 복소수 요소가 포함되면 RL을 반환하는 구문이 유효하지 않은 걸로 봐야 합니다.

상관 계수의 상한으로, 행렬로 반환됩니다. RU는 대칭 행렬이며, R과 크기가 같습니다. 대각선 요소는 모두 1이며, 비대각선 요소는 R에 있는 상관 계수에 대응하는 값으로써 그 계수의 95% 신뢰구간에 대한 상한을 나타냅니다. R에 복소수 요소가 포함되면 RL을 반환하는 구문이 유효하지 않은 걸로 봐야 합니다.

세부 정보

모두 축소

상관 계수(Correlation Coefficient)

두 확률 변수에 대한 상관 계수는 두 변수 간 선형 관계를 나타내는 척도입니다. 각 변수에 N개 스칼라 관측값이 있으면 피어슨(Pearson) 상관 계수가

ρ(A,B)=1N1i=1N(AiμAσA)(BiμBσB),

로 정의됩니다. 여기서 μAσA는 각각 A의 평균값과 표준편차이며, μBσB는 B의 평균값과 표준편차입니다. 또는 A와 B의 공분산을 이용해 다음과 같이 상관 계수를 정의할 수 있습니다.

ρ(A,B)=cov(A,B)σAσB.

두 확률 변수의 상관 계수 행렬은 각 쌍별 변수 조합의 상관 계수 행렬입니다.

R=(ρ(A,A)ρ(A,B)ρ(B,A)ρ(B,B)).

A와 B는 자신에 대해 항상 직접 상관이 있으므로 대각선 항목은 1이 됩니다. 즉, 다음과 같습니다.

R=(1ρ(A,B)ρ(B,A)1).

참고 문헌

[1] Fisher, R.A. Statistical Methods for Research Workers, 13th Ed., Hafner, 1958.

[2] Kendall, M.G. The Advanced Theory of Statistics, 4th Ed., Macmillan, 1979.

[3] Press, W.H., Teukolsky, S.A., Vetterling, W.T., and Flannery, B.P. Numerical Recipes in C, 2nd Ed., Cambridge University Press, 1992.

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목

| | |