From 9d42a6d3596647de0ddacd87f3b37045c221b6ca Mon Sep 17 00:00:00 2001 From: Kees van Kempen Date: Mon, 19 Sep 2022 11:40:45 +0200 Subject: [PATCH] 02: Solve Pareto distribution things --- Exercise sheet 2/exercise_sheet_02.ipynb | 55 ++++++++++++++++++++---- 1 file changed, 47 insertions(+), 8 deletions(-) diff --git a/Exercise sheet 2/exercise_sheet_02.ipynb b/Exercise sheet 2/exercise_sheet_02.ipynb index 4303896..6e295c7 100644 --- a/Exercise sheet 2/exercise_sheet_02.ipynb +++ b/Exercise sheet 2/exercise_sheet_02.ipynb @@ -220,6 +220,7 @@ "\n", "f_X = lambda x, lam: lam*np.exp(-lam*x) if x >= 0 else 0\n", "\n", + "# Input parameters as list for flexibility in testing.\n", "for lam in [1.5]:\n", " pdf = lambda x: f_X(x, lam)\n", " samples = [inversion_sample(lambda p: f_inv_exponential(lam, p)) for _ in range(100000)]\n", @@ -291,12 +292,32 @@ } }, "source": [ - "YOUR ANSWER HERE" + "$$\n", + "f_X(x) = \\alpha b^{\\alpha} x^{-\\alpha-1}\n", + "\\\\\n", + "\\implies F_X(x) = \\int_{-\\infty}^x f_X(t)dt\n", + " = \\int_{b}^x \\alpha{}b^\\alpha{}t^{-\\alpha-1}dt\n", + " = \\alpha{}b^\\alpha{} \\int_{b}^x t^{-\\alpha-1}dt\n", + " = \\alpha{}b^\\alpha{} \\left[ \\frac{-t^{-\\alpha}}{\\alpha} \\right]_{t = b}^x\n", + " = b^\\alpha (b^{-\\alpha} - x^{-\\alpha}) = 1 - b^\\alpha x^{-\\alpha} = p,\n", + "$$\n", + "for $x > b$, otherwise $F_X(x) = 0$.\n", + "\n", + "To find $F_X^{-1}(p)$, we write $p$ as function of $x$.\n", + "\n", + "$$\n", + "p = 1 - b^\\alpha x^{-\\alpha}\n", + "\\iff b^\\alpha x^{-\\alpha} = 1 - p\n", + "\\iff x^{-\\alpha} - b^{-\\alpha}(1-p)\n", + "\\iff x = \\frac{b}{(1-p)^{1/\\alpha}}\n", + "$$\n", + "\n", + "Thus, $F_X^{-1}(p) = \\frac{b}{(1-p)^{1/\\alpha}}$ for $p \\in [0, 1]$." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "e177f32d", "metadata": { "deletable": false, @@ -311,21 +332,39 @@ "task": false } }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "### Solution\n", "def f_inv_pareto(alpha,b,p):\n", - " # YOUR CODE HERE\n", - " raise NotImplementedError()\n", + " return b/(1-p)**(1/alpha)\n", "\n", "# plotting\n", - "# YOUR CODE HERE\n", - "raise NotImplementedError()" + "f_X = lambda alpha, b, x: alpha*b**alpha*x**(-alpha-1) if x >= b else 0\n", + "\n", + "# Input parameters as list for flexibility in testing.\n", + "for params in [(3., 1.)]:\n", + " alpha, b = params\n", + " pdf = lambda x: f_X(alpha, b, x)\n", + " samples = [inversion_sample(lambda p: f_inv_pareto(alpha, b, p)) for _ in range(100000)]\n", + " compare_plot(samples, pdf, b-1, 4, 30)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "c0e1426f", "metadata": { "deletable": false,