Commit 1232a342 authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[contrasting] add assert in the estimator object for the aic score

parent 1087f016
No related merge requests found
Showing with 9 additions and 6 deletions
+9 -6
from abc import ABC from abc import ABC
import numpy.testing as npt
import numpy as np import numpy as np
from cached_property import cached_property from cached_property import cached_property
...@@ -67,7 +68,9 @@ class LinearMarginEstimator(AbstractMarginEstimator): ...@@ -67,7 +68,9 @@ class LinearMarginEstimator(AbstractMarginEstimator):
return nllh return nllh
def aic(self, split=Split.all): def aic(self, split=Split.all):
return 2 * self.margin_model.nb_params + 2 * self.nllh(split=split) aic = 2 * self.margin_model.nb_params + 2 * self.nllh(split=split)
npt.assert_almost_equal(self.result_from_model_fit.aic, aic, decimal=5)
return aic
def bic(self, split=Split.all): def bic(self, split=Split.all):
n = len(self.dataset.maxima_gev(split=split)) n = len(self.dataset.maxima_gev(split=split))
......
...@@ -23,14 +23,14 @@ def plot_time_series(studies, massif_names=None): ...@@ -23,14 +23,14 @@ def plot_time_series(studies, massif_names=None):
def plot_moments(studies, massif_names=None): def plot_moments(studies, massif_names=None):
for std in [True, False][1:]: for std in [True, False][:]:
for change in [True, False, None]: for change in [True, False, None]:
studies.plot_mean_maxima_against_altitude(massif_names=massif_names, std=std, change=change) studies.plot_mean_maxima_against_altitude(massif_names=massif_names, std=std, change=change)
def main(): def main():
altitudes = [900, 1200, 1500, 1800, 2100, 2400, 2700, 3000] # altitudes = [900, 1200, 1500, 1800, 2100, 2400, 2700, 3000]
# altitudes = [900, 1200, 1500, 1800, 2100, 2400, 2700, 3000, 3300, 3600, 3900] altitudes = [900, 1200, 1500, 1800, 2100, 2400, 2700, 3000, 3300, 3600, 3900]
study_classes = [SafranSnowfall1Day, SafranSnowfall3Days, SafranSnowfall5Days, SafranSnowfall7Days][:2] study_classes = [SafranSnowfall1Day, SafranSnowfall3Days, SafranSnowfall5Days, SafranSnowfall7Days][:2]
study_classes = [SafranPrecipitation1Day, SafranPrecipitation3Days, SafranPrecipitation5Days, study_classes = [SafranPrecipitation1Day, SafranPrecipitation3Days, SafranPrecipitation5Days,
SafranPrecipitation7Days][:] SafranPrecipitation7Days][:]
...@@ -41,7 +41,7 @@ def main(): ...@@ -41,7 +41,7 @@ def main():
for study_class in study_classes: for study_class in study_classes:
studies = AltitudesStudies(study_class, altitudes, season=Season.winter_extended) studies = AltitudesStudies(study_class, altitudes, season=Season.winter_extended)
plot_time_series(studies, massif_names) # plot_time_series(studies, massif_names)
plot_moments(studies, massif_names) plot_moments(studies, massif_names)
plot_altitudinal_fit(studies, massif_names) plot_altitudinal_fit(studies, massif_names)
......
...@@ -53,7 +53,7 @@ class TestGevTemporalQuadraticExtremesMle(unittest.TestCase): ...@@ -53,7 +53,7 @@ class TestGevTemporalQuadraticExtremesMle(unittest.TestCase):
def test_altitudinal_models(self): def test_altitudinal_models(self):
for model_class in ALTITUDINAL_MODELS: for model_class in ALTITUDINAL_MODELS:
print(model_class) # print(model_class)
self.common_test(model_class) self.common_test(model_class)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment