Skip to content

Instantly share code, notes, and snippets.

@tok41
Created June 4, 2021 13:15
Show Gist options
  • Save tok41/c0868e75431588bbf1f61bc7d49ee2cd to your computer and use it in GitHub Desktop.
Save tok41/c0868e75431588bbf1f61bc7d49ee2cd to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "cf64a3fe-4a1b-4359-9879-278c78e56f02",
"metadata": {},
"source": [
"# About\n",
"\n",
"- 切断指数分布からサンプルを取得する\n",
"- 逆関数法を利用"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "38fa323d-f8be-4185-8b3a-fbaefde5d78b",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"from scipy import stats"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "250b76e8-210b-487c-9d3a-e251217ead89",
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"sns.set()\n",
"c_list = sns.color_palette().as_hex()\n",
"color_num = len(c_list)"
]
},
{
"cell_type": "markdown",
"id": "6d3fc6e1-89b1-4c47-981c-15e7a6a8cf06",
"metadata": {},
"source": [
"# 指数分布に従う乱数の生成\n"
]
},
{
"cell_type": "markdown",
"id": "65d38be2-a163-4639-9c36-5c229a57c0f8",
"metadata": {},
"source": [
"## `scipy`の利用"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "7bd5e73b-69d7-4547-a420-192841e46bcc",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x216 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mu = 0.5\n",
"samples_exp = stats.expon(scale=1./mu).rvs(size=10000)\n",
"\n",
"fig = plt.figure(figsize=(6,3))\n",
"ax = fig.subplots(1,1)\n",
"\n",
"bins = np.linspace(0, samples_exp.max(), 50)\n",
"_ = ax.hist(samples_exp, bins=bins, density=True)"
]
},
{
"cell_type": "markdown",
"id": "f3529614-d344-4278-ad3d-e055e3a2c953",
"metadata": {},
"source": [
"## 逆関数法を使って指数分布に従う乱数の生成"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "fff5c6f2-9582-446d-a509-6a204292a597",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x216 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ran = stats.uniform.rvs(size=10000)\n",
"sample_exp_f = -1./mu * np.log( 1.0 - ran )\n",
"\n",
"fig = plt.figure(figsize=(6,3))\n",
"ax = fig.subplots(1,1)\n",
"_ = ax.hist(sample_exp_f, bins=bins, density=True)"
]
},
{
"cell_type": "markdown",
"id": "766c5834-aca5-49ca-a2b2-239bddaf87d9",
"metadata": {},
"source": [
"## 切断指数分布に従う乱数の生成"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "cb939d08-6f26-42ee-bf3a-503e65512816",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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uEOcOnUq65iuri7xwx/+UAghRCQSEbfddpuYnp4uRbyMHn30UdHZ2Zm2/cknnxSPP/54SbO8+eab4syZM2nvo5G5KkRp52umrEbnqhClm69zvadG5qoQpZuvc+X8pLnmqhClm6+mWKK5fEZLTdMAXDqjZTgcRiKRSBk31xktS6m2thZf+9rXkve/8pWvpJzCwWz++Mc/Jg9Ya2howI033ohXX311UbJcvHgRAwMD+Na3vrUor/9pt9xyS9opO4zOVaC08zVT1nKcq5ly5qNU8zVXznKZq6Yo+Gg0CofDAUVRAACKosButyMajaaNq6+vT953Op344IMPSpr1k2ZnZ/H73/8ed955Z8afHzhwAG63G9u2bcPIyEiJ013y8MMPw+12o6OjA+fOnUv7+ZkzZ/C5z30ueX8x39OXX34ZDocj5Symn3TkyBG43W5s2bIFJ06cKHG6S4zO1ctjy2W+5pqrwOLP11xzFSif+ZprrgKlma+mKHiz2rt3Lz7zmc9g8+bNaT/buXMnXnjhBQwMDKClpQVbt25NntCtVH73u9/hD3/4Aw4dOgQhBPbs2VPS18/XoUOH5twjuueee/DSSy9hYGAA999/P7Zt24azZ8+WOKF5ZZurwOLPV5nmKlC6+WqKgjfjGS2DwSD+9a9/4ec//zkslvS32eFwJLevX78e58+fL/mexuX3r6qqCj6fD3/729/SxtTX1+P06dPJ+4v1nsZiMbz55ptwu90Zf26z2VBZWQkAuP322+F0OvHee++VMiIA43P18thymK+55iqw+PPVyFwFymO+5pqrQOnmqykK3mxntNy3bx/eeustPPXUU6iqqso4JhaLJW8fO3YMFosFDoejVBFx/vx5TE1NAQCEEBgcHISqqmnj1qxZg4MHDwIARkdHMTw8nPHbC8X23HPP4Rvf+EbyWxyf9sn385133sHp06dx7bXXlipektG5CpTHfDUyV4HFna9G5ypQHvM111wFSjhfi/4xboH84x//EBs3bhQtLS1i48aNYmRkRAghxNatW8XJkyeFEEJ8/PHHwu/3i+bmZtHc3CyeffbZkuf8+9//LlasWCFaWlrEunXrxLp168S2bduEEEKsW7dOfPDBB0IIIb773e8KTdOE2+0W9957rzhx4kRJc46NjQmPxyM0TRNr164V27dvF7FYLC3nhx9+KLZv3y5Wr14tWlpaxAsvvFDSnJe1tLSIP//5zynbPvm3f+SRR8Tdd98t3G632LBhg3jllVeKnmnv3r2iqalJqKoqbrvtNrF27VohxNxz9dOZSzlfM2XNNleFWJz5milntrn66Zylmq9z/e2FyDxXhVic+cqzSRIRScoUSzRERJQ/FjwRkaRY8EREkmLBExFJigVPRCQpFjwRkaRY8EREkvo/jAHhaMN0piIAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x216 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"L = 3\n",
"ran = stats.uniform.rvs(size=10000)\n",
"samples_t_exp = -1.0/mu * np.log( 1.0 - ran*(1.-np.exp(-1*mu*(L))) )\n",
"\n",
"fig = plt.figure(figsize=(6,3))\n",
"ax = fig.subplots(1,1)\n",
"\n",
"_ = ax.hist(samples_t_exp, bins=bins, density=True)"
]
},
{
"cell_type": "markdown",
"id": "ab4ce94a-9b5b-48cf-a5ff-12da4886e1cc",
"metadata": {},
"source": [
"## 比較"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "104dc9ab-058b-4016-9ced-4f9940a0e78e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0xffff7abb77c0>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x216 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure(figsize=(6,3))\n",
"ax = fig.subplots(1,1)\n",
"\n",
"_ = ax.hist(samples_exp, bins=bins, alpha=0.5, density=True, label=\"using scipy\")\n",
"_ = ax.hist(sample_exp_f, bins=bins, alpha=0.5, density=True, label=\"inversion_method Exp(x)\")\n",
"_ = ax.hist(samples_t_exp, bins=bins, alpha=0.5, density=True, label=\"truncated Exp\")\n",
"_, _, ymin, ymax = ax.axis()\n",
"_ = ax.vlines(x=L, ymin=ymin, ymax=ymax, colors=\"red\")\n",
"ax.legend()"
]
},
{
"cell_type": "markdown",
"id": "d31d5edf-6d9c-4ce0-8274-b1ee80b9392b",
"metadata": {},
"source": [
"# 切断正規分布ならScipyに実装されている\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "9b48220d-d80c-4b1e-a1a0-e271be03f5b2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0xffff78992df0>]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x216 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"xs = np.linspace(-3, 3, 100)\n",
"pdf_trunc_norm = stats.truncnorm(a=-1, b=1, loc=0, scale=1).pdf(x=xs)\n",
"pdf_norm = stats.norm(loc=0, scale=1).pdf(x=xs)\n",
"\n",
"fig = plt.figure(figsize=(6,3))\n",
"ax = fig.subplots(1,1)\n",
"ax.plot(xs, pdf_trunc_norm, label=\"truncated norm\")\n",
"ax.plot(xs, pdf_norm, label=\"norm\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6eeb549f-4f9f-436c-a253-6429491d947d",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"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.9.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment