In [1]:
import numpy as np
import openturns as ot
from depimpact import ConservativeEstimate, quantile_func
from depimpact.tests import func_sum
from depimpact.plots import set_style_paper, matrix_plot_quantities
import matplotlib.pyplot as plt

set_style_paper()

%matplotlib inline
%load_ext autoreload
%autoreload 2


/home/D58174/anaconda/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters

In [24]:
dim = 3
grid_type = 'lhs'
dep_measure = 'kendall'
K = 200
n = 10000
alpha = 0.01

margins = [ot.Normal()]*dim
q_func = quantile_func(alpha)

In [38]:
cop_ids = [5]
t_param = 3.
grid_results = {}
for cop_id in cop_ids:
    families = np.tril(np.ones((dim, dim), dtype=int)*cop_id, k=-1)
    if cop_id == 2:
        param2 = np.tril(np.ones((dim, dim))*t_param, k=-1)
    else:
        param2 = None
    quant_estimate = ConservativeEstimate(model_func=func_sum, margins=margins, families=families, param2=param2)
    grid_result = quant_estimate.gridsearch(n_dep_param=K, n_input_sample=n, grid_type=grid_type, dep_measure=dep_measure,
                                           keep_input_samples=False)
    grid_result.q_func = q_func
    min_result = grid_result.min_result
    print('Minimum quantile: {} at param: {}'.format(min_result.quantity, min_result.kendall_tau))
    grid_results[cop_id] = grid_result


Minimum quantile: -6.432565309683398 at param: [0.7457499999649615, 0.8122499999996294, 0.6982500000000038]

In [39]:
from depimpact.plots import plot_quantities
    
labels = ['Copula %d' % (cop_id) for cop_id in cop_ids]
results = list(grid_results.values())
fig, axes = plot_quantities(results, quantity_name='Quantile', label=labels, plot_scatter=False, n_bins=12)
fig.tight_layout()



In [ ]: