def test_get_mc1(): constant = np.random.normal() mu_1 = 1 n = 20 var_epsilon = 1 num_classes = 100 m_c1 = [calculate_va_continuous.get_mc1(construct_class_df(0, 0, n, 0, 0, mu_1, var_epsilon)) \ for i in range(num_classes)] estimate = np.mean(m_c1) se = (np.var(m_c1) / num_classes)**(.5) assert estimate > mu_1 - 2*se assert estimate < mu_1 + 2*se
def test_get_mc1_precision(): var_epsilon = abs(np.random.random()) std_theta = abs(np.random.random()) n_classes = 100 errors = [] precisions = [] for class_ in range(n_classes): mu_0 = np.random.random() mu_1 = np.random.random() n_students = 20 df = construct_class_df(0, class_, n_students, std_theta, mu_0, mu_1, var_epsilon) m_c1 = calculate_va_continuous.get_mc1(df) errors.append(m_c1 - mu_1) precisions.append(calculate_va_continuous.get_mc1_precision(calculate_va_continuous.collapse(df), var_epsilon)) check_calibration(np.array(errors), np.array(precisions))
def test_get_mc0_precision(): std_theta = 1 var_epsilon = 1 n_students = 20 n_classes = 10 errors = np.zeros(n_classes) precisions = np.zeros(n_classes) for class_ in range(n_classes): mu_1 = np.random.normal() mu_0 = np.random.normal() df = construct_class_df(0, 0, n_students, std_theta, mu_0, mu_1, var_epsilon) collapsed = calculate_va_continuous.collapse(df) collapsed['m_c1'] = calculate_va_continuous.get_mc1(df) mc_0 = calculate_va_continuous.get_mc0(collapsed) errors[class_] = mc_0 - mu_0 precisions[class_] = calculate_va_continuous.get_mc0_precision(std_theta**2, var_epsilon, df['continuous var'].values) check_calibration(errors, precisions)