{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 母平均の比較値との差のz検定\n", "- sympyとscipyで試してみる\n", "- statsmodels\n", "- R" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import numpy as np\n", "import pandas as pd\n", "from scipy import stats\n", "import matplotlib.pyplot as plt\n", "import statsmodels.api as sm\n", "import seaborn as sns\n", "import sympy\n", "from sympy import symbols, Symbol, Rational" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.5.2 |Anaconda custom (x86_64)| (default, Jul 2 2016, 17:52:12) \n", "[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)]\n" ] } ], "source": [ "import sys\n", "print(sys.version)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%load_ext rpy2.ipython" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'2.8.5'" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import rpy2\n", "rpy2.__version__" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "R version 3.4.0 (2017-04-21) -- \"You Stupid Darkness\"\r\n", "Copyright (C) 2017 The R Foundation for Statistical Computing\r\n", "Platform: x86_64-apple-darwin15.6.0 (64-bit)\r\n", "\r\n", "R is free software and comes with ABSOLUTELY NO WARRANTY.\r\n", "You are welcome to redistribute it under the terms of the\r\n", "GNU General Public License versions 2 or 3.\r\n", "For more information about these matters see\r\n", "http://www.gnu.org/licenses/.\r\n", "\r\n" ] } ], "source": [ "!R --version" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [], "source": [ "sympy.init_printing()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### データ準備" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUIAAAAUBAMAAAAKIynxAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nMqvFy5UvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEvklEQVRIDc1WTWhcVRT+3iSTmcx7M3lSW5Au\n+pBCCBWNZqNSbHRTqTEd0FnY1BDxh4LQzKIlC9E8BAVRTKIiaah0FhpxlZA6FpnavEXaUpRmNq4q\nzrQQtaKkP2Oa1tjxu+fMxDeNu2TRAzkn75z7fefj3HvfG8DycPdaxKW2TcDpme9EpMSthUdVcfJg\nX6EAZyifg9O3owjYJ7jsdOEiQhVJWoXjPnD2jX0KDHkFggSnXHXKIkuknbjdwY8+rExXEUKl/LLm\nIv2TwNM4Y7RKtNIY8YD3AkSq1eptRIHf0Ow7L8HZg+fhfIT73FBFkpsRvwakkfJJ0mACZOacZ42p\nEwDiR5mUtuKOVf8GzsO+BaFSfqMBc0Akjcgo7G4iJMaW0TbgLCwGiFJ1GW8D96ID+BpNaXQhNYpU\nOlSR5LCPJcQ9WIalwQTIzGVgQZ0Azvev1Npp72d+Za8/gCMQKuEXDbCzaHHRVEacCI2JCcx3A8MB\nbO5rEceBM3gCGAmmzJzbumFfCVUk+VXOqcDuhDPAFQ0mQGYqwKw6ASDGftJWe5cN6FNgsahU0tlo\ngDOKLexaRmKZS+rR7LKpAl8CUzsxg9uM/mMmM9+J2D+hiiRhdjlxPbA9syRsAmSf62T8ybiiAoxC\naac9ywazN6BCoeIDO6uGPTjMrmkkbjBTi87r9So6gVR1h+f8RYXZyoXDObRyhrdYr1UgSY55mgO4\nNsNCgymQqU84w5w4BRiF0k57Xmp/UXCDgVIJvyrM4xFg2zSSPKm1aH2zn//LDGUms5XAYrV0suJh\nnFuMZt6KesWRJLa+Smq72kNggwmQ4rnF2OsZ94ACjEJpq713YluOqxLsI1TKLxq24wCXpmsKa/Fb\nrpbqPFHx3wcnLM6wdLIa4IUAu/E+T0S94mgS9gTw4eRN0yZsAjQKm7PxWd+4DxQgCk27eu+mAa5q\nKdMZKuFXDe+Cz3fsMlqP1hQe4toHEbv5AxVOZZeAh3KIDF3gOaxXAk3yFgaRMoYJbLDVXUb7m7NF\ncQq4Y5eB6FUCMwI+Eii/KiwZhTyt8dpNiS9bvNt8kBm+TMQYx+fzwI/4r1Chx0xqBVitSPIeYJff\n6iJpWBpMgJpZDBgXA2UxCqWtuJQe7lgaECrlryvkLjd1IkKExraVVYUO+Z0rlOR1UVzAdxpnyB0r\n47+KJLlzu3yz8Zf412AC1EyvCb3mpUgWo1DaiuP1izLxDixXqIS/NqVJc1P41ox2Ey6xtRMtnLiZ\nYZKba2bY5HaAn5MSzyEiYyhxWKsVSX4MDLqcIR4moMEEyEyHm7yqTgCiUNqJ43erpRvJNGKuUCm/\nznA78sQfwLki37kSIx5GsqowbnR8HqAdLb7zGVLTzjhiPc5TvD6rFUnej/gNJHoQyRqWsAmQX4BD\nwZynTgCiUNqJ45e2w8WWQv4XCJXyq8I+TJLw+6E/gYO1+EXmcaD/WC8/YuOsJRfyOTgn3ioC+X7j\nMjmEKpJMZJ5j8ue+fcBrAcImQF5RO8OaOAFEL1d4IKStuM2n9vNNVK0uQamks2jAs+art5EW31g6\nWAPml8NGGj/ZG2r85bD2dK+rw9l1odeC55jatDa9joy3Duz/Qc3bwfLo7laLuPgXSg8ahS6cYqEA\nAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( 0.0317806978638, \\quad 0.99610052371\\right )$$" ], "text/plain": [ "(0.0317806978638, 0.99610052371)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.random.seed(0)\n", "mean = 1183000\n", "std = 101000\n", "size = 250\n", "other_mean = 1150000\n", "x = np.random.normal(size=size)\n", "x.mean(), x.std()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "平均と標準偏差を調整する" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANAAAAAUBAMAAAAO867lAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nqzLsm4+cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACkUlEQVRIDbVVz2sTQRh9u7HtZndtAoIXD91D\nL+LBVC8iCPEmUmUPejEW4kUEEXIRDyrNSfBQ0nMJ2ou5mhariCB7UIuIJBY8eLH5BySoFSNW9Pvm\nx87u0tIG6Qd533wz783LzM7sAlaAPQ+7SBYHkjarty8Bh16cAPzKkV4CmPR6+WWSa9qCK0qjitlC\n9YFGT9PvfqQgxP66FaIRYF/dv5IAGscZvOF/lg6nCQgu4pYsNVvkV4Adwv+4HklwAljlsQEKVRwG\nniSAZrfn4ZXTLsD7mU1ImmkJqWbL7NUwyn9yNpLgleBX3QV0yjgFNCIDNJ7rwqFZMzFGXYKGuCVK\nzZbZn8dBFmoj93vkBVTT1v0BHtcNUGehC3dAOR08vaAJIyPQbJXP4ibrtBHWvy1T6V+H/4OM7sRQ\no95OCPcns1NBRoJbYyOjqmm2yis4xrLYyPs7DVhPL8P6DfSXYmgTaaKNcerIBE0vuG02Mqq2Zqs8\niWssjI3mWr8WqX6+aNFi+ksxCKNwOyOmSSMjmFBsle9hIWlkdzHbpI5802yC2L//3rp+2ihfxPjA\nKiI34Afc4MOggNzpsTrbHoZGXR8GJdBslfvprevQfGuFTTY6DhyNDNBArgSbjlgm6MlIrjAyAs1W\nuZU+DLQiTOVLGP3Kl/BCAmh6unoj5YwNxPSCa1qi1GyVJ7HCUn0Y3GnYNTtAgy5y3X+QAH8DtPi3\nPc6p4BUJrjAyqpjNKqCCFslmHp4LJHyp0Ev10cWTdJee3e0lADeAd7c+A1cjEpgY+bSxJmmmJaSS\nrVU4L19BRrhjy6HdHT6sKr9UhwpvKLYm00sVU7rYXV7dHS3Dos9E+sOXGd+iDLbo27mLV2MFBHsc\n9Cn/Bz13Tottiq4nAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left ( 1183000.0, \\quad 101000.0\\right )$$" ], "text/plain": [ "(1183000.0, 101000.0)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x1 = x / x.std() * std\n", "x1 = x1 + (mean - x1.mean())\n", "x1.mean(), x1.std()\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQ4AAAAUBAMAAACOpc7fAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nqzLsm4+cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD5UlEQVRIDcVWTWhUZxQ9bybz05k38RVREBd5\nlIJIC0nrSlBMu1Fs00yps2jTlBRs6aaYRcWNNW+jIC0ktkVqKTqrQleOP4OLQfMW1iJFMhXSIkgz\nG7uxMMaOMWja6bn3vjFvVma68ZKc9809557vzvd9770BHB/POhIeO1gf72J3eCfAT+evwMAde6kB\nBRFpPq7muEO6Y5c9fiAgf4nlEsZplfo6pW0NOLULAf6cr9Uq0Ty1XwH+4TX+Hw8jONN+DOzBNc+g\nL3A/hAJ5S8kgFh3yuu+cgIK7F/uA7PeAceqmvjeQf4QNyN7HYLvdrquf+xU2ebgKJIpw5xdCA7zx\nu4fEDPLDCtgKXDTg1JaK9SBDVfB6C5g3SBaxDTfGVyLOqsQXt4FTmAqwhLeBgvkVZlAoIj+JtOzN\nVBhBnddkHdkVBewEpkOFTp7XruiQLWAWCmfFEBn2oZwZiS9OAguNH8tuCxXgis2zbhj5e3BnsFEU\nXX2sqyO3rIB/gLOBAkWWEnksItL9myZ/CTS2Kyt9KGdV2sdoyD64ZfepyE2a39wQMv8Ce3FQyp70\ncXPLB5grIvdQwX3APg4LTFKkKVHHQhVCfsP1KCu07h4s63oYZ1XiK3EgBK5VOEhGfs9xPR4BVbwq\n9JM+dmCgPFBB/2MFh4e2eU5ASjUl6lioQshZYNQXeLnl41vtwzirEl+qcvTa/FHI0fnIj5vSx/V5\nEZ8wudoHG50YKEofAg6XonlOQPuQlKhjoQoh+yazs4HAl+0Q74ZyPoxTIwqSE4R0nZD/DnDvsQ/1\n240vloFjYLKrj9Ti/9oXbDky21BYAgbL0kd8X4DUIucpyWQ4xTaHO/ucOHSX56PZ3UdBdosnKyvn\nNLssJ21azul0wHJLcRCPDsncQqiwn334er8op1XqC2SKwPPArgDpoVW/Ao90s3tfeGpSK8khJAz4\nIMBgqMApNM9rV3RIJkeEGJGHiK2HVWuV+gJH4XjcNvYxxw3q+PVx/EP3OU1xC+URljKQp9Q+A06h\neZkrHqpgYqvXv2jQ5PngV+eXVE6r1Bf9RWS8r3nTeGhyZWyeE2h6ck6r4joVGjhFenGJrjcM0oF7\nGgp8+GhKrvFQcm4Yn4VXfYNCxbX7xQq1ynw31qq/4QVkH3Kj2YcymTfd1zkc44oA42dGfIMNl98H\nfjn0RwTupc8bUMCnUerjkAWroSRvg3zpPd4JAqiON5C61boZFaqb+o6220vIld4pA5sCCpWplvgR\nbyHNVeklsj3q1+TtTMh7rqfI96Reo5jvObyyRm0k+7k3+drUfO93/w56epn/dEnvClkLxyc820h4\n+A8unMl2vIxNywAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( 1150000.0, \\quad 0.996100523709\\right )$$" ], "text/plain": [ "(1150000.0, 0.996100523709)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x2 = x + (other_mean - x.mean())\n", "x2.mean(), x2.std()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\njHv37mXVqlVs27aN6OhoXWbs27cv+/btIyMjg40bN+oqY3l5OdXV1axevZqFCxdSWVnJunXrdJUR\nYNy4cQwdOjT4uKKiQncZQ6YYcDqdwResqKgo2traGDx4MMeOHQPg8OHDpKWlkZycTElJCa2trbjd\nbqqqqkhKSiI1NZVDhw4F+44YMQK73Y7FYuHChQsopSgqKiItLY3U1FSKiorQNI1Lly6haRrR0dFd\nmu/7779n9OjRFBQU8NRTTxEfH6+rfLe717k6GuOPoLeMu3btYvv27eTn5xMfH6/LjC+99BLnz58H\nbp7hGY1GXWVMTk5mz5495Ofnk5uby4ABA1i2bJmuMgLMnDkzeHPf0aNHGTJkiO4yhswbFXm9XpYu\nXUptbS1+v5/p06czdOhQVqxYgd/vJzExkbVr12IymSgsLGTHjh0opZg9ezbjx4+nubmZnJwcamtr\nsVgsbNq0idjYWMrKyli/fj2BQACXy8WCBQuAm3OFhw8fRtM0lixZQlpaWpfma2hoYOHChTQ3N+Nw\nOFi3bh1NTU26yXfx4kUWLlxIYWEh586du6e56urqyMnJwev10r17dzZt2kRkZGSXZrwlLy+PmJgY\nMjIyAHSTsaCggNGjR9OnT5/gWc/IkSOZN2+ebjIWFhZSWlrKG2+8gcViISIigrVr19KzZ09dZbxT\nm54ylpeXs2bNGiwWCzExMaxZswa73X7fZ7xdyBQDQgghhOhYyEwTCCGEEKJjUgwIIYQQIU6KASGE\nECLESTEghBBChDgpBoQQQogQJ8WAEEIIEeKkGBBCCCFCnBQDQgghRIj7H3J4dPSHFKsVAAAAAElF\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.kdeplot(x1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 検定統計量" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJ8AAAAUBAMAAABhQvLIAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nqzLsm4+cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB8ElEQVQ4Ea2VPYsTURSGn8wmk2TnbhIUFATZ\nsRNsXP0Bjv9gEFH8KAKKymoxzWIRFmNjJ1qKVapttnAKJe10wUJW/0Eq0coEXBEJG88dk53cYzun\nuPec877zzplzPwYqIaXZOat0sjQ52OiI2FXmuZWhayLw4jKUlhpD8G2VpdlHOFWamBWqDtiRabR7\nppdo4dZr6p91Mo/Nrfn8UCH7X07vikQQcwlM6j30I8Ug6OLH1IepBvh6+8VWR2Xjy4mZyopEPBLZ\nLJg1NINqzEGfC7xUj2Le4E1UstW/T+UIGl3eSoVULyqChKL2KmObdqawWsT6TOWM+ZO/pTWxgtBO\nFEFCUbuOOaLZV1g7pN5VORoTNiIQQflk+DG2o2s34LFpTfFDN8/m2LZDmZTdDjPWu3ZRGtkz6pli\ncI/K76A1w9fVH2R8/4/dTOWTUryID/Cuf4UTmJ+OpPlFbfpNKmwmClnrV7alxZFD3xzw3htTS9mD\nT09H10J4kK1SGofDpJdID9sDhZibPWH6T1bZVubsednY45Wj5+4c22KxfJVdJM/D88XsTHLuissh\ncKDmv9bt2H3oIgta6tAXgVwObC2B0dLJZ1lLa8Gdu3I0c9cdjF4rC9vrq7hgQwkKk6YcW3jsFY5X\nuIW31hG/EspQkskv4C/jR24rp3wTkgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left ( \\overline{x}, \\quad \\mu_{0}, \\quad \\sigma, \\quad n\\right )$$" ], "text/plain": [ "(\\overline{x}, μ₀, σ, n)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x_, μ0, σ, n = symbols(\"\\overline{x} mu_0 sigma n\")\n", "x_, μ0, σ, n " ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGwAAAAtBAMAAAC5TJM3AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAInarRM2ZVBDdiWbv\nuzJCz3LGAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACVElEQVRIDZVUz4vTQBh9yXbbSbP9gR4FE3ZB\nlurBit6LNz3tQURBJYggLMLGi7inBsHDemkUK4qXsGDRk724ol7Ey153/wChV2GhUYpbBK3fJKnN\nTINMvsPke997L5OZfDNAEtYkiilUfZ5VFQo6bU2AqqDoqioF3ZaAlMFtZWVayPw0Us7LfVxsHlmx\nlQ2xkJbmfLXZ95y2k6i6XWh/1G2FFml9MDaCGarbTtGP1m2gFGKBUsXQHowAg8TFNdT6nqILYL+B\nj6ReCtD2AmUbNup4TmqrhVfmQN1mOWZA6gvA0fex69j/zWad8wtjwxN02p4A50GTl6q/7onMYvQ2\nsSaghxG6dkUoYge16KSHYnmGyjbP2w4fZ/F4lmZn7DOvSx+l+dniVPVSKp+mukM/c7l5fntaSJ4H\nwEqS9iSKw0ofeIQPdlfi3gDPktI7ieLQcIHXeOvdlbjLYIdAo0HlTYnicKkFeLgeMezqC4rugAB5\nSmOYQek0MER8q/4biec24Acf0kEe6najhTG3zQf/SFTnTmzRhxF4nQF2o0ac8/Etua+HWBUZYw+W\nGwzreAlkbUnZQeGwEmrkTkfHx8Zxd+jhCbCeJpK8QDfEmdUTnySqvb6sb4Nm+wLckLgIZjfXuYij\ntY2Q3Uc7We/ik1BEOxm3sqyq1OUK4eQy1B36b/HBkUWZx5RWHEWv52FfdsRY6VLItqpU2Z3J5KeK\nUNR8u7W5n7UPokpGbDfX9T+1U2cXqK/zRq0PPdnfPFZrgEUnjyHWdjwcePltFVd7mt8FdrORc7K/\n0SqQ9PKFxgoAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\frac{\\sqrt{n}}{\\sigma} \\left(\\overline{x} - \\mu_{0}\\right)$$" ], "text/plain": [ "√n⋅(\\overline{x} - μ₀)\n", "──────────────────────\n", " σ " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T = (x_ - μ0) / (σ / sympy.sqrt(n))\n", "T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "symbolを用意して式を組み立てたが、定義どおりの形にならない" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEkAAAARBAMAAABjgJx1AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMu92q4mZVLsi\nRGYwtm5kAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA70lEQVQoFWNgoAhwJRCjnSJVrgwM6UiWwMwS\nSz+bgWR5MwODJQNDRgZUJVQVYwOfGbMCQrcmA+MvBr4GrgKIEFQVhwDHR64DDELGIKACUsL1kYH5\nAsNHoCoOJSXlICUloAZGBqYNCJNASjgVGOQdGKJQzGJg4E9AUsVpwMDcIOB/gMEOTZW/A5Iq5g0M\n5xc0+AswmKGo4hLIZ2ATgKuTN2CYf2QB0KwwFFX3F+xnOAdXxLB+RhpbG8hdf1FUiaeJzXuAUFUE\nZkL9CGRDQwKhAMyCWMQ2ARZejAfQFIC4PF8ggp2dCKdiKuM1wBRDiAAAkusxOFDdj+8AAAAASUVO\nRK5CYII=\n", "text/latex": [ "$$- \\mu_{0} + x$$" ], "text/plain": [ "-μ₀ + x" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.S(\"x - mu_0\")" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#sympy.S(\"overline{x} + 1\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- アルファベット順のため定義どおりの順序にならない\n", "- latexの一部は自由に使えない" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIAAAAA3BAMAAAA23181AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZrvddhDNVKsyIu+J\nmUR+edwkAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACyklEQVRIDe1XTWjTYBh+2iRtk6ZpJ14Edb3I\njpbpUWd09dZJEJkTnZsHDzsMexI9GaGCDGE5iH8XCzI2vKwXkXlwEbqLoKsMx4QpAYUNHHQ/hK0F\nqV+yLQlhTf/wInsp/Z73fZ7n7dcvH+UtgAOVk+itdKD5GI3B96B5O/ByEM9a8SNQ4uSWGgS3Jlry\nA9PHGm3A5kDLtmlWtLGFmOMSeqzMBfgEqALovLpdH825eDP9CbzYq27UAgUMpHEYd0xBZGJzL+En\nd7H3hBFDRpm470noQlQysm/surG444a74MiJex5MCeE0KfIazmTJml/EisyruJYUffcPjqCMXzKO\nHEoWwOSThHfGHHCKYcugYqR6AWgvAJQWiql6MM7cZGRfUesiBz2j4+ga3qFX6nO6Ce4Et8mzOigR\nCBFzVAcWwI9cT0ANZdowdg6g49zlBHcpAR0Pzxof5AhmA5HyU7KDsIgnlSkItzZkvIVf5VVBC2tE\nmQH8ovEKiUIO7+GK4J+8mBLJGUQ1myljQKE0GlEFEqaA8HMMXEFYiRSUEhhbZ6DQoJnvPgUzwRAe\ngVLG4U8zMrdKvhaN2zwmQS0pHXCdAdm5ET0798BMMJFKQ8jEwGSSkhAHIp/R9xHLoD+gL3l+W7P7\nPqmYiF/8ultpcCWXdD8cJ1BpMRyt/hlkB1trzS4kWmuA4H6D/+IMcs3cg/7pSqVgGrm5LbHxDuzp\npc7Xjdtsx9U02u2sCTQPFKUmfJZlDegmifO3wuLqAVwJGK5HWE3D6GDfWCRtbmTVyusBHXilWboV\nC9UP+pMztrjhEcy2migougqNpn74vjyuOq/V0a0NvmIsnK1DWUUSx1j3zjhWReFRHiejTtoYWH57\niDwoYVbCRcJP4TvrIfOgAip+AGRg6brrofKgBN34JyDISMU8VF7UcCjrRdfmisu1NZ6KQNmTrk2y\nYg3NX7/j9a8Tzu+4AAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{X_{overline} - \\mu_{0}}{\\sigma \\frac{1}{\\sqrt{n}}}$$" ], "text/plain": [ "Xₒᵥₑᵣₗᵢₙₑ - μ₀\n", "──────────────\n", " ⎛σ ⎞ \n", " ⎜──⎟ \n", " ⎝√n⎠ " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T = sympy.S(\"(X_overline - mu_0) / (sigma / sqrt(n))\", evaluate=False)\n", "T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "妥協して順序を考慮した式の組み立てに成功" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 検定統計量の算出" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "書籍と同じ値になることの確認" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJ4AAAAPBAMAAADnkWuuAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAzXYQMplU74mrIma7\nRN0SDTw+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACrElEQVQ4Ea2UzWsTURTFTzJJmo9JGlQEKUKt\nFNSNI1KqLposuzLpotoK0tkpuGhKpYuKOJYWIhUcwVhRxLiQLhvcWHHRgIgIRaL+AdWNoAgm1u9S\n47n3xaB7H+TkvXfu/b1730yCwO7QMbRHdGYWELFGlrNAX/EmQu9GisVWgDhHS8WiBxT3ZNE3z2gd\nVs9czcw6mk1PZ5FJwNqJISMB13oP6xwWy4lms/kDOOW07BWufRyohdPYjoGyccLAdUAQgUv7FHd4\ndB2w81g18gC4iFgBsXyYKb5VukOe2ieAGPAEdjVRQDRtnDPAXSiCnhlB8taYa+QZMO50phGtR3kB\nWWA/eWp7wCySPxlo+4gwSZzLwAAgiH94TxkFFXa45maqCH7mzkt+JEsdINkNu8CtTh/Jr62THmO+\nxXvUm6VnFo3B3hpErC/kdXewvk1aVX6EpzbrImrbzElk8kh+Mk6suVwxCNuJS4ourEYFUyrx70DO\ni9YR2GC7DBWeOpyykkwXOtwlDyHGyUm40qBKvxzPVbmwmg6OHxQ5wvpyHrbgNBvKiC88cfhV59Y6\nwpNL+TYvcvvj+TZvrCwJAv8FrNREXmm/SPQM8v52iS1VqI1gmv2+RmLzr34fIvjNUcRV1lr7w3tD\nVEWFz2Pc5XaMp3wQW3jqIFUFUmkkNvg8Iq3nMc12XOVNAGMMNfUtSH0qq5zJdsCHRbbhqYOMz2MK\nrM+uIsHj5Cbq3KooL6/Htng5XhBU+D4PITGNXBkh9m546iDHlBDvr8D3mT8SrZz12WXl3ZOsDLf1\nZfSsKcREUq51FsGtVhd/RW2eOhgnDzfQ7+It+rOG98LBfYOIj5QcpHyEFxq3gLlRBohYM3tlNlwD\n4lPMH72wo9KyF12uo8PXgEM9FHVCJf4fGATN/zh+A/nP9iBeoggmAAAAAElFTkSuQmCC\n", "text/latex": [ "$$5.16609716760181$$" ], "text/plain": [ "5.16609716760181" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T_value = T.subs(\n", " dict(\n", " X_overline=mean,\n", " mu_0=other_mean,\n", " sigma=std,\n", " n=size)).evalf()\n", "T_value" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "有意水準0.05片側での統計量の確認" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "有意であるか確認" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAH8AAAAPBAMAAAA/sQ3hAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWbdiTJE\nuyIU2bFIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACVklEQVQoFaWSz0tUURiGn5l7x/nl3HEZtHDE\noI3IRQJpNSZKUYFTKYEYTokFBTaLFkFBlwqLFukiENw0hEoZMbNp08bbIlpqRYuoaDYStIhsgikq\nb993zzj/QGfxnsN53++53znnws5IrTyWZbpgxDq77BOfSh+DL6uvZG/1fJXNU+9lpUFrfKnWtIl0\nyyZYVzkpU3LDSAwOEA2CMk6BTo9+P1ayBqj4JtjnOb3GZt9oXevJFPgo0xkFiOyCz8SXZqBti+w8\nb8ls2C7RnAkOwrCxJWAA6zWpxLklAJUnsB9bt9p7yJfat2UVncf+TRhsQMXYLcBrDZOKC0Bl/Q0P\ndxJyhExOzHhdARq0/sLFashvARrPpn24qwAVO7jjYd+ermp8keyVlQlZkawTBvdKB37TNkewGh5d\nWEWpDYVKwyXjOn/kRI9OkL9MtEMA62UTrMA1z9jNO7ACl+NuCgGEEjl6v0cKeKfywM/Xielr3cME\n48VIRYFqNy/xF8z5uxUQyk3avrviTtZEot3yDglpJlaAMMjshUq1aTcBCwK4URaApUIvrHUc1JM6\nNTJbyRKJnzAtNRr0ZB5xQ7vVgbzs3POhoZE9p1WmvoHtyVVNutm6AOycdhAp8BUN+gK4RGi3AGty\nB7Id3TAiHWRq0vCC7iS303IHOZ7CDGHwei29TWgbQL6EXba6pDarAJGXLrNskugl4dFZ5DB9Hc7i\n6qj8Sxo85/Z7xiY22DhEcgCWR6vyD3364YWSHl72ccaHXXgx9kGMsSPEgyCYN8HU2IS8b2jLB/9r\n/ANLsdNT9HYy2wAAAABJRU5ErkJggg==\n", "text/latex": [ "$$1.64485362695$$" ], "text/plain": [ "1.64485362695" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stats.norm.ppf(1 - 0.05)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "書籍と同じ値で確認" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALkAAAAPBAMAAABKEHMHAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWbdMoki\nRLvvECDWAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACz0lEQVQ4EbWTT2hTQRDGf8lL8/flD3jTQ1rr\noYhKFIsUDwmlgohg0JYeKhLEVm9GBBFBCHpQUKiCIqJortJDgtBaG5BHwVOFBkHBU5/iVdvQampV\n4uxuapPi1YH9Zt7st98bZmeh1Z4dqlTK1sitoiTDWYhMzUBv5aiB8L2RSgW78iqBJjJX+dh6ej3u\nnZ7BcMHTbbLKjzcajUwgYT2WVMjFusowVg+zjoag7K7wGs+qIdpZkoV1yRZ/gT7HcNk/uKw3tD8J\nPq7BC0mddoll+YqvE19WQ4cDGc4n+IEm+mvE77SoNsNgJ5G84YLfqGtfhhk+QzKFfcNlQeSI54ks\naYhIq4q8rVp1NDG6m3S+KdniYhk8y4bbrg7RHCuwkCAScPmkzqRd/Gsa5OO9ykhnNFHwX52JZ4jW\nZE9zW2uHGNY3Uc9xO+BSnxit4pXaf2uQE64s+qRyIYpZj2RNjToq/mvpLNHv8uWqTLv6NPZPKJWt\nXMC16gW6pC0EVjVIYwpyYO5+SnBalv3yBHxwbPW3DZsvExYNzW1Xt5awpfZSOYKoN1IcT3GJbTUD\npLVGZLdUvKTD51W7i96ijtdhPqvVDbetdn++2ZmtBFyZDcarBMcm1gxw1ihsTyFEZd5uX8/YdRUd\neKjsikTNzhhum7oMubrV5JYyAZcHol5AplSNlYIn4t/AYgJFtB1iNbnDTSYZj9yq4m7qezqDjDjj\newcGju3I9evaISBZBZb8GGmXqCtifFmptzddCDGX4LLhblIvZVGvaVhIXpeS9J3gLkqOBsJyJeyB\npw6KKIzQL6+o5yS9YfKaOvKGa9TVo9AdSsqhUMLaKdy4i69sdeG/aF02gEep38Qj86aIwQLJnFxA\nr7MhraK77CsaLh399cOEMsYzm5BxmDpTlIFaXCkwOSjR5FC1CTIf8oyGTsm3IvJu6AuMnitI2GoH\nx47IpSju/7U/lb0C9QDIZ8EAAAAASUVORK5CYII=\n", "text/latex": [ "$$1.17046997373e-07$$" ], "text/plain": [ "1.17046997373e-07" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stats.norm.sf(5.17)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALkAAAAPBAMAAABKEHMHAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWbdiSK7\nMkS0yDVVAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACtElEQVQ4EbVUTWsTURQ9k5k06UySZuEPaOxC\noSJDsZa6aSgUu5FGaRFCsQVJKxZppG7VQUG6M0JFFMFZ1FKCktl0YxcN7kTFLHTjxsGF0FWJUdNq\n63jvezPp2Lj1EHjv3nPuyX1fA4Sh5pcdxC4mz/pJfeU5sDb5Fjh5+QLQv0qhUX6WlnRyKV8uh8v9\nOcsCTumRSR77LKMXEc+zAQ7VGzgPNYuKixy0NK5i0MEalG1Jxz3P+/YPd5b53InxhhCIcRgYQWx5\nDhBhIoc30ExEuhULRjHeDb2I+TR2JB11gGy7u5AFXId0B49NoAJNFHC4ReWIlKDt6VWopUQWSgOf\nXZVkTOv0q7W7C1nAhdzVXWC+tu/+kktjDXJP7Zq61ZVFqk4Z3hm/6ku7OQKZ4ELuOEK9u9pigTri\ndPNjweXyzgbGtlcxlEPqB4WDdsu9SoezUuAl7iOQVTkVdq8AN62EafwWabVpIcOSLRu6t4ANG8mf\nwIv7ZlClW8CmY9gsasGXMRfo5BibVippyr2S7p6Jc+SEJeDQ5ld3IyfcoR8PqobogmbQX2OfFnwZ\ncYRw77hzpcLSKUekd4C7LhDNIZ7FfE+wZBw2/apZQDs6c5ttBh4yrtPMlxFH+MsdGDNP8+aL9ANy\nt4ACXRwHyTodl1LHOvAu7Vc9Bp/hAUgZiCMccL/GRzslm6PrT70rOazzMkcTVcQboO0K3FV6S102\nm4QhZcwRwu63nOQvepagpjn9ifYd+ADMUe94Tc8kWsQx4IncOCS/06psYJp9WpAy5ghsM1SU46w5\nYNFTj/fKULPVDIxH5fFSagHxadxDXw2LUOhaip4Ucugoop/+OgwhY46ObLg5is6sHPUJ+lYZ+RFT\nhng6XkOMviYlvM8Tc2rmDJCamHR9mu4Lncoli31CEDLBhZL/YfoHif75eU1bEr4AAAAASUVORK5C\nYII=\n", "text/latex": [ "$$1.19516280317e-07$$" ], "text/plain": [ "1.19516280317e-07" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1 - stats.norm.cdf(float(T_value))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "不偏の場合?の確認" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKAAAAAPBAMAAACRq9klAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAzXYQMplU74mrIma7\nRN0SDTw+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACfElEQVQ4Ea2TMWgUQRSGv9xmc8ne3mURC8ED\nAyKo1aqFpso2aU1ET6IgbmNhdZEIgkQ9g+IFRc9o0BDQbURB0GATwSIBURCipLE2diKCymHU07i+\nebNX2DuQt3n/N/8/s7NzdGzuPEh7aKNl73S9XmNdOBgLG5S/+tYIr7IU4Yw8jeBB/SUZNkRF68mn\naU3mQ9cYaKNlIU3TBufSHwZ9gh3LbkA/3Wt0xM5HvGGqcxYrUdF6Oia3Gw/9h5qgjZbD0AMbphJB\nuXF4gb/IDTjFPJwnt0rvisVKVLQesdmRk0BttNTgAjQUPSxTbJn/zsLd6BVUw+IZBgLFlqhoPWo3\ns/8NhGJfO7BWxh81UzaFEvgT3sXSyCub9SzJROPpebYlEj0LNE2m+KLNPjkAhaRM7/qJIzrr865v\nEtgHzgeLlTiZaDx+6K3pVLNDbTLlsqjPebzMTsoMbCQfi1D84clnGqrhXd1vsZJMxHhkvNFqAtuN\nKM4Xbf0VaiawiTsmQqnhyWYkEC4tS/FXlGRi5uFoIkjPUB7aSMkFRsRtdUUSKJ+0YF6kQvvtyJsF\n3JaSTFTPdbhm1tJAbaxSWpTzDeTi7UECSwGFXzJnGOT8q7GX4K8qtkRFjIcTsqlQnhqojVUGGnLP\nA9zm8ZmZ71M9o7rDY3jJEiyEvU0JVGyJihgPsuZ7k6eB2lhlSB6uHFogaJxOOcNROofJJXKH95Ff\npNRSbImKGA/3KJw2l1QDtdFCVaD8wOYTmfMbbrM75lH94h1KsXOSwhzVPouVqKgevJHpUD4e7q2v\ns7ZRhfuxWW1SLgdX0lm6KzflYqfpH5yJbRG8rbzOsBIrqkcM/3X8BRf79UgTNNZwAAAAAElFTkSu\nQmCC\n", "text/latex": [ "$$5.15575462035607$$" ], "text/plain": [ "5.15575462035607" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T_value_n_1 = T.subs(\n", " dict(\n", " X_overline=mean,\n", " mu_0=other_mean,\n", " sigma=std,\n", " n=size-1)).evalf()\n", "T_value_n_1" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALkAAAAPBAMAAABKEHMHAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWbdIrsy\niUSaomKAAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADDUlEQVQ4Ea2UT4gTVxzHP9nJJpPJn51Lj8Ws\nHvyLDOoieygJFukfLI1iECxrF3S3IpRGhOJB6tJevBRbaCltDx2EHiwUg7QH2YNz9SCZg7sV3GDw\nIPSkstbdFt34fW8mIXrul5k3v/fN9/vNy++9CaTwmosRlJdX8Lr3fJyZryPyJ0uHKX030+1C99OI\nqbsrcOtgtxtbDVPd9wf20aeRpS4yW+wn+yhv4HzBMX4ls07ed35irN+Pcfv9/lP298ZbnGU65LLm\ndatxtnElHI1NayNLXOw7umrJt2EzxQaLfObzL1/CX+TvnIHxEOr8SbHtVim3OA7ZRJOtkm1Y8yuD\nlSUuyCXp2+HD6JGSeNBz1vgDNgVZ4yrriir/qSrWyawSw0qimWhRfmwkr8LKrEt8mn4xUPr1RKfO\nPIVHvk0X9ZBiVY+JOpUnelZmNUhTa5N7rvI1DGQPDZ+mq/olWLs911MxHTv/KH02e2ku0pQ2ExeW\nT1BrUHmmadFw0zFjWrv2ankuNMQQA1nbMMP0ygtnbYFJ+P37wHsBnbgYeBtSlBeonWfMvxZTEs9d\n3dKYtuTX+Tv01KwRpDK5hGF6oe70A44Eitvtae0dY7qhu6ZrlfEt1xo23XlsbOXd8DlvPvEmmYoM\nMUQqk0sYpjfRWeFyT9zmvbYzqj4O4RO1/BvcjfQn51ripQlw528/z26b/8pM9/9ocEFVKpNLGKTn\nGvCD0hd+g5u+dnWT/w7c78HPUGjhrmu7MtrVQhusRubsqsjXkMrkEgbpb+CFB8za1Z6b/qKqYKvW\nHuDom3S03Y1iG1fHt1YHq5E5X5+ITcgoEplxCWl6qUEu7Kjv7NTpCfU2HSP5NSV1qaS+V90qemHp\niLYadwedcEzpszZoMCQy4xJMeq3F1e7Se2RjZ5JLZJ5R8J1d+k9QABmj+4A9Pt+yJ1LHlG41uXPO\nebQLU6EEI7Ay62L8wNq7FOpc7Pe1p0tHIyrNj3o6xacivJmDAehU6Ig0D8Fb8xq44uuFMhqWmhrm\nTi+IHIWVWdco+//XLwFJRwr/UJtPygAAAABJRU5ErkJggg==\n", "text/latex": [ "$$1.26305760739e-07$$" ], "text/plain": [ "1.26305760739e-07" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1 - stats.norm.cdf(float(T_value_n_1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### (おまけ)Sympyの式のグラフ化" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "\"Mul(Pow(Mul(Symbol('sigma'), Pow(Pow(Symbol('n'), Rational(1, 2)), Integer(-1))), Integer(-1)), Add(Symbol('X_overline'), Mul(Integer(-1), Symbol('mu_0'))))\"" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.srepr(T)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n6h67WDBYZpllSmLlJxwBR6ByBFxsXjlWfqUjUDUC5Mi+//77zXhtueWWq7qctN2Ipfs666xjrmHE\nYY8rzWjacPH2OgJtRGCQM+82Iui3OwKVIPD3339bju233nrLjNg6d+5cyW2pvgZ/dBg3LmhIHYjH\n7uQIOAKRIOA670hg9EIcgRYQmHbaaS0DGP7f+Gc/99xzLdyR7tMEfCHK3BxzzCH33HOPM+50D6e3\nPoEIuM47gYPiTcomArPMMos8+uijlvVrgw02kFGjRmWyo3feeaest956FtwFH/cwBWgmO+udcgTq\nhIAz7zoB79XmE4EZZ5xR7rjjDtl7771lxx13tOhmf/zxRybAIOY6aUp79OghO+20k9x7770NvuSZ\n6KB3whFIEALOvBM0GN6UfCCAv/eFF14ot99+u9x2222y/PLLS9p9n9lhr7jiinLttddaeNVLL71U\nUBU4OQKOQDwIOPOOB1cv1RFoEYFtt91WXnvtNXOf2mSTTaRXr17y4Ycftnhfki749NNPZdddd5Vu\n3bpZjPVXX33Vdt1JaqO3xRHIIgLOvLM4qt6n1CBAIpDRo0fLfffdJzC+JZZYwnJ0E9glyYQl+f77\n7y+LLbaYPPvss6YKIOlIp06dktxsb5sjkBkEnHlnZii9I2lGgIQduJFdccUVlkoUJk5iE/TGYZrO\nevePdhCnfbvtthNc3RD1jxgxQt59910hDKyTI+AI1A4BZ961w9prcgTKIkBmr913310IbHLLLbfI\n77//LltttZXgXta3b19L9VlrRk5K0KefflqOPvpoE4t3795dvv/+e0spOnHiRDO8y3PM9rID6icd\ngRgR8CAtMYLrRTsCbUXgvffeMyMwjNvYmeM3vf7665sr1rrrritLL710pBnBYNYsHsgAxmfcuHGW\n8xtJADvu3r17y1JLLdXWbvn9joAj0DYEPMJa2/Dzux2B2iHwzjvvCHplXM0mTJhgO3Ncz2CmxAxf\ncsklZb755pN5553XPh06dBBSfxLZDMtvoryRxxvXNPKMf/HFF/aZNGmSUPabb75pC4TffvtN2rVr\nZ/rr3XbbzXb/Xbp0qV1HvSZHwBFoCQFn3i0h5OcdgaQhQOSy6aabToYOHWpM/I033hA+iLG//PJL\nwd+6UoKpzzPPPKbDZgHAB9e1l156SQ4++GCzhveddqVo+nWOQM0QcOZdM6i9IkcgAgSIykYAlBdf\nfNH8qosV+d1339mO+ueff27YacPQYfjhTnzmmWe23XnHjh2LJgtBt77SSivJ3HPPbQlVitXjxxwB\nR6BuCDjzrhv0XrEj0EoEEHsjGifZxzXXXNPKu1t/+fjx402/jhsb1vBOjoAjkBgEPDFJYobCG+II\ntIDARRddZMZjgwYNauHKaE4TeAUjtSOPPFL++eefaAr1UhwBRyASBNxVLBIYvRBHIF4EcM8aOHCg\nMVICu9SKhgwZIh999JEMHz68VlV6PY6AI1ABAs68KwDJL3EE6o3AaaedZjrr4447rqZNWWSRReSI\nI46QU0891fy7a1q5V+YIOAIlEXDmXRIaP+EIJAOB999/33a+MFAMzWpNJ554okwzzTQyYMCAWlft\n9TkCjkAJBDxISwlg/LAjkBQE0DsTgpQkJkRhqwddfvnlcuCBB7rrWD3A9zodgeYIuLV5c0z8iCOQ\nHASeeOIJIZIaMc4333zzujXMXcfqBr1X7AgUQ8CZdzFU/JgjkAQECFW62mqrSfv27ROR75uc3Vig\nu+tYEp4Ob0POEXDmnfMHwLufYARuvPFGiyX+8ssvy3LLLZeIlvbs2dNCqL7++uviCUkSMSTeiHwi\n4H7e+Rx373XSESAG+QknnCB77LFHYhg3mLnrWNKfHG9fXhBwa/O8jLT3M1UIXHDBBTJ58mTz7U5S\nw911LEmj4W3JMwLOvPM8+t73RCLw7bffyuDBg+WYY46x+ONJa6S7jiVtRLw9eUTAmXceR937nGgE\n8KcmJSfMO4mErznR3kaMGGG5v5PYRm+TI5B1BNzPO+sj7P1LFQL4c5OWc+TIkbL33nsntu3uOpbY\nofGG5QMBtzbPxzh7L9OCwDbbbGOxxCdMmCBTTplswZi7jqXlqfJ2ZhABZ94ZHFTvUkoRCFNwjh07\nVjbZZJNU9MJdx1IxTN7I7CHgzDt7Y+o9SiMCBGRZeeWVZc4555T7778/NV348MMPZemll5azzz5b\nDjvssNS02xvqCKQcAffzTvkAevMzgsD1118vr776qvlRp6lL7jqWptHytmYJATdYy9Joel9SicAf\nf/whSyyxhHTv3l0uvfTS1PXhl19+kc6dO0uvXr3kwgsvTF37vcGOQAoR8J13CgfNm5wxBM477zz5\n4YcfhJzdaSR3HUvjqHmb046A77zTPoLe/lQj8M0338hiiy1mPt0nn3xyavvirmOpHTpveDoR8J13\nOsfNW50VBPr37y+zzDKLHHXUUanuEm5t559/vjzwwAOpMrhLNeje+Fwj4DvvXA+/d76eCLz11luy\n7LLLyhVXXGEJSOrZlqjqdtexqJD0chyBsgi4q1hZePykIxAjAltssYV88cUX8tJLLyU+IEulMLjr\nWKVI+XWOQJsQcLF5m+Dzmx2BKhF4+OGH5b777pNzzz03M4wbKNx1rMoHwm9zBFqJgIvNWwmYX+4I\ntBUBjLtWXHFFmX/++eWee+5pa3GJu99dxxI3JN6g7CHgO+/sjan3KOkIXHPNNfLGG2+kLiBLpbi6\n61ilSPl1jkD1CPjOu3rs/E5HoNUI/P777xbQhAQkw4cPb/X9abnBXcfSMlLezpQi4DvvlA6cNzul\nCJxzzjmCWJmc3Vkmdx3L8uh635KAgO+8kzAK3oZcIPDVV19ZQJYTTzxR+vXrl4s+u+tYLobZO1l7\nBHznXXvMvca8IkAEtdlmm0369u2bGwiGDBli+cmzrCLIzWB6RxOFwJSJao03xhHIKAKvv/66XHnl\nlTJ48GCZfvrpM9rL5t1y17HmmPgRRyAKBFxsHgWKXoYj0AICm266qXz33XfywgsvyBRTTNHC1dk6\n7a5j2RpP700iEHCxeSKGwRuRGQQGDRpkccq///77hj6NHTtWHnzwQQvIkjfGDQilXMdYzBxxxBEW\nHrYBLP/iCDgCFSHgO++KYPKLHIHKEFhggQXk888/l5lmmslSfB5wwAGy6qqryqKLLip33HFHZYVk\n8KpC17G77rrL3OROOukk+fXXX2WllVaSF198MYO99i45ArEh4LHNY4PWC84dAvhww7SDILC+4y41\n66yzWq7ut99+WxZffPHcYVLY4fHjx8v6668v88wzj3z99dcCQ4ewAQC7PEolCvHx745AKxBwsXkr\nwPJLHYGyCJAlLGTcXAhzQnzO/912202effbZsvdn+STYDBw40LpYyLg58Oeff8oHH3yQ5e573xyB\nyBFwa/PIIfUC84oAFuXstgspZOYvv/yyrLHGGrLDDjvIJ598UnhJpr+j1z744IOla9eu8thjj1lf\nwx13YccnTJhQ+NO/OwKOQAsINJ5pWrjYTzsCjkBpBIhXPvXUUxe94N9//7Xjt912mxx77LFFr8ni\nwT59+ph+G4b9zz//FO3itNNOK6+++mrRc37QEXAEiiPgzLs4Ln7UEWg1Auwe//7775L3wdiXX355\n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\n/EtSzoE/hXdJZPyPBEggbQQw61O/36Zhfscdd6St+Vnbu3TpUvn1r38ts2fPli5dumQ9x6uD5L8z\nyRz4U3jvjI1HSIAE0kQAy+Rdu3a1GNmFzrq//PJLU3jL5KdRx2TfffcVjTwWq1m9+kC3bQQs4/qZ\nvOTvdT2feuopgRld1apVvc66wvwq4E9t8woJ8gQSIIFEE3jggQfMlrtQwQ1ItWrVkl/84hcyePBg\nOeuss+SFF14QxNqeNm2aldGyZUt57rnnYsGzb9++5rgFjlz8TF7y96qe8KqnwWfMfA5252GkivhT\n2zyMXmGZJEACkSEwd+5cUb/lntQHs2w89I899ljLr3fv3tK/f3/BcvzLL78smJnDAQz21qOe4GFu\n27ZtZvftZ1295O9FPTUmu/zqV78KfZWkIv4U3l70NvMgARKIJYF33nlHNmzYIMccc4yn9a9Ro8ZO\n+R100EE2k9u6datMnTp1p++jduDnP/+5OWtZtGiRb1Xzi38hFYbFAV4NGjQoJJuCr62I/24Fl8AM\nSIAESCCmBFatWmU1b9GiRSAt2GuvvawcjexVXB78is+fP18g1Fu1aiUnnXSSYAaPhGV312Vp8+bN\nRaOAyd133y3uUi7s0aGZDNvsf/zjH4L8//KXvxTnXegHLPO7jArNK9v1bt5B8c9WhygfK48/hXeU\ne451IwES8JXAF198IZgla3hMX8tB5t999508++yzVs7xxx9v74MGDZJPPvlExowZY9G9zj33XLn+\n+uvl8ccflzp16phg/utf/yrvvvuubNmyRXbddVcT7ljWhS/yq666yvLBrP6tt96SE044wf736s9+\n++1nQUu8yq90PkHyL112HP4vjz+XzePQg6wjCZCALwSwB127dm1f8kam69atk//85z/yz3/+04Qt\nZpo33XSTCeUHH3xQYN/8t7/9TQ499FDBLAsuSjHbHjhwoNWpSpUqAuENd5kI4Yl02GGHWV7Lly8X\njfZsx/AHs++ePXsW/+/Fh3322cf26b3IK1sefvPPVmacjpXHn8I7Tj3JupIACXhKAMvMX3/9tad5\nZmaGpWwI69dee03OPPNME7CuYL755ptNECOyl5ug8Q6b84cfflj++9//2mForf/sZz+zY+55uOaj\njz4q1lxHQBHYZWNm7mUCG3ep38t83bz85u+WE9f38vhTeMe1V1lvEiCBgglAKQimXJkz2IIzzcjg\n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\nEyZMsGoPGjQojtW3Ojdp0kT69OkjWEKHkxmm+BKg8I5v37HmJEACARH44osv5KabbpIrrrhCatas\nGVCp/hQDpbU1a9bI/fff708BzDUQAhTegWBmISRAAnEmMG7cOKlatapccsklcW6G1b1hw4bmXAbm\nY3A2wxRPAhTe8ew31poESCAgAp999pncfvvtctVVV0n16tUDKtXfYq655hpBu+6++25/C2LuvhGg\n8PYNLTMmARJIAoExY8bYUnn//v2T0Bxrw0EHHSRwMlNUVCRwOsMUPwIU3vHrM9aYBEggIAKffPKJ\nTJo0STBTrVatWkClBlMMnMxAgx5OZ5jiR4DCO359xhqTAAkERABBPeCMpV+/fgGVGFwxaBeczcDp\nDJzPMMWLAIV3vPqLtSUBEgiIwIcffij33nuvDB06VPbYY4+ASg22GDibgdMZOJ9hihcBCu949Rdr\nSwIkEBAB2ELXr19fzj333IBKDL4YOJuB0xk4n8ESOlN8CFB4x6evWFMSIAEfCMycOVM6d+4ss2fP\nLs4dXsgeeughcyW62267FR9P4gfX6YzrhAZt/Pjjj02hDfHKmaJJgPG8o9kvrBUJkEBABAYOHGjL\nxoi21b59e7n++utNSe21116TVatWSZUqyZ/jjB492tq9ZMkSufPOO+31ww8/yF577cX98IDuwzyL\nKaLwzpMYTycBEkgWga5du8q///1va9Suu+4qEFq1atWSwYMHy9VXX52sxpbRmo8++khat25tS+cY\nxGS6Tt2wYUNsfbmX0dwkHC5K/pAyCd3ENpAACfhG4K233irOG4IbCdrXMA+DYMcMPKkJ+9xwl9q0\naVPZtGmTfPfddyUEN9r93nvvJbX5sW4XhXesu4+VJwESKIQAQmOuXbt2pyzcmSf2wVu2bCk9evRI\nnDOTe+65R+CsBU5o4KjFbXMmjF122UXefffdzEP8HBECFN4R6QhWgwRIIHgCUMzKJrTcmuA77Hkv\nWrQocX7AsaKAFYby2r/77rtz5u3eDBF7p/COWIewOiRAAsERqGhWCU3zgw8+WBYvXhz7aGKlqcK2\nu2/fvoLZdVkJ2wgVMSrrWh73lwCFt798mTsJkECECUAwQUktW4LgbtSokQnuQw45JNspsT6GFQUE\nJoGdd1kJwvvNN98s62seD5EAhXeI8Fk0CZBAuASgjJVNeENwN2vWTBYuXCj7779/uJX0ufQbb7xR\n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\nkAAJ+EHg/wGYLLlETAgvcQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sympy.printing.dot import dotprint\n", "import pydot_ng\n", "from IPython.display import Image\n", "\n", "graph = pydot_ng.graph_from_dot_data(dotprint(T)) \n", "Image(graph.create_png())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## statsmodels\n", "3とおり\n", "\n", "1. ztest function\n", "2. descriptive statistics and tests with weights for case weights\n", "3. class for two sample comparison (2を利用)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. ztest function \n", "http://www.statsmodels.org/stable/generated/statsmodels.stats.weightstats.ztest.html\n", "\n", "- データセット1つとその他の平均値\n", "- データセット2つ" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWYAAAAUBAMAAABMlYpbAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nMqvFy5UvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFA0lEQVRIDdVXTWhcVRT+3kzm/83k1ZqCuMhQ\nhFIqJloUhGpHs1AqoSNtQI3GiFoKQpuKIQtFH4IuzdSIJKHiLKTFVR6NIYsh7VskLaXSzCZuXGQM\nxlp/qq2xte3Y8bvnvjfMTH5IIQg9ZO7cc+73fefMmXvvmwBGGneTBSxWuxloei/5QrVucWT4brFQ\ncPy1OQIK7xbRsu8JwOzeUYRRGLeBxORUldo4Mbp2FjVCsMISveSh7kJB60lQMpkDE3ngGXeOqsts\n5uQUNOsHrj0FxCoVR1DRY54jkbZKpVLy114HpvOhjFnC6TyabPM1tCB6FeYe7F+WAEqHdgGJmxoh\nWGGJXoDKt0UPEpRMIeBn4MvKLeE2DM/ijOWxgECWfT51RCAXesqeI5HngZS/FhkCHkWwPeUilsN2\n4Bt8YOMaglnsbJBnrUqH9hswohGCFZYohyygJHpaSjJ9CNwLPHeRa8sskEMio1mJPoQJSfmYCHOJ\nI4MDTPlr93QgfoWwWC9S/+JJYND9Om8uYWylDFA6tM+BP4qCEKywRDnBHVMUPS0lmcaBM+qjrGTB\nEqJlYcHMYQshq9QMxPv8NacDwRyhTWVV821gzIbaG4+vlMGvea/Lmj0EscLyc53Qer4UM43twsnV\nam4uIf4PU53gaw/6Oaa29hclt/RZOV4k6K8FrA40d06+pFDhsvk3a+5jWxwsfd+fF2rd4PWZscOu\nhzjjaJafq13r+VIqU2VHGljY9grP+GS/VSc4m0X8OiPtfE3gEY5B17gpEJVLHC/Cz61nZ9GB2acR\nswkbcwwek3kH97/pmktpDAu1bqjWHL/lIYjVLE85kdZ6npTqME4vucAutOZx3DKcOsFWB0kmJQt4\nAAf12mPy5uUSh4P5p0Q5c1TNZYSOMXAIBvvMmpEYNSsuXnQFVTtUaw6XfERi1GdByc/yT+l5QZUp\n+svhUSUS7DWGMVNU06q1ZqVmsoCPITDgVUu5Xi5xOEQyKsi1aJE1N/ciwK8jlIX/hWLEvQa05QVV\nO1Rr7gLvFo0Y+dbbUZLrHWg9T0plegiRGy5VQldSnw48qOSmDyjr5MzbG2SxW1Lzj/xe8spVucTR\nkXC7554Haw5nELgKOQA8TYP2JmC3/QYrSitqnfk1R7KAIAQrLK0MXvdaT4JQmY6yHDuV4Z3OE9dg\njER5BslSNau98Rl76SpX5RJHR2ZLnvvJ5cs3LqZyqs/RLDapK7nN5bbYbV9as88fwbAEIVhhaWWT\npWo9CYKZ1PZIpWMZhMrNjiqm1oLtCJShWMBxOYO6G3RVzeLoyDzf/LUhJLn/cpgDjqgHwX4M8Vaw\n5rmfa8X13OtzMouIRghWWFovyX2i9SQIlYl9Dlp8GIYzMQfoq1PlMyWUgWKpMzjBsQWBo5jN6JrF\nkQGDVNIz4C/gV5yzjbcKPb0I2+YX2IrodaQccxh8ttSbqpl6WwoTP2mEYIWl9aIqu9LTUpLpKxfb\nYGSx3eLunrHqFQ/iXBHCQjc7DRjdiy7CJYQuLS1oRyK4z/bWgPHKAhJdv6OJvxR6eX++X0S8a1+e\nt2VPETjgotZEh3p7KxWeQIUQrLC0Mm8GXjvU01KSKbk4kWePTr3MM/N2ulaP8/MDxAoLnfLsbli/\nczfa0JU7V1g/w+D1lV0/fFUkfwn8b8bfSHh4A7Kd3QCN9UpME7h5veA1cOk11jZ6SfXYSHO4e4z/\nW/0HQF4Ga8m+D9UAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( 5.15575462036, \\quad 1.26305760785e-07\\right )$$" ], "text/plain": [ "(5.15575462036, 1.26305760785e-07)" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sm.stats.ztest(x1, alternative=\"larger\", value=other_mean)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWYAAAAUBAMAAABMlYpbAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nMqvFy5UvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEtklEQVRIDdVWTWhcVRg9byYzmcy8mbxaUhAX\nHYogRSHRouBCO5qNFGJG2oA2kESqpSDUVBq6qNq30ZWYqRFJS4VZWVzl0RqyGNK8RdISKs1s6sZF\nxmKUolbbRqvt2Om53/deMkkIndJsepm5734/53yHO9+9bwAri0dpRByq3Qw0fZh+c0m3GDL9sFAq\neWHsMhNKR8to2/0SYPc+XV4CrL+wenYwLTUxCat01lWU8KUP9pZKyidUdu85Z0mFqbRmzJyZhKJ+\nYuwVoKVW8yQrcSowxNNeq9UqYWwfMF2M5ewKpopocu23AZOtk4DrJokAl5C6DXsX9qANiRuKEr4I\nme8Knzpns9bxJRWstHa8hvNOgAIiee7zuUOSdamvGhjieQPIhLHmEeB5RDsyPloK2A58B8mWaXWJ\n0Pk7cALRPHbgmIt/FCXMMQeoCJ86rwIL9ZVWEyJSQCqnqNQg4oRnwpxmahZDJu79ZBh7rBPJ60xr\nGUDmf7wMDPsw2TqF+PApEeAr4M/yGAvg26K9qChhTrFjysKnzkVgqq5SSLP8jFaQqAoKdgFbGFhH\nM5AcDGNeJ6IFpjZVjea7wJh7f83dPjW/qJXZG4IKa51WPnF+dhM4Vg4irLR2tFaQ/Jfu0/zuwhDn\nzLahsuTJPhsj8ETDWMTpRGvXxF6TFa/af1Pz4P01M/l9f/HHoSIX5z1FhbU6lE+dX3KfixoxlWBP\nDJlfZ3nM5ZG8RbOD33E8xznqW7clbjSLEXjOhLEL6MTcq2hxmTbmWXeAea8Rzck79mIWo8AT7/qK\nCphTWeVT5xTQndWIqYRvHMsTQeG01UOaRYkCnsQBdb8gj6APxeBk/yVerjyjuYrYKToOwuI+N6Y5\nXrFrPt7yWe5kgAIM/Rw/hk+dTYOJKZfeoJI1ipkyzeWxNS+aiQI+xUkN9DvmGWgWg1NzToL9TqJM\nza0DiPDniOXReG/0gPcF2ovkOfG9dhRg6A9D+QKqpz6aMiKDSpkvjjxjKk/vN6OLq6A3iOJuieaf\nTTsZ02gWQz3xjsC8CGqO5xC5ATkAPE3DDZxBNOeBd6g5uwnY6QpKmbGP50L4lIoXjC8RqcQTt2rQ\nk+AZJMpoNr3BI9DvG9NoFkM9c5XA/Pzatf9+zRTMPify2MQLF+1+A/38CSyHd297kQ2y0xWUMtuU\nqnxKBbyuhaVSq2fE1I9oByJVGBSbXc6g7gZNo1kM9czzEcZGkGb/FXAZOGReBHs0W4XX05t10GPp\nPJqdefYzRniDOIJSvjT7RPnEud1JX6+r1OIBgys4+U6J5WBQ5gyOc25D5DjmclpLDJkwzAK6Am4C\nv2HWtd4r9Q0g7tpf12nm+2LlMJrJt6U0/gsynj2KbUjcUpTyJUx1w6fOw/50tq4Sz9GMs5LxAGbL\nEBR6udOA1bvgI15B7OriFTXEg8fdIAacrV1BqucPNPGfwgDvz4/Lmi0Q7PfJsjzESb7uWo0ncLyv\njGTP7qKilJk3A68S8qkz1bN3RaWhD7LLbLK6eIS5gkKXvLtXxR/cTKzalQdnaBxh8fri7//QI/XQ\nDI0T8D8Snm08fd3MC+tGNj4wTcrNG0Cb3QCORinMHltZTo/OiDi4B3WH/Eytb3sSAAAAAElFTkSu\nQmCC\n", "text/latex": [ "$$\\left ( 5.15575462011, \\quad 1.26305760954e-07\\right )$$" ], "text/plain": [ "(5.15575462011, 1.26305760954e-07)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sm.stats.ztest(x1, x2=x2, alternative=\"larger\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 自由度の変更" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVsAAAAUBAMAAADRmIPTAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nMqvFy5UvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAE0ElEQVRIDdVWTWhcVRg9781fZubNZERbCBUy\ndRNCoY0WQaTK2IUV/OkUGwRbwxRFCpU2SksWgo6CC3ExqQvRWOks/FlmiMYgg/YtbCFUOrOpGxed\nFqLWH5qWqDGddjzfd99L7lg3SXDRj5nvfe+e75x35r575z3AyeM2ic3i805gl3++vGK5/moTkHR6\n6mvgdP0i8P1cvV4LOohkDu+r103PCu0/KuVa4iLqDG9vwhubrsLbt4UX2lR/ANjw9EMwyK0q2qYG\nsjmijwAnO9dN29s+8G01VjDpMZzJee+iL4dtnU6nhZ4T7BLY5elN02N4VhYJCR4N14gvK59Degkx\n4GdEy94BOEVU8l4Lp6pQRLldSdvUgFcA3CLw+E/iG97cFR+4H5EhTe440oXsOLJF7AGyODfSZpPA\nMba3TKPwrDASgZThiril/BvwAd4E7sIg8AUSi+gtZX0kx6GIpRWU2qYGMAPE9dIB9LqP1FXWmiKc\nz3ZvAel51ACuiwTtKpIG0k2tblWnhAaPhtsKTw3hPeBK83PgDB4GKn5qAo1CsoTsDShiyHbWNmNg\nFthIqBXCvEZknCeaeltILTaGkLjBkdSosasIzz8zPSFx5WjZNdyWYqEydvu0O7kDU7gJTJYJVvLR\ntthVRJu7UtAmBqJVHCN2aeA50yFT8uTMsyY1ikj9leTsLhGM8CuzqzDroeXKMJezZddwjXioLH1H\n/GxnS977g3bpwTskY3FZaERwdow33oqwTQyki7iPhx3or2oHRRs7kSxr6q8hc50rIXqN2BS/YlcR\nEvNhpTwrWXYN14iHyuxMcV+fWvAdHi7U4Hy5X9iTNYOkDmCTnC9H0KYG3AIOKhAp6UFE24id0NRf\npF3swjuLnIJ54mpXYLrmx1TKs5JlN+AiUgJCZXbGuSd+OTLhcHZpF/iqynSYX0H6yl5wp2WAEbSp\ngZ4SJnQwJhtMRXtLcJc06WKAO/YD126iQFQXg8DAUS4LUwnNDtuu4ULEORwShoGtSPz9XbAYkOTP\njxVFg8jlgVd8Vt6jLzJeaLIybWogMy92s8H6VNF4Ae41TdxqPZxYZNv83UMsxK4iwPPLFce7wrYr\n3ECcwwE1QWfHObFl7qFK2ckhwoscEw1BOPiv0DZjgHa5GLglYnTCoCj/LN0lTfz7dWU42uKd51ft\nKgKPGqbicHd02422AvFQGXgLzt3zpOe3A9v83rbY7SniDkVywfPK0tQ2YyBVkq3GZwx/uQRFM1yS\n45r4mOAD7Dgu5DgX/OFqVxFkeIdMpTQ7WXaVG4iHysgUkchxdiO5QWAvkkOIX8V54GWDfMjL2HKQ\np8newIBbwDRXcxGDOW+BXXKtXzFbNukgZpuJJ7ydBCqhXYP00K6pGgVWdlAilFKuilvKG+vTP+Jj\nHwOIl72P4OZRGXUO1UdKUOQovD22HGdS2oyBWA2fEtzwzX7dmyMnn8ojPfw7/6gknR1jmh6usqOv\nzJtweeFSgDjvc0x74i+xskIluM31qFwVX1He3en8iczcdBXezGtN4JPhBxHlO0gJiiSeucdSk9K0\niQFEm/oQltG1xhtrJa6BxyewvOKsJ2rrIa+Sy1cc3LtKTne7N9p9/n+eyQukvJ6vI9x1cFdLjeTI\ncPJMt0VsBv4BVOz/HxNvLggAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( 5.1660971676, \\quad 1.19516280322e-07\\right )$$" ], "text/plain": [ "(5.1660971676, 1.19516280322e-07)" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sm.stats.ztest(x1, alternative=\"larger\", value=other_mean, ddof=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. descriptive statistics and tests with weights for case weights\n", "http://www.statsmodels.org/stable/generated/statsmodels.stats.weightstats.DescrStatsW.html" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d1 = sm.stats.DescrStatsW(x1)\n", "d2 = sm.stats.DescrStatsW(x2)\n", "d1" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWYAAAAUBAMAAABMlYpbAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nMqvFy5UvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFA0lEQVRIDdVXTWhcVRT+3kzm/83k1ZqCuMhQ\nhFIqJloUhGpHs1AqoSNtQI3GiFoKQpuKIQtFH4IuzdSIJKHiLKTFVR6NIYsh7VskLaXSzCZuXGQM\nxlp/qq2xte3Y8bvnvjfMTH5IIQg9ZO7cc+73fefMmXvvmwBGGneTBSxWuxloei/5QrVucWT4brFQ\ncPy1OQIK7xbRsu8JwOzeUYRRGLeBxORUldo4Mbp2FjVCsMISveSh7kJB60lQMpkDE3ngGXeOqsts\n5uQUNOsHrj0FxCoVR1DRY54jkbZKpVLy114HpvOhjFnC6TyabPM1tCB6FeYe7F+WAEqHdgGJmxoh\nWGGJXoDKt0UPEpRMIeBn4MvKLeE2DM/ijOWxgECWfT51RCAXesqeI5HngZS/FhkCHkWwPeUilsN2\n4Bt8YOMaglnsbJBnrUqH9hswohGCFZYohyygJHpaSjJ9CNwLPHeRa8sskEMio1mJPoQJSfmYCHOJ\nI4MDTPlr93QgfoWwWC9S/+JJYND9Om8uYWylDFA6tM+BP4qCEKywRDnBHVMUPS0lmcaBM+qjrGTB\nEqJlYcHMYQshq9QMxPv8NacDwRyhTWVV821gzIbaG4+vlMGvea/Lmj0EscLyc53Qer4UM43twsnV\nam4uIf4PU53gaw/6Oaa29hclt/RZOV4k6K8FrA40d06+pFDhsvk3a+5jWxwsfd+fF2rd4PWZscOu\nhzjjaJafq13r+VIqU2VHGljY9grP+GS/VSc4m0X8OiPtfE3gEY5B17gpEJVLHC/Cz61nZ9GB2acR\nswkbcwwek3kH97/pmktpDAu1bqjWHL/lIYjVLE85kdZ6npTqME4vucAutOZx3DKcOsFWB0kmJQt4\nAAf12mPy5uUSh4P5p0Q5c1TNZYSOMXAIBvvMmpEYNSsuXnQFVTtUaw6XfERi1GdByc/yT+l5QZUp\n+svhUSUS7DWGMVNU06q1ZqVmsoCPITDgVUu5Xi5xOEQyKsi1aJE1N/ciwK8jlIX/hWLEvQa05QVV\nO1Rr7gLvFo0Y+dbbUZLrHWg9T0plegiRGy5VQldSnw48qOSmDyjr5MzbG2SxW1Lzj/xe8spVucTR\nkXC7554Haw5nELgKOQA8TYP2JmC3/QYrSitqnfk1R7KAIAQrLK0MXvdaT4JQmY6yHDuV4Z3OE9dg\njER5BslSNau98Rl76SpX5RJHR2ZLnvvJ5cs3LqZyqs/RLDapK7nN5bbYbV9as88fwbAEIVhhaWWT\npWo9CYKZ1PZIpWMZhMrNjiqm1oLtCJShWMBxOYO6G3RVzeLoyDzf/LUhJLn/cpgDjqgHwX4M8Vaw\n5rmfa8X13OtzMouIRghWWFovyX2i9SQIlYl9Dlp8GIYzMQfoq1PlMyWUgWKpMzjBsQWBo5jN6JrF\nkQGDVNIz4C/gV5yzjbcKPb0I2+YX2IrodaQccxh8ttSbqpl6WwoTP2mEYIWl9aIqu9LTUpLpKxfb\nYGSx3eLunrHqFQ/iXBHCQjc7DRjdiy7CJYQuLS1oRyK4z/bWgPHKAhJdv6OJvxR6eX++X0S8a1+e\nt2VPETjgotZEh3p7KxWeQIUQrLC0Mm8GXjvU01KSKbk4kWePTr3MM/N2ulaP8/MDxAoLnfLsbli/\nczfa0JU7V1g/w+D1lV0/fFUkfwn8b8bfSHh4A7Kd3QCN9UpME7h5veA1cOk11jZ6SfXYSHO4e4z/\nW/0HQF4Ga8m+D9UAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left ( 5.15575462036, \\quad 1.26305760785e-07\\right )$$" ], "text/plain": [ "(5.15575462036, 1.26305760785e-07)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d1.ztest_mean(other_mean, alternative=\"larger\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3. class for two sample comparison (2を利用)\n", "http://www.statsmodels.org/devel/generated/statsmodels.stats.weightstats.CompareMeans.html" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "compare_means = sm.stats.CompareMeans(d1, d2)\n", "compare_means" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWYAAAAUBAMAAABMlYpbAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIkQ\nMqvFy5UvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEtklEQVRIDdVWTWhcVRg9byYzmcy8mbxaUhAX\nHYogRSHRouBCO5qNFGJG2oA2kESqpSDUVBq6qNq30ZWYqRFJS4VZWVzl0RqyGNK8RdISKs1s6sZF\nxmKUolbbRqvt2Om53/deMkkIndJsepm5734/53yHO9+9bwAri0dpRByq3Qw0fZh+c0m3GDL9sFAq\neWHsMhNKR8to2/0SYPc+XV4CrL+wenYwLTUxCat01lWU8KUP9pZKyidUdu85Z0mFqbRmzJyZhKJ+\nYuwVoKVW8yQrcSowxNNeq9UqYWwfMF2M5ewKpopocu23AZOtk4DrJokAl5C6DXsX9qANiRuKEr4I\nme8Knzpns9bxJRWstHa8hvNOgAIiee7zuUOSdamvGhjieQPIhLHmEeB5RDsyPloK2A58B8mWaXWJ\n0Pk7cALRPHbgmIt/FCXMMQeoCJ86rwIL9ZVWEyJSQCqnqNQg4oRnwpxmahZDJu79ZBh7rBPJ60xr\nGUDmf7wMDPsw2TqF+PApEeAr4M/yGAvg26K9qChhTrFjysKnzkVgqq5SSLP8jFaQqAoKdgFbGFhH\nM5AcDGNeJ6IFpjZVjea7wJh7f83dPjW/qJXZG4IKa51WPnF+dhM4Vg4irLR2tFaQ/Jfu0/zuwhDn\nzLahsuTJPhsj8ETDWMTpRGvXxF6TFa/af1Pz4P01M/l9f/HHoSIX5z1FhbU6lE+dX3KfixoxlWBP\nDJlfZ3nM5ZG8RbOD33E8xznqW7clbjSLEXjOhLEL6MTcq2hxmTbmWXeAea8Rzck79mIWo8AT7/qK\nCphTWeVT5xTQndWIqYRvHMsTQeG01UOaRYkCnsQBdb8gj6APxeBk/yVerjyjuYrYKToOwuI+N6Y5\nXrFrPt7yWe5kgAIM/Rw/hk+dTYOJKZfeoJI1ipkyzeWxNS+aiQI+xUkN9DvmGWgWg1NzToL9TqJM\nza0DiPDniOXReG/0gPcF2ovkOfG9dhRg6A9D+QKqpz6aMiKDSpkvjjxjKk/vN6OLq6A3iOJuieaf\nTTsZ02gWQz3xjsC8CGqO5xC5ATkAPE3DDZxBNOeBd6g5uwnY6QpKmbGP50L4lIoXjC8RqcQTt2rQ\nk+AZJMpoNr3BI9DvG9NoFkM9c5XA/Pzatf9+zRTMPify2MQLF+1+A/38CSyHd297kQ2y0xWUMtuU\nqnxKBbyuhaVSq2fE1I9oByJVGBSbXc6g7gZNo1kM9czzEcZGkGb/FXAZOGReBHs0W4XX05t10GPp\nPJqdefYzRniDOIJSvjT7RPnEud1JX6+r1OIBgys4+U6J5WBQ5gyOc25D5DjmclpLDJkwzAK6Am4C\nv2HWtd4r9Q0g7tpf12nm+2LlMJrJt6U0/gsynj2KbUjcUpTyJUx1w6fOw/50tq4Sz9GMs5LxAGbL\nEBR6udOA1bvgI15B7OriFTXEg8fdIAacrV1BqucPNPGfwgDvz4/Lmi0Q7PfJsjzESb7uWo0ncLyv\njGTP7qKilJk3A68S8qkz1bN3RaWhD7LLbLK6eIS5gkKXvLtXxR/cTKzalQdnaBxh8fri7//QI/XQ\nDI0T8D8Snm08fd3MC+tGNj4wTcrNG0Cb3QCORinMHltZTo/OiDi4B3WH/Eytb3sSAAAAAElFTkSu\nQmCC\n", "text/latex": [ "$$\\left ( 5.15575462011, \\quad 1.26305760954e-07\\right )$$" ], "text/plain": [ "(5.15575462011, 1.26305760954e-07)" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "compare_means.ztest_ind(alternative=\"larger\")" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## R" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "z.testはなかったので、単純に計算\n", "\n", "- http://rpy.sourceforge.net/rpy2/doc-2.4/html/interactive.html\n", "- https://www.slideshare.net/Prunus1350/5-r-14210894" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[1] 5.166097e+00 1.195163e-07\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%R -i x1 --input std -i size -i other_mean --output r2py_output\n", "\n", "Z分子 <- mean(x1) - other_mean\n", "Z分母 <- std / sqrt(size)\n", "Z統計量 <- Z分子 / Z分母\n", "p値 <- pnorm(Z統計量, lower.tail = FALSE)\n", "r2py_output <- c(Z統計量, p値)\n", "r2py_output" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "array([ 5.16609717e+00, 1.19516280e-07])" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r2py_output" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 下記を参考にscipyとの対応を確認できるようにしておく\n", "http://cse.naro.affrc.go.jp/takezawa/r-tips/r/60.html\n" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "R Help on ‘dnorm’Normal package:stats R Documentation\n", "\n", "_\bT_\bh_\be _\bN_\bo_\br_\bm_\ba_\bl _\bD_\bi_\bs_\bt_\br_\bi_\bb_\bu_\bt_\bi_\bo_\bn\n", "\n", "_\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn:\n", "\n", " Density, distribution function, quantile function and random\n", " generation for the normal distribution with mean equal to ‘mean’\n", " and standard deviation equal to ‘sd’.\n", "\n", "_\bU_\bs_\ba_\bg_\be:\n", "\n", " dnorm(x, mean = 0, sd = 1, log = FALSE)\n", " pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)\n", " qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)\n", " rnorm(n, mean = 0, sd = 1)\n", " \n", "_\bA_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs:\n", "\n", " x, q: vector of quantiles.\n", "\n", " p: vector of probabilities.\n", "\n", " n: number of observations. If ‘length(n) > 1’, the length is\n", " taken to be the number required.\n", "\n", " mean: vector of means.\n", "\n", " sd: vector of standard deviations.\n", "\n", "log, log.p: logical; if TRUE, probabilities p are given as log(p).\n", "\n", "lower.tail: logical; if TRUE (default), probabilities are P[X <= x]\n", " otherwise, P[X > x].\n", "\n", "_\bD_\be_\bt_\ba_\bi_\bl_\bs:\n", "\n", " If ‘mean’ or ‘sd’ are not specified they assume the default\n", " values of ‘0’ and ‘1’, respectively.\n", "\n", " The normal distribution has density\n", "\n", " f(x) = 1/(sqrt(2 pi) sigma) e^-((x - mu)^2/(2 sigma^2)) \n", " \n", " where mu is the mean of the distribution and sigma the standard\n", " deviation.\n", "\n", "_\bV_\ba_\bl_\bu_\be:\n", "\n", " ‘dnorm’ gives the density, ‘pnorm’ gives the distribution\n", " function, ‘qnorm’ gives the quantile function, and ‘rnorm’\n", " generates random deviates.\n", "\n", " The length of the result is determined by ‘n’ for ‘rnorm’, and\n", " is the maximum of the lengths of the numerical arguments for the\n", " other functions.\n", "\n", " The numerical arguments other than ‘n’ are recycled to the\n", " length of the result. Only the first elements of the logical\n", " arguments are used.\n", "\n", " For ‘sd = 0’ this gives the limit as ‘sd’ decreases to 0, a\n", " point mass at ‘mu’. ‘sd < 0’ is an error and returns ‘NaN’.\n", "\n", "_\bS_\bo_\bu_\br_\bc_\be:\n", "\n", " For ‘pnorm’, based on\n", "\n", " Cody, W. D. (1993) Algorithm 715: SPECFUN - A portable FORTRAN\n", " package of special function routines and test drivers. _ACM\n", " Transactions on Mathematical Software_ *19*, 22-32.\n", "\n", " For ‘qnorm’, the code is a C translation of\n", "\n", " Wichura, M. J. (1988) Algorithm AS 241: The percentage points of\n", " the normal distribution. _Applied Statistics_, *37*, 477-484.\n", "\n", " which provides precise results up to about 16 digits.\n", "\n", " For ‘rnorm’, see RNG for how to select the algorithm and for\n", " references to the supplied methods.\n", "\n", "_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\bs:\n", "\n", " Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S\n", " Language_. Wadsworth & Brooks/Cole.\n", "\n", " Johnson, N. L., Kotz, S. and Balakrishnan, N. (1995) _Continuous\n", " Univariate Distributions_, volume 1, chapter 13. Wiley, New York.\n", "\n", "_\bS_\be_\be _\bA_\bl_\bs_\bo:\n", "\n", " Distributions for other standard distributions, including\n", " ‘dlnorm’ for the _Log_normal distribution.\n", "\n", "_\bE_\bx_\ba_\bm_\bp_\bl_\be_\bs:\n", "\n", " require(graphics)\n", " \n", " dnorm(0) == 1/sqrt(2*pi)\n", " dnorm(1) == exp(-1/2)/sqrt(2*pi)\n", " dnorm(1) == 1/sqrt(2*pi*exp(1))\n", " \n", " ## Using \"log = TRUE\" for an extended range :\n", " par(mfrow = c(2,1))\n", " plot(function(x) dnorm(x, log = TRUE), -60, 50,\n", " main = \"log { Normal density }\")\n", " curve(log(dnorm(x)), add = TRUE, col = \"red\", lwd = 2)\n", " mtext(\"dnorm(x, log=TRUE)\", adj = 0)\n", " mtext(\"log(dnorm(x))\", col = \"red\", adj = 1)\n", " \n", " plot(function(x) pnorm(x, log.p = TRUE), -50, 10,\n", " main = \"log { Normal Cumulative }\")\n", " curve(log(pnorm(x)), add = TRUE, col = \"red\", lwd = 2)\n", " mtext(\"pnorm(x, log=TRUE)\", adj = 0)\n", " mtext(\"log(pnorm(x))\", col = \"red\", adj = 1)\n", " \n", " ## if you want the so-called 'error function'\n", " erf <- function(x) 2 * pnorm(x * sqrt(2)) - 1\n", " ## (see Abramowitz and Stegun 29.2.29)\n", " ## and the so-called 'complementary error function'\n", " erfc <- function(x) 2 * pnorm(x * sqrt(2), lower = FALSE)\n", " ## and the inverses\n", " erfinv <- function (x) qnorm((1 + x)/2)/sqrt(2)\n", " erfcinv <- function (x) qnorm(x/2, lower = FALSE)/sqrt(2)\n", " \n" ] } ], "source": [ "%%R\n", "\n", "# for help\n", "?dnorm\n" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "$pdf_dnorm\n", "[1] 6.263299e-07\n", "\n", "$cdf_pnrom_T\n", "[1] 0.9999999\n", "\n", "$cdf_pnrom_F\n", "[1] 1.17047e-07\n", "\n", "$quantile_qnorm_T\n", "[1] -1.644854\n", "\n", "$quantile_qnorm_F\n", "[1] 1.644854\n", "\n", "$random_variable_rnorm\n", " [1] 17.629543 1.737666 18.297993 17.724293 9.146414 -10.399500\n", " [7] -4.285670 2.052796 4.942328 29.046534\n", "\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%R\n", "norm_list <- list()\n", "\n", "set.seed(0)\n", "\n", "norm_list[[\"pdf_dnorm\"]] <- dnorm(5.17)\n", "norm_list[[\"cdf_pnrom_T\"]] <- pnorm(5.17, lower.tail = T)\n", "norm_list[[\"cdf_pnrom_F\"]] <- pnorm(5.17, lower.tail = F)\n", "norm_list[[\"quantile_qnorm_T\"]] <- qnorm(0.05, lower.tail = T)\n", "norm_list[[\"quantile_qnorm_F\"]] <- qnorm(0.05, lower.tail = F)\n", "norm_list[[\"random_variable_rnorm\"]] <- rnorm(n=10, mean=5, sd=10)\n", "\n", "norm_list\n", "\n", "# dnorm(x, mean = 0, sd = 1, log = FALSE)\n", "# pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)\n", "# qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)\n", "# rnorm(n, mean = 0, sd = 1)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python [default]", "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.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }