Exemple #1
0
 def test_Belgian_gauss_rates(self):
     model = apc.Model()
     model.data_from_df(**apc.Belgian_lung_cancer())
     model.fit('gaussian_rates', 'AC')
     model.simulate(repetitions=10)
     model.simulate(repetitions=10, fitted_values=model.fitted_values * 10)
     model.simulate(repetitions=10, sigma2=10)
Exemple #2
0
 def test_Belgian_bin_dose_response(self):
     data = apc.Belgian_lung_cancer()
     dose = ((data['response'] / data['rate']) * 10**5).astype(int)
     model = apc.Model()
     model.data_from_df(data['response'], dose=dose, data_format='AP')
     model.fit('binomial_dose_response', 'Ad')
     model.simulate(repetitions=10)
     model.simulate(repetitions=10, fitted_values=model.fitted_values * 10)
Exemple #3
0
 def test_Belgian(self):
     model = apc.Model()
     model.data_from_df(**apc.Belgian_lung_cancer())
     model.plot_data_sums()
     model.plot_data_sums(logy=True)
     for simplify_ranges in ('start', 'mean', 'end', False):
         model.plot_data_sums(simplify_ranges)
     plt.close('all')
Exemple #4
0
 def test_Belgian_gauss_rates(self):
     model = apc.Model()
     model.data_from_df(**apc.Belgian_lung_cancer())
     predictors = [
         'APC', 'AP', 'AC', 'PC', 'Ad', 'Pd', 'Cd', 'A', 'P', 'C', 't',
         'tA', 'tP', 'tC', '1'
     ]
     for p in predictors:
         model.fit('gaussian_rates', p)
         model.identify('sum_sum')
         model.identify('detrend')
Exemple #5
0
 def test_Belgian(self):
     model = apc.Model()
     model.data_from_df(**apc.Belgian_lung_cancer())
     model.plot_data_heatmaps()
     for simplify_ranges in ('start', 'mean', 'end', False):
         model.plot_data_heatmaps(simplify_ranges=simplify_ranges)
     plt.close('all')
     for space in ('AC', 'AP', 'PA', 'PC', 'CA', 'CP'):
         model.plot_data_heatmaps(space=space)
     plt.close('all')
     model.plot_data_heatmaps(vmax=50)
Exemple #6
0
    def test_Belgian_ln_rates(self):
        model = apc.Model()
        model.data_from_df(**apc.Belgian_lung_cancer())
        model.fit(family='log_normal_rates', predictor='APC')

        self.assertAlmostEqual(model.deviance, -44.854, 3)
        self.assertTrue(
            np.allclose(
                model.parameters.sum().values,
                np.array([1.07781409, 7.31144396, 9.98467135, 15.2844013])))
        self.assertAlmostEqual(model.fitted_values.sum(), 552.365, 3)
Exemple #7
0
 def test_Belgian(self):
     model = apc.Model()
     model.data_from_df(**apc.Belgian_lung_cancer())
     model.fit('log_normal_rates', 'APC')
     model.plot_fit()
     for style in ('detrend', 'sum_sum'):
         model.plot_fit(style)
     plt.close('all')
     for sr in ('start', 'mean', 'end', False):
         model.plot_fit(simplify_ranges=sr)
     plt.close('all')
     model.plot_fit(around_coef=False)
Exemple #8
0
 def test_Belgian(self):
     model = apc.Model()
     model.data_from_df(**apc.Belgian_lung_cancer())
     model.fit('log_normal_rates', 'APC')
     for sr in ('start', 'mean', 'end', False):
         model.plot_residuals(simplify_ranges=sr)
     plt.close('all')
     for sp in ('AC', 'AP', 'PA', 'PC', 'CA', 'CP'):
         model.plot_data_heatmaps(space=sp)
     plt.close('all')
     for r in ('anscombe', 'deviance', 'pearson', 'response'):
         model.plot_residuals(kind=r)
Exemple #9
0
 def test_Belgian(self):
     model = apc.Model()
     model.data_from_df(**apc.Belgian_lung_cancer())
     model.plot_data_within()
     for simplify_ranges in ('start', 'mean', 'end', False):
         model.plot_data_within(simplify_ranges=simplify_ranges)
     plt.close('all')
     for aggregate in ('mean', 'sum'):
         model.plot_data_within(aggregate=aggregate)
     plt.close('all')
     model.plot_data_within(logy=True)
     model.plot_data_within(n_groups='all')
Exemple #10
0
    def test_Belgian_poisson_dose_response(self):
        model = apc.Model()
        model.data_from_df(**apc.Belgian_lung_cancer())
        model.fit_table('poisson_dose_response', 'APC')

        self.assertTrue(
            np.allclose(
                model.deviance_table.astype(float).sum().values,
                np.array([
                    2.33052840e+04, 5.08000000e+02, 2.12588574e+00,
                    2.30019096e+04, 2.38000000e+02, 2.44351741e+00
                ])))
Exemple #11
0
    def test_Belgian_ln_rates(self):
        model = apc.Model()
        model.data_from_df(**apc.Belgian_lung_cancer())
        model.fit(family='log_normal_rates', predictor='APC')
        model.fit_table()

        self.assertTrue(
            np.allclose(
                model.deviance_table.sum().values,
                np.array([
                    694.2842826, 508.000000, 1367.09717145, 238.000000,
                    349.62681465, 2.73393206, 998.2842826
                ])))
Exemple #12
0
    def test_Belgian_bin_dose_response(self):
        data = apc.Belgian_lung_cancer()
        dose = (data['response'] / data['rate'] * 10**5).astype(int)
        model = apc.Model()
        model.data_from_df(data['response'], dose=dose, data_format='AP')
        model.fit('binomial_dose_response', 'A')
        model.identify()

        self.assertTrue(
            np.allclose(
                model.parameters_adhoc.sum().values,
                np.array([-6.56083837, 3.05256213, 18.37617231, 3.71767601])))
        self.assertTrue(
            np.allclose(
                model.identify('sum_sum', attach_to_self=False).sum().values,
                np.array([-14.19804504, 3.52539429, -220.13119605,
                          5.58065264])))
Exemple #13
0
    def test_Belgian_poisson_dose_response(self):
        model = apc.Model()
        model.data_from_df(**apc.Belgian_lung_cancer())
        model.fit(family='poisson_dose_response', predictor='APC')

        self.assertAlmostEqual(model.deviance, 20.225, 3)
        self.assertTrue(
            np.allclose(model.parameters['P>|z|'].values,
                        np.array([
                            4.98090007e-194, 2.00792411e-011, 7.54393422e-002,
                            2.44873634e-001, 3.78642275e-001, 4.49590657e-001,
                            1.71890762e-001, 7.15051524e-001, 3.40338551e-001,
                            7.77531241e-001, 5.43258659e-001, 3.10146699e-001,
                            3.27420794e-001, 3.02443187e-001, 4.90579409e-001,
                            8.10857155e-001, 8.99207007e-001, 2.56294262e-001,
                            4.15989929e-001, 9.55962845e-001, 9.06764652e-001,
                            5.55322937e-001, 3.42813423e-001, 4.50710269e-001,
                            7.13277215e-001, 4.54604834e-001
                        ]),
                        equal_nan=True))
        self.assertAlmostEqual(model.fitted_values.sum(), 6092.0)
Exemple #14
0
    def test_Belgian_bin_dose_response(self):
        data = apc.Belgian_lung_cancer()
        dose = (data['response'] / data['rate'] * 10**5).astype(int)
        model = apc.Model()
        model.data_from_df(data['response'], dose=dose, data_format='AP')
        model.fit('binomial_dose_response', 'APC')

        self.assertAlmostEqual(model.deviance, 20.227, 3)
        self.assertTrue(
            np.allclose(model.parameters['P>|z|'].values,
                        np.array([
                            0.00000000e+00, 2.00519896e-11, 7.54361666e-02,
                            2.44877022e-01, 3.78623439e-01, 4.49629054e-01,
                            1.71917810e-01, 7.15130617e-01, 3.40413299e-01,
                            7.77302417e-01, 5.43443319e-01, 3.10193656e-01,
                            3.27424287e-01, 3.02341523e-01, 4.90543748e-01,
                            8.10861452e-01, 8.99103558e-01, 2.56217693e-01,
                            4.15956680e-01, 9.55997597e-01, 9.06788804e-01,
                            5.55305952e-01, 3.42810478e-01, 4.50703994e-01,
                            7.13277567e-01, 4.54607683e-01
                        ]),
                        equal_nan=True))
        self.assertAlmostEqual(model.fitted_values.sum(), 0.0055324403, 10)
