corr
선형 상관 또는 순위 상관
설명
[
는 위에 열거된 구문에 나와 있는 입력 인수와 함께 하나 이상의 이름-값 쌍의 인수를 사용하여 옵션을 지정합니다. 예를 들어, 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);
X
와 Y
의 열 간의 상관관계를 계산합니다.
[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
를 사용하여 X
와 Y
간의 상관관계를 계산합니다.
[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
는 입력 행렬 X
와 Y
간의 상관관계를 계산하기 전에 이 두 입력 행렬을 열 벡터 X(:)
및 Y(:)
로 변환합니다. 따라서 행렬 X
의 2열과 행렬 Y
의 4열이 변환된 열 벡터에서 서로 다른 섹션에 있으므로 이 두 열 간의 상관관계가 더 이상 존재하지 않게 됩니다.
X
와 Y
간의 상관 계수를 나타내는 r
의 비대각선 요소의 값은 낮습니다. 이 값은 X
와 Y
간에 상관관계가 거의 없음을 나타냅니다. 마찬가지로, p-값을 나타내는 p
의 비대각선 요소의 값은 유의수준 0.05
보다 훨씬 더 높습니다. 이 값은 'X
와 Y
간에 상관관계가 없다'는 가설을 기각하기 위한 충분한 증거가 없음을 나타냅니다.
상관관계에 대한 대립가설 검정하기
두 행렬의 열 간 양의 상관관계, 음의 상관관계, 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이 아닙니다.
입력 인수
X
— 입력 행렬
행렬
입력 행렬로, n×k 행렬로 지정됩니다. X
의 행은 관측값에 대응되고, 열은 변수에 대응됩니다.
예: X = randn(10,5)
데이터형: single
| double
Y
— 입력 행렬
행렬
입력 행렬로, 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
— 상관관계 유형
'Pearson'
(디폴트 값) | 'Kendall'
| 'Spearman'
상관관계 유형으로, 'Type'
과 함께 다음 값 중 하나가 쉼표로 구분되어 지정됩니다.
값 | 설명 |
---|---|
'Pearson' | 피어슨(Pearson)의 선형 상관 계수 |
'Kendall' | 켄달(Kendall)의 타우 계수 |
'Spearman' | 스피어만의 로(Spearman's Rho) |
corr
은 상관관계의 변환에 스튜던트 t 분포(Student's t distribution)를 사용하여 피어슨의 상관관계에 대한 p-값을 계산합니다. 이 상관관계는 X
와 Y
가 정규분포인 경우 정확합니다. corr
은 정확한 순열 분포(소규모 표본 크기의 경우) 또는 대규모 표본 근삿값을 사용하여 켄달의 타우와 스피어만의 로(rho)에 대한 p-값을 계산합니다.
예: 'Type','Spearman'
Rows
— 계산에 사용할 행
'all'
(디폴트 값) | 'complete'
| 'pairwise'
계산에 사용할 행으로, 'Rows'
와 함께 다음 값 중 하나가 쉼표로 구분되어 지정됩니다.
값 | 설명 |
---|---|
'all' | 누락값(NaN )에 상관없이 입력값의 모든 행을 사용합니다. |
'complete' | 누락값이 없는 입력값의 행만 사용합니다. |
'pairwise' | 열 i 또는 j 에 누락값이 없는 행을 사용하여 rho(i,j) 를 계산합니다. |
'pairwise'
값과 다르게 'complete'
값은 항상 양의 정부호 행렬 또는 양의 준정부호 행렬 rho
를 생성합니다. 또한, 입력값(X
또는 Y
)의 행이 누락값을 포함하는 경우 'complete'
값은 일반적으로 더 적은 수의 관측값을 사용하여 rho
를 추정합니다.
예: 'Rows','pairwise'
Tail
— 대립가설
'both'
(디폴트 값) | 'right'
| 'left'
대립가설로, 'Tail'
과 함께 표에 나와 있는 값 중 하나가 쉼표로 구분되어 지정됩니다. 'Tail'
은 '상관관계가 없다'는 가설을 검정하기 위한 p-값을 계산하는 데 기준이 되는 대립가설을 지정합니다.
값 | 설명 |
---|---|
'both' | '상관관계가 0 이 아니다'는 대립가설을 검정합니다. |
'right' | '상관관계가 0 보다 크다'는 대립가설을 검정합니다. |
'left' | '상관관계가 0 보다 작다'는 대립가설을 검정합니다. |
corr
은 두 개의 한쪽 꼬리 검정에 대한 p-값에서 더 유의미한 값에 2를 곱하여 양쪽 꼬리 검정에 대한 p-값을 계산합니다.
예: 'Tail','left'
출력 인수
pval
— p-값
행렬
p-값으로, 행렬로 반환됩니다. pval
의 각 요소는 rho
의 대응 요소에 대한 p-값입니다.
pval(a,b)
가 작은 값인 경우(즉, 0.05
보다 작은 경우), 상관관계 rho(a,b)
는 0에서 현저하게 멀어진 값이 됩니다.
세부 정보
피어슨(Pearson)의 선형 상관 계수
피어슨의 선형 상관 계수는 가장 일반적으로 사용되는 선형 상관 계수입니다. 평균이 각각 및 인 행렬 X의 열 Xa와 행렬 Y의 열 Yb의 경우, 피어슨 선형 상관 계수 rho(a,b)는 다음과 같이 정의됩니다.
여기서 n은 각 열의 길이입니다.
상관 계수의 값은 –1
에서 +1
사이의 범위에 있을 수 있습니다. 값이 –1
이면 완벽한 음의 상관관계를 나타내고, 값이 +1
이면 완벽한 양의 상관관계를 나타냅니다. 값이 0
이면 두 열 간에 상관관계가 없음을 나타냅니다.
켄달(Kendall)의 타우 계수
켄달의 타우는 i<j를 충족하며 서로 일치하는, 즉 및 가 동일한 부호를 갖는 (i,j) 쌍의 개수 계산을 기반으로 합니다. 켄달의 타우 방정식에는 정규화 상수의 동순위(Tie) 조정이 포함되며, 이를 대개 타우-b라고 합니다.
행렬 X의 열 Xa 및 행렬 Y의 열 Yb에 대해 켄달의 타우 계수는 다음과 같이 정의됩니다.
여기서는 다음이 성립됩니다. 및
상관 계수의 값은 –1
에서 +1
사이의 범위에 있을 수 있습니다. 값이 –1
이면 하나의 열 순위가 다른 열 순위와 반대임을 나타내고, 값이 +1
이면 두 순위가 동일함을 나타냅니다. 값이 0
이면 두 열 간에 관계가 없음을 나타냅니다.
스피어만의 로(Spearman's Rho)
스피어만의 로(rho)는 열 Xa 및 열 Yb의 순위에 적용되는 피어슨(Pearson)의 선형 상관 계수와 같습니다.
각 열의 모든 순위가 고유한 경우 방정식은 다음과 같이 단순화할 수 있습니다.
여기서 d는 두 열의 순위 차이이며, n은 각 열의 길이입니다.
팁
corr(X,Y)
와 비교하여 MATLAB® 함수 corrcoef(X,Y)
가 다른 점은 corrcoef(X,Y)
는 두 개의 열 벡터 X
와 Y
의 상관 계수로 구성된 행렬을 반환한다는 점입니다. X
와 Y
가 열 벡터가 아닌 경우, 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.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
이 함수는 메모리에 담을 수 없는 큰 데이터에 대한 tall형 배열을 지원하지만 다음과 같은 제한 사항이 있습니다.
'Pearson'
유형만 지원됩니다.
자세한 내용은 메모리에 담을 수 없는 큰 데이터를 위한 tall형 배열 항목을 참조하십시오.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
이 함수는 GPU 배열을 완전히 지원합니다. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
참고 항목
corrcoef
| partialcorr
| corrcov
| tiedrank
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)