기타

FDR (false discovery rate)

" " 2023. 11. 3. 19:47

최근에 FDR 이라는 단어를 너무 자주 만나고 있습니다. 마이크로바이옴 데이터의 differential abundance 도구에 대해 공부할 때도 자주 나오고, RNA-seq 데이터 분석할 때도 (DEG) p_value 와 FDR p_value 중에 어떤 것을 사용할지 고르라고 하더라구요. 공부하는 김에 포스팅해보려 합니다.

 

기본적으로 많은 수의 가설검정을 한 번에 수행할 때 false positive (위양성) 에 의한 오류가 많아집니다. 그렇기 때문에 p value 를 조정하여 adjusted p value 를 만들고, 그것을 기준으로 통계적으로 유의함을 평가합니다.

 

 

혼동 행렬

 

저는 처음에 FDR 이 false discovery rate 이라는 것을 알았을 때 false positive 가 가장 먼저 생각났습니다. 그래서 비슷한 개념이지 않을까 했었는데요. FDR 에 대해 공부하기 전에 false positive (1종 에러), false negative (2종 에러) 에 대해서는 간단하게 알고 오시면 좋을 것 같습니다.

 

간단하게, 위의 그림에서 Actual class : 관측값, Predicted Class : 예측값 입니다.

True positive 와 True negative 는 각각 실제 positive 인 것을 positive 로 예측하고, 실제 negative 인 것을 negative 로 예측했다는 의미입니다. 말 그대로, 예측이 실제값과 동일함을 의미합니다.

 

그러므로, false positive 는 negative 인 것을 positive 로 예측, false negative 는 positive 인 것을 negative 로 예측입니다.

 

이 부분은 이렇게 단어로만 놓고 보면 간단하게 보이지만, 실제 상황을 넣어보면 조금 더 복잡하게 느껴집니다. 다만, 우리는 귀무가설이나 대립가설보다는 p value 그 자체에 집중하고자 하므로 넘어가도록 하겠습니다.

 

False Discovery Rates

 

역시나 statquest 영상에서 너무 잘 설명해주고 있기 때문에 저는 간단하게 요약만 해보겠습니다.

 

FDR 이라는 것은 p value 를 조정함으로써 false positive 의 발생률을 낮추는 것과 관련되어있습니다. 먼저 알아야 할 것은 FDR 자체가 false positive 를 컨트롤하는 기법의 이름은 아니지만, 종종 혼용되곤 합니다. p value 를 조정하는 기법은 다양한데, 여기서는 'Benjamini-Hochberg method' 를 주로 다룹니다.

 

(영상을 시청했다는 가정하에 많은 부분 생략하고 요약하므로 영상을 시청하시면 더 쉽게 와닿을 것 같습니다.)

 

 

 

먼저, 기본적인 아이디어는 다음과 같습니다.

 

동일한 샘플에서 비교를 수행할 때 p value 의 분포는 일정합니다. (uniformly distributed)

다른 샘플 (통계적으로 유의) 에서의 비교를 수행할 때 p value 의 분포는 left skewed 되어있습니다.

 

당연히 다른 샘플에서의 비교이므로 '두 집단 간에 차이가 없다' 라는 귀무가설을 기각하고 p value 가 0.05 보다 낮을 확률이 높고, 동일 샘플에서의 비교는 차이가 실제로 없으므로 p value 가 0.05 보다 높을 확률이 높지만, 샘플이 랜덤 하게 골라지는 상황에서 5% 정도의 확률로 유의한 차이가 있다고 나올 수 있습니다.

 

 가정하는 상황은, wild-type mouse 에 어떤 물질을 처리했을 때, 전체 유전자 10,000 개 중에서 1,000 개의 유전자에 영향을 미쳤고, 나머지 9,000 개의 유전자에는 영향을 미치지 않은 상황입니다.

 

 

 

 

그러면, 위쪽의 파란 분포와 같이 1,000 개의 유전자에 대한 p value 가 분포됩니다. (left skewed, 모두 합해서 1,000)

아래쪽의 빨간 분포와 같이 9,000 개의 유전자에 대한 p value 가 분포됩니다, (uniformly distributed, 모두 합해서 9,000)

 

 

 

그리고 두 p value 의 분포를 더해주면, 왼쪽의 그림과 같은 분포가 완성됩니다. 그럼 여기서 통계적으로 유의함의 기준을 0.05 라고 잡을 때, 가장 왼쪽에 있는 네모 박스가 p value < 0.05 입니다. (노란색으로 표시) 

 

그곳에는 지금 약 900 개의 유전자가 확인되는데 문제는, 그중에서 절반정도는 빨간색으로 영향받지 않은 9,000 개의 유전자 중에서 5% 의 false positive 로 인해 나타난 오류입니다.

 

그러므로 문제는 p value 가 0.05 보다 작다고 해서 무조건 영향을 받은, 유의한 차이가 나는 유전자가 아니라는 의미입니다. 

 

우리는 uniformly distributed 된 p value 의 개수를 대략 알고 있으므로 (약 450개) 가장 좌측의 박스의 900 개 중에서 450 개는 우리가 원하는 유전자가 아니라는 것을 알 수 있습니다. 그러므로, 900 개의 p value 중에서 450 의 p value 를 골라내야 하고 그것은 p value 를 오름차순으로 정렬하여 가장 작은 것부터 450 개를 골라내는 것입니다.

 

이 방법이 가능한 이유는, 아래에서 찾을 수 있습니다.

 

 

우리가 계속 보고 있는 0.05 이하의 p value 를 갖는 가장 좌측의 박스의 분포를 살펴보면 왼쪽의 두 개 분포로 나타날 것 입니다. (0 부터 0.05 까지의 분포입니다.) 그러므로, p value 를 작은 것부터 나열한다면, 영향을 받는 유의한 유전자에 대한 p value 일 확률이 높기 때문입니다.

 

이후, 그것들을 간단한 계산을 통해 adjusted p value (q value) 로 바꿔주면 위양성 확률을 낮춘 새로운 p value 를 얻을 수있고, 그 의미는 p value 를 조금씩 크게 만들어준다는 것입니다.

 

 

 

워낙 복잡해서 한번에 이해하기는 쉽지 않은 것 같습니다. 한번씩 되새겨보는게 필요할 것 같네요. 다음 포스팅에서 뵙겠습니다.

 

# reference

 

1) https://www.publichealth.columbia.edu/research/population-health-methods/false-discovery-rate

 

2) https://www.youtube.com/watch?v=K8LQSvtjcEo