보고 당신은 찾을 것이다 (상관)


66

수백 개의 측정 값이 있습니다. 이제 모든 측정 값을 모든 측정 값과 연관시키기 위해 일종의 소프트웨어를 사용하는 것을 고려하고 있습니다. 이는 수천 개의 상관 관계가 있음을 의미합니다. 이 중 데이터가 완전히 임의적 임에도 불구하고 (통계적으로) 높은 상관 관계가 있어야합니다 (각 측정 값에는 약 100 개의 데이터 포인트 만 있음).

상관 관계를 찾을 때 상관 관계를 찾는 것이 얼마나 어려운지에 대한 정보를 어떻게 포함합니까?

나는 통계에 높은 수준이 아니므로, 나와 함께 견뎌주십시오.


5
이것은 왜 다중 가설 검정이 필요한지에 대한 훌륭한 예입니다.

아마도 순열 절차를 사용하여 가장 큰 상관 관계에 대한 유의성 임계 값, 두 번째로 큰 상관 관계에 대한 다른 임계 값에 대한 널 분포를 생성 할 수 있습니다. 바라건대 이것은 파이썬이나 R에서 몇 시간 밖에 걸리지 않을 것입니다. (Ha! Famous last words.) 그러나 분명히 누군가가 이미 이것을하고 어딘가에 코드를 저장 했습니까?

4
R이 기계의 @tmo 는 300 x 100 행렬에 대한 최대 상관 계수의 널 순열 분포를 1000 번 실현하는 데 18 초가 걸립니다 x.correl <- function(x, k=1) { n <- dim(x)[2] * (dim(x)[2]-1) / 2; v <- cor(x); sort(v[lower.tri(v)])[(n-k+1):n] }; sim <- replicate(1000, correl(apply(x,2,sample)))
whuber

답변:


74

이것은 여러 가지 테스트의 미묘하지만 중요한 측면을 인식하기 때문에 명확한 통계적 사고를하는 사람에게 적합한 훌륭한 질문입니다.

Bonferroni 및 Sidak 방법 ( qv ) 과 같이 여러 상관 계수 의 p- 값을 조정하는 (또는 이와 같은 방법으로 신뢰 구간을 넓히는) 표준 방법 이 있습니다 . 그러나 이것들은 일반적으로 상관 계수들 사이에서 유지되어야하는 고유의 수학적 관계로 인해 큰 상관 행렬들에 비해 너무 보수적이다. (이러한 관계의 몇 가지 예는 최근 질문과 다음 스레드를 참조하십시오 .)이 상황을 처리하는 가장 좋은 방법 중 하나는 순열 (또는 리샘플링) 테스트 를 수행하는 것입니다.. 상관 관계를 사용하여이를 쉽게 수행 할 수 있습니다. 테스트가 반복 될 때마다 각 필드의 값 순서를 무작위로 스크램블하고 (따라서 고유 한 상관 관계를 파괴 함) 전체 상관 관계 행렬을 다시 계산하십시오. 수천 번 (또는 그 이상) 반복하여이 작업을 수행 한 다음, 예를 들어 97.5 및 2.5 백분위 수를 제공하여 상관 행렬 항목의 분포를 요약합니다. 이는 null 하에서 상호 대칭 양면 95 % 신뢰 구간으로 사용됩니다 상관 관계가 없다는 가설. (다수의 변수로 이것을 처음 수행 할 때, 고유 한 상관 관계가없는 경우에도 일부 상관 계수가 얼마나 높을 수 있는지에 놀랄 것입니다.)

어떤 계산을하든 결과를보고 할 때는 다음을 포함해야합니다.

  • 상관 행렬의 크기 ( , 본 변수 수)

  • 상관 계수의 p- 값 또는 "유의"를 결정한 방법 ( 예 : 그대로 두거나 Bonferroni 보정을 적용하거나 순열 테스트를 수행하는 등)

  • 여부는 다음과 같은 상관 관계의 대안 조치를 보았다 스피어 만 순위 상관 관계 . 실제로보고 한 경우 실제로보고하고 사용중인 방법을 선택한 이유도 표시하십시오.


