본문 바로가기

Python notes/Statistical Analysis16

파이썬) 범주형 변수의 상관관계 확인을 위한 교차분석 하기 (+카이제곱 검정) #1. 교차분석이란? 교차분석(cross-tabulation anlaysis)은 두 범주형 자료 간의 상관관계를 확인하기 위한 분석방법이다. 즉, 상호 관련성을 확인하고자 하는 두 변수가 명목척도일 때 사용하는 분석 방법이다. 교차분석을 하기 위해서 먼저 교차표를 만들어 두 변수 간의 관계를 정리하고, 관측빈도(observed frequency)와 기대빈도(expected frequency)를 확인할 수 있다. 이를 바탕으로 카이제곱 통계량을 계산하고, 이 검정통계량의 p-value를 통해 둘의 상관관계가 유의한지 유의하지 않은지를 판단할 수 있다. #2. 파이썬에서 pandas와 scipy 패키지로 교차분석 하기 파이썬을 이용해 간단하게 교차분석을 할 수 있다. 이를 위해 먼저 pandas와 scipy.. 2021. 7. 22.
파이썬) 혼동행렬 그리고 정확도, 정밀도, 민감도, f1 score 등 계산하기 (+heatmap, confusion_matrix, classification_report) #1. 혼동행렬은 무엇인가? 혼동행렬은 분류 모델의 성능을 평가하는 지표로서 영어로는 confusion matrix라고 하며 혼돈행렬, 정오행렬, 오분류표 등으로도 불린다. 지도학습을 통해 모델링한 "분류 모델이 예측한 값"과 레이블되어 있는 "원래의 값" 간의 관계를 표로 나타낸다. 이 표를 통해 해당 모델의 정확도(accuracy), 정밀도(precision), 민감도(sensitivity), f1 score 등을 파악할 수 있으며, 이 중에서도 특히 정확도를 통해 해당 모델이 정확하게 분류해 낼 수 있는 비율을 지 확인할 수 있다. 실제값(P-실제로 맞다) 실제값(N-실제로 틀리다) 모델의 예측값 (P로 예측-맞다고 예측) TP FP 모델의 예측값 (N로 예측-틀리다고 예측) FN TN 일반적으로 .. 2021. 7. 18.
파이썬) 이원분산분석 R과 파이썬 비교 (Anova table, Tukey HSD 사후분석) #1. 이원분산분석이란 무엇일까? 종속변수가 1개, 독립변수가 2개이면서 독립변수 각각이 factor(요인)로서 factor내에 level(수준)을 가지고 있을 때, 각 집단의 평균의 유의미한 차이가 있는지 유무를 확인하기 위해 Two way Anova(ANalysis Of Variance) 즉, 이원분산분석을 진행한다. factor1 (level 1, 2, 3) + factor2 (level a, b)의 조합일 경우, 비교해야 하는 경우의 수는 아래와 같다. ----------------------------------------------------------------------------------------- factor1 내에서 3C2=3개 (1-2, 1-3, 2-3) factor2 내에서 2.. 2021. 6. 24.
파이썬) 아노바 테이블에서 자유도 계산하는 방법 (+일원분산분석, 이원분산분석의 경우) #1. 일원분산분석 아노바 테이블 자유도: 목화 함유량 15, 20, 25, 30, 35 5개 수준에 따라서 각각 5개의 섬유장력 값을 가진 데이터(전체 데이터 수는 25개)로 일원분산분석 아노바 테이블을 만들어보았다. 여기서 독립변수 목화함유량의 df 4, 자유도 4는 전체 수준 (15, 20, 25, 30, 35) 5개에서 1개를 뺀 값이다. ("1개 빼는 것은 항상 고정") 또한, Residual의 df 20은 전체데이터 수 25개에서 목화함유량의 자유도 4를 빼고 거기서 1개를 더 뺀 값이다. #2. 이원분산분석 아노바 테이블 자유도: 전공 (전공1, 전공2, 전공3) 3개 수준과 성별(남, 여) 2개 수준에 따라 각각 2개의 점수 값을 가진 데이터(전체 데이터수는 12개)로 이원분산분석 아노바 .. 2021. 6. 24.
파이썬-R) 일원분산분석 R과 파이썬 비교 (anova table, Tukey HSD 사후분석) #1. 파이썬으로 일원분산분석 진행 - 데이터 준비: from pandas import DataFrame DataFrame으로 데이터 만든 후, 독립변수 열을 category로 데이터 타입 변경하기 - 아노바 테이블 만들기: from statsmodels.stats.anova import anova_lm, from statsmodels.formula.api import ols anova_lm과 ols로 아노바 테이블을 만든다. '종속변수열 ~ C(독립변수열)' 아래와 같이 독립변수 열의 p값이 0.05 이하로 유의미하게 나온다면 구체적으로 독립변수 열의 수준(level)들 간에 평균 차이가 있는지를 확인하고자 사후분석을 진행한다. 사후분석 방법으로는 여러가지가 있지만 그 중에서도 Tukey의 HSD 방식.. 2021. 6. 24.