I want to test if the outcomes of different algorithms are different with statistical significance. I am testing 4 algorithms, each of which output `0` or `1` after every run. I am running these algorithms for multiple series of multiple runs, e.g. 2 series of 5 runs in this example. So, the output of each algorithms looks like this (using Python): alg1 = array([[0, 0, 1, 1, 1], [1, 1, 0, 1, 0]]) alg2 = array([[1, 1, 0, 0, 0], [1, 1, 1, 1, 1]]) alg3 = array([[0, 0, 1, 1, 1], [1, 0, 1, 0, 0]]) alg4 = array([[1, 0, 0, 1, 1], [1, 1, 0, 1, 1]]) My idea was to use the Chi Squared test to see if the outcomes are different. Again, using Python: obs = np.array([alg1, alg2, alg3, alg4]) scipy.stats.chi2_contingency(obs) Is the Chi Squared test the correct test to see if the outcomes of these algorithms are independent?