benjamini-hochberg-correction

1 개의 포스트

discord

적게 측정하고 더 많이 배우기: 중요한 것을 포착하는 더 적고 질 높은 지표 활용 (새 탭에서 열림)

Discord는 실험에서 측정 지표를 많이 포함할수록 계산·해석 비용뿐 아니라 통계적 오류도 커진다고 설명합니다. 다중 가설 검정 보정은 거짓 양성을 줄이지만 실제 변화를 놓칠 가능성, 즉 재현율을 낮출 수 있습니다. 따라서 가장 효과적인 해결책은 모든 지표를 넣는 대신, 서로 다른 개념을 대표하는 소수의 고품질 지표를 선택하는 것입니다. ## 지표가 많아질수록 커지는 문제 - Discord의 실험에는 모든 실험에 자동으로 포함되는 “Default Metric List”가 있었음. - 각 팀이 중요하다고 생각하는 지표를 계속 추가했지만, 기존 지표는 거의 제거되지 않아 목록이 비대해짐. - 지표가 100개이고 각 지표의 유의수준을 5%로 두면, 실제 효과가 없어도 평균적으로 약 5개가 우연히 유의미하게 나타날 수 있음. - 지표가 많아질수록: - 실험 결과를 읽고 해석하기 어려워짐 - 계산 비용이 증가함 - 하나 이상의 거짓 양성이 발생할 확률이 높아짐 - 다중 검정 보정을 적용할 경우 실제 효과를 발견하는 재현율이 낮아짐 ## 다중 비교 문제와 Benjamini-Hochberg 보정 - Discord는 여러 지표를 동시에 검정할 때 Benjamini-Hochberg(BH) 보정을 사용함. - BH는 전체 지표 중 거짓 발견의 비율인 FDR(False Discovery Rate)을 일반적으로 5% 이하로 유지하도록 설계됨. - 지표를 p-value 오름차순으로 정렬한 뒤, 각 지표의 순위에 따라 다음 임계값과 비교함: - `i × α / n` - `i`: p-value 순위 - `α`: 유의수준(예: 0.05) - `n`: 전체 지표 수 - 예를 들어 보정 전 p-value가 0.038인 지표는 일반적인 0.05 기준에서는 유의하지만, BH 보정 후에는 유의하지 않을 수 있음. - BH는 거짓 양성을 줄이는 대신 유의미한 실제 변화를 탐지하는 재현율을 떨어뜨림. - BH는 각 지표가 실제로 변할 가능성에 대한 사전 정보를 활용하지 않으므로 모든 지표를 동일하게 취급함. ## 시뮬레이션으로 확인한 거짓 양성과 재현율의 균형 - Discord는 통계적 공식만 따르지 않고 50,000회의 실험을 시뮬레이션해 지표 수의 영향을 확인함. - 기본 실험 조건: - 효과가 없는 지표 20개는 평균 0, 표준편차 1인 정규분포에서 생성 - 한 지표에는 실제 효과 `z = 2.8`을 부여 - 지표 개수를 바꿔가며 일반 p-value 기준과 BH 보정 결과를 비교 - 시뮬레이션 결과: - 보정하지 않으면 지표 수가 늘어날수록 실험 전체에서 거짓 양성이 발생할 확률이 급격히 증가함. - 5개 지표에서는 거짓 양성률이 약 23%였지만, 50개에서는 약 93%까지 상승함. - BH 보정은 거짓 양성률을 약 5% 수준으로 유지함. - 그러나 지표 수가 5개에서 50개로 늘어나면 BH 적용 시 재현율이 약 60%에서 30%로 하락함. - 보정하지 않은 경우 재현율은 약 80%로 유지되지만, 거짓 양성이 지나치게 많아짐. ## 더 나은 실험 지표를 선택하는 방법 - 다중 검정 보정은 문제를 해결하는 만능 통계 기법이 아님. - 많은 지표를 넣은 뒤 보정으로 처리하는 방식은: - 거짓 경보는 줄이지만 - 실제 제품 변화를 놓칠 가능성을 높임 - 자동으로 모든 실험에 포함할 지표는 수를 줄여야 함. - 서로 중복되는 지표보다 사용자 행동, 품질, 안정성 등 서로 다른 개념을 대표하는 지표를 우선해야 함. - 지표의 개수뿐 아니라 각 지표가 실제 의사결정에 얼마나 유용한지도 정기적으로 검토해야 함. 실무적으로는 실험 기본 지표 목록을 작게 유지하고, 추가 지표는 명확한 가설이나 의사결정 목적이 있을 때만 포함하는 것이 좋습니다. BH 같은 보정 기법을 사용하더라도 지표 선택의 품질과 중복 제거가 통계적 보정보다 우선입니다.