diff --git a/notebooks/test.ipynb b/notebooks/test.ipynb index b5e0d92..720b2e0 100644 --- a/notebooks/test.ipynb +++ b/notebooks/test.ipynb @@ -3,48 +3,42 @@ { "cell_type": "code", "execution_count": 1, - "metadata": {}, + "metadata": { + "pycharm": { + "name": "#%%\n" + } + }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", - "import sys \n", - "sys.path.append(\"../src/tarp/\")\n", - "from drp import old_get_drp_coverage, get_drp_coverage, bootstrapping" + "from tarp import get_tarp_coverage" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "pycharm": { + "name": "#%% md\n" + } + }, "source": [ - "### Changes:\n", - "\n", - "The `get_drp_coverage` function now has a `seed` argument and a `norm` argument. \n", - "You can still use the old function but its normalization can cause the tarp test to fail in specific cases, so we'd recommend to use the new one. \n", - "\n", - "Just to make sure there's no mistake, let's compare the old function and the new one..." + "First, we show how to use `get_tarp_coverage` (note that this function used to be called `get_drp_coverage` in a previous version)" ] }, { "cell_type": "code", - "execution_count": 6, - "metadata": {}, + "execution_count": 2, + "metadata": { + "pycharm": { + "name": "#%%\n" + } + }, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Checking old - new\n", - "Expected coverage: 0.0\n", - "Credibility: 0.0\n" - ] - }, { "data": { - "image/png": "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", - "text/plain": [ - "
" - ] + "text/plain": "
", + "image/png": "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" }, "metadata": {}, "output_type": "display_data" @@ -84,98 +78,98 @@ " theta = np.stack(theta)[:,0]\n", " return samples, theta\n", "\n", + "\n", "\"\"\" Main function \"\"\"\n", "samples, theta = generate_correlated_samples(num_samples=1000, num_sims=800, num_dims=10) # You can decrease the number of simulations for faster computation\n", - "old_ecp, old_alpha = old_get_drp_coverage(samples, theta, references='random', metric='euclidean', seed = 5)\n", - "ecp, alpha = get_drp_coverage(samples, theta, references='random', metric='euclidean', norm = True, seed = 5)\n", - "\n", - "fig, axs = plt.subplots(1, 2, figsize=(8, 4))\n", - "\n", - "def plot_coverage(ecp, alpha, ax_idx, title = \"\"):\n", - " \"\"\"\n", - " Just a small utility function to plot the coverage\n", - " \"\"\"\n", - " axs[ax_idx].plot([0, 1], [0, 1], ls='--', color='k', label = \"Ideal case\")\n", - " axs[ax_idx].plot(alpha, ecp, label='DRP')\n", - " axs[ax_idx].legend()\n", - " axs[ax_idx].set_ylabel(\"Expected Coverage\")\n", - " axs[ax_idx].set_xlabel(\"Credibility Level\")\n", - " if title: \n", - " axs[ax_idx].set_title(title)\n", - " \n", + "ecp, alpha = get_tarp_coverage(samples, theta, references='random', metric='euclidean', norm = True, seed = 5)\n", "\n", + "fig, ax = plt.subplots(1, 1, figsize=(4, 4))\n", "\n", - "plot_coverage(old_ecp, old_alpha, 0, title = \"Old\")\n", - "plot_coverage(ecp, alpha, 1, title = \"New\")\n", - "plt.subplots_adjust(wspace=0.4)\n", + "ax.plot([0, 1], [0, 1], ls='--', color='k', label = \"Ideal case\")\n", + "ax.plot(alpha, ecp, label='TARP')\n", + "ax.legend()\n", + "ax.set_ylabel(\"Expected Coverage\")\n", + "ax.set_xlabel(\"Credibility Level\")\n", "\n", - "print(\"Checking old - new\")\n", - "print(f\"Expected coverage: {np.abs((old_ecp - ecp)).max()}\")\n", - "print(f\"Credibility: {np.abs((old_alpha - alpha)).max()}\")" + "plt.subplots_adjust(wspace=0.4)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "pycharm": { + "name": "#%% md\n" + } + }, "source": [ - "### Test bootstrapping: \n", + "### Test bootstrapping:\n", "\n", - "The new `bootstrapping` function is only implemented for `get_drp_coverage`. This provides a method to offset the unpredictability of each tarp test. Bootstrapping seemed to be better suited than jackniffe for this situation because a large number of simulations is needed to have a reliable tarp test." + "The new `bootstrapping` function is now implemented for `get_tarp_coverage`. This provides a method to offset the unpredictability of each tarp test. The function `get_tarp_coverage` now has a new argument `bootstrap` which is set to `False` by default. If set to `True`, the function will return the bootstrapped coverage for each credibility level. The function will return a 2D array of shape `(num_bootstraps, num_alpha)` where `num_alpha` is the number of credibility levels. The mean and standard deviation of the bootstrapped coverage can be computed using `ecp_bootstrap.mean(axis=0)` and `ecp_bootstrap.std(axis=0)` respectively." ] }, { "cell_type": "code", "execution_count": 3, - "metadata": {}, + "metadata": { + "pycharm": { + "name": "#%%\n" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - " 0%| | 0/800 [00:00" - ] + "text/plain": "
", + "image/png": "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H3744a+e0+Y5owpVVVX1nXfeUQ0Gg/rKK6+oW7ZsUW+88UbVZrOpO3fubPb47du3q1arVb3xxhvVLVu2qK+88opqMBjU9957r4N73nLJXuONN96oPvroo+p///tf9aefflLnzJmjGgwGdcOGDR3c85ZJ9vrqVFdXq4MGDVInTpyoHnXUUR3T2VZozfWde+656nHHHacuW7ZM3bFjh7p27Vp19erVHdjr5CR7jStXrlS1Wq367LPPqtu3b1dXrlypHn744er555/fwT1vmcWLF6t33nmn+v7776uA+sEHH+z3+PbIGQn9WmPGjFFnzpyZ0HbYYYepd9xxR7PH33bbbephhx2W0Hb11Verxx9/fLv18UAle43NGT58uHr//fe3ddfaRGuvb8qUKepdd92l3nvvvV069JO9vk8//VRNSUlRKysrO6J7bSLZa3z88cfVQYMGJbQ999xzanZ2drv1sa20JPTbI2dkegcIhUKsX7+eiRMnJrRPnDiRr7/+utlz1qxZ0+T4SZMmsW7dOsLhcLv1tbVac42NKYqC2+2md+/e7dHFA9La63v99dfZtm0b9957b3t38YC05vo++ugjRo8ezWOPPUZWVhaHHnoot9xyC36/vyO6nLTWXOO4ceMoLi5m8eLFqKrK7t27ee+99zj77LM7osvtrj1ypscVXGtORUUF0WiUjIyMhPaMjAzKysqaPaesrKzZ4yORCBUVFfTv37/d+tsarbnGxp588km8Xi8XXXRRe3TxgLTm+n7++WfuuOMOVq5ciV7ftf8ptOb6tm/fzqpVqzCbzXzwwQdUVFRw7bXXUlVV1SXn9VtzjePGjWPhwoVMmTKFQCBAJBLh3HPP5fnnn++ILre79sgZGek30LjUsqqq+y2/3NzxzbV3JcleY523336b++67j0WLFtG3b9/26t4Ba+n1RaNRLrnkEu6//34OPfTQjureAUvm709RFDQaDQsXLmTMmDFMnjyZp556ijfeeKPLjvYhuWvcsmULN9xwA/fccw/r16/ns88+Y8eOHcycObMjutoh2jpnuvbwpoOkpaWh0+majCbKy8ub/JSt069fv2aP1+v19OnTp9362lqtucY6ixYt4qqrruLdd9/l9NNPb89utlqy1+d2u1m3bh35+fn88Y9/BGIhqaoqer2epUuXcuqpp3ZI31uiNX9//fv3JysrK6Hk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HMI777zDNddcwwcffJAwxaQoCldffTU33HBDk8/Izc1tVb9E1yGhLzpd7969mTRpEi+88AI33HBDk1Cvrq7e7w3TkSNH8uOPPzJ48OBm3x8+fDiFhYXxkS3AmjVrWtS3b775Jh50e/fu5aeffuKwww5r0bmNGY1GotFok/bJkydjs9mYP38+n376KStWrGjV50Psz6Ju83qn07nP4y655BIWLlxIdnY2Wq02YSvMkSNH8sMPP+zzz1N0b3IjV3QJ8+bNIxqNMmbMGN5//31+/vlntm7dynPPPferUzH33HMPb775Jvfddx8//PADW7duZdGiRdx1110AnH766QwdOpRp06bx3XffsXLlSu68884W9euBBx7giy++4Pvvv2f69OmkpaW1+oGrAQMGsHbtWgoKCqioqEBRFCC2XHT69OnMmTOHwYMHt2jqye/3J+zvu3HjRn755RemTp1KWloa5513HitXrmTHjh0sX76cG2+8keLi4vj5U6dOZcOGDTz88MP89re/xWw2x9+7/fbbWbNmDddddx0bN27k559/5qOPPuL6669v1XWLrkVCX3QJAwcOZMOGDZxyyincfPPNjBgxgjPOOIMvvviC+fPn7/fcSZMm8fHHH7Ns2TKOPfZYjj/+eJ566iny8vIA0Gq1fPDBBwSDQcaMGcOMGTMS5v/355FHHuHGG29k1KhRlJaW8tFHH2E0Glt1jbfccgs6nY7hw4eTnp5OYWFh/L2rrrqKUCjElVde2aLP+umnnzjmmGMSvmbMmIHVamXFihXk5uZywQUXMGzYMK688kr8fn/CyH/IkCEce+yxbNq0Kb5qp86RRx7J8uXL+fnnnxk/fjzHHHMMd999N/3792/VdYuuRbZLFKILWL16NSeffDLFxcVkZGR0dnfEQUxCX4hOFAwGKSoq4g9/+AP9+/dv9gasEG1JpneE6ERvv/02Q4cOpaamhscee6yzuyN6ABnpCyFEDyIjfSGE6EEk9IUQogeR0BdCiB5EQl8IIXoQCX0hhOhBJPSFEKIHkdAXQogeREJfCCF6EAl9IYToQf4/C4ohYD+LZrsAAAAASUVORK5CYII=" }, "metadata": {}, "output_type": "display_data" } ], "source": [ - "k_sigma = 3\n", + "k_sigma = [1, 2, 3]\n", "\n", "fig, ax = plt.subplots(1, 1, figsize=(4, 4))\n", "ax.plot([0, 1], [0, 1], ls='--', color='k', label = \"Ideal case\")\n", - "ax.plot(alpha, ecp, label='DRP')\n", - "ax.fill_between(alpha_mean, ecp_mean - k_sigma * ecp_std, ecp_mean + k_sigma * ecp_std, color = \"orange\", alpha = 0.4, label = f\"Uncertainty zone ({k_sigma}\" + r\"$\\sigma$)\")\n", + "ax.plot(alpha, ecp_bootstrap.mean(axis=0), label='TARP')\n", + "for k in k_sigma:\n", + " ax.fill_between(alpha, ecp_bootstrap.mean(axis=0) - k * ecp_bootstrap.std(axis=0), ecp_bootstrap.mean(axis=0) + k * ecp_bootstrap.std(axis=0), alpha = 0.2)\n", "ax.legend()\n", "ax.set_ylabel(\"Expected Coverage\")\n", "ax.set_xlabel(\"Credibility Level\")\n", "plt.show()" ] + }, + { + "cell_type": "markdown", + "source": [], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + } } ], "metadata": { @@ -200,4 +194,4 @@ }, "nbformat": 4, "nbformat_minor": 2 -} +} \ No newline at end of file diff --git a/src/tarp/drp.py b/src/tarp/drp.py index 984a827..688769f 100644 --- a/src/tarp/drp.py +++ b/src/tarp/drp.py @@ -23,6 +23,7 @@ def get_drp_coverage( theta=theta, references=references, metric=metric, + num_alpha_bins=None, norm=True, bootstrap=False, seed=None) @@ -33,6 +34,7 @@ def _get_tarp_coverage_single( theta: np.ndarray, references: Union[str, np.ndarray] = "random", metric: str = "euclidean", + num_alpha_bins: Union[int, None] = None, norm: bool = True, seed: Union[int, None] = None ) -> Tuple[np.ndarray, np.ndarray]: @@ -51,6 +53,8 @@ def _get_tarp_coverage_single( metric: the metric to use when computing the distance. Can be ``"euclidean"`` or ``"manhattan"``. norm : whether to apply or not the normalization (Default = True) + num_alpha_bins: number of bins to use for the credibility values. If ``None``, then + ``n_sims // 10`` bins are used. seed: the seed to use for the random number generator. If ``None``, then no seed Returns: @@ -69,6 +73,9 @@ def _get_tarp_coverage_single( num_sims = samples.shape[1] num_dims = samples.shape[2] + if num_alpha_bins is None: + num_alpha_bins = num_sims // 10 + if theta.shape[0] != num_sims: raise ValueError("theta must have the same number of rows as samples") @@ -117,16 +124,18 @@ def _get_tarp_coverage_single( f = np.sum((samples_distances < theta_distances), axis=0) / num_samples # Compute expected coverage - h, alpha = np.histogram(f, density=True, bins=num_sims // 10) + h, alpha = np.histogram(f, density=True, bins=num_alpha_bins) dx = alpha[1] - alpha[0] ecp = np.cumsum(h) * dx - return ecp, alpha[1:] + return np.concatenate([[0], ecp]), alpha def _get_tarp_coverage_bootstrap(samples: np.ndarray, theta: np.ndarray, references: Union[str, np.ndarray] = "random", metric: str = "euclidean", + num_alpha_bins: Union[int, None] = None, + num_bootstrap: int = 100, norm: bool = True, seed: Union[int, None] = None ) -> Tuple[np.ndarray, np.ndarray]: @@ -143,6 +152,9 @@ def _get_tarp_coverage_bootstrap(samples: np.ndarray, the parameter space. metric: the metric to use when computing the distance. Can be ``"euclidean"`` or ``"manhattan"``. + num_alpha_bins: number of bins to use for the credibility values. If ``None``, then + ``n_sims // 10`` bins are used. + num_bootstrap: number of bootstrap iterations to perform (Default = 100) norm : whether to apply or not the normalization (Default = True) seed: the seed to use for the random number generator. If ``None``, then no seed @@ -151,8 +163,11 @@ def _get_tarp_coverage_bootstrap(samples: np.ndarray, """ num_sims = samples.shape[1] - boot_ecp = np.empty(shape=(num_sims, num_sims//10)) - for i in tqdm(range(num_sims)): + if num_alpha_bins is None: + num_alpha_bins = num_sims // 10 + + boot_ecp = np.empty(shape=(num_bootstrap, num_alpha_bins+1)) + for i in tqdm(range(num_bootstrap)): idx_remove = np.random.randint(num_sims) idx_add = np.random.randint(num_sims) @@ -164,6 +179,7 @@ def _get_tarp_coverage_bootstrap(samples: np.ndarray, theta, references=references, metric=metric, + num_alpha_bins=num_alpha_bins, norm=norm, seed=seed) @@ -179,6 +195,8 @@ def get_tarp_coverage( theta: np.ndarray, references: Union[str, np.ndarray] = "random", metric: str = "euclidean", + num_alpha_bins: Union[int, None] = None, + num_bootstrap: int = 100, norm: bool = False, bootstrap: bool = False, seed: Union[int, None] = None @@ -197,6 +215,9 @@ def get_tarp_coverage( the parameter space. metric: the metric to use when computing the distance. Can be ``"euclidean"`` or ``"manhattan"``. + num_alpha_bins: number of bins to use for the credibility values. If ``None``, then + ``n_sims // 10`` bins are used. + num_bootstrap: number of bootstrap iterations to perform (Default = 100) norm : whether to apply or not the normalization (Default = False) bootstrap : whether to use bootstrap to estimate uncertainties (Default = False) seed: the seed to use for the random number generator. If ``None``, then no seed @@ -206,8 +227,9 @@ def get_tarp_coverage( If bootstrap is True, the ecp array has an extra dimension corresponding to the number of bootstrap iterations """ if bootstrap: - ecp, alpha = _get_tarp_coverage_bootstrap(samples, theta, references, metric, norm, seed) + ecp, alpha = _get_tarp_coverage_bootstrap(samples, theta, references, metric, num_alpha_bins, num_bootstrap, + norm, seed) else: - ecp, alpha = _get_tarp_coverage_single(samples, theta, references, metric, norm, seed) + ecp, alpha = _get_tarp_coverage_single(samples, theta, references, metric, num_alpha_bins, norm, seed) return ecp, alpha diff --git a/tests/test_drp.py b/tests/test_drp.py index c02adcf..b97fb03 100644 --- a/tests/test_drp.py +++ b/tests/test_drp.py @@ -48,7 +48,8 @@ def test_bootstrap(self): bootstrap=True) ecp_mean = np.mean(ecp, axis=0) ecp_std = np.std(ecp, axis=0) - self.assertAlmostEqual(np.max(np.abs(ecp_mean - alpha)/ecp_std), 0., delta=10.) + #self.assertAlmostEqual(np.max(np.abs(ecp_mean - alpha)/ecp_std), 0., delta=10.) + self.assertAlmostEqual(np.max(np.abs(ecp_mean - alpha)), 0., delta=0.25) if __name__ == "__main__":