コード例 #1
0
ファイル: test_simplex_lattice.py プロジェクト: lll9p/dexpy
    def test_quadratic(cls):
        """Checks the optimality of quadratic simplex lattice designs."""
        answer_d = [
            2.772588722239781, 8.317766166719345, 16.63553233343869,
            27.725887222397816, 41.58883083359672, 58.224363167035406,
            77.63248422271388, 99.81319400063214, 124.76649250079016,
            152.49237972318798, 182.99085566782557, 216.26192033470295,
            252.30557372382012, 291.1218158351771, 332.7106466687738,
            377.0720662246103, 424.2060745026866, 474.1126715030026,
            526.7918572255585, 582.2436316703541, 640.4679948373896,
            701.4649467266647, 765.2344873381797, 831.7766166719344,
            901.091334727929, 973.1786415061633, 1048.0385370066374,
            1125.6710212293513, 1206.076094174305,
        ]
        actual_d = []
        order = ModelOrder.quadratic
        for i in range(2, 31):
            design = build_simplex_lattice(i, order)
            model = "-1 + " + make_model(design.columns, order,
                                         include_powers=False)
            x_matrix = patsy.dmatrix(model,
                                     design,
                                     return_type="dataframe")
            actual_d.append(det_xtxi(x_matrix, use_log=True))

        np.testing.assert_allclose(answer_d, actual_d, rtol=1e-5)
コード例 #2
0
    def test_practical(cls):
        """Tests a 9 factor practical central composite design."""
        ccd_data = build_ccd(9, "practical")
        x_matrix = patsy.dmatrix(make_quadratic_model(ccd_data.columns),
                                 ccd_data,
                                 return_type="dataframe")

        answer_d = -314.58564545825374
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-3)
コード例 #3
0
    def test_orthogonal(cls):
        """Tests a 7 factor orthogonal central composite design."""
        ccd_data = build_ccd(7, "orthogonal")
        x_matrix = patsy.dmatrix(make_quadratic_model(ccd_data.columns),
                                 ccd_data,
                                 return_type="dataframe")

        answer_d = -164.17093230784621
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-3)
コード例 #4
0
    def test_spherical(cls):
        """Tests a 3 factor spherical central composite design."""
        ccd_data = build_ccd(3, "spherical")
        x_matrix = patsy.dmatrix(make_quadratic_model(ccd_data.columns),
                                 ccd_data,
                                 return_type="dataframe")

        answer_d = -23.673909747960984
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-4)
コード例 #5
0
    def test_rotatable(cls):
        """Tests a 5 factor rotatable central composite design."""
        ccd_data = build_ccd(5, "rotatable")
        x_matrix = patsy.dmatrix(make_quadratic_model(ccd_data.columns),
                                 ccd_data,
                                 return_type="dataframe")

        answer_d = -75.66313056042111
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-4)
コード例 #6
0
    def test_fcd(cls):
        """Tests a simple 2 factor face-centered central composite design."""
        ccd_data = build_ccd(2, 1.0)
        x_matrix = patsy.dmatrix(make_quadratic_model(ccd_data.columns),
                                 ccd_data,
                                 return_type="dataframe")

        answer_d = -8.55333223803211
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-5)
コード例 #7
0
    def test_three_factor(self):
        """Tests a 3 factor Box-Behnken design."""
        factor_count = 3
        design = build_box_behnken(factor_count)
        self.assertEqual(17, len(design))
        x_matrix = patsy.dmatrix(make_quadratic_model(design.columns),
                                 design,
                                 return_type="dataframe")

        answer_d = -17.551823065312842
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-5)
コード例 #8
0
    def test_twelve_factor(self):
        """Tests a 12 factor Box-Behnken design."""
        factor_count = 12
        design = build_box_behnken(factor_count)
        self.assertEqual(197, len(design))
        x_matrix = patsy.dmatrix(make_quadratic_model(design.columns),
                                 design,
                                 return_type="dataframe")

        answer_d = -285.7997819420118
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-5)
コード例 #9
0
    def test_six_factor(self):
        """Tests a 6 factor Box-Behnken design."""
        factor_count = 6
        design = build_box_behnken(factor_count)
        self.assertEqual(53, len(design))
        x_matrix = patsy.dmatrix(make_quadratic_model(design.columns),
                                 design,
                                 return_type="dataframe")

        answer_d = -70.8199239661506
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-5)
コード例 #10
0
    def test_five_factor(self):
        """Tests a 5 factor Box-Behnken design."""
        factor_count = 5
        design = build_box_behnken(factor_count)
        self.assertEqual(45, len(design))
        x_matrix = patsy.dmatrix(make_quadratic_model(design.columns),
                                 design,
                                 return_type="dataframe")

        answer_d = -42.74068763678364
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-5)
コード例 #11
0
    def test_twentyone_factor(self):
        """Tests a 21 factor Box-Behnken design."""
        factor_count = 21
        design = build_box_behnken(factor_count)
        self.assertEqual(341, len(design))

        x_matrix = patsy.dmatrix(make_quadratic_model(design.columns),
                                 design,
                                 return_type="dataframe")

        answer_d = -765.04475512524230
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-5)
コード例 #12
0
    def test_d_optimality(cls):
        answer_d = [
            2.513455e3, 2.197654e6, 5.52777e9, 1.85905e13, 3.447727e16,
            1.275709e19
        ]

        actual_d = []
        for i in range(3, 9):
            design = build_simplex_centroid(i)
            model = "-1 + " + make_quadratic_model(design.columns,
                                                   include_squared=False)
            x_matrix = patsy.dmatrix(model, design, return_type="dataframe")
            actual_d.append(det_xtxi(x_matrix, use_log=False))

        np.testing.assert_allclose(answer_d, actual_d, rtol=1e-5)
コード例 #13
0
ファイル: test_simplex_lattice.py プロジェクト: lll9p/dexpy
    def test_linear(cls):
        """Checks the optimality of linear simplex lattice designs."""
        answer_d = [ 1 ] * 29
        actual_d = []
        order = ModelOrder.linear
        for i in range(2, 31):
            design = build_simplex_lattice(i, order)
            model = "-1 + " + make_model(design.columns, order,
                                         include_powers=False)
            x_matrix = patsy.dmatrix(model,
                                     design,
                                     return_type="dataframe")
            actual_d.append(det_xtxi(x_matrix, use_log=False))

        np.testing.assert_allclose(answer_d, actual_d, rtol=1e-5)
コード例 #14
0
ファイル: test_simplex_lattice.py プロジェクト: lll9p/dexpy
    def test_cubic(cls):
        """Checks the optimality of cubic simplex lattice designs."""
        answer_d = [
            2.2096470973347775, 13.228395211331954, 39.6547285196038,
            88.08632361788068, 165.1201784728033, 277.35271609131553,
            431.37986869540055, 633.7971466915958, 891.1996956551948,
            1210.1823437751189, 1597.3396416379908, 2059.265895808832,
        ]
        actual_d = []
        order = ModelOrder.cubic
        for i in range(2, 14):
            design = build_simplex_lattice(i, order)
            model = "-1 + " + make_model(design.columns, order,
                                         include_powers=False)
            x_matrix = patsy.dmatrix(model,
                                     design,
                                     return_type="dataframe")
            actual_d.append(det_xtxi(x_matrix, use_log=True))

        np.testing.assert_allclose(answer_d, actual_d, rtol=1e-4)