In [1]:
import openturns as ot
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
%load_ext autoreload
%autoreload 2
random_state = 123
np.random.seed(random_state)
In [13]:
from depimpact.tests.test_functions import func_sum
def test_func(x):
return np.sin(x).sum(axis=1)
dim = 2
In [14]:
margins = [ot.Uniform()]*dim
dim = len(margins)
In [15]:
from depimpact import ConservativeEstimate, quantile_func
alpha = 0.05
if alpha > 0.5: # Maximizing the quantile
def q_func(x, axis=1):
return - quantile_func(alpha)(x, axis=axis)
else: # Minimizing
q_func = quantile_func(alpha)
In [16]:
from depimpact.utils import get_grid_sample, to_copula_params
from depimpact.dependence_plot import plot_variation, compute_influence
K = 12
n = int(1E4)
pair = [1, 0]
copulas = {'Normal': [1, 1],
'Clayton': [3, 23],
'Gumbel': [14, 24],
'Joe': [16, 26]}
families = np.zeros((dim, dim))
quant_estimate = ConservativeEstimate(model_func=test_func, margins=margins, families=families)
kendalls, output_samples = compute_influence(quant_estimate, K, n, copulas, pair=pair)
In [17]:
ylabel = 'Output quantile at $\\alpha=%.2f$' % (alpha)
plot_area = 'right'
plt_lib = 'matplotlib'
plot_variation(output_samples, kendalls, q_func, plot_area, ylabel=ylabel, plt_lib=plt_lib)
plt.savefig('./output/%s_variation_quantile_%s_K%d_n_%d_%s.pdf' % (test_func.__name__, plt_lib,
K, n, plot_area))
In [7]:
plt_lib = 'seaborn'
plot_variation(output_samples, kendalls, q_func, plot_area, ylabel=ylabel, plt_lib=plt_lib)
plt.savefig('./output/%s_variation_quantile_%s_K%d_n_%d_%s.pdf' % (test_func.__name__, plt_lib,
K, n, plot_area))
In [8]:
plot_area = 'full'
plt_lib = 'matplotlib'
plot_variation(output_samples, kendalls, q_func, plot_area, ylabel=ylabel, plt_lib=plt_lib)
plt.savefig('./output/%s_variation_quantile_%s_K%d_n_%d_%s.pdf' % (test_func.__name__, plt_lib,
K, n, plot_area))
In [9]:
plt_lib = 'seaborn'
plot_variation(output_samples, kendalls, q_func, plot_area, ylabel=ylabel, plt_lib=plt_lib)
plt.savefig('./output/%s_variation_quantile_%s_K%d_n_%d_%s.pdf' % (test_func.__name__, plt_lib,
K, n, plot_area))