Python で cramer's v を計算する方法


Cramer’s V は、 2 つの名目変数間の関連の強さの尺度です。

0 から 1 まで変化します。

  • 0 は、 2 つの変数間に関連性がないことを示します。
  • 1 は、 2 つの変数間の強い関連性を示します。

次のように計算されます。

クラマーの V = √ (X 2 /n) / min(c-1, r-1)

金:

  • X 2 :カイ二乗統計量
  • n:合計サンプルサイズ
  • r:行数
  • c:列数

このチュートリアルでは、Python で分割表の Cramer’s V を計算する例をいくつか示します。

例 1: 2×2 テーブルの Cramer の V

次のコードは、2×2 テーブルの Cramer’s 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 つの変数間の関連性がかなり弱いことを示しています。

例 2: 大きなテーブルの場合は Cramer’s V

CramerV関数を使用して、任意のサイズの配列の Cramer の V を計算できることに注意してください。

次のコードは、2 行 3 列のテーブルの Cramer’s 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 でのカイ 2 乗独立性テスト
Python でのカイ二乗適合度検定
Python でのフィッシャーの正確検定

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です