Chi-Square test

Perform an independence test on discrete variables using Chi-Square test.


from causallearn.utils.cit import CIT
chisq_obj = CIT(data, "chisq") # construct a CIT instance with data and method name
pValue = chisq_obj(X, Y, S)

Please be kindly informed that we have refactored the independence tests from functions to classes since the release v0.1.2.8. Speed gain and a more flexible parameters specification are enabled.

For users, you may need to adjust your codes accordingly. Specifically, if you are

  • running a constraint-based algorithm from end to end: then you don’t need to change anything. Old codes are still compatible. For example,

from import pc
from causallearn.utils.cit import chisq
cg = pc(data, 0.05, chisq)
  • explicitly calculating the p-value of a test: then you need to declare the chisq_obj and then call it as above, instead of using chisq(data, X, Y, condition_set) as before. Note that now causallearn.utils.cit.chisq is a string "chisq", instead of a function.

Please see for more details on the implementation of the (conditional) independent tests.


data: numpy.ndarray, shape (n_samples, n_features). Data, where n_samples is the number of samples and n_features is the number of features.

method: string, “chisq”.

kwargs: e.g., cache_path. See Advanced Usages.


p: the p-value of the test.