def job_kstein_med(p, data_source, tr, te, r): """ Kernel Stein discrepancy test of Liu et al., 2016 and Chwialkowski et al., 2016. Use full sample. Use Gaussian kernel. """ # full data data = tr + te X = data.data() with util.ContextTimer() as t: # median heuristic med = util.meddistance(X, subsample=1000) k = kernel.KGauss(med**2) kstein = gof.KernelSteinTest(p, k, alpha=alpha, n_simulate=1000, seed=r) kstein_result = kstein.perform_test(data) return { 'test_result': kstein_result, 'time_secs': t.secs}
def job_kstein_imq(p, data_source, tr, te, r): """ Kernel Stein discrepancy test of Liu et al., 2016 and Chwialkowski et al., 2016. Use full sample. Use the inverse multiquadric kernel (IMQ) studied in Measuring Sample Quality with Kernels Gorham and Mackey 2017. Parameters are fixed to the recommented values: beta = b = -0.5, c = 1. """ # full data data = tr + te X = data.data() with util.ContextTimer() as t: k = kernel.KIMQ(b=-0.5, c=1.0) kstein = gof.KernelSteinTest(p, k, alpha=alpha, n_simulate=1000, seed=r) kstein_result = kstein.perform_test(data) return { 'test_result': kstein_result, 'time_secs': t.secs}