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