Skip to content

Instantly share code, notes, and snippets.

@spolakh
Created March 16, 2015 20:17
Show Gist options
  • Save spolakh/dba63af6d7442be11cdc to your computer and use it in GitHub Desktop.
Save spolakh/dba63af6d7442be11cdc to your computer and use it in GitHub Desktop.
{"metadata": {"kernelspec": {"display_name": "Python 3", "name": "python3", "language": "python"}, "language_info": {"file_extension": ".py", "nbconvert_exporter": "python", "codemirror_mode": {"name": "ipython", "version": 3}, "name": "python", "pygments_lexer": "ipython3", "mimetype": "text/x-python", "version": "3.4.3"}}, "cells": [{"metadata": {"trusted": true, "collapsed": false}, "cell_type": "code", "source": "%pylab inline\nimport numpy as np\nfrom functools import reduce\nimport scipy.stats as st\nSAMPLE_SIZE = 100\nBS_SIZE = 5000\nMU = 5", "outputs": [{"text": "Populating the interactive namespace from numpy and matplotlib\n", "name": "stdout", "output_type": "stream"}], "execution_count": 151}, {"metadata": {}, "cell_type": "markdown", "source": "#\u21163\n\u041f\u0443\u043d\u043a\u0442 \u0430): \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u043c \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0434\u043e\u0432\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0443\u0442\u0441\u0442\u0440\u0435\u043f\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0434\u0435\u043b\u044c\u0442\u0430-\u043c\u0435\u0442\u043e\u0434\u0430(se \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0437\u043d\u0430\u043d\u0438\u044f \u043e \u0442\u043e\u043c, \u0447\u0442\u043e se \u043e\u043c\u043f \u043e\u0446\u0435\u043d\u043a\u0438 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u0434\u043b\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0432\u043d\u043e $(sigma**2)/n$):"}, {"metadata": {"trusted": true, "collapsed": true}, "cell_type": "code", "source": "samples = np.random.normal(MU, 1, size=SAMPLE_SIZE)", "outputs": [], "execution_count": 174}, {"metadata": {"trusted": true, "collapsed": false}, "cell_type": "code", "source": "def estimate_theta(samples):\n return np.exp(sum(samples) / len(samples))\n\ndef estimate_mu(samples):\n return sum(samples) / len(samples)\n\ndef estimate_sigma(samples):\n mu_est = estimate_mu(samples)\n return np.sqrt(reduce(lambda x, y: x + (y-mu_est)**2, samples) / len(samples))\n\ndef estimate_sigma_bsparam(samples):\n mu_est = estimate_mu(samples)\n bs = [estimate_theta(np.random.normal(mu_est, 1, size=SAMPLE_SIZE)) for _ in range(BS_SIZE)]\n return estimate_sigma(bs)\n\ndef estimate_sigma_bsnonparam(samples):\n bs = [estimate_theta(np.random.choice(samples, size=SAMPLE_SIZE)) for _ in range(BS_SIZE)]\n return estimate_sigma(bs)\n\ntheta = estimate_theta(samples)\nsigma_param, sigma_nonparam = np.sqrt(estimate_sigma_bsparam(samples)), np.sqrt(estimate_sigma_bsnonparam(samples))\nsigma_delta = np.sqrt((theta**2) / SAMPLE_SIZE)\nz = st.norm.ppf(0.05/2)\n\nprint((theta + sigma_param*z, theta - sigma_param*z))\nprint((theta + sigma_nonparam*z, theta - sigma_nonparam*z))\nprint((theta + sigma_delta*z, theta - sigma_delta*z))\nprint(np.exp(5))", "outputs": [{"text": "(150.65524019997767, 166.16922493984859)\n(151.32246771974445, 165.50199742008181)\n(127.36400551515186, 189.4604596246744)\n148.413159103\n", "name": "stdout", "output_type": "stream"}], "execution_count": 175}, {"metadata": {}, "cell_type": "markdown", "source": "*\u0414\u0430, \u043d\u0430 \u0441\u043e\u0442\u043d\u0435 \u0441\u044d\u043c\u043f\u043b\u043e\u0432 \u0447\u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439, \u0447\u0442\u043e \u043d\u0435\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0431\u0443\u0442\u0441\u0442\u0440\u0435\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438\u0437 \u0440\u0443\u043a \u0432\u043e\u043d \u043f\u043b\u043e\u0445\u043e. \u0421 \u0434\u0435\u043b\u044c\u0442\u0430-\u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0432\u0441\u0451 \u0442\u043e\u0436\u0435 **\u043d\u0435\u0433\u043b\u0430\u0434\u043a\u043e**.*"}, {"metadata": {}, "cell_type": "markdown", "source": "\u041f\u0443\u043d\u043a\u0442 \u0431): \u043e\u0446\u0435\u043d\u0438\u043c \u043f\u043b\u043e\u0442\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c"}, {"metadata": {"trusted": true, "collapsed": false}, "cell_type": "code", "source": "samples = np.random.normal(MU, 1, size=SAMPLE_SIZE)\n\nmu_est = estimate_mu(samples)\ntheta_est = estimate_theta(samples)\nbsparam_samples = [estimate_theta(np.random.normal(mu_est, 1, size=SAMPLE_SIZE)) for _ in range(BS_SIZE)]\nbsnonparam_samples = [estimate_theta(np.random.choice(samples, size=SAMPLE_SIZE)) for _ in range(BS_SIZE)]\nmtcarlo_samples = [estimate_theta(np.random.normal(MU, 1, size=SAMPLE_SIZE)) for _ in range(BS_SIZE)]\ndelta_samples = np.random.normal(theta_est, np.sqrt((theta**2)/SAMPLE_SIZE), size=BS_SIZE)\n\n\n\nfigure(figsize=(15,6))\n\nplt.subplot(131)\n_, bins, patches_mntcarlo = hist(mtcarlo_samples, alpha=0.3)\n_, _, patches_param = hist(bsparam_samples, bins=bins, alpha=0.3)\nlegend([patches_param[0], patches_mntcarlo[0]], ['bs-param', 'monte-carlo'])\n\nplt.subplot(132)\n_, bins, patches_mntcarlo = hist(mtcarlo_samples, alpha=0.3)\n_, _, patches_nonparam = hist(bsnonparam_samples, bins=bins, alpha=0.3)\nlegend([patches_nonparam[0], patches_mntcarlo[0]], ['bs-nonparam', 'monte-carlo'])\n\nplt.subplot(133)\n_, bins, patches_mntcarlo = hist(mtcarlo_samples, alpha=0.3)\n_, _, patches_delta = hist(delta_samples, bins=bins, alpha=0.3)\nlegend([patches_delta[0], patches_mntcarlo[0]], ['delta', 'monte-carlo'])", "outputs": [{"metadata": {}, "output_type": "execute_result", "data": {"text/plain": "<matplotlib.legend.Legend at 0x7f4e0e429710>"}, "execution_count": 181}, {"metadata": {}, "output_type": "display_data", "data": {"text/plain": "<matplotlib.figure.Figure at 0x7f4e0e5485c0>", "image/png": "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\nGicvI6URcbdMSZIkSeoAmztJkiRJ6gCbO0mSJEnqAJs7SZIkSeoAmztJkiRJ6gCbO0mSJEnqAJs7\nSZIkSeoAmztJkiRJ6gCbO0mSJEnqAJs7SZIkSeoAmztJkiRJ6gCbO0mSJEnqAJs7SZIkSeoAmztJ\nkiRJ6oChm7skr0vy5SQ3JrksyaOTHJlkU5Kbk1yT5PC+5c9LckuSm5Kc1k75krQns0nStDKfJI3a\nUM1dktXAq4FnVNXTgP2AXwHeBGyqqpOATzTTJDkZOBs4GVgPXJjEbw0ltcpskjStzCdJ47CYkFgB\nHJxkBXAwsA04A7ikuf8S4Kzm9pnA5VW1q6puA24FnrmIbUvSfMwmSdPKfJI0UkM1d1W1FXgrcAe9\nYPpOVW0CVlbV9max7cDK5vYqYEvfEFuA1UNVLEnzMJskTSvzSdI4rBhmpSRH0Puk6Xjgu8BfJ3lp\n/zJVVUlqwDBz3pdkQ9/kTFXNDFOjpMlIsg5YN6Ftm02S5jTJbGq2bz5JmlOb+TRUcwc8D/hGVe1o\nCvow8GzgriSPr6q7khwDfLNZfitwbN/6a5p5j1BVG4asSdIUaN5UzOyeTnL+GDdvNkma04SzCcwn\nSfNoM5+GPebuduBZSQ5KEnqBtRn4GPCKZplXAFc2t68CfiXJAUlOAE4Erh+2aEmah9kkaVqZT5JG\nbqhv7qrq+iQfBP4BeKD5978BhwJXJHkVcBvwomb5zUmuoBdiDwDnVtWg3Q4kacHMJknTynySNA7D\n7pa5exeADbNmf5veJ1FzLb8R2Djs9iRpX5hNkqaV+SRp1LxeiiRJkiR1gM2dJEmSJHWAzZ0kSZIk\ndYDNnSRJkiR1gM2dJEmSJHWAzZ0kSZIkdYDNnSRJkiR1gM2dJEmSJHWAzZ0kSZIkdYDNnSRJkiR1\ngM2dJEmSJHXAikkXIEmSJKmj7mNtTkh74+3k3tpRl7U3YLfY3EkLYUBJkiTtu4M4kHPY1tp4F7Oq\ntbE6yOZOWggDSpIkSVPKY+4kSZIkqQNs7iRJkiSpA2zuJEmSJKkDbO4kSZIkqQNs7iRJkiSpA2zu\nJEmSJKkDbO4kSZIkqQO8zp0kSV1wH2tzQtoZayf31o66rJ3BJEnjYnMnSVIXHMSBnMO2Vsa6mFWt\njCNJGit3y5QkSZKkDrC5kyRJkqQOsLmTJEmSpA6wuZMkSZKkDrC5kyRJkqQOsLmTJEmSpA6wuZMk\n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\n298DvgqsBs4ALmkWuwQ4q7l9JnB5Ve2qqtuAW4FnLqJuSZqT+SRpGplNksZh0Z8AJTkeeDrwWWBl\nVW1v7toOrGxurwK29K22hV6gSdLImE+SppHZJGlUFtXcJTkE+BDw2qq6t/++qiqgBqw+6D5JWhTz\nSdI0MpskjdKKYVdMsj+9cLq0qq5sZm9P8viquivJMcA3m/lbgWP7Vl/TzJtr3A19kzNVNTNsjZLG\nL8k6YN2Ea2g9n8wmaWnrajY1427omzSfpCWmzXwaqrlLEuDdwOaq+tO+u64CXgG8pfn3yr75lyW5\ngN4uBScC1881dlVtGKYmSdOheVMxs3s6yfnj3P6o8slskpa2rmYTmE/SUtdmPg37zd2/Al4K/GOS\nLzTzzgPeDFyR5FXAbcCLAKpqc5IrgM3AA8C5za4HktQ280nSNDKbJI3cUM1dVf1P5j9e73nzrLMR\n2DjM9iRpX5lPkqaR2SRpHLxeiiRJkiR1gM2dJEmSJHWAzZ0kSZIkdYDNnSRJkiR1wNDXuZOWpQc5\nimuPW9/aePdvOw52tTacpGWszXwymyS1xfdOY2VzJy3Iiv046PQd7Y136f4GlKR2tJlPZpOktvje\naZzcLVOSJEmSOsDmTpIkSZI6wOZOkiRJkjrA5k6SJEmSOsDmTpIkSZI6wOZOkiRJkjrA5k6SJEmS\nOsDmTpIkSZI6wOZOkiRJkjrA5k6SJEmSOmDFpAuQ1KL7WJsT0s5YO7m3dtRl7QwmaVlrM5vAfJKk\nedjcSV1yEAdyDttaGetiVrUyjiS1mU1gPmnfHHzzWg4540etjffgzqNaG0saEZs7SZIkdc/BDxzI\n2tXtfajw+dqvtbGkEfGYO0mSJEnqAL+5WyrctUDSNDKbJEmaGjZ3I5Kc9BJYc2hrAx7+0D9j7epP\ntTaeuxZIy1ar+WQ2SWpJ+++dHnUc8PXWxpOWAJu7kVlzKHyyvf28OW7/9saStLy1mU9mk6S2+N5J\nWiyPuZMkSZKkDrC5kyRJkqQOsLmTJEmSpA6wuZMkSZKkDvCEKpIkSZKWp/tYmxPSzlg7ubd21GXt\nDDYcmztpkh7kKK49bn1r492/7TjY1dpwkpYps0nStGo7n/bb9s84Z9dHWxnrYla1Ms4i2NxJE7Vi\nPw46fUd74126v2+gJC2e2SRpWplPg3jMnSRJkiR1gM2dJEmSJHWAzZ0kSZIkdcBYm7sk65PclOSW\n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\ngg==\n"}}], "execution_count": 181}, {"metadata": {}, "cell_type": "markdown", "source": "\u041d\u0443, \u0435\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0437 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043b\u0443\u0447\u0448\u0435 -- \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438 \u043d\u0435\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0431\u0443\u0442\u0441\u0442\u0440\u0435\u043f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043f\u043e\u0447\u0442\u0438 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e, \u0430 \u0434\u0435\u043b\u044c\u0442\u0430-\u043c\u0435\u0442\u043e\u0434 \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b."}], "nbformat": 4, "nbformat_minor": 0}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment