Функция chi2 из пакета выбора функций sklearn возвращает статистику хи-квадрат и значение p.Он должен быть симметричным в том смысле, что статистика хи-квадрат одинакова независимо от порядка, в котором заданы переменные, но, похоже, это не так.
Вот пример кода:
import numpy as np
import pandas as pd
import sklearn.feature_selection as fs
#creating two correlated normal variables
n = 100
cov = [[1.0, 0.75],
[0.75, 1.0]]
x = np.random.multivariate_normal([0,0], cov, n)
x1 = x[:,0]
x2 = x[:,1]
#turning them into discrete values (with the pandas quantile function)
#I am using two different number of categories for the two variables,
#which makes the effect I am talking about much more pronounced
x1_q = pd.qcut(x1, q=5, labels=False)
x2_q = pd.qcut(x2, q=15, labels=False)
#need to turn one of them into a two dimensional array
#in order to use the chi2 function
x2_m = x2_q.reshape(n, 1)
chi2_1 = fs.chi2(y=x1_q, X=x2_m)
#now I reverse the order
x1_m = x1_q.reshape(n, 1)
chi2_2 = fs.chi2(y=x2_q, X = x1_m)
Мой вопрос: почему chi2_1 и chi2_2 не совпадают?В примере используются случайные числа.Но в качестве примера я получаю статистику хи-квадрат для chi2_1 89,59 и для chi2_2 37,92 в одном из моих прогонов.Есть идеи, что мне здесь не хватает?