Commit 1078ecba authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[paper 1] put by default the fact of discarding shape parameters that are not...

[paper 1] put by default the fact of discarding shape parameters that are not in the shape support. improve selection curve plot
parent 80a2e068
Showing with 21 additions and 12 deletions
+21 -12
......@@ -24,30 +24,39 @@ def plot_selection_curves(altitude_to_visualizer: Dict[int, StudyVisualizerForNo
selected_counter = merge_counter([v.selected_trend_test_class_counter for v in altitude_to_visualizer.values()])
selected_and_significative_counter = merge_counter([v.selected_and_significative_trend_test_class_counter for v in altitude_to_visualizer.values()])
total_of_selected_models = sum(selected_counter.values())
l = sorted(enumerate(visualizer.non_stationary_trend_test), key=lambda e:selected_counter[e[1]])
l = sorted(enumerate(visualizer.non_stationary_trend_test), key=lambda e: selected_counter[e[1]])
permutation = [i for i, v in l][::-1]
select_list = get_ordered_list_from_counter(selected_counter, total_of_selected_models, visualizer, permutation)
selected_and_signifcative_list = get_ordered_list_from_counter(selected_and_significative_counter, total_of_selected_models, visualizer, permutation)
labels = permute(['${}$'.format(t.label) for t in visualizer.non_stationary_trend_test], permutation)
# print(l)
# print(select_list)
# print(selected_and_signifcative_list)
# [(5, <class 'experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_two_parameters.gev_trend_test_two_parameters.GevLocationAgainstGumbel'> ), (6, < class 'experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_two_parameters.gev_trend_test_two_parameters.GevScaleAgainstGumbel' > ), (2, < class 'experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_one_parameter.gumbel_trend_test_one_parameter.GumbelScaleTrendTest' > ), (1, < class 'experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_one_parameter.gumbel_trend_test_one_parameter.GumbelLocationTrendTest' > ), (7, < class 'experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_three_parameters.gev_trend_test_three_parameters.GevLocationAndScaleTrendTestAgainstGumbel' > ), (3, < class 'experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_two_parameters.gumbel_test_two_parameters.GumbelLocationAndScaleTrendTest' > ), (4, < class 'experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_one_parameter.gumbel_trend_test_one_parameter.GevStationaryVersusGumbel' > ), (0, < class 'experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_one_parameter.gumbel_trend_test_one_parameter.GumbelVersusGumbel' > )]
# [32.520325203252035, 25.609756097560975, 12.195121951219512, 9.34959349593496, 9.34959349593496, 4.471544715447155, 3.252032520325203, 3.252032520325203]
# [0, 13.821138211382113, 7.317073170731708, 8.536585365853659, 5.691056910569106, 1.6260162601626016, 1.2195121951219512, 2.4390243902439024]
# parameters
width = 5
size = 20
legend_fontsize = 20
color = 'white'
labelsize = 15
size = 30
legend_fontsize = 30
labelsize = 25
linewidth = 3
x = [10 * (i+1) for i in range(len(select_list))]
ax.bar(x, select_list, width=width, color=color, edgecolor='blue', label='selected model',
ax.bar(x, select_list, width=width, color='grey', edgecolor='grey', label='Non significative model',
linewidth=linewidth)
ax.bar(x, selected_and_signifcative_list, width=width, color=color, edgecolor='black',
label='significative selected model',
ax.bar(x, selected_and_signifcative_list, width=width, color='black', edgecolor='black',
label='Significative model',
linewidth=linewidth)
ax.legend(loc='upper left', prop={'size': size})
ax.set_ylabel('Selected model (\%)', fontsize=legend_fontsize)
ax.legend(loc='upper right', prop={'size': size})
ax.set_ylabel('Time series where the model is selected\n'
'i.e. where it minimizes the AIC (\%)', fontsize=legend_fontsize)
ax.set_xlabel('Models', fontsize=legend_fontsize)
ax.tick_params(axis='both', which='major', labelsize=labelsize)
ax.set_xticks(x)
ax.yaxis.grid()
ax.set_xticklabels(labels)
# for ax_horizontal in [ax, ax_twiny]:
......
......@@ -51,7 +51,7 @@ class StudyVisualizerForNonStationaryTrends(StudyVisualizer):
relative_change_trend_plot=True,
non_stationary_trend_test_to_marker=None,
fit_method=TemporalMarginFitMethod.extremes_fevd_mle,
select_only_acceptable_shape_parameter=False):
select_only_acceptable_shape_parameter=True):
super().__init__(study, show, save_to_file, only_one_graph, only_first_row, vertical_kde_plot,
year_for_kde_plot, plot_block_maxima_quantiles, temporal_non_stationarity,
transformation_class, verbose, multiprocessing, complete_non_stationary_trend_analysis,
......
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