1
이것은 p- 값 조정 방법에 대한 철저한 설명이지만 조정되지 않은 것은 조정 기준입니다. 전통적으로 그것은 가족 별 오류율이었습니다. 그러나 이것은 엄격한 기준이며 수천 번의 비교를 볼 때 유용하지 않습니다. 이 경우 Benjamini이 처음 제안한 잘못된 발견 비율이 이제 일반적으로 사용됩니다.
Michael Chernick

corr(x1,y1)corr(xn,yn)xiyicorr(xi,yj) ij)? 여전히 수정이 필요합니까?
Jase

@Jase 네, 그렇습니다. 보정량은 변수 간의 상호 관계에 따라 다릅니다. 시뮬레이션 기반 방법은 이러한 수정 사항을 결정하는 유일한 방법입니다.
whuber

좋은 와우. 논의한이 방법이 연속 상관 및 이분산성 문제에 대한 표준 오류도 수정합니까?
Jase

@Jase이 분산 모델에서 상관 계수를 해석하는 것은 어려울 것입니다. 귀하의 의견은 다변량 상관 계수의 추정이 아니라 시계열 설정에서 선형 모델을 나타내는 것으로 보입니다.
whuber

10

Peter Flom의 질문에 대한 후속 조치에서 상관 관계 매트릭스에서 더 높은 수준의 구조를 보는 기술로 더 잘 제공 될 것 같습니다.

요인 분석, PCA, 다차원 스케일링 및 변수 군집 분석과 같은 기법을 사용하여 변수를 비교적 관련성이 높은 변수 세트로 그룹화 할 수 있습니다.

또한 어떤 종류의 구조가 있어야하는지 이론적으로 생각하고 싶을 수도 있습니다. 변수의 수가 많고 관측치의 수가 적 으면 종종 이전의 기대치에 더 의존하는 것이 좋습니다.


1
(+1) @Peter Flom의 답변에 대한 OP의 의견에 비추어 좋은 조언.
whuber

7

이것은 여러 비교의 예입니다. 이것에 대한 큰 문헌이 있습니다.

100 개의 변수가 있다면 100 * 99 / 2 = 4950의 상관 관계가 있습니다.

데이터가 노이즈 인 경우 20 개 중 1 개가 p = .05에서 유의할 것으로 예상합니다. 247.5입니다

더 멀리 나아 가기 전에 왜 이런 일을하는지 말할 수 있다면 좋을 것입니다. 이러한 변수는 무엇이며, 왜 상관 관계가 있으며, 실질적인 아이디어는 무엇입니까?

아니면 상관 관계가 높은 낚시입니까?


3
내가 이것을 이렇게하고 싶었던 이유는 내 데이터를 이해하는 데 열린 마음을 갖기 위해서 였기 때문에 어쩌면 내가 생각하지 못했던 상관 관계를 위해 낚시를하고있는 방식으로 깨달음을 얻었습니다. 나는 확실히 내 상사 나 어떤 것을 만족시키기 위해 이것을하지 않고있다. 나는이 질문에 대한 일반적인 대답을 원하기 때문에 데이터의 세부 사항에 들어 가지 않기를 원하므로 앞으로 모든 상황에서 사용할 수 있습니다.
David

7

데이터의 무작위 하위 집합에 대한 예비 분석을 수행하여 가설을 만든 다음 나머지 데이터를 사용하여 관심있는 가설을 테스트 할 수 있습니다. 그렇게하면 거의 여러 번의 테스트를 수정할 필요가 없습니다. (제 생각에는 ...)

물론, 그러한 절차를 사용하면 최종 분석에 사용되는 데이터 세트의 크기가 줄어들어 실제 효과를 찾기위한 힘이 줄어 듭니다. 그러나 여러 비교를 수정하면 전력도 감소하므로 반드시 아무것도 잃을 지 확실하지 않습니다.


5
(+1) 이것은 일반적으로 좋은 생각입니다. 그러나 큰 상관 관계 행렬의 경우 통계가 너무 많으며 많은 통계가 동시에 의심스럽게 커져서 일반적으로 조정하는 데 소요됩니다. 그렇지 않으면 홀드 아웃 데이터에서 사라지는 오해의 소지가있는 "중요한"상관 관계를 쫓게됩니다. (50 개의 상관되지 않은 표준 정규 변량에서 수백 번의 추첨으로 시뮬레이션을 실행합니다. 눈을 er 수 있습니다.)
whuber
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.