Created
March 19, 2020 02:17
-
-
Save tomkreker/f930dc8f8cbe9edc157840423a10b0b3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": 32, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "expected wait time for exponential: 0.5833951063937257\n", | |
| "expected wait time for uniform: 1.9955756758058811\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "#first exercise\n", | |
| "\n", | |
| "import scipy\n", | |
| "from scipy.stats import expon\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "import numpy as np\n", | |
| "\n", | |
| "#parameters\n", | |
| "lambda_ = 2\n", | |
| "beta = 1/lambda_\n", | |
| "\n", | |
| "n=10000\n", | |
| "wait_time_exp = 0 #accumulate exp samples\n", | |
| "wait_time_u = 0 #accumulate uniform samples\n", | |
| "for i in range(n):\n", | |
| " wait_time += scipy.random.exponential(beta) #sample from exp(lambda)\n", | |
| " wait_time_u += np.random.uniform(low=0,high=2*lambda_) #sample from uniform(0,2*lambda)\n", | |
| "print('expected wait time for exponential: {}'.format(wait_time/n))\n", | |
| "print('expected wait time for uniform: {}'.format(wait_time_u/n))\n", | |
| "\n", | |
| "#x=np.linspace(0,5,50)\n", | |
| "#plt.plot(x,expon.pdf(x,scale=beta))\n", | |
| "#plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 33, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "data = {\n", | |
| " 50: 0.00832,\n", | |
| " 51: 0.00911,\n", | |
| " 52: 0.00996,\n", | |
| " 53: 0.01089,\n", | |
| " 54: 0.01190,\n", | |
| " 55: 0.01300,\n", | |
| " 56: 0.01421,\n", | |
| " 57: 0.01554,\n", | |
| " 58: 0.01700,\n", | |
| " 59: 0.01859,\n", | |
| " 60: 0.02034,\n", | |
| " 61: 0.02224,\n", | |
| " 62: 0.02431,\n", | |
| " 63: 0.02657,\n", | |
| " 64: 0.02904,\n", | |
| " 65: 0.03175,\n", | |
| " 66: 0.03474,\n", | |
| " 67: 0.03804,\n", | |
| " 68: 0.04168,\n", | |
| " 69: 0.04561,\n", | |
| " 70: 0.04979,\n", | |
| " 71: 0.05415,\n", | |
| " 72: 0.05865,\n", | |
| " 73: 0.06326,\n", | |
| " 74: 0.06812,\n", | |
| " 75: 0.07337,\n", | |
| " 76: 0.07918,\n", | |
| " 77: 0.08570,\n", | |
| " 78: 0.09306,\n", | |
| " 79: 0.10119,\n", | |
| " 80: 0.10998,\n", | |
| " 81: 0.11935,\n", | |
| " 82: 0.12917,\n", | |
| " 83: 0.13938,\n", | |
| " 84: 0.15001,\n", | |
| " 85: 0.16114,\n", | |
| " 86: 0.17282,\n", | |
| " 87: 0.18513,\n", | |
| " 88: 0.19825,\n", | |
| " 89: 0.21246,\n", | |
| " 90: 0.22814,\n", | |
| " 91: 0.24577,\n", | |
| " 92: 0.26593,\n", | |
| " 93: 0.28930,\n", | |
| " 94: 0.31666,\n", | |
| " 95: 0.35124,\n", | |
| " 96: 0.40056,\n", | |
| " 97: 0.48842,\n", | |
| " 98: 0.66815,\n", | |
| " 99: 0.72000,\n", | |
| " 100: 0.76000,\n", | |
| " 101: 0.80000,\n", | |
| " 102: 0.85000,\n", | |
| " 103: 0.90000,\n", | |
| " 104: 0.96000,\n", | |
| " 105: 1.00000}" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 44, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x218dd4669e8>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "#second exercise\n", | |
| "\n", | |
| "results = []\n", | |
| "num_sims = 1000\n", | |
| "\n", | |
| "for i in range(num_sims):\n", | |
| " money=150000\n", | |
| " alive=True\n", | |
| " age=50\n", | |
| " while alive:\n", | |
| " money+=10000 #yearly investment\n", | |
| " interest = np.random.normal(0.08,0.09)\n", | |
| " money+=money*interest\n", | |
| " #print(interest,money)\n", | |
| " if np.random.random() < data[age]:\n", | |
| " alive=False\n", | |
| " else:\n", | |
| " age+=1\n", | |
| " results.append(money)\n", | |
| " \n", | |
| "plt.hist(results,bins=20)\n", | |
| "#plt.ticklabel_format(style = 'plain')\n", | |
| "plt.xticks(rotation=45)\n", | |
| "plt.show()" | |
| ] | |
| } | |
| ], | |
| "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.6.8" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 2 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment