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의 정확한 테스트

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다