일단 그… 뭔가 통계적으로 뭔가 있어야 하지 않나 싶어서 추가는 했습니다. 근데 아… 포폴에 쓸거 늘었어… 그거 하는김에 아예 그래프 칼라도 수정했습니다. 씨본 컬러맵이 이쁜게 많은건 맞는데, 그 컬러맵도 적재적소에 써야 해요.
맨-휘트니 u 검정
그… t-test라고 아시죠? 스튜던츠 t-test. 그게 단일집단이건 두개건 비포애프터건 비교할 때 쓰는 건 맞는데… 어? 그럼 티테스트 쓰면 되잖아요. 그죠 써도 되는데… t-test에는 조건이 있어요. 일단 샘플 수가 30개가 안되면 샘플 크기에 따라서는 정규성/등분산성을 확인하고 진행해야 하고, 너무 적으면(10개보다 적으면) 비모수검정으로 빠져야됩니다. 그 일단 스튜던츠씨는 t가 대문자인지 소문자인지 딱 정해주고 다시 가시면 되겠고…
그럼 그 정규성이랑 등분산성을 뭘로 확인하는데요? 공통적으로 정규성은 샤피로-윌크 검정, 등분산성은 레빈 검정으로 확인했다. 근데 여유가 되시면 QQ플롯도 한번 그려보시는 걸 권합니다. 큐큐는 그렸을때 직선상이 아니면 정규성 위반하는거임.
샤피로-윌크 검정
# 샤피로-윌크 검정
statistic, p_value = stats.shapiro(NSCLC_times)
print(f"--- Shapiro-Wilk Test ---")
print(f"검정 통계량(Statistic): {statistic:.4f}")
print(f"p-value: {p_value:.4f}")
# 해석 결과 출력
if p_value > 0.05:
print("결과: 귀무가설을 기각하지 못함 (정규분포를 따른다고 볼 수 있음)")
else:
print("결과: 귀무가설 기각 (정규분포를 따른다고 보기 어려움)")
print("\n")
저 피밸류 좀 타이트하게 보는 사람들은 0.001도 보고 그러던데 본인 통계분석 기준은 0.05입니다. 근데 피밸류 어지간하면 적게 나와서 0.01은 물론 0.001도 돌파 쌉가능하긴 해요. 그래서 저걸로 뭘 보냐고? 본인이 비교할 모든 샘플들이 샤피로-윌크 검정에서 p밸류가 0.05보다 큰 값이 나와야 정규성을 만족하는거다.
레빈 검정
# 레빈 검정
stat, p = levene(NSCLC_times, SCLC_times, Other_times)
print(f"Levene 통계량: {stat:.4f}, p-value: {p:.4f}")
if p < 0.05:
print("등분산 아님 (귀무가설 기각)")
else:
print("등분산임 (귀무가설 채택)")
샤피로 윌크 검정은 하나하나 다 해야되는데 쟤는 걍 다 때려박고 하십쇼.
근데 한타바이러스랑 인플루엔자는 소스에 저게 없었죠? 애초에 쟤네는 MSA 하고 섀넌 엔트로피까지 하고 돌리는거라 그래요. 아니 그럼 티테스트 하면 안되냐고 하실 수도 있는데, 그 시퀀스가 DNA 염기입니다. 수지형도 아니고 연속형도 아니라서 애초에 평균이고 분산이고 존재할수가 없어요 걔들은. 그리고 정규성도 위반해서 맨 휫흐니 U 검정으로 틀은겁니다. 이건 인플루엔자도 마찬가지고 폐암은 저거 다 돌려봤더니 그룹 세개중 두개가 정규성 위반+등분산성을 만족하지 않았음.
그럼 저걸 꼭 해야 하나요? 라고 생각하시는 분이 계신데, 얼마전에 팀플에서 t-test 하기 전에 저거 체크 안했다가 혼난 팀을 봤음... 표본 크기가 30이 넘어가면 돌려도 되는데, 표본이 작으면 꼭 저거 해보십쇼.
스피어만 상관분석
한타바이러스는 트리도 맨 휫흐니 했는데 인플루엔자는 저걸 못합니다. 인플루엔자는 아예 쿼리가 H3N2라서 한 아종에서 조금씩 변이하는거라 스피어만 상관분석으로 간겁니다. 피어슨은 수치형 수치형의 상관관계를 볼 때 쓰는거고, 스피어만은 두 변수 간의 순위 기반 관계의 강도와 방향을 측정하는 비모수적 통계 방법임.
rho, p = spearmanr(tree_distances, seq_identities)
print(f'Rho: {rho:.4f}')
print(f'P-value: {p:.4e}')
얘도 상관분석이라 상관계수가 있습니다. 그 숫자는 피어슨좌 해보셨으면 뭐지 아시죠? 그거임. 그냥 DNA 염기가 수치형도 아니고 연속형도 아니라서 저거 썼구나 하십쇼.
크루스칼-월리스 검정
ANOVA 아시죠? 분산분석. 그게 뭘 보는거냐면 얘네들 중 다른 놈이 있는지를 보는겁니다. 근데 어노바는 얘네들 중 뭔가 다른 게 있다! 만 보여주기때문에 여기서 귀무가설을 기각하게 되면 후속 분석을 또 해야됩니다. 본인은 어노바 하면 항상 튜키까지 함.
근데 이 어노바도 아무때나 못한다. 이게 그 폐암 할 때 한건데 저 폐암 샤피로랑 레빈 돌렸더니 어땠어요? 두개가 정규성을 갖지 않고 등분산성도 없어... 이거 비모수로 빠져야돼... 근데 얘가 어노바의 비모수 버전임. 대충 뭐 하는 앤지 감이 좀 오시죠? 쟤도 어노바(일원분석)랑 같은 애인데, 맨 휫흐니처럼 비모수 검정 할 때 쓰는거다.
듄 테스트
Dunn 뭐라고 읽는지 제보 바랍니다. 아, 그래서 저게 뭐냐고? 내가 저 위에서 어노바 하고 나면 후속분석으로 튜키 해야된다고 했잖아요. 그 튜키가 뭐냐면 구체적으로 뭐가 다른지 찾아주는 애인데... 어떻게 보는지는 나중에 올려드림. 저거 돌린 결과도 있습니다. 아무튼... 듄 테스트도 윌리스 수고했어 검정 이름이 많이 다른데 하고 나서 구체적으로 누가 다른지를 보는거다. R은 뭐 애스터리스크도 두개 세개 붙고 그러던데 파이썬은 뭔 거리행렬같은거 나오데...
아무튼 비모수검정 버전 튜키라고 생각하시면 됩니다. 결과가 맥북에 다 있어서 여기다가는 못 올리는데 나 결과 보고 뭔 거리행렬인가 했음. 이것도 p-value로 봐요.
'Statics' 카테고리의 다른 글
| 통계는 실전이야: Chi-square(카이제곱검정) (0) | 2026.02.02 |
|---|---|
| 정규성, 그리고 비모수검정 (0) | 2026.02.01 |
| 통계는 실전이야: t-test (0) | 2026.01.30 |
| PCA, MCA, FAMD (0) | 2026.01.29 |
| 섀넌 엔트로피 (0) | 2026.01.28 |