Почему тест chi square (chi2) выбора функции Python sklearn не является симметричным? - PullRequest
0 голосов
/ 27 февраля 2019

Функция 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 в одном из моих прогонов.Есть идеи, что мне здесь не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...