¿Cómo calcular la V de Cramer en Python?

V de Cramer: Se define como la medida de longitud entre dos variables nominales dadas. Una variable nominal es un tipo de escala de medición de datos que se utiliza para categorizar los diferentes tipos de datos. La V de Cramer se encuentra entre 0 y 1 (ambos inclusive). 0 indica que las dos variables no están unidas por ninguna relación. 1 indica que existe una fuerte asociación entre las dos variables. La V de Cramer se puede calcular utilizando la siguiente fórmula:

√(X 2 /N) / min(C-1, R-1)

Aquí, 

  • X 2 : Es el estadístico Chi-cuadrado
  • N: Representa el tamaño total de la muestra
  • R: Es igual al número de filas
  • C: Es igual al número de columnas

Ejemplo 1: 

Calculemos la V de Cramer para una tabla de 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)

Producción:

Producción

El Cramers V resulta ser igual a 0,121, lo que muestra claramente la débil asociación entre las dos variables en la tabla.

Ejemplo 2: 

Ahora calcularemos la V de Cramer para tablas más grandes y que tengan dimensiones desiguales. El Cramers V resulta ser igual a 0,12, lo que muestra claramente la débil asociación entre las dos variables en la tabla.

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)

Producción:

Producción

El Cramers V resulta ser igual a 0,146, lo que muestra claramente la débil asociación entre las dos variables en la tabla.

Publicación traducida automáticamente

Artículo escrito por bhuwanesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *