Commit bf4a7fdf authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[contrasting] add dctionary to save goodness of fit results

parent 68560237
No related merge requests found
Showing with 32 additions and 25 deletions
+32 -25
......@@ -51,20 +51,20 @@ ALTITUDINAL_GEV_MODELS = [
NonStationaryAltitudinalLocationQuadraticScaleLinearCrossTermForLocation,
# Quadratic in the scale
NonStationaryAltitudinalScaleQuadratic,
NonStationaryAltitudinalLocationLinearScaleQuadratic,
NonStationaryAltitudinalLocationQuadraticScaleQuadratic,
NonStationaryAltitudinalScaleQuadraticCrossTermForLocation,
NonStationaryAltitudinalLocationLinearScaleQuadraticCrossTermForLocation,
NonStationaryAltitudinalLocationQuadraticScaleQuadraticCrossTermForLocation,
# Cross term for the scale
NonStationaryAltitudinalScaleLinearCrossTermForScale,
NonStationaryAltitudinalLocationLinearScaleLinearCrossTermForScale,
NonStationaryAltitudinalLocationQuadraticScaleLinearCrossTermForScale,
NonStationaryAltitudinalScaleQuadraticCrossTermForScale,
NonStationaryAltitudinalLocationLinearScaleQuadraticCrossTermForScale,
NonStationaryAltitudinalLocationQuadraticScaleQuadraticCrossTermForScale,
# NonStationaryAltitudinalScaleQuadratic,
# NonStationaryAltitudinalLocationLinearScaleQuadratic,
# NonStationaryAltitudinalLocationQuadraticScaleQuadratic,
# NonStationaryAltitudinalScaleQuadraticCrossTermForLocation,
# NonStationaryAltitudinalLocationLinearScaleQuadraticCrossTermForLocation,
# NonStationaryAltitudinalLocationQuadraticScaleQuadraticCrossTermForLocation,
#
# # Cross term for the scale
# NonStationaryAltitudinalScaleLinearCrossTermForScale,
# NonStationaryAltitudinalLocationLinearScaleLinearCrossTermForScale,
# NonStationaryAltitudinalLocationQuadraticScaleLinearCrossTermForScale,
# NonStationaryAltitudinalScaleQuadraticCrossTermForScale,
# NonStationaryAltitudinalLocationLinearScaleQuadraticCrossTermForScale,
# NonStationaryAltitudinalLocationQuadraticScaleQuadraticCrossTermForScale,
][:]
......
......@@ -34,14 +34,15 @@ def plot_moments(studies, massif_names=None):
def plot_altitudinal_fit(studies, massif_names=None):
model_classes = ALTITUDINAL_GEV_MODELS
# model_classes = ALTITUDINAL_GEV_MODELS_QUADRATIC
visualizer = AltitudesStudiesVisualizerForNonStationaryModels(studies=studies,
model_classes=model_classes,
massif_names=massif_names,
show=False)
# Plot the results for the model that minimizes the individual aic
# plot_individual_aic(visualizer)
plot_individual_aic(visualizer)
# Plot the results for the model that minimizes the total aic
plot_total_aic(model_classes, visualizer)
# plot_total_aic(model_classes, visualizer)
def main():
......
......@@ -34,6 +34,8 @@ class OneFoldFit(object):
# Best estimator definition
self.best_estimator_class_for_total_aic = None
# Cached object
self._folder_to_goodness = {}
@classproperty
def folder_for_plots(cls):
......@@ -160,13 +162,17 @@ class OneFoldFit(object):
@property
def goodness_of_fit_anderson_test(self):
quantiles = self.compute_empirical_quantiles(estimator=self.best_estimator)
goodness_of_fit_anderson_test = goodness_of_fit_anderson(quantiles, self.SIGNIFICANCE_LEVEL)
if not goodness_of_fit_anderson_test:
print('{} with {} does not pass the anderson test for model {}'.format(self.massif_name,
self.folder_for_plots,
type(self.best_margin_model)))
return goodness_of_fit_anderson_test
if self.folder_for_plots in self._folder_to_goodness:
return self._folder_to_goodness[self.folder_for_plots]
else:
quantiles = self.compute_empirical_quantiles(estimator=self.best_estimator)
goodness_of_fit_anderson_test = goodness_of_fit_anderson(quantiles, self.SIGNIFICANCE_LEVEL)
if not goodness_of_fit_anderson_test:
print('{} with {} does not pass the anderson test for model {}'.format(self.massif_name,
self.folder_for_plots,
type(self.best_margin_model)))
self._folder_to_goodness[self.folder_for_plots] = goodness_of_fit_anderson_test
return goodness_of_fit_anderson_test
def compute_empirical_quantiles(self, estimator):
empirical_quantiles = []
......
......@@ -11,10 +11,10 @@ from projects.exceeding_snow_loads.utils import dpi_paper1_figure
def plots(visualizer):
visualizer.plot_moments()
visualizer.plot_best_coef_maps()
visualizer.plot_shape_map()
visualizer.plot_year_for_the_peak()
visualizer.plot_moments()
visualizer.plot_best_coef_maps()
def plot_individual_aic(visualizer):
......
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