Python에서 cramer의 v를 계산하는 방법
Cramer의 V는 두 명목 변수 간의 연관성 강도를 측정한 것입니다.
0에서 1까지 진행됩니다. 여기서:
- 0은 두 변수 사이에 연관성이 없음을 나타냅니다.
- 1은 두 변수 사이의 강한 연관성을 나타냅니다.
다음과 같이 계산됩니다.
크레이머의 V = √ (X 2 /n) / min(c-1, r-1)
금:
- X 2 : 카이제곱 통계
- n: 총 표본 크기
- r: 라인 수
- c: 열 수
이 튜토리얼에서는 Python의 분할표에 대한 Cramer의 V를 계산하는 몇 가지 예를 제공합니다.
예 1: 2×2 테이블에 대한 Cramer의 V
다음 코드는 2×2 테이블에 대한 Cramer의 V를 계산하는 방법을 보여줍니다.
#load necessary packages and functions import scipy. stats as stats import numpy as np #create 2x2 table data = np. array ([[7,12], [9,8]]) #Chi-squared test statistic, sample size, and minimum of rows and columns X2 = stats. chi2_contingency (data, correction= False )[0] n = np. sum (data) minDim = min( data.shape )-1 #calculate Cramer's V V = np. sqrt ((X2/n) / minDim) #display Cramer's V print(V) 0.1617
Cramer의 V는 0.1617 로 나타났는데, 이는 표에 있는 두 변수 간의 연관성이 상당히 약함을 나타냅니다.
예 2: 더 큰 테이블에 대한 Cramer의 V
CramerV 함수를 사용하여 모든 크기의 배열에 대한 Cramer의 V를 계산할 수 있습니다.
다음 코드는 2개의 행과 3개의 열이 있는 테이블에 대해 Cramer의 V를 계산하는 방법을 보여줍니다.
#load necessary packages and functions import scipy. stats as stats import numpy as np #create 2x2 table data = np. array ([[6,9], [8, 5], [12, 9]]) #Chi-squared test statistic, sample size, and minimum of rows and columns X2 = stats. chi2_contingency (data, correction= False )[0] n = np. sum (data) minDim = min( data.shape )-1 #calculate Cramer's V V = np. sqrt ((X2/n) / minDim) #display Cramer's V print(V) 0.1775
Cramer의 V는 0.1775 로 나타났습니다.
이 예에서는 2개의 행과 3개의 열이 있는 테이블을 사용했지만 모든 차원의 테이블에 대해 정확히 동일한 코드가 작동합니다.
추가 리소스
Python의 카이제곱 독립성 테스트
Python의 카이제곱 적합도 테스트
Python에서 Fisher의 정확한 테스트