Как рассчитать V Крамера в Python?
V Крамера: определяется как измерение длины между двумя заданными номинальными переменными. Номинальная переменная — это тип шкалы измерения данных, который используется для классификации различных типов данных. V Крамера находится между 0 и 1 (включительно). 0 указывает, что две переменные не связаны никаким отношением. 1 указывает на то, что существует сильная связь между двумя переменными. V Крамера можно рассчитать по следующей формуле:
√(X2/N) / min(C-1, R-1)
Here,
- X2: It is the Chi-square statistic
- N: It represents the total sample size
- R: It is equal to the number of rows
- C: It is equal to the number of columns
Пример 1:
Давайте вычислим V Крамера для таблицы 3 × 3.
Python3
# Load necessary packages and functions import scipy.stats as stats import numpy as np # Make a 3 x 3 table dataset = np.array([[ 13 , 17 , 11 ], [ 4 , 6 , 9 ], [ 20 , 31 , 42 ]]) # Finding Chi-squared test statistic, # sample size, and minimum of rows # and columns X2 = stats.chi2_contingency(dataset, correction = False )[ 0 ] N = np. sum (dataset) minimum_dimension = min (dataset.shape) - 1 # Calculate Cramer"s V result = np.sqrt((X2 / N) / minimum_dimension) # Print the result print (result) |
Выход:
Cramers V оказывается равным 0,121, что ясно показывает слабую связь между двумя переменными в таблице.
Пример 2:
Теперь мы вычислим V Крамера для больших таблиц, имеющих неодинаковую размерность. Cramers V оказывается равным 0,12, что ясно показывает слабую связь между двумя переменными в таблице.
Python3
# Load necessary packages and functions import scipy.stats as stats import numpy as np # Make a 5 x 4 table dataset = np.array([[ 4 , 13 , 17 , 11 ], [ 4 , 6 , 9 , 12 ], [ 2 , 7 , 4 , 2 ], [ 5 , 13 , 10 , 12 ], [ 5 , 6 , 14 , 12 ]]) # Finding Chi-squared test statistic, # sample size, and minimum of rows and # columns X2 = stats.chi2_contingency(dataset, correction = False )[ 0 ] N = np. sum (dataset) minimum_dimension = min (dataset.shape) - 1 # Calculate Cramer"s V result = np.sqrt((X2 / N) / minimum_dimension) # Print the result print (result) |
Выход:
Cramers V оказывается равным 0,146, что ясно показывает слабую связь между двумя переменными в таблице.