Source code for conditional_independence.invariance_tests.nonparametric.kci

from typing import Union, List, Optional, Dict
from conditional_independence.utils import combined_mat, to_list
from ...ci_tests import kci_test


[docs]def kci_invariance_test( suffstat: Dict, context, i: int, cond_set: Optional[Union[List[int], int]]=None, width: float=0, alpha: float=0.05, unbiased: bool=False, regress: bool=True, gamma_approx: bool=True, n_draws: int=500, lam: float=1e-3, thresh: float=1e-5, num_eig: int=0, ): cond_set = to_list(cond_set) obs_samples = suffstat['obs_samples'] iv_samples = suffstat[context] mat = combined_mat(obs_samples, iv_samples, i, cond_set) return kci_test( mat, 0, 1, list(range(2, 2+len(cond_set))), width=width, alpha=alpha, unbiased=unbiased, gamma_approx=gamma_approx, regress=regress, n_draws=n_draws, lam=lam, thresh=thresh, num_eig=num_eig, )
# i_values = np.concatenate((samples1[:, i], samples2[:, i])) # labels = np.concatenate((np.zeros(samples1.shape[0]), np.ones(samples2.shape[0]))) # if cond_set is None or len(cond_set) == 0: # return ki_test_vector( # i_values, # labels, # width_x=width, # width_y=width, # alpha=alpha, # gamma_approx=gamma_approx, # n_draws=n_draws, # lam=lam, # thresh=thresh, # num_eig=num_eig, # catgorical_x=True # ) # else: # cond_set_values = np.concatenate((samples1[:, cond_set], samples2[:, cond_set])) # return kci_test_vector( # i_values, # labels, # cond_set_values, # width=width, # alpha=alpha, # unbiased=unbiased, # gamma_approx=gamma_approx, # n_draws=n_draws, # lam=lam, # thresh=thresh, # num_eig=num_eig, # catgorical_e=True # )