Exemple #15
0
 def test_Belgian_pois_dose_response(self):
     model = apc.Model()
     model.data_from_df(**apc.Belgian_lung_cancer())
     model.fit('poisson_dose_response', 'APC')
     model.simulate(repetitions=10)
     model.simulate(repetitions=10, fitted_values=model.fitted_values * 10)
Exemple #16
0
    def test_Belgian_bin_dose_response(self):
        data = apc.Belgian_lung_cancer()
        dose = (data['response'] / data['rate'] * 10**5).astype(int)
        model = apc.Model()
        model.data_from_df(data['response'], dose=dose, data_format='AP')
        model.fit_table('binomial_dose_response', 'APC')

        self.assertTrue(
            np.allclose(
                model.deviance_table.astype(float).values,
                np.array([[
                    2.02272942e+01, 1.80000000e+01, 3.20169615e-01, np.nan,
                    np.nan, np.nan
                ],
                          [
                              2.55616207e+01, 3.00000000e+01, 6.97305582e-01,
                              5.33432652e+00, 1.20000000e+01, 9.45870225e-01
                          ],
                          [
                              2.14563493e+01, 2.00000000e+01, 3.70723402e-01,
                              1.22905512e+00, 2.00000000e+00, 5.40896377e-01
                          ],
                          [
                              9.91929917e+01, 2.70000000e+01, 3.49109630e-10,
                              7.89656975e+01, 9.00000000e+00, 2.59348099e-13
                          ],
                          [
                              2.65878986e+01, 3.20000000e+01, 7.37036572e-01,
                              6.36060439e+00, 1.40000000e+01, 9.56568004e-01
                          ],
                          [
                              2.53472759e+02, 3.90000000e+01, 0.00000000e+00,
                              2.33245465e+02, 2.10000000e+01, 0.00000000e+00
                          ],
                          [
                              1.00677524e+02, 2.90000000e+01, 7.61992691e-10,
                              8.04502302e+01, 1.10000000e+01, 1.20758958e-12
                          ],
                          [
                              8.55939082e+01, 3.30000000e+01, 1.48750103e-06,
                              6.53666140e+01, 1.50000000e+01, 2.94677404e-08
                          ],
                          [
                              6.39083556e+03, 4.00000000e+01, 0.00000000e+00,
                              6.37060827e+03, 2.20000000e+01, 0.00000000e+00
                          ],
                          [
                              1.21719783e+03, 3.00000000e+01, 0.00000000e+00,
                              1.19697053e+03, 1.20000000e+01, 0.00000000e+00
                          ],
                          [
                              2.54429395e+02, 4.10000000e+01, 0.00000000e+00,
                              2.34202101e+02, 2.30000000e+01, 0.00000000e+00
                          ],
                          [
                              3.08059993e+02, 4.20000000e+01, 0.00000000e+00,
                              2.87832698e+02, 2.40000000e+01, 0.00000000e+00
                          ],
                          [
                              6.39139748e+03, 4.20000000e+01, 0.00000000e+00,
                              6.37117019e+03, 2.40000000e+01, 0.00000000e+00
                          ],
                          [
                              1.61214822e+03, 4.20000000e+01, 0.00000000e+00,
                              1.59192092e+03, 2.40000000e+01, 0.00000000e+00
                          ],
                          [
                              6.50047766e+03, 4.30000000e+01, 0.00000000e+00,
                              6.48025037e+03, 2.50000000e+01, 0.00000000e+00
                          ]]),
                equal_nan=True))