From cdc6dc8bb710bc4d0917d4e41948288fb91472bb Mon Sep 17 00:00:00 2001 From: Le Roux Erwan <erwan.le-roux@irstea.fr> Date: Mon, 3 Jun 2019 16:43:31 +0200 Subject: [PATCH] [HYPERCUBE VISUALIZER] fix big issue with respect to the "best year", take the year that minimizes the nllh --- .../altitude_hypercube_visualizer.py | 5 +++-- .../hypercube_visualization/main_hypercube_visualization.py | 6 +++--- .../visualization/study_visualization/study_visualizer.py | 3 ++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/experiment/meteo_france_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py b/experiment/meteo_france_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py index c546a14e..2e9beb56 100644 --- a/experiment/meteo_france_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py +++ b/experiment/meteo_france_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py @@ -118,7 +118,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer): # Figure title specific_title += '\n' - trend_types = [AbstractUnivariateTest.SIGNIFICATIVE_ALL_TREND, + trend_types = [AbstractUnivariateTest.ALL_TREND, + AbstractUnivariateTest.SIGNIFICATIVE_ALL_TREND, AbstractUnivariateTest.SIGNIFICATIVE_POSITIVE_TREND, AbstractUnivariateTest.SIGNIFICATIVE_NEGATIVE_TREND] series = [trend_type_to_series[trend_type][0] for trend_type in trend_types] @@ -126,7 +127,7 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer): percents = [round(p) for p in percents] specific_title += 'Total ' if xlabel == STARTING_YEARS_XLABEL else 'Mean ' - specific_title += 'of significative trends: {} (+:{} -{})'.format(*percents) + specific_title += 'all trend {}, all significative trends: {} (+:{} -{})'.format(*percents) plt.suptitle(specific_title) self.show_or_save_to_file(specific_title=specific_title) diff --git a/experiment/meteo_france_data/visualization/hypercube_visualization/main_hypercube_visualization.py b/experiment/meteo_france_data/visualization/hypercube_visualization/main_hypercube_visualization.py index 9f0c8daf..dd866ec9 100644 --- a/experiment/meteo_france_data/visualization/hypercube_visualization/main_hypercube_visualization.py +++ b/experiment/meteo_france_data/visualization/hypercube_visualization/main_hypercube_visualization.py @@ -74,12 +74,12 @@ def fast_altitude_hypercube(): def fast_altitude_year_hypercube(): - save_to_file = True + save_to_file = False only_first_one = False nb_data_reduced_for_speed = True altitudes = [ALL_ALTITUDES[3], ALL_ALTITUDES[-7]] for study_class in SCM_STUDIES[:1]: - for last_starting_year in [1989, 1999]: + for last_starting_year in [None, 1989, 1999][:1]: for trend_test_class in [GevLocationChangePointTest, GevScaleChangePointTest, GevShapeChangePointTest][:1]: visualizers = [StudyVisualizer(study, temporal_non_stationarity=True, verbose=False, multiprocessing=True) for study in study_iterator(study_class=study_class, only_first_one=only_first_one, @@ -102,7 +102,7 @@ def full_altitude_year_hypercube(): for study_class in SCM_STUDIES[:1]: for trend_test_class in [GevLocationChangePointTest, GevScaleChangePointTest, GevShapeChangePointTest][:1]: - for last_starting_year in [1967, 1977, 1987, 1997, 2007, None]: + for last_starting_year in [1967, 1977, 1987, 1997, 2007, None][-2::-1]: visualizers = [ StudyVisualizer(study, temporal_non_stationarity=True, verbose=False, multiprocessing=True) for study in study_iterator(study_class=study_class, only_first_one=only_first_one, diff --git a/experiment/meteo_france_data/visualization/study_visualization/study_visualizer.py b/experiment/meteo_france_data/visualization/study_visualization/study_visualizer.py index a50338a7..aa6d260a 100644 --- a/experiment/meteo_france_data/visualization/study_visualization/study_visualizer.py +++ b/experiment/meteo_france_data/visualization/study_visualization/study_visualizer.py @@ -411,8 +411,9 @@ class StudyVisualizer(object): self.compute_gev_change_point_test_result(smooth_maxima, starting_year, trend_test_class, years) for starting_year in starting_years] # Keep only the most likely starting year + # (i.e. the starting year that minimizes its negative log likelihood) # (set all the other data to np.nan so that they will not be taken into account in mean function) - best_idx = list(np.argmax(trend_test_res, axis=0))[2] + best_idx = list(np.argmin(trend_test_res, axis=0))[2] # print(best_idx, trend_test_res) best_idxs = [best_idx] # todo: by doing a sorting on the deviance, I could get the nb_top_likelihood_values values -- GitLab