diff --git a/demos/mixed_distributions.ipynb b/demos/mixed_distributions.ipynb new file mode 100644 index 000000000..f7f40ff85 --- /dev/null +++ b/demos/mixed_distributions.ipynb @@ -0,0 +1,773 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "mixture-definition", + "metadata": {}, + "source": [ + "# Mixed distributions in QMCPy\n", + "\n", + "## 1. Mixed distributions\n", + "\n", + "Mixtures describe populations or systems with different regimes: normal and\n", + "stressed markets, or ordinary and severe insurance claims. If regime $j$ has\n", + "probability $p_j$ and distribution $P_j$, then\n", + "$$\n", + "P_{\\mathrm{mix}}=\\sum_{j=0}^{s-1}p_jP_j,\n", + "\\qquad p_j>0,\\qquad \\sum_j p_j=1.\n", + "$$\n", + "When the components have densities with respect to a common reference measure,\n", + "$$\n", + "\\rho_{\\mathrm{mix}}(x)=\\sum_j p_j\\rho_j(x).\n", + "$$\n", + "\n", + "QMCPy's `Mixture` samples from this target by choosing a component and reusing\n", + "its transform. After a short explanation of the selector, we use two\n", + "applications to ask why the target mixture matters for an integral, not just\n", + "how to generate its samples." + ] + }, + { + "cell_type": "markdown", + "id": "b008436d", + "metadata": {}, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/QMCSoftware/QMCSoftware/blob/develop/demos/mixed_distributions.ipynb)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "88ea2ae6", + "metadata": {}, + "outputs": [], + "source": [ + "# @title Execute this cell to install dependencies\n", + "try:\n", + " import google.colab\n", + " IN_COLAB = True\n", + "except ImportError:\n", + " IN_COLAB = False\n", + "if IN_COLAB:\n", + " !pip install -q qmcpy\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "application-imports", + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "from scipy.integrate import quad\n", + "from scipy.stats import lognorm, norm\n", + "from IPython.display import Markdown, display\n", + "\n", + "from qmcpy import DigitalNetB2, Gaussian, Mixture, SciPyWrapper\n", + "\n", + "plt.style.use(\"seaborn-v0_8-whitegrid\")\n", + "COLORS = [\"#3366CC\", \"#E67300\", \"#2E8B57\"]" + ] + }, + { + "cell_type": "markdown", + "id": "selector-mechanics", + "metadata": {}, + "source": [ + "## 2. Sampling a mixture in QMCPy\n", + "\n", + "For a $d$-dimensional observation, the outer sampler supplies\n", + "$u=(u_0,u_1,\\ldots,u_d)\\in[0,1]^{d+1}$. The selector $u_0$ chooses component $j$\n", + "using its cumulative probability interval,\n", + "$$\n", + "\\sum_{k component 0 -> x=-2.0\n", + "u0=0.29999999999999999 -> component 0 -> x=-2.0\n", + "u0=0.30000000000000004 -> component 1 -> x=2.5\n", + "u0=1 -> component 1 -> x=2.5\n" + ] + } + ], + "source": [ + "boundary_u = np.array([\n", + " [0.0, 0.5],\n", + " [0.3, 0.5],\n", + " [np.nextafter(0.3, 1.0), 0.5],\n", + " [1.0, 0.5],\n", + "])\n", + "boundary_x = intro._transform(boundary_u)[:, 0]\n", + "boundary_component = np.searchsorted(\n", + " np.cumsum(intro_probabilities), boundary_u[:, 0], side=\"left\"\n", + ")\n", + "boundary_component = np.minimum(boundary_component, 1)\n", + "\n", + "for selector, component, value in zip(\n", + " boundary_u[:, 0], boundary_component, boundary_x\n", + "):\n", + " print(f\"u0={selector:.17g} -> component {component} -> x={value:.1f}\")\n", + "\n", + "np.testing.assert_array_equal(boundary_component, [0, 0, 1, 1])\n", + "np.testing.assert_allclose(boundary_x, [-2.0, -2.0, 2.5, 2.5])" + ] + }, + { + "cell_type": "markdown", + "id": "selector-boundary-reading", + "metadata": {}, + "source": [ + "Both $u_0=0$ and the exact boundary $u_0=0.3$ select component 0 because the\n", + "cumulative lookup is left-sided. `np.nextafter(0.3, 1.0)`, the smallest\n", + "representable value above that boundary, selects component 1, as does $u_0=1$.\n", + "The fixed second coordinate $u_1=0.5$ maps to each Gaussian's median (its mean),\n", + "so the four results are $-2,-2,2.5,2.5$: no cumulative boundary is ambiguous." + ] + }, + { + "cell_type": "markdown", + "id": "portfolio-introduction", + "metadata": {}, + "source": [ + "## 3. Portfolio downside loss: mixture versus non-mixture sampling\n", + "\n", + "Why sample the mixture directly? This main example compares two\n", + "sampling strategies for the same expected loss, rather than two\n", + "different return models.\n", + "\n", + "### Target and proposal\n", + "\n", + "Let $X$ be portfolio return, expressed as a fraction. This illustrative model\n", + "has an 85% normal-market regime with mean $+1\\%$ and standard deviation $1.5\\%$,\n", + "and a 15% stress regime with mean $-8\\%$ and standard deviation $3\\%$.\n", + "These parameters are not a calibrated financial model.\n", + "\n", + "The alternative is a single Gaussian proposal $q=\\mathcal{N}(0,0.04^2)$.\n", + "It has support on the whole real line but cannot reproduce both regimes.\n", + "First, compare its density with the target." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "portfolio-density", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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6dd7A+c1euyxx+B2uxEOSou1jIwMuFwuhJtYDCEM7ftIPS9CCCEqJrcQmLsiP1jsIJro2joJDVKdpkrdrGV54W6OEHtNTIufSOfqq6/G5s2b8e6775a7zsaNG3H99ddj2LBhJhzu1VdfNZPHWvzzzz849dRTMXToULM9iqn//Oc/5jOKqqeeegqHH344Bg0aZL7/5Zdfms9Gjx6N7777zixWmJ0VXvX555/vFnrH7x133HHmeXFxMZ544gkcfPDBZrn77ruRlVV2jDC3x2098sgj2H///fH222+b97/44gscc8wxGD58OC655BIsWbJkj+0qKzSwrO3z+Hnct99+u+m3I488Et9//33w+/S2nX766RgyZAhGjRpl2mLB77I95R3LEUccgY8++giHHHIIrrvuOrz55psl1mHbOHEvz8dZZ52F6dOnV2q/1jHW1nkpzaZNm3DbbbfhwAMPNN99/PHHzfascfTggw+a93m+OB45bgnDQG+++WbT9wcccIDZJ8NAhRAiFpm/zgGfH+jcMhFNG8QhmmBVuuE9A4Jtws6CDUJEIxI/EUzjxo1xxRVXGAN63bp1u31ODwANywYNGuDjjz82BuhPP/0UNLjXrl2LG264wYibTz75BD169MBnn30W/P5bb72F8ePHGyHwv//9D8cee6wRR9u2bcN5551nvsel9GSzhx56KLZs2YL58+cH3/vjjz+M4U9eeOEFzJs3zzy+9tprxtil4VweGzZsMIb0hx9+aITI2LFjjYijOOFx0bjnhLjZ2dkVtquy2yeffvopunXrZgQDhQrFEQ11Cke29bDDDjN9ctVVV+HRRx/FsmXLzPduvfVWPP300+Xui/k4FFIvvfQSzj//fLz33nv46quvgsKH/XvhhRea80GRc+211xqhsKf9WtTmebGguGH/FxQU4I033jDCh+Pm2WefDfYlRdzLL79s+jg/P9+MKfLKK6+Y8fTOO+/g9ddfx6JFi8w2hBAiFpm/zh6VXp/SoW8TVPRARDESPxHOmWeeiVatWpk79qWhp4CG/b333ou2bdti4MCBuPHGG43ngdCIpuC59NJLzec0qHv27Bn8fufOnXHfffehd+/eaNmyJS6++GJ4PB6sWrUKSUlJiI+PNwvFVSj169fH4MGDjWFNKEqmTp1qDHIayDSG77nnHrOvTp064eGHHzaeCct7UxYX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OnSouTiWNnpXrlzp79q1q7+wsLBG2ywiexzoehAb42DixIlG5FrGDjn//PP9zz//vHmu60H0wHNIoRr6G33ppZdK/I4tPv/8c//IkSODRiwfDzvssOC4ufXWW/233357iZskXbp0MUawiJ1xMGHCBCOORM2isLcqsGnTJmzYsAGDBg0KvjdgwACsW7cOmzdv3m39/fffH48++uhu7+fm5prHWbNmGfemRWJiInr06GFC5UTdGQdkzJgxuP7663H33Xfv9tnSpUvRrFkzU6pdxO440PUgNsYBz3P37t2RlJRUYn3rPOt6ED0sXLjQTLXBsPbQc8lzXDrske/xM05ySvjYv3//4Hkv/fvnGGjevLl5X8TOOODvv127drV8BLGHxE8V2LJli3ls3Lhx8L2MjAzzuHHjxt3Wb9mypYnpDp2M9YcffsCwYcOC2wvdFuGkTGVtS0TvOCAPP/ywyf0qi2XLlpnZvi+//HKMGDEC55xzDmbPnl0jbReROw50PYiNcbCn86zrQfTAc1m/fn3ExcWVOPfM/8jMzKzSeadQ1u8/OqnOccDff0FBAc4991yTO3TppZdixYoVtXQksUP5MwDFKIWFheZOXlnk5+ebx9ABbj0vLi7e43avvfZa84M4/fTTzXsc4KHbsra3p22J6B0HZcELGyfpZQLkddddh88++wznn38+fvzxR3P3T8TGOND1IDbGwZ7Os64H0UN557Ksc7+n884xpt9/dFKd42D58uXm93/TTTchJSUFr7/+uimOwhvnfC2qB4mfUtAlySpLZXHrrbeaRw5SKyTBGrAMUSkPVum46qqrsHLlSnz00UfBdbmN0j8Mvk5LS6u24xGRMw7K46GHHjJ/+KwL2/33348ZM2bgm2++wRVXXLEPRyGiaRzoehAb44DrlL4bzPUTEhLMc10PoofyfrPEOp97Wtdar7zP9+ZaIqJ3HLz55ptwu91ITk42r1lF8sADD8Rff/2FY489toaPJHaQ+CnFkCFDsGjRojI/452/J5980rgtGdIWGvLQqFGjMr/D/J5LLrkEq1evxrvvvou2bdsGP2vSpAm2bt1aYn2+7tatWzUekYiEcVARTqezxB0dxgC3b9++3DvNom6OA10PYmMc8Dwzrr/0ebZCYXQ9iB54Lnfs2GHyPXjerHNPQ7b0TYvyft/WeS/v8725lojoHQf0AoV6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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "market_probabilities = np.array([0.85, 0.15])\n", + "market_means = np.array([0.01, -0.08])\n", + "market_sds = np.array([0.015, 0.03])\n", + "proposal_mean, proposal_sd = 0.0, 0.04\n", + "\n", + "\n", + "def market_log_density(y):\n", + " return np.logaddexp(\n", + " np.log(market_probabilities[0])\n", + " + norm.logpdf(y, market_means[0], market_sds[0]),\n", + " np.log(market_probabilities[1])\n", + " + norm.logpdf(y, market_means[1], market_sds[1]),\n", + " )\n", + "\n", + "\n", + "return_grid = np.linspace(-0.20, 0.07, 900)\n", + "fig, ax = plt.subplots(figsize=(8.2, 3.6), layout=\"constrained\")\n", + "ax.plot(return_grid, np.exp(market_log_density(return_grid)),\n", + " color=COLORS[0], label=\"Target mixture density\")\n", + "ax.plot(return_grid, norm.pdf(return_grid, proposal_mean, proposal_sd),\n", + " color=COLORS[1], linestyle=\"--\", label=\"Single-Gaussian proposal density\")\n", + "ax.axvspan(return_grid[0], 0, color=\"grey\", alpha=0.08,\n", + " label=\"Negative returns: positive loss\")\n", + "ax.set(xlabel=\"portfolio return (fraction)\", ylabel=\"density\",\n", + " title=\"Two market regimes versus a single Gaussian proposal\")\n", + "ax.legend(frameon=False)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "portfolio-density-reading", + "metadata": {}, + "source": [ + "The target's tall mode near $0.01$ represents normal markets, while its smaller\n", + "mode near $-0.08$ allocates probability to stress returns. The single Gaussian\n", + "spreads its mass around zero and does not match both regions equally well.\n", + "The shaded negative-return region is where the loss is nonzero; the experiment\n", + "below tests the effect of this density mismatch on estimating that loss.\n", + "\n", + "### Reference expected downside loss\n", + "\n", + "We estimate expected downside loss:\n", + "$$\n", + "g(x)=\\max(-x,0), \\qquad\n", + "I=\\mathbb{E}_{\\rho_{\\mathrm{mix}}}[g(X)]\n", + "=\\int g(x)\\rho_{\\mathrm{mix}}(x)\\,dx.\n", + "$$\n", + "Positive returns contribute zero loss; negative returns contribute their loss\n", + "magnitude. This is expected downside loss over the full distribution, **not**\n", + "the conditional expectation $\\mathbb{E}[-X\\mid X<0]$." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "portfolio-reference", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reference expected downside loss: 0.013932092872\n", + "As a fraction of portfolio value: 1.393209%\n", + "Quadrature estimated absolute error: 6.64e-13\n" + ] + } + ], + "source": [ + "loss_reference, quadrature_error = quad(\n", + " lambda x: (-x) * np.exp(market_log_density(x)),\n", + " -np.inf, 0.0, epsabs=1e-12, epsrel=1e-12,\n", + ")\n", + "assert np.isfinite(loss_reference) and quadrature_error < 1e-10\n", + "print(f\"Reference expected downside loss: {loss_reference:.12f}\")\n", + "print(f\"As a fraction of portfolio value: {100 * loss_reference:.6f}%\")\n", + "print(f\"Quadrature estimated absolute error: {quadrature_error:.2e}\")" + ] + }, + { + "cell_type": "markdown", + "id": "portfolio-methods", + "metadata": {}, + "source": [ + "Quadrature gives $I_{\\mathrm{ref}}\\approx0.01393209$, or an unconditional\n", + "expected downside loss of about $1.3932\\%$ of portfolio value. It integrates\n", + "$(-x)\\rho_{\\mathrm{mix}}(x)$ from $-\\infty$ to zero independently of either\n", + "sampling method, and is used only as the benchmark for estimator error.\n", + "\n", + "### Convergence comparison\n", + "\n", + "Direct sampling uses `Mixture` and averages $g(X)$ without importance weights.\n", + "For the single-Gaussian proposal, correcting the density mismatch gives\n", + "$$\n", + "I=\\mathbb{E}_q\\!\\left[g(Y)\\frac{\\rho_{\\mathrm{mix}}(Y)}{q(Y)}\\right].\n", + "$$\n", + "We evaluate this density ratio in log space without clipping weights.\n", + "\n", + "Both approaches estimate the same expected downside loss. The comparison\n", + "therefore isolates the sampling strategy: direct draws from the target mixture\n", + "versus draws from a single Gaussian proposal corrected with importance weights.\n", + "\n", + "Each method uses $R=16$ independent LMS-plus-digital-shift randomizations of\n", + "DigitalNetB2, with fixed seeds chosen before the comparison. Within each\n", + "replication, nested prefixes give $n=2^6,\\ldots,2^{14}$ samples, so the two\n", + "methods have equal sample counts; different sizes on a curve are correlated.\n", + "Direct sampling needs two uniform coordinates (selector plus transform),\n", + "whereas the Gaussian proposal needs one. This compares accuracy per sample,\n", + "not equal wall-clock cost.\n", + "\n", + "For each size, we measure\n", + "$$\n", + "\\mathrm{RMSE}(n)=\n", + "\\sqrt{\\frac1R\\sum_{r=1}^R(\\widehat I_{n,r}-I_{\\mathrm{ref}})^2}.\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "portfolio-convergence", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAz8AAAFzCAYAAAAQULd9AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAkdVJREFUeJzt3Qd4U1UbB/B/R9p009LB3nvJRpYi4EYFB6i4996K+3Mr6Pe5J25FBdwKDhBUQBmy996jLVC6d/M9/1NuSNt0IG3TNv/f85yHNkmTe2+Sy3nvec97fBwOhwMiIiIiIiJ1nK+nN0BERERERKQ6KPgRERERERGvoOBHRERERES8goIfERERERHxCgp+RERERETEKyj4ERERERERr6DgR0REREREvIKCHxERERER8QoKfkSkUmi9ZBGR6qXzrsjRU/AjUoPcf//9aN++falt4MCBqIk2btyIiy66qFKea8GCBWZf+W91/J2n3uehQ4eW+Zivv/7a7M+uXbuO6bUuvfRS02q6NWvWoHPnzm73d/PmzbjhhhvQs2dP9O3bFzfffDN27tyJmqY6P4M8Tnwtfk5q0n6tX78eDz74oPl8d+vWDUOGDMFdd92F5cuXl3q+O+GEE0rtxL/wwgvmMe4+wytXrsS9995rXoOvNXz4cDzyyCMe/2wUP16vvvqq+b0y5eTk4JlnnsEPP/xwVOcVEQH8Pb0BIlJUTEwMXnvtNbf32Ww21EQ///wzli5d6unNqDVuuukmXHbZZZ7ejBpjw4YNuO6665CXl1fivr179+Liiy9Gy5Yt8b///Q+ZmZl46aWXcNVVV5mOn91uhzeKjY3F5MmT0axZM9QU3377rQk+OnXqhFtvvRWNGzfGvn378OWXX5qLIwxUrrzyyiJ/4+vri/j4eCxZsgS9evUq8ZzTp093+1qTJk0ynf9+/frh7rvvNsdj+/bteO+99/Drr7/io48+QocOHVATXHDBBRg8eHClPmdCQoLZx2effdZ5m84rIhWj4EekhgkICED37t09vRlShWpSh9WTePX6008/xSuvvILAwEC3j+FV89DQUHzwwQcICgoytzVp0gQ33ngjVq1ahd69e8Mb1bTzxLp16/Dwww9jxIgRJihhUGM5++yz8fTTT2P8+PFmBGTAgAHO+xo2bGhGfX766acSwc+yZctMYNSuXbsity9evNg839ixY/HQQw85b2cgxNGfkSNHmtGn6hgVq4gGDRqYVtV0XhGpGKW9idRC7PQxRYhpDpYDBw6gf//+5soqOxNW2hTTTUaNGmXSQs466ywzSuMqOzsbEyZMwIknnoguXbqYxxS/2srn+/DDD3H66aeb5zn55JPNFVbezs6pNVLF1+PvVFBQgHfeecc8ls976qmn4pNPPimxL1988YW5j897ySWXYM+ePRU6BhX5u23btuG2224z6YLsKDJ1hh0nOnTokLlCzf1yHWXgPvAKtYX7wU7V22+/7Uw1YkeNz9ujRw+ThsVOX0ZGRpH35/LLLzedOT7miiuuMB250tJT+BpvvPGGSd857rjjzBXc5ORktyMk119/vUn/Yvs36V98v19//XWcdtpp6Nq1K0455RTzPnEbLDt27DBpZtxvbs+YMWPwxx9/OO/PysrCY489ZtKV+N7yufh5cMX9Ky/d7s8//zSfHe7TPffcU+J+fr54Ff+8885zBj7E7Z47d26ZgQ9fn51wvg/8jFidZHbSb7nlFhx//PHmO8Qr8k899ZTZJwvfY44s8G/4/vI9vP3227F///5K/QyS9Zni95LvOx/D4ICfh7S0NNOJ5+eItz3//PPO9LDiaW983tLSZa30q6r8Tk6cOBHBwcF49NFHiwQ+Fn6nGOjws1ccPz98n4unvvE8xP2uV69ekdv5WQsLCzPpdMVFRUWZ79ewYcOKfCfdpaVxP0866STzXZo3b565759//jH7zM893/tx48bh4MGDzr+t6HnVlbu0N46S8e/5Ovze//e//zUXAywzZ840I5787FnfMX4mrfee+0cPPPCA81xS/LySn59v/obbZ6UgMo2Q5wAL/4bnp6+++sq853ytc845x3w3LfzcvPjii+a5eT//5fbm5uaWus8iNZmCH5EaiOk/7prVOeB/QNdeey2++eYb/P333+Y2djr4n9Rzzz0HHx8f53OxY8n/KNnJZOrQHXfc4ezI8vnYgWYngEHTm2++af6zvfPOO81/zhYGR2z8T++tt97C+eefb/4TZUeKKR38nZiGw9+JnWNe0edVX/4N//NmZ9S188Or/v/5z39M4MXOHjsCTJspT0X+btOmTTj33HNNR4HBCbeXx4Wd4YULF5oOFTuaf/31l/NvrGPJDpCFnRwGSuw4WPjaTOnha1999dUmrYfHjthhveaaaxAZGWk6Pew0MFWLj0tNTXW7P+zU8rjwOPJ94raxc+Fq69atuPDCC02QyyvovPLNwIfpRLytIvh+M6h59913zftkvS9MI+M+ET9D/Mxwm/mecx+5PRxpYVoR8X1k54gdQ3ZE+fniY9mBsnA/rOcsDYOYWbNmmef28/MrcT/fOx6zRo0a4fHHHzedUf4NH890qvKw48fHcx94bJkqxNEC7hu/J+ywn3nmmSYA+Pjjj4v8Ld83Hgum2t13332YPXu22e/K/Ay64v0c4eDniBcxXn75ZbPNTOvjsWSQyvettE42t4XfP6sxqGcgwE43j0FVfyd5fBjgMQAqbaSKozIM/JKSkorcd8YZZzhT3yw89txXvj/FP8MMfHmMXAPi4s/H81pp22LhceVnmOdOnvcWLVpkAgEec34nGHjyfWIqmWtwXN55tSKfS74ug2/+PVM++RlkEE6///672X7ez/eA55GmTZviiSeeMOcjpvhZF5z4XSgtTZr7xbQ4Hnd+rvjZ5/vLINs10OTFGn6PGaTzs8DvItMWrQsw/J58/vnnZpvef/99c87h461znkit4xCRGmPcuHGOdu3aldreffdd52NzcnIcZ511luPUU091fPXVV+b+n376yXm/ddtrr73mvK2goMBxzjnnOC644ALz+9y5c81jpk2bVmQ77rnnHsfAgQMdubm5juTkZEenTp0cTz/9dJHHPPnkk46rr77a/PzKK6+Y57Fs2bLF0b59e8fbb79d5G9efPFFR9euXR0HDx4029K/f3/HHXfcUeQxjz76qHmu+fPnuz1GFf2722+/3dGvXz9Hamqq8zHcHx6v8847z/zO7evevbs5ltZ+jxo1yjzPzp07zW0vv/yy46STTjI/8zbex8e5uvTSSx0jRowwPy9dutQ8ZvHixc77t2/f7pgwYYJj7969zvfZek4e386dOzuef/75Is/JY+u6HXfddZdjwIABRfYnKSnJ0atXL8dzzz3nKM0ll1xiGv3+++/mOX/88ccij3n99dfN7Rs2bHAkJCSYn7///nvn/SkpKY5nnnnG3E88hg8//HCR5+DnbPbs2Y5/y/q8WvtLy5cvN7fxs3jjjTc65syZ4/j2228dJ5xwguPkk092pKenl/p8PL7Dhw8vchv/fuzYsUWOIfG9u+qqq5y/8zUvuuiiIo+5//77zWelsj+D1mfK9bkSExPN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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "loss_sample_sizes = 2 ** np.arange(6, 15)\n", + "loss_replications = 16\n", + "market_components = [\n", + " Gaussian(\n", + " DigitalNetB2(1, seed=67 + j),\n", + " mean=market_means[j], covariance=market_sds[j] ** 2,\n", + " )\n", + " for j in range(2)\n", + "]\n", + "direct_market = Mixture(\n", + " DigitalNetB2(2, seed=71, replications=loss_replications, randomize=\"LMS DS\"),\n", + " market_components, market_probabilities,\n", + ")\n", + "single_proposal = Gaussian(\n", + " DigitalNetB2(1, seed=73, replications=loss_replications, randomize=\"LMS DS\"),\n", + " mean=proposal_mean, covariance=proposal_sd ** 2,\n", + ")\n", + "\n", + "# Public sampling: each row is one independently randomized replication.\n", + "market_x = direct_market(int(loss_sample_sizes[-1]))[..., 0]\n", + "proposal_y = single_proposal(int(loss_sample_sizes[-1]))[..., 0]\n", + "assert market_x.shape == proposal_y.shape == (\n", + " loss_replications, loss_sample_sizes[-1]\n", + ")\n", + "assert np.all(np.isfinite(market_x)) and np.all(np.isfinite(proposal_y))\n", + "\n", + "proposal_log_pdf = norm.logpdf(proposal_y, proposal_mean, proposal_sd)\n", + "assert np.all(np.isfinite(proposal_log_pdf))\n", + "importance_weights = np.exp(\n", + " market_log_density(proposal_y) - proposal_log_pdf\n", + ")\n", + "assert np.all(np.isfinite(importance_weights)) and np.all(importance_weights > 0)\n", + "\n", + "direct_loss = np.maximum(-market_x, 0.0)\n", + "weighted_loss = np.maximum(-proposal_y, 0.0) * importance_weights\n", + "assert np.all(np.isfinite(weighted_loss))\n", + "direct_estimates = np.array([\n", + " direct_loss[:, :n].mean(axis=1) for n in loss_sample_sizes\n", + "])\n", + "proposal_estimates = np.array([\n", + " weighted_loss[:, :n].mean(axis=1) for n in loss_sample_sizes\n", + "])\n", + "direct_rmse = np.sqrt(np.mean((direct_estimates - loss_reference) ** 2, axis=1))\n", + "proposal_rmse = np.sqrt(np.mean((proposal_estimates - loss_reference) ** 2, axis=1))\n", + "\n", + "assert direct_estimates.shape == proposal_estimates.shape == (\n", + " len(loss_sample_sizes), loss_replications\n", + ")\n", + "assert direct_rmse.shape == proposal_rmse.shape == loss_sample_sizes.shape\n", + "assert np.all(np.isfinite(direct_rmse)) and np.all(direct_rmse >= 0)\n", + "assert np.all(np.isfinite(proposal_rmse)) and np.all(proposal_rmse >= 0)\n", + "\n", + "fig, ax = plt.subplots(figsize=(8.2, 3.6), layout=\"constrained\")\n", + "ax.loglog(loss_sample_sizes, direct_rmse, \"o-\", color=COLORS[0],\n", + " label=\"Direct Mixture QMC\")\n", + "ax.loglog(loss_sample_sizes, proposal_rmse, \"s--\", color=COLORS[1],\n", + " label=\"Single-Gaussian Proposal QMC\")\n", + "ax.set(xlabel=\"sample size n (per replication)\", ylabel=\"RMSE\",\n", + " title=\"Expected downside loss: 16 randomized QMC replications\")\n", + "ax.legend(frameon=False)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "portfolio-convergence-reading", + "metadata": {}, + "source": [ + "Direct mixture sampling has lower empirical RMSE at every tested sample size\n", + "in this experiment. Both curves estimate the same expected downside loss,\n", + "but direct samples follow the target regime probabilities, whereas proposal\n", + "samples compensate for the density mismatch with variable importance weights.\n", + "Those weights can increase estimator variability, particularly for stress\n", + "returns that the proposal undersamples. The curves quantify an empirical\n", + "accuracy difference, not an asserted asymptotic convergence order; with only\n", + "16 replications, the measured RMSE itself has sampling variability." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "portfolio-results-table", + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "| n | Direct Mixture RMSE | Single Proposal RMSE | Proposal / Mixture |\n", + "| ---: | ---: | ---: | ---: |\n", + "| 256 | 1.859824e-04 | 1.057574e-03 | 5.69 |\n", + "| 1024 | 4.471536e-05 | 7.475718e-04 | 16.72 |\n", + "| 4096 | 1.113080e-05 | 1.060660e-04 | 9.53 |\n", + "| 16384 | 2.587320e-06 | 2.127985e-05 | 8.22 |" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "representative_sizes = [256, 1024, 4096, 16384]\n", + "table_lines = [\n", + " \"| n | Direct Mixture RMSE | Single Proposal RMSE | Proposal / Mixture |\",\n", + " \"| ---: | ---: | ---: | ---: |\",\n", + "]\n", + "for n in representative_sizes:\n", + " i = int(np.flatnonzero(loss_sample_sizes == n)[0])\n", + " table_lines.append(\n", + " f\"| {n} | {direct_rmse[i]:.6e} | {proposal_rmse[i]:.6e} | \"\n", + " f\"{proposal_rmse[i] / direct_rmse[i]:.2f} |\"\n", + " )\n", + "display(Markdown(\"\\n\".join(table_lines)))" + ] + }, + { + "cell_type": "markdown", + "id": "portfolio-table-reading", + "metadata": {}, + "source": [ + "The last column divides the single-Gaussian proposal RMSE by the direct-mixture\n", + "RMSE for the same expected downside loss. The proposal's RMSE is **16.72 times**\n", + "as large at $n=1024$ and **8.22 times** as large at $n=16384$, quantifying its\n", + "lower accuracy per sample in this experiment. This is not a claim that mixture sampling always wins: a proposal\n", + "tailored to the loss integrand, or another integration problem, can behave\n", + "differently." + ] + }, + { + "cell_type": "markdown", + "id": "insurance-introduction", + "metadata": {}, + "source": [ + "## 4. Insurance stop-loss\n", + "\n", + "### Claim model and retention\n", + "\n", + "Let $X>0$ be claim severity, measured in **thousands of currency units**.\n", + "Use a 95% ordinary-claim regime with median 2 (2,000 units) and log-scale\n", + "standard deviation 0.5, and a 5% severe-claim regime with median 20 (20,000 units)\n", + "and log-scale standard deviation 0.8. The severe regime is both larger and more\n", + "dispersed. These are illustrative parameters, not calibrated insurance data.\n", + "\n", + "Both components are lognormal. In SciPy, `scale` is the median and `s` is the\n", + "standard deviation of the natural logarithm, not the standard deviation of $X$.\n", + "`SciPyWrapper` reuses these distributions' inverse CDFs inside `Mixture`.\n", + "\n", + "Choose retention $d=10$ (10,000 units): five times the ordinary median and half\n", + "the severe median. We estimate\n", + "$$\n", + "g(x)=(x-d)_+=\\max(x-d,0),\\qquad\n", + "I=\\mathbb{E}_{\\rho_{\\mathrm{mix}}}[(X-d)_+].\n", + "$$\n", + "Claims below the retention contribute zero; larger claims contribute only the\n", + "excess above it. Thus $I$ is the expected payment above retention **per claim\n", + "across the whole population**, not a conditional average among large claims.\n", + "Here $d$ denotes the retention threshold, not the sampler dimension.\n", + "\n", + "A model of ordinary claims alone may describe the body but omit the rarer\n", + "severe regime. That omission matters disproportionately for a payoff that\n", + "grows with large claims above the threshold." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "insurance-density", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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kERERFzS9u3bTaUSq5RatWpldzhyAkp+RKRYTZo0wa+//mq2f/nlFzRt2tTukERERFzOvn37MHDgQLzwwgto37693eHISSj5EXEIrpPVpUuXQuUynKFm5MiRaN68Odq0aWMmFbFwfB0XG+Zsb5z0YMCAATZFLuK5yvq5FBHX+1yOGTMGqampePXVV9GnTx88+OCDNkUubjfmR0TODP7SHjp0KLZs2VLo+dGjR2PdunX46KOPEBcXh+HDh6NatWro1KkTfHx8NGONiIt9Li0tWrQwXyJi/+fyueeesy1eKTslPyIebuvWreYXedFpcXmX6tNPP8WECRPQoEED88Vf9tOmTSvUyBKR8qfPpYjr0efSGVT2JuLhli1bZu4Qz5w5s9DzGzduRHZ2dqGxPM2aNcPq1avNAqcicubocynievS5dAb1/Ih4uJiYmGKfP3ToECpVqgR/f//856KiokyXf1JSEiIiIs5ilCLOos+liOvR59IZ1PMj4lCczKDgL3KyHnOwp4icffpcirgefS49i5IfEYcKCAg47pe29TgwMNCmqEScTZ9LEdejz6VnUfIj4lDR0dFITEw0dcwFu/b5izwsLMzW2EScSp9LEdejz6VnUfIj4lD16tWDr68vVq1alf/c8uXL0bBhQ3h761eDiB30uRRxPfpcehadMRGHCgoKQrdu3TBq1CisWbMGsbGxZtG2vn372h2aiGPpcynievS59Cya7U3EwUaMGGF+mffr1w+hoaEYPHgwOnbsaHdYIo6mz6WI69Hn0nN45RVdyUlERERERMQDqexNREREREQcQcmPiIiIiIg4gpIfERERERFxBCU/IiIiIiLiCEp+RERERETEEZT8iIiIiIiIIyj5ERERERERR1DyIyIiIiIijqDkR0REREREHEHJj4g4wtKlS3HxxReX6v9+/vnnaN++PTwJ94f7RUePHsXs2bNP+bUyMjJw0003ITEx0Tz+5ptvEB8fb7b/97//oU+fPnDS9VLWY3f//fejUaNGHnGczrY9e/aY88J/affu3ViwYMFJf47XKq9ZHn8RcTYlPyIiRVx33XX47LPP4Em4P9wv+vDDDzFr1qxTfq3x48fj6quvRqVKlbB371489NBDSEtLK8doPdfChQvN18cff4zXX3/d7nDcTtWqVbFo0SLzL40cORJr1qw56c/xWuU1y2tXRJxN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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "claim_probabilities = np.array([0.95, 0.05])\n", + "claim_distributions = [\n", + " lognorm(s=0.5, scale=2.0),\n", + " lognorm(s=0.8, scale=20.0),\n", + "]\n", + "retention = 10.0\n", + "\n", + "\n", + "def claim_mixture_pdf(x):\n", + " return sum(\n", + " probability * distribution.pdf(x)\n", + " for probability, distribution in zip(\n", + " claim_probabilities, claim_distributions\n", + " )\n", + " )\n", + "\n", + "\n", + "claim_grid = np.geomspace(0.2, 200.0, 700)\n", + "fig, ax = plt.subplots(figsize=(8.2, 3.6), layout=\"constrained\")\n", + "ax.loglog(claim_grid, claim_distributions[0].pdf(claim_grid),\n", + " \"--\", color=COLORS[0], label=\"Ordinary component (conditional)\")\n", + "ax.loglog(claim_grid, claim_distributions[1].pdf(claim_grid),\n", + " \"--\", color=COLORS[1], label=\"Severe component (conditional)\")\n", + "ax.loglog(claim_grid, claim_mixture_pdf(claim_grid),\n", + " color=COLORS[2], linewidth=2, label=\"95% / 5% mixture\")\n", + "ax.axvline(retention, color=\"black\", linestyle=\":\", label=\"Retention d = 10\")\n", + "ax.set(xlabel=\"claim severity (thousands of currency units)\",\n", + " ylabel=\"density per severity unit\", ylim=(1e-7, 1.0),\n", + " title=\"Ordinary claims and the severe tail (log axes)\")\n", + "ax.legend(loc=\"upper right\", framealpha=1.0, fontsize=8.5)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "insurance-density-reading", + "metadata": {}, + "source": [ + "The mixture largely follows the ordinary-claim body but retains a severe tail\n", + "to the right of the retention line. Dashed curves are the conditional component\n", + "densities; the solid curve weights them by 0.95 and 0.05.\n", + "Logarithmic axes make both scales visible, the plotted values remain densities\n", + "of $X$, not of $\\log X$. The plotting window is finite, but the reference below\n", + "integrates the entire tail to infinity." + ] + }, + { + "cell_type": "markdown", + "id": "insurance-estimation", + "metadata": {}, + "source": [ + "### Expected stop-loss payment\n", + "\n", + "Use direct `Mixture` sampling with 16 independent randomized digital nets and\n", + "16,384 samples per replication. Average the stop-loss payoffs within each\n", + "replication, then average those estimates; no importance weights are needed.\n", + "\n", + "Independently, quadrature computes\n", + "$$\n", + "I_{\\mathrm{ref}}=\\int_d^\\infty (x-d)\\rho_{\\mathrm{mix}}(x)\\,dx.\n", + "$$\n", + "We also decompose this same reference into ordinary and severe contributions,\n", + "$p_j\\int_d^\\infty(x-d)\\rho_j(x)\\,dx$. This isolates the effect of the rare\n", + "regime without repeating the portfolio's proposal-comparison experiment." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "insurance-estimate", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Direct Mixture QMC estimate: 910.42\n", + "Quadrature reference: 908.78\n", + "Absolute error: 1.64\n", + "Replication RMSE: 9.33\n", + "Ordinary contribution: 0.94\n", + "Severe contribution: 907.85\n", + "Severe share of reference: 99.90%\n", + "All amounts are currency units per claim.\n" + ] + } + ], + "source": [ + "claim_components = [\n", + " SciPyWrapper(DigitalNetB2(1, seed=81 + j), distribution)\n", + " for j, distribution in enumerate(claim_distributions)\n", + "]\n", + "claim_mixture = Mixture(\n", + " DigitalNetB2(2, seed=83, replications=16, randomize=\"LMS DS\"),\n", + " claim_components, claim_probabilities,\n", + ")\n", + "claim_samples = claim_mixture(2**14)[..., 0]\n", + "assert claim_samples.shape == (16, 2**14)\n", + "assert np.all(np.isfinite(claim_samples)) and np.all(claim_samples > 0)\n", + "stop_loss_by_replication = np.maximum(\n", + " claim_samples - retention, 0.0\n", + ").mean(axis=1)\n", + "stop_loss_estimate = stop_loss_by_replication.mean()\n", + "\n", + "stop_loss_reference, stop_loss_quad_error = quad(\n", + " lambda x: (x - retention) * claim_mixture_pdf(x),\n", + " retention, np.inf, epsabs=1e-10, epsrel=1e-10,\n", + ")\n", + "stop_loss_rmse = np.sqrt(\n", + " np.mean((stop_loss_by_replication - stop_loss_reference) ** 2)\n", + ")\n", + "component_stop_loss = np.array([\n", + " quad(\n", + " lambda x: (x - retention) * distribution.pdf(x),\n", + " retention, np.inf, epsabs=1e-10, epsrel=1e-10,\n", + " )[0]\n", + " for distribution in claim_distributions\n", + "])\n", + "weighted_contributions = claim_probabilities * component_stop_loss\n", + "severe_share = weighted_contributions[1] / stop_loss_reference\n", + "np.testing.assert_allclose(\n", + " weighted_contributions.sum(), stop_loss_reference, rtol=1e-10, atol=1e-10\n", + ")\n", + "assert stop_loss_quad_error < 1e-8\n", + "\n", + "# Convert from thousands to currency units only for reporting.\n", + "print(f\"Direct Mixture QMC estimate: {1000 * stop_loss_estimate:.2f}\")\n", + "print(f\"Quadrature reference: {1000 * stop_loss_reference:.2f}\")\n", + "print(f\"Absolute error: {1000 * abs(stop_loss_estimate - stop_loss_reference):.2f}\")\n", + "print(f\"Replication RMSE: {1000 * stop_loss_rmse:.2f}\")\n", + "print(f\"Ordinary contribution: {1000 * weighted_contributions[0]:.2f}\")\n", + "print(f\"Severe contribution: {1000 * weighted_contributions[1]:.2f}\")\n", + "print(f\"Severe share of reference: {100 * severe_share:.2f}%\")\n", + "print(\"All amounts are currency units per claim.\")" + ] + }, + { + "cell_type": "markdown", + "id": "insurance-estimate-reading", + "metadata": {}, + "source": [ + "The direct estimate is **910.42** currency units per claim, versus the\n", + "independent reference of **908.78**, an absolute difference of **1.64**.\n", + "This is the average payment of only the excess above 10,000, including zero\n", + "payments for claims below retention; it is not conditional on a claim exceeding\n", + "retention.\n", + "\n", + "The empirical RMSE across the 16 individual replication estimates is **9.33**\n", + "currency units per claim. It measures error at 16,384 samples per replication,\n", + "not the error of their average: the latter is the displayed **1.64** absolute\n", + "difference from quadrature.\n", + "\n", + "The reference assigns about **0.94** to the ordinary regime and **907.85** to the\n", + "severe regime. The displayed severe share, **99.90%**, is the fraction of the\n", + "reference payment attributable to the 5% severe-claim population. A body-only\n", + "model would miss nearly all of this expectation. These are contributions to the same mixture integral, not a\n", + "comparison of numerical estimators with different targets; the reported QMC\n", + "error is an observed error, not a guaranteed error bound." + ] + }, + { + "cell_type": "markdown", + "id": "application-limitations", + "metadata": {}, + "source": [ + "## 5. Scope and limitations\n", + "\n", + "- Components must share an output dimension; the outer sampler needs exactly\n", + " one additional selector coordinate. Probabilities must be finite, positive,\n", + " and sum to one.\n", + "- A density formula requires component densities with respect to a common\n", + " reference measure. Components with point masses need a measure-level\n", + " interpretation, not a smooth density curve.\n", + "- Direct mixture sampling is not always the most accurate strategy. The payoff,\n", + " proposal, rare-event probabilities, and tail behavior all matter; equal sample\n", + " counts also need not mean equal computational cost.\n", + "- These application parameters are illustrative. Neither numerical precision\n", + " nor a good QMC result establishes that a model fits real data." + ] + }, + { + "cell_type": "markdown", + "id": "application-summary", + "metadata": {}, + "source": [ + "## 6. Summary\n", + "\n", + "`Mixture` represents targets composed of distinct regimes or populations and\n", + "samples them using existing component transforms.\n", + "\n", + "The portfolio example shows that direct mixture sampling can outperform a\n", + "mismatched single-Gaussian importance-sampling proposal for the same integral.\n", + "For the illustrative insurance model, a small severe-claim component dominates\n", + "a tail-sensitive quantity: expected stop-loss payment.\n", + "\n", + "These outcomes depend on the target, payoff, and sampling strategy; mixture\n", + "sampling is not universally superior." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python (qmcpy-venv)", + "language": "python", + "name": "qmcpy-venv" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/api/true_measures.md b/docs/api/true_measures.md index 581a1e405..4e2374df0 100644 --- a/docs/api/true_measures.md +++ b/docs/api/true_measures.md @@ -24,6 +24,10 @@ jupyter: ::: qmcpy.true_measure.product_measure.ProductMeasure +## `Mixture` + +::: qmcpy.true_measure.mixture.Mixture + ## `StudentT` ::: qmcpy.true_measure.student_t.StudentT diff --git a/mkdocs.yml b/mkdocs.yml index 792731c47..9a01029b0 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -77,6 +77,7 @@ nav: - Some True Measures: demos/some_true_measures.ipynb - SciPyWrapper dependence and Custom distributions: demos/scipywrapper_dependence_custom/scipywrapper_demo.ipynb - ProductMeasure: demos/product_measure.ipynb + - Mixed Distributions: demos/mixed_distributions.ipynb - Acceptance-Rejection Sampling: demos/acceptance_rejection.ipynb - Copula TrueMeasure Examples: demos/copula_examples.ipynb - For Developers: diff --git a/qmcpy/true_measure/__init__.py b/qmcpy/true_measure/__init__.py index 429da4380..30484b7e4 100644 --- a/qmcpy/true_measure/__init__.py +++ b/qmcpy/true_measure/__init__.py @@ -14,6 +14,7 @@ from .johnsons_su import JohnsonsSU from .scipy_wrapper import SciPyWrapper from .matern_gp import MaternGP +from .mixture import Mixture from .student_t import StudentT from .student_t_copula import StudentTCopula from .uniform_triangle import UniformTriangle diff --git a/qmcpy/true_measure/mixture.py b/qmcpy/true_measure/mixture.py new file mode 100644 index 000000000..f1e3db19a --- /dev/null +++ b/qmcpy/true_measure/mixture.py @@ -0,0 +1,185 @@ +import numpy as np + +from .abstract_true_measure import AbstractTrueMeasure +from ..discrete_distribution.abstract_discrete_distribution import ( + AbstractDiscreteDistribution, +) +from ..util import DimensionError, ParameterError + + +class Mixture(AbstractTrueMeasure): + r"""Mixture of true measures with fixed component probabilities. + + A sample ``u`` has one more coordinate than the mixture output. The first + coordinate selects a component according to ``probabilities``; the + remaining coordinates are transformed by that component. + + The samplers attached to the component true measures are not sampled. + Components provide their full recursive transform and weight behavior. + For an importance-sampling composition, the caller remains responsible for + ensuring that the component's induced sampling distribution is appropriate + for the intended mixture. + + Examples: + >>> from qmcpy import DigitalNetB2, Gaussian, Mixture + >>> components = [ + ... Gaussian(DigitalNetB2(1, seed=11), mean=-2), + ... Gaussian(DigitalNetB2(1, seed=13), mean=2), + ... ] + >>> mixture = Mixture(DigitalNetB2(2, seed=7), components, [0.3, 0.7]) + >>> mixture(4).shape + (4, 1) + """ + + def __init__(self, sampler, components, probabilities): + """ + Args: + sampler (AbstractDiscreteDistribution): Standard-uniform sampler + whose dimension is one greater than the component dimension. + components (list or tuple of AbstractTrueMeasure): True measures + with a common output dimension. + probabilities (array-like): Positive component probabilities that + sum to one. + """ + if not isinstance(components, (list, tuple)) or len(components) == 0: + raise ParameterError("Mixture requires a nonempty list of components.") + if not all( + isinstance(component, AbstractTrueMeasure) for component in components + ): + raise ParameterError( + "Each Mixture component must be an AbstractTrueMeasure instance." + ) + if not isinstance(sampler, AbstractDiscreteDistribution): + raise ParameterError( + "Mixture sampler must be an AbstractDiscreteDistribution." + ) + + try: + probabilities = np.asarray(probabilities, dtype=float) + except (TypeError, ValueError) as error: + raise ParameterError("Mixture probabilities must be numeric.") from error + if probabilities.ndim != 1 or len(probabilities) != len(components): + raise ParameterError( + "Mixture requires exactly one probability per component." + ) + if not np.all(np.isfinite(probabilities)) or not np.all(probabilities > 0): + raise ParameterError("Mixture probabilities must be positive and finite.") + if not np.isclose(probabilities.sum(), 1.0, rtol=1e-12, atol=1e-12): + raise ParameterError("Mixture probabilities must sum to 1.") + + component_dimension = components[0].d + if any(component.d != component_dimension for component in components[1:]): + raise DimensionError( + "All Mixture components must have the same output dimension." + ) + if sampler.d != component_dimension + 1: + raise DimensionError( + "Mixture sampler dimension must equal the component dimension plus " + f"one ({sampler.d} != {component_dimension + 1})." + ) + + self.parameters = ["components", "probabilities"] + self.components = list(components) + self.probabilities = self._read_only_array(probabilities) + self._cumulative_probabilities = np.cumsum(self.probabilities) + self._cumulative_probabilities[-1] = 1.0 + + self.domain = np.array([[0.0, 1.0]]) + self._parse_sampler(sampler) + self.d = component_dimension + self.range = self._mixture_range() + super(Mixture, self).__init__() + + @staticmethod + def _expanded_range(component): + bounds = np.asarray(component.range) + if bounds.shape == (1, 2): + return np.tile(bounds, (component.d, 1)) + if bounds.shape == (component.d, 2): + return bounds + raise DimensionError( + "Mixture component range must have shape (1, 2) or " + f"({component.d}, 2)." + ) + + def _mixture_range(self): + ranges = np.stack( + [self._expanded_range(component) for component in self.components] + ) + return np.column_stack( + [ranges[..., 0].min(axis=0), ranges[..., 1].max(axis=0)] + ) + + def _transform(self, x): + x = np.asarray(x, dtype=float) + sampler_dimension = self.d + 1 + if x.ndim == 0 or x.shape[-1] != sampler_dimension: + received = None if x.ndim == 0 else x.shape[-1] + raise DimensionError( + f"Mixture expected last axis {sampler_dimension}, got {received}." + ) + + leading_shape = x.shape[:-1] + flat_x = x.reshape(-1, sampler_dimension) + selections = np.searchsorted( + self._cumulative_probabilities, flat_x[:, 0], side="left" + ) + selections = np.minimum(selections, len(self.components) - 1) + transformed = np.empty((len(flat_x), self.d), dtype=float) + + for component_index, component in enumerate(self.components): + selected = selections == component_index + if np.any(selected): + transformed[selected] = component._jacobian_transform_r( + flat_x[selected, 1:], return_weights=False + ) + + return transformed.reshape(*leading_shape, self.d) + + def _weight(self, x): + x = np.asarray(x, dtype=float) + if x.ndim == 0 or x.shape[-1] != self.d: + received = None if x.ndim == 0 else x.shape[-1] + raise DimensionError( + f"Mixture expected last axis {self.d}, got {received}." + ) + + weight = np.zeros(x.shape[:-1], dtype=float) + for probability, component in zip(self.probabilities, self.components): + weight += probability * component._weight(x) + return weight + + def spawn(self, s=1, dimensions=None): + """Spawn mixtures with new outer samplers and the same components. + + Mixture components have fixed output dimensions, so only the current + output dimension is supported. The spawned outer samplers retain the + required extra selector coordinate. + """ + s = int(s) + if s <= 0: + raise ParameterError("Must spawn s>0 instances") + if dimensions is None: + output_dimensions = np.tile(self.d, s) + elif isinstance(dimensions, (list, tuple, np.ndarray)): + output_dimensions = np.array(dimensions, dtype=int) + else: + output_dimensions = np.tile(dimensions, s) + if not (output_dimensions.ndim == 1 and len(output_dimensions) == s): + raise ParameterError("dimensions must be a length s np.ndarray") + if np.any(output_dimensions != self.d): + raise DimensionError( + "Mixture spawning currently preserves the component dimension." + ) + + sampler_spawns = self.discrete_distrib.spawn( + s=s, dimensions=np.tile(self.d + 1, s) + ) + return [self._spawn(sampler, sampler.d) for sampler in sampler_spawns] + + def _spawn(self, sampler, dimension): + if dimension != self.d + 1: + raise DimensionError( + "Mixture spawning currently preserves the component dimension." + ) + return Mixture(sampler, self.components, self.probabilities) diff --git a/scripts/colab_notebooks_manifest.json b/scripts/colab_notebooks_manifest.json index ed62ba8be..1864ce102 100644 --- a/scripts/colab_notebooks_manifest.json +++ b/scripts/colab_notebooks_manifest.json @@ -21,6 +21,7 @@ "demos/lattice_random_generator.ipynb", "demos/lebesgue_integration.ipynb", "demos/linear-scrambled-halton.ipynb", + "demos/mixed_distributions.ipynb", "demos/nei_demo.ipynb", "demos/plot_proj_function.ipynb", "demos/pricing_options.ipynb", diff --git a/test/booktests/tb_mixed_distributions.py b/test/booktests/tb_mixed_distributions.py new file mode 100644 index 000000000..92acb784a --- /dev/null +++ b/test/booktests/tb_mixed_distributions.py @@ -0,0 +1,20 @@ +import unittest + +from testbook import testbook + +from __init__ import TB_TIMEOUT, BaseNotebookTest + + +class NotebookTests(BaseNotebookTest): + + @testbook( + "../../demos/mixed_distributions.ipynb", + execute=True, + timeout=TB_TIMEOUT, + ) + def test_mixed_distributions_notebook(self, tb): + pass + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_mixed_distributions.py b/test/test_mixed_distributions.py new file mode 100644 index 000000000..563e31a9d --- /dev/null +++ b/test/test_mixed_distributions.py @@ -0,0 +1,376 @@ +import numpy as np +import pytest +from scipy.stats import uniform + +from qmcpy import ( + AbstractTrueMeasure, + DigitalNetB2, + Gaussian, + Kumaraswamy, + Mixture, + SciPyWrapper, + Uniform, +) +from qmcpy.util import DimensionError, MethodImplementationError, ParameterError + + +class TransformOnlyMeasure(AbstractTrueMeasure): + def __init__(self, sampler): + self.parameters = [] + self.domain = np.array([[0.0, 1.0]]) + self.range = np.array([[0.0, 1.0]]) + self._parse_sampler(sampler) + super(TransformOnlyMeasure, self).__init__() + + def _transform(self, x): + return x + + +def gaussian_component(dimension, mean): + return Gaussian( + DigitalNetB2(dimension, seed=17), + mean=mean, + covariance=np.eye(dimension), + ) + + +def test_two_component_gaussian_mixture_shape(): + components = [gaussian_component(1, -2.0), gaussian_component(1, 3.0)] + mixture = Mixture(DigitalNetB2(2, seed=7), components, [0.3, 0.7]) + + samples = mixture(16) + + assert mixture.d == 1 + assert mixture.discrete_distrib.d == 2 + assert samples.shape == (16, 1) + + +def test_component_selection_at_cumulative_boundaries_preserves_order(): + components = [gaussian_component(1, -2.0), gaussian_component(1, 3.0)] + mixture = Mixture(DigitalNetB2(2, seed=7), components, [0.3, 0.7]) + just_above_boundary = np.nextafter(0.3, 1.0) + u = np.array( + [ + [0.0, 0.5], + [0.9, 0.5], + [0.3, 0.5], + [just_above_boundary, 0.5], + [0.1, 0.5], + [1.0, 0.5], + ] + ) + + samples = mixture._transform(u) + + np.testing.assert_allclose( + samples[:, 0], [-2.0, 3.0, -2.0, 3.0, -2.0, 3.0] + ) + + +def test_composed_component_applies_full_recursive_transform(): + inner = Kumaraswamy(DigitalNetB2(1, seed=19), a=2.0, b=3.0) + composed = Gaussian(inner, mean=-2.0, covariance=1.0) + direct = gaussian_component(1, 3.0) + mixture = Mixture(DigitalNetB2(2, seed=7), [composed, direct], [0.5, 0.5]) + u = np.array([[0.25, 0.2], [0.75, 0.8]]) + + samples = mixture._transform(u) + expected_composed = composed._transform(inner._transform(u[:1, 1:])) + expected_direct = direct._transform(u[1:, 1:]) + + np.testing.assert_allclose(samples[:1], expected_composed) + np.testing.assert_allclose(samples[1:], expected_direct) + assert not np.allclose(expected_composed, composed._transform(u[:1, 1:])) + + +def test_multiple_components(): + components = [ + gaussian_component(1, -4.0), + gaussian_component(1, 0.0), + gaussian_component(1, 5.0), + ] + mixture = Mixture(DigitalNetB2(2, seed=7), components, [0.2, 0.3, 0.5]) + u = np.array([[0.2, 0.5], [0.4, 0.5], [0.5, 0.5], [0.8, 0.5]]) + + samples = mixture._transform(u) + + np.testing.assert_allclose(samples[:, 0], [-4.0, 0.0, 0.0, 5.0]) + + +def test_heterogeneous_components_dispatch_transform_coordinates(): + gaussian = gaussian_component(1, -2.0) + wrapped = SciPyWrapper(DigitalNetB2(1, seed=19), uniform(loc=2.0, scale=3.0)) + mixture = Mixture(DigitalNetB2(2, seed=7), [gaussian, wrapped], [0.3, 0.7]) + u = np.array([[0.8, 0.2], [0.1, 0.7], [0.6, 0.9], [0.2, 0.4]]) + + expected = np.empty((4, 1)) + expected[[1, 3]] = gaussian._transform(u[[1, 3], 1:]) + expected[[0, 2]] = wrapped._transform(u[[0, 2], 1:]) + + np.testing.assert_allclose(mixture._transform(u), expected) + + +def test_range_is_coordinate_wise_bounding_box(): + components = [ + Uniform(DigitalNetB2(2, seed=17), lower_bound=[-3, 2], upper_bound=[1, 4]), + Uniform(DigitalNetB2(2, seed=19), lower_bound=[-1, -2], upper_bound=[5, 3]), + ] + mixture = Mixture(DigitalNetB2(3, seed=7), components, [0.3, 0.7]) + + np.testing.assert_array_equal(mixture.range, [[-3, 5], [-2, 4]]) + + +def test_range_expands_shared_component_bounds(): + components = [ + TransformOnlyMeasure(DigitalNetB2(2, seed=17)), + Uniform(DigitalNetB2(2, seed=19), lower_bound=[-2, 0.25], upper_bound=[-1, 2]), + ] + mixture = Mixture(DigitalNetB2(3, seed=7), components, [0.3, 0.7]) + + np.testing.assert_array_equal(mixture.range, [[-2, 1], [0, 2]]) + + +def test_malformed_custom_component_range_is_rejected(): + class MalformedRangeMeasure(TransformOnlyMeasure): + def __init__(self, sampler): + super(MalformedRangeMeasure, self).__init__(sampler) + self.range = np.zeros((3, 2)) + + component = MalformedRangeMeasure(DigitalNetB2(2, seed=17)) + + with pytest.raises(DimensionError, match="component range must have shape"): + Mixture(DigitalNetB2(3, seed=7), [component], [1.0]) + + +def test_one_component_mixture_is_valid(): + component = gaussian_component(1, 1.5) + mixture = Mixture(DigitalNetB2(2, seed=7), [component], [1.0]) + u = np.array([[0.0, 0.5], [0.4, 0.5], [1.0, 0.5]]) + + samples = mixture._transform(u) + + assert mixture(4).shape == (4, 1) + np.testing.assert_allclose(samples[:, 0], 1.5) + + +@pytest.mark.parametrize( + "probabilities", + [[0.0, 1.0], [-0.1, 1.1], [np.nan, np.nan], [np.inf, 0.5]], +) +def test_invalid_probabilities(probabilities): + components = [gaussian_component(1, 0.0), gaussian_component(1, 1.0)] + + with pytest.raises(ParameterError, match="positive and finite"): + Mixture(DigitalNetB2(2, seed=7), components, probabilities) + + +def test_probabilities_must_sum_to_one(): + components = [gaussian_component(1, 0.0), gaussian_component(1, 1.0)] + + with pytest.raises(ParameterError, match="sum to 1"): + Mixture(DigitalNetB2(2, seed=7), components, [0.2, 0.7]) + + +def test_probabilities_are_owned_and_read_only(): + probabilities = np.array([0.3, 0.7]) + components = [gaussian_component(1, -2.0), gaussian_component(1, 3.0)] + mixture = Mixture(DigitalNetB2(2, seed=7), components, probabilities) + np.testing.assert_array_equal(mixture.probabilities, [0.3, 0.7]) + + probabilities[:] = [0.8, 0.2] + + np.testing.assert_array_equal(mixture.probabilities, [0.3, 0.7]) + np.testing.assert_allclose(mixture._transform([[0.5, 0.5]]), [[3.0]]) + assert not mixture.probabilities.flags.writeable + with pytest.raises(ValueError, match="read-only"): + mixture.probabilities[0] = 0.8 + + +def test_number_of_probabilities_must_match_components(): + components = [gaussian_component(1, 0.0), gaussian_component(1, 1.0)] + + with pytest.raises(ParameterError, match="one probability per component"): + Mixture(DigitalNetB2(2, seed=7), components, [1.0]) + + +def test_requires_at_least_one_component(): + with pytest.raises(ParameterError, match="nonempty list of components"): + Mixture(DigitalNetB2(2, seed=7), [], []) + + +def test_components_must_be_true_measures(): + components = [gaussian_component(1, 0.0), object()] + + with pytest.raises(ParameterError, match="AbstractTrueMeasure"): + Mixture(DigitalNetB2(2, seed=7), components, [0.5, 0.5]) + + +def test_sampler_must_be_discrete_distribution(): + components = [gaussian_component(1, 0.0)] + + with pytest.raises(ParameterError, match="AbstractDiscreteDistribution"): + Mixture(object(), components, [1.0]) + + +def test_probabilities_must_be_numeric(): + components = [gaussian_component(1, 0.0), gaussian_component(1, 1.0)] + + with pytest.raises(ParameterError, match="numeric"): + Mixture(DigitalNetB2(2, seed=7), components, ["left", "right"]) + + +def test_probabilities_must_be_one_dimensional(): + components = [gaussian_component(1, 0.0), gaussian_component(1, 1.0)] + + with pytest.raises(ParameterError, match="one probability per component"): + Mixture(DigitalNetB2(2, seed=7), components, [[0.5, 0.5]]) + + +def test_component_dimensions_must_match(): + components = [gaussian_component(1, 0.0), gaussian_component(2, [0.0, 1.0])] + + with pytest.raises(DimensionError, match="same output dimension"): + Mixture(DigitalNetB2(2, seed=7), components, [0.5, 0.5]) + + +def test_sampler_dimension_must_be_component_dimension_plus_one(): + components = [gaussian_component(1, 0.0), gaussian_component(1, 1.0)] + + with pytest.raises(DimensionError, match="component dimension plus one"): + Mixture(DigitalNetB2(1, seed=7), components, [0.5, 0.5]) + + +def test_transform_input_dimension_is_validated(): + mixture = Mixture( + DigitalNetB2(2, seed=7), + [gaussian_component(1, 0.0)], + [1.0], + ) + + with pytest.raises(DimensionError, match="expected last axis 2"): + mixture._transform(np.zeros((3, 1))) + + +def test_weight_input_dimension_is_validated(): + mixture = Mixture( + DigitalNetB2(2, seed=7), + [gaussian_component(1, 0.0)], + [1.0], + ) + + with pytest.raises(DimensionError, match="expected last axis 1"): + mixture._weight(np.zeros((3, 2))) + + +def test_weight_is_weighted_sum_of_component_weights(): + components = [gaussian_component(1, -1.0), gaussian_component(1, 2.0)] + probabilities = np.array([0.3, 0.7]) + mixture = Mixture(DigitalNetB2(2, seed=7), components, probabilities) + x = np.array([[-2.0], [0.0], [1.5], [4.0]]) + + expected = sum( + probability * component._weight(x) + for probability, component in zip(probabilities, components) + ) + + np.testing.assert_allclose(mixture._weight(x), expected) + + +def test_public_sampling_with_return_weights(): + components = [gaussian_component(1, -1.0), gaussian_component(1, 2.0)] + mixture = Mixture(DigitalNetB2(2, seed=7), components, [0.3, 0.7]) + + samples, weights = mixture(16, return_weights=True) + + assert samples.shape == (16, 1) + assert weights.shape == (16,) + assert np.all(np.isfinite(samples)) + assert np.all(np.isfinite(weights)) + assert np.all(weights > 0) + np.testing.assert_allclose(weights, 1.0 / mixture._weight(samples)) + + +def test_weight_preserves_leading_axes(): + components = [gaussian_component(2, [-1.0, 0.0]), gaussian_component(2, [2.0, 1.0])] + probabilities = np.array([0.3, 0.7]) + mixture = Mixture(DigitalNetB2(3, seed=7), components, probabilities) + x = np.linspace(-2.0, 3.0, 12).reshape(2, 3, 2) + + expected = sum( + probability * component._weight(x) + for probability, component in zip(probabilities, components) + ) + weights = mixture._weight(x) + + assert weights.shape == (2, 3) + np.testing.assert_allclose(weights, expected) + + +def test_component_weight_failure_propagates(): + transform_only = TransformOnlyMeasure(DigitalNetB2(1, seed=23)) + mixture = Mixture( + DigitalNetB2(2, seed=7), + [gaussian_component(1, 0.0), transform_only], + [0.5, 0.5], + ) + + with pytest.raises(MethodImplementationError, match="TransformOnlyMeasure"): + mixture._weight(np.array([[0.5]])) + + +def test_spawn_replaces_outer_sampler_and_preserves_components(): + components = [gaussian_component(1, -2.0), gaussian_component(1, 3.0)] + mixture = Mixture(DigitalNetB2(2, seed=7), components, [0.3, 0.7]) + + spawned = mixture.spawn(s=2) + explicit_same_dimension = mixture.spawn(s=1, dimensions=[1])[0] + + for child in spawned + [explicit_same_dimension]: + assert isinstance(child, Mixture) + assert child.d == mixture.d == 1 + np.testing.assert_array_equal(child.probabilities, mixture.probabilities) + np.testing.assert_array_equal(child.range, mixture.range) + assert not child.probabilities.flags.writeable + assert child.discrete_distrib.d == 2 + assert child.discrete_distrib is not mixture.discrete_distrib + assert all( + child_component is parent_component + for child_component, parent_component in zip(child.components, components) + ) + assert child(4).shape == (4, 1) + + with pytest.raises(DimensionError, match="preserves the component dimension"): + mixture.spawn(s=1, dimensions=2) + + +def test_spawn_validates_count_and_dimensions_length(): + mixture = Mixture( + DigitalNetB2(2, seed=7), + [gaussian_component(1, 0.0)], + [1.0], + ) + + with pytest.raises(ParameterError, match="s>0"): + mixture.spawn(s=0) + with pytest.raises(ParameterError, match="length s"): + mixture.spawn(s=2, dimensions=[1]) + + +def test_replicated_sampler_shape_and_selection(): + components = [gaussian_component(1, -2.0), gaussian_component(1, 3.0)] + mixture = Mixture( + DigitalNetB2(2, seed=7, replications=3), components, [0.3, 0.7] + ) + + samples = mixture(8) + manual_u = np.array( + [ + [[0.1, 0.5], [0.9, 0.5]], + [[0.3, 0.5], [np.nextafter(0.3, 1.0), 0.5]], + ] + ) + manual_samples = mixture._transform(manual_u) + + assert samples.shape == (3, 8, 1) + assert manual_samples.shape == (2, 2, 1) + np.testing.assert_allclose(manual_samples[..., 0], [[-2.0, 3.0], [-2.0, 3.0]])