{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\tHiroshi TAKEMOTO\n", "\t(take.pwave@gmail.com)\n", "\t\n", "\t

Sageでグラフを再現してみよう:データ解析のための統計モデリング入門第2章

\n", "\t

\n", "\t\tこの企画は、雑誌や教科書にでているグラフをSageで再現し、\n", "\t\tグラフの意味を理解すると共にSageの使い方をマスターすることを目的としています。\n", "\t

\n", "\t

\n", "\t\t今回は、データ解析のための統計モデリング入門\n", "\t\t(以下、久保本と書きます)\n", "\t\tの第2章の例題をSageを使って再現してみます。久保氏のブログは、WinBUGSの使い方などでよく拝見していましたが、\n", "\t\t「データ解析のための統計モデリング入門」は自然科学を学ぶすべての人に薦めたい一冊です。まさに目から鱗の塊です。\n", "\t

\n", "\t

\n", "\t\t数式処理システムSageのノートブックは、計算結果を表示するだけではなく、実際に動かすことができるの大きな特徴です。\n", "\t\tこの機会にSageを分析に活用してみてはいかがでしょう。\n", "\t

\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "

お詫び

\n", "

\n", "これまで、Rのggplot2をpythonに移植しているggplotを前面にデータの可視化に使ってきましたが、\n", "ヒストグラムの品質が改善されないため、可視化は以下の様な方向で行うことにします。\n", "

\n", "

\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

前準備

\n", "\t

\n", "\t\t最初に必要なライブラリーやパッケージをロードしておきます。jupyter用に新しくなったRUtil.pyも使います。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%HTML\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "seabonをインポートするだけで、sageのプロットの様相(スタイル)ががらりと変わります。" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# RとPandasのデータフレームを相互に変換する関数を読み込む\n", "# Rの必要なライブラリ\n", "r('library(ggplot2)')\n", "r('library(jsonlite)')\n", "\n", "# python用のパッケージ\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt \n", "import seaborn as sns\n", "%matplotlib inline\n", "\n", "# jupyter用のdisplayメソッド\n", "from IPython.display import display, Latex, HTML, Math, JSON\n", "# sageユーティリティ\n", "load('script/sage_util.py')\n", "# Rユーティリティ\n", "load('script/RUtil.py')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

例題のデータ

\n", "\t

\n", "\t\t2章の例題に使われているデータは、架空の植物の第i番目の個体の種子数$y_i$を扱っています。\n", "\t\t本の図2.1を以下に引用します。\n", "\t

\n", "\t

\n", "\t\t\n", "\t

\n", "\t

\n", "\t\t2章のデータは、ネット公開されており、本のサポートサイトからダウンロードできます。\n", "\t\tここでは、dataディレクトリにdata.RDataをセットし、このノートブックで参照できるようにしました。\t\n", "\t

\n", "\t

\n", "\t\tデータをロードしたら、summary関数とvar関数を使ってデータの素性を確認します。\n", "\t\tここで、確認することは、以下の3項目です。\n", "\t\t

\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Min. 1st Qu. Median Mean 3rd Qu. Max. \n", " 0.00 2.00 3.00 3.56 4.75 7.00 \n", "[1] 2.986122\n" ] } ], "source": [ "# 2章のデータdata.RDataをダウンロードし、Rにロードする\n", "r('load(\"data/data.RData\")')\n", "# summaryで平均と分散が大体同じであることがポアソン分布の特徴\n", "print r('summary(data)')\n", "print r('var(data)')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

データの可視化

\n", "\t

\n", "\t\tデータの分布を見るには、Rのtable関数を使って度数分布を計算すると便利です。またグラフに表示するときには、hist関数を使用します。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "data\n", " 0 1 2 3 4 5 6 7 \n", " 1 3 11 12 10 5 4 4 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 度数分布を計算\n", "r('table(data)')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfgAAAH4CAQAAAAMITf0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dE\nAACqjSMyAAAACXBIWXMAAABIAAAASABGyWs+AAATR0lEQVR42u3dQWsjaX7H8d9/aFgCG5bqOeyw\nEBqqCQQykDTVh2Uveym/BHnfgXzOIdgvQSavwHoHa70E1SG5u5JrWOJi9zaBwXUJ7Nz+OUiyVbLc\n020/7qek//cjZsYqa0pPufvrkkpSPeYCEMU3uQcA4OsheCAQggcCIXggEIIHAiF4IBCCBwIheCAQ\nggcCIXggEIIHAiF4IBCCBwIheCAQggcCIXggEIIHAiF4IBCCBwIheCAQggcCIXggEIIHAnmTewD4\nNKslbx6+Vuv99rJxsEqFWu93lhaq1Hube3R4YExEMW7mktvD1zrxZnvZ4LZTlZp799XHONP5amQ7\ny2st1fjJWMYJ9vCH6fKJ5RPVavT1Q6okXejz9+S5xgmCP2RW6FyVejU+X+83pYl13tlUtQq1D/tR\nO1etVgtN1HhjM3Vqda5Lb63UVJV6tZp7b6Wm6tRrol5zSVOVWvh8cL+Dta/vt1Sl+z38+t7ufwVs\n34cmW+Mc3Hfun2cIzmXUF7lcs/XF5apXy1wqdCfXje7kunZptr5e6er+f79T5XLdL7mVa+aS60a3\nctXrtawuVy7V8vsld/dfTbZGtLP2+/ud3t/i+v77ruX9SNf3sTXOnfvm8pX+PnEZ7+XRgofga7mW\nLpeu1/9dylWrkutOpUszrX4VrJYUKnSjTfCumWoVmq6XFFtrdVUq7n85zFb/XY/n0do393t/i1qu\n2/t7W7oe3cf69rvLubz+hZflDsHJ+jLUS6rtxmaaDw6MTaT1Q/lLSfX6n7n33m89++/9whvvfa63\nam2m6601NN56r07S49cCHq99Vy1p4b33WqwW7L2PTyzH6+E5/AG4f1luuLS1U000UaVza3Xy+Dmw\n9yYVWv2z8nCb9fNrK3WjQq2avfF+alSbtT/tZ+7j+feN52IPf7CsVK8zvdWZOlWq7r/RaR2iVetr\n/WbJnrCmKnThH5888r/r8dp3PfxS2dzbU/fxpfeNF2MPf7gmmqnR5TqwTWaV/qheU+vV6lzSQtJC\nM02tV6fp3jVVVj/xncc263pY+75bnJt27m33Piprv/i+8XK5DyJw+fRF/nA4S67hUfrl/c1mrvVh\ntNVhu83R7/Wxb00317U5aLdcf2dz2yvdyVVtHQrcHFobHLTb+j8e1j44aLdzb8s997E7zvXy3D/r\nCBfeaXfQrFIhqbt/tX395tv1V93Du9msVKlepa516ReDdTzjDbC7a3/0/VLl9jp37+P+TcK8+fYr\nI/gArNKNep1JOlelU1+8eJU4UAQfgk11rlJSp7lziCwwggcC4WU5IBCCBwIheCAQggcCIXggEIIH\nAiF4IBCCBwIheCAQggcCIXggEIIHAiF4IBCCBwIheCAQggcCIXggEIIHAiF4IBCCBwIheCAQggcC\nIXggEIIHAiF4IBCCBwIheCAQggcCSRK8zczNbba+xvyUwEglCN4qTfReb1VvkgcwTin28BMtvPNe\np5pYkXuDADwtRfCdSknyTguxjwdGLMkTbruRNPe5ZEtJtVvuzQKwz5sUK/GPVq+/OrGp2se3sFr1\n1tVf6c9+mXvTc7Pp6pFRIo03ubcI4/eVDqlbOfjL/UG/8X/Jvem52VLpfulVKvwi9xZh/BLs4Xdi\nlvR4X+Oduq3/Q/o294aPQbp9smnwCAp4QoqH9JVmO8nzHB4YpQRH6X2hj5LbwyX3RgHYL8k77bxP\n+GwUwKtJ9F56DhgBh4APzwCBEDwQCMEDgRA8EAjBA4EQPBAIwQOBEDwQCMEDgRA8EAjBA4EQPBAI\nwQOBEDwQCMEDgRA8EAjBA4EQPBAIwQOBEDwQCMEDgRA8EEiSySSjsErX21NmvdDvcm8P4iH4L1Fo\nke4M/PZj7s1BPDykBwIheCAQggcCIXggEIIHAiF4IBCCBwIheCAQggcCIXggEIIHAiF4IBCCBwIh\neCAQggcCIXggEIIHAiF4IBCCBwIheCAQggcCSRK81XZtbm5ud3ZlZe6NArBfguCt1LUavXdz04l6\n3ViRe7MA7JPivPRTzX2++tJbtVaoUpN7wwA8luIhfavqYZ9uheqEs7MASCjBHt4XVuvWWrWSKlW6\ndIIHRinJVFN+ZnPVKiTN1e7L3UptH8r7oF/k3vAj80u9szrZ2npvc28QXkeiueV8tX9/Wqntv47v\n9FPuDT8yf6/f6i/J1lbpJPcG4XV8pckkvdk+jGe10u2NsPJDwmkul7k3Bq8lQfA7D9clOcfogVFK\nsYevNNtJ3nJvFoB9Erws5wt9lNweLrk3CsB+Sd5a670uc28IgJ+X6MMz6Q4YAXg9fFoOCITggUAI\nHgiE4IFACB4IhOCBQAgeCITggUAIHgiE4IFACB4IhOCBQAgeCITggUAIHgiE4IFACB4IhOCBQAge\nCITggUAIHgiE4IFACB4IhOCBQAgeCITggUAIHgiE4IFACB4IhOCBQAgeCITggUAIHgiE4IFACB4I\nhOCBQAgeCITggUAIHgiE4IFACB4IhOCBQAgeCITggUAIHgiE4IFACB4IhOCBQJIEbxNb2rWVtjS3\nO5vm3igA+yUI3irNNFerG7VuOtHMitybBWCfNwnWMdHCF5JN/ULy1lpVaoY3sakmW1ff6k+5NxyI\nKEXwnWrJCpVWeSupUL97E59r/nDNatW5NxyIKMFDep+rtFvd6lJLm9lSvbe5NwvAPin28PKPVqvz\nzhrVarb35QDGJEnwkjfrfzcvXROA18Pr8EAgBA8EQvBAIAQPBELwQCAEDwRC8EAgBA8EQvBAIAQP\nBELwQCAEDwRC8EAgBA8EQvBAIAQPBELwQCAEDwRC8EAgBA8EQvBAIAQPBELwQCAEDwQyCN4qO2fm\nV+B4DffwvUrd2rVNnrk2AKM2CN47P9N7NZrYnV1ZlXtwANJ69Bzee7Xq1KvWtd1amXuAANIZPocv\nbGa3upZ06u/9vRaa5h4ggHSGs8eWkk63Zndn4mfgqAyC99akSq1VmmjunXe5hwcgpeFD+lLXKiR1\nkpa5hwYgteFBu4kWfil57xfqrM49OABp7b4O//C2m0J97sEBSGv4HH5uN7ZUK6lSv3XwDsBR2Hkd\n3j9qIUla+EnuoQFI7c3uAuelOOBo7QRvM92/oZZ9PHBsBsHbRLUucg8JwGvZfadd403uIQF4LcOD\ndnNVfB4eOF67e/hSd7bex/McHjg2w+A7neUeEIDXM3zjTS+ewQNHbOeNNza1O3Or7ZbTXAHHZ+ck\nljrXR11KOtOMw3fAsRnu4WstVp+B90adOKcdcGSGwW9HXvJpOeDYDM9au1BvN6o0sVs1fFoOODY7\n76X3U5uoknTGO+6A47M788xSU1WqdG5fcIorO7er+yP8dxzfB8Zq9403l+uvan32Ca6s1lSnVmim\nE2+t1pU1zvN/YISeeuNNY9dWfeaz+FoLb61W663kjXWqdt/AY8NfIO/0U+4NByJ68+R3Cn3u6/AL\nXVmhVoUV3luhUo9Pb90NfgV80G9ybzgQ0fDz8JVm6y8LSZ95lN5ba3SrVr1urFO5eS1/cJtu+5eA\nSd/m3nAgoqeew0vt5z8P9wubq1apVp0apq8AxirRh2e8Y1oqYPyGL8vV5juX2XNXDGB8hg/pWzVa\nqJE0VemnuQcHIK3dqaZan3vnnV+oYKop4NjsfB5e5f1XfDgWODrDh/QLTe1ajaSJxLvpgWMz/LRc\nrxO1qlWrEaewBI7O7qfl+q1X4gEcGc5pBwTCOe2AQDinHRAI57QDAuGcdkAgnNMOCGT4efipSr/Q\nIvegALyO4XP4RrWVz1wTgNEbPqQvJN0yXTRwrHbPeHORe0AAXs998LbUpTdqrOZwHXCsvnm05Asm\noABwWL55+SoAHAqCBwLZPmhXmSRpc2ornssDx2Y7+M0ZajfP4i334ACkdR88r7oDx+/Ny1eBo/O7\nL5ks/GeUOuVjWONB8Hjsr+ke79mM8x+PCUfpgUAIHgiE4IFACB4IhOCBQAgeCITggUAIHgiE4IFA\nCB4IhOCBQAgeCITggUAIHgiE4IFACB4IhOCBQAgeCITggUAIHgiE4IFACB4IhOCBQBIHv5mXDsAY\npd7DM7s8MGIJgreZ+eYirf4NYIwSTDXlFyZVOvNOMve9c85aqXLr6gf9IveG4yv5lT4knIb4O/2Q\nbmURJ0RPMrecX1ita7v0xZM3KbX97P6dfsq94fhK/ll/p28Tret7/aP+mGxkE73P8yPJKdFkkt7Y\nia6ePmTnjbZ+m1otDu7F8R/+b2lWZP+qb/0i1bCsyvUDySnZQTvv/VSdAj5IAg5H0qP0fplummEA\n6fHGGyAQggcCIXggEIIHAiF4IBCCBwIheCAQggcCIXggEIIHAiF4IBCCBwIheCAQggcCIXggEIIH\nAiF4IBCCBwIheCAQggcCIXggEIIHAiF4IBCCBwJJNNXUeCWd1upd7q0BXubog1etXm2idf1B3+fe\nHOAljj94qU01LbB9IHgcNp7DA4EQPBAIwQOBEDwQCMEDgRA8EAjBA4EQPBAIwQOBEDwQCMEDgRA8\nEAjBA4EQPBAIwQOBEDwQCMEDgRA8EAjBA4EQPBAIwQOBEDwQCMEDgRA8EEiS4G1mbm6z9TXPvVEA\n9ksQvFWa6L3eqt4kD2CcUkw1NdHCO8lOtbRL7/fdxKaabF19qz/l3nAgohTBd6v5Wb2zhWY623cT\nn2v+cC3pjK4APluCh/Q+V2k3NpX8QqUtc28SgKckmT3WP9p6j+0nNk02OTOAxBJNF/0wIbPPX7Ie\nAK+J1+GBQAgeCITggUAIHgiE4IFACB4IhOCBQAgeCITggUAIHgiE4IFACB4IhOCBQAgeCITggUAI\nHgiE4IFACB4IhOCBQAgeCITggUAIHgiE4IFAEp2XPi1LORHVu9xbA4zHKIPXlRbJ1vVb/aeal68G\nOAbjDL7zi1Srst/n3hhgPHgODwRC8EAgBA8EQvBAIAQPBELwQCAEDwRC8EAgBA8EQvBAIAQPBELw\nQCAEDwRC8EAgBA8EQvBAIAQPBELwQCAEDwRC8EAgBA8EQvBAIAQPBELwQCBJgrfars3Nze3OrqzM\nvVEA9ksQvJW6VqP3bm46Ua8bK3JvFoB9Ukw1NdXc56svvVVrhard2dys1vYEke/00yfXWNos2RZ+\np9/bt4nW9b2+Sziyv0m4rvGObLw//39KuK5fS/rfZGvrNj2lZ/7yVUw01an362uFbnTi3c5tSg0f\n6P+P//kTa6yU7jHCd/oh2brSru3XCf+K/FLS/41yZPz8v1zvbbJ17UgQvGRXmqhVK6lSpUu/fK3h\nAniJJMFLVqlWIalVu7t3BzAWiYIHcAh4HR4IhOCBQAgeCITggUAIHgiE4IFACB4IhOCBQAgeCCTF\np+Uysf/Sj7nH8IR/0H/nHsJef6u3+kvuQRzYyN5p6v+eexDpHHDw+tFPcg9hP1uOc2RWq/aL3KM4\nsJHNDrqRR3hIDwRC8EAgBA8EQvBAIAQPBELwQCAHfMYbKzYnzhwbRnY8IxvruJ69PYcbPIAvxUN6\nIBCCBwIheCAQggcCIXggEIIHAiF4IJCDDd4mNrPy5et5hZFNbWZV7lE8Obp0UySnHFVlM6tfvp7k\n4xr1n+VzHGjwdqWppJvx/SWxG9WSrkca1kznucewd1RXkq5sZGNb/1kubZJ7JAn5AV5U6U6FS1Nd\n5x7Lzshq3bhcKuW5x7J3dMvxjUvl+k+z0lXusez8tG5dLk20zD2WdJfD3MPXar2X1Gh8v3vnkqQR\nvv/aCs10lnsUe9RqJavV+bhG16mwQlI5xj/N5zrM83UVaiXJO8s9kh3eSJKVutZl7rE8cqXL8f3E\nJJWSlupV2YXPcw/mgXc21511KvQx91jSOcw9/KjZTEs1Yzslo52r90XuUTyh1Imf6ESjOu5htab6\n6O8111XusaRzmMG3qiTJqvE92LKlCn0cW+6Sak3NzSXzkR3q7NR5L3mrIvdQBmrNvZX8QuP6eb3I\nwQZvhaSJRrbPsqnkZ2P8BLWfuLm5SW6rJx6j0ai0QrJ6ZL+++/HuVp7vIJ/De2eXurFGk9E9uypV\nb04x4CN8ujxG3tlCN9apHNkhxblqu1GvSuN7vPZsB3sCDCtVro/V4+CN9U/TKhVjHNcLtuhQgwfw\n5Q7zOTyAZyF4IBCCBwIheCAQggcCIXggEIIHAiF4IBCCBwIheCAQggcCIXggEIIHAiF4IBCCBwIh\neCAQggcCIXggEIKHJMmWuUeAr4Fz2kGSZL57lt3HS3D42MMHZ4VNbWrF+uvJZnpkqySrh8tw+Ag+\nNCu0VKVS15Kk5Xqq66mkSlpNlry1DAePh/Sh2bkqP5Vsqiu918QvJZuq9tPVQ3orh8tw6A5y5hkk\nU68n62ok76yxmQrV6jbf3rcMh4yH9LFtzalitZbqtNie8GnfMhwygo+t1USSNNVqttS5N4O5Uvct\nwwHjIX1sc03sRr16SQtdW6FSvUqrvVFvs0fLcOA4aBee1dIqZStUqfPOanXeWanSm+Gy3GPFSxE8\nEAjP4YFACB4IhOCBQAgeCITggUAIHgiE4IFACB4IhOCBQAgeCITggUAIHgiE4IFACB4IhOCBQAge\nCITggUD+HzAor1kz7KdmAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTE2VDAxOjUwOjQwKzAw\nOjAwvgpXngAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0xNlQwMTo1MDo0MCswMDowMM9X7yIA\nAAAgdEVYdHBkZjpIaVJlc0JvdW5kaW5nQm94ADUwNHg1MDQrMCswpXe8owAAABR0RVh0cGRmOlZl\ncnNpb24AUERGLTEuNCAcRzp4AAAASnRFWHRzaWduYXR1cmUAMTU2ZmRiNmMyNWUxNjE0NTM2Mjk1\nZWYyYWNhZGZiOGFiOWU5ZTdhYjVlMTc5NzQxMmFjYzIyZTBiN2YyMzAzYTJhNwkAAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Rのhistを使ってヒストグラムをプロットする\n", "graph = preGraph(\"images/ch2_fig2.2-R.pdf\")\n", "r('p <- hist(data, breaks = seq(-0.5, 9.5, 1))')\n", "postGraph(graph)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

Pandasを使って同様の処理に挑戦

\n", "\t

\n", "\t\tRのライブラリはとても豊富で実績もありますが、個人的には関数の定義が分かりずらいのであまり好きではありません。\n", "\t

\n", "\t

\n", "\t\tそこで、SageにPandasライブラリをインストールして、これを使って同じような処理をしてみました。\n", "\t

\n", "\t

\n", "\t\tRから配列データを取り出すには、sageobj関数を使います。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 同様の処理をPandasを使ってやってみます\n", "# rからSageにデータを変換\n", "data = sageobj(r('data'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

データフレームに変換

\n", "\t

\n", "\t\tRから取り込んだ2章のデータをPandasのデータフレームにします。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# ggplotでプロットできるようにDataFrameにする\n", "orgData = pd.DataFrame(data, columns = ['data'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

\n", "\t\tデータフレームにしたorgDataからRのsummaryと同様の情報をdescribeを使って得ることができます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
data
count50.00000
mean3.56000
std1.72804
min0.00000
25%2.00000
50%3.00000
75%4.75000
max7.00000
\n", "
" ], "text/plain": [ " data\n", "count 50.00000\n", "mean 3.56000\n", "std 1.72804\n", "min 0.00000\n", "25% 2.00000\n", "50% 3.00000\n", "75% 4.75000\n", "max 7.00000" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# RのsummaryのようにPandasのDataFrameの情報を出力するには、describeを使います\n", "orgData.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

Sageのヒストグラムを表示

\n", "\t

\n", "\t\tようやくSageにもhistogram関数が用意されたので、これを使ってみます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n2e84cfnb3/6mr371q+2mWZYly7KUmZnpU6rYbdiwQXV1dRo0aJAKCgp09913y3Vd9evXT3/+85/9\njheT8vLyDp9W+/TTT9WzZ08VFxf7lCp2AwcOlOM4Ki8vN9MOHz6sHj16pEX+Nvv371d1dbW+853v\ndG9GHl70vuGl46ePWltb3eHDh7tr1671O0qXnD171i0qKnKff/55t6Ghwa2rq3O/+93vuvfff7/f\n0WJy5swZ98svvzT/9uzZ41qW5R47dsxtbGz0O15MvvzySzcnJ8ddtmyZ29TU5FZWVrolJSXunDlz\n/I4Ws1/+8pfu7bff7h48eNCtra117733XvfJJ5/0O1Zc/vCHP7gFBQXdng+l4IFevXq5wWDQzcjI\ncDMyMszP6WDnzp2ubdtuMBg0udtuq6ur/Y4XkwMHDrj333+/m52d7fbv398tLS11jx075nesLjly\n5EhafiR1586d7tixY92cnBy3oKDA/dWvfuU2NTX5HStmTU1N7uzZs938/HzXcRx3+vTpbjgc9jtW\nXJYuXeqOGDGi2/NhPAUAgME1BQCAQSkAAAxKAQBgUAoAAINSAAAYlAIAwKAUAAAGpQAAMCgFAIBB\nKQAADEoBAGD8HxLQt1cN68VDAAAAAElFTkSuQmCC\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hist_plt = histogram(orgData.data, bins= 8, figsize=4)\n", "hist_plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

ポアソン分布の表示

\n", "\t

\n", "\t\tデータのsummaryで平均値と分散が同じ値を示すことからデータ分布をポアソン分布と推定しています。\n", "\t

\n", "\t

\n", "\t\tポアソン分布では、データの平均がポアソン分布のλの値になることから、データの平均3.56のポアソン分布\n", "\t\tを表示してみます。\n", "\t

\n", "\t

\n", "\t\tyに0から9の値をセットし、r.dpoisでSageからRのdpoisを使って、Yに対するポアソン密度を計算し、その値(n())を浮動小数に変換して\n", "\t\tprobにセットします。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y = range(10); y" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[1.4219412357092251,\n", " 5.0621107991248495,\n", " 9.0105572224422,\n", " 10.69252790396475,\n", " 9.51634983452865,\n", " 6.7756410821844,\n", " 4.02021370876274,\n", " 2.0445658290279103,\n", " 0.90983179391742,\n", " 0.35988902070511203]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# dpoisの戻り値が複素数になっているので、floatで浮動小数に変換し、50個の場合の確率にする\n", "prob = [50*float(sageobj(r.dpois(v, 3.56))) for v in y]; prob" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

ポアソン分布をプロットする

\n", "\t

\n", "\t\tSageのlist_plotを使ってλ=3.56に対するポアソン分布をプロットします。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Sage版 Fig. 2.4\n", "list_plt = list_plot(zip(y, prob), rgbcolor='red', zorder=2, figsize=4)\n", "list_plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "

\n", "sageのグラフの重ね合わせ機能を使って、 ヒストグラムとポアソン分布を重ねて表示してみます。\n", "デフォルのままだとlist_plotの結果がヒストグラムに隠れてしまいます。\n", "

\n", "

\n", "そこで、list_plotの引数にzorderで表示順序を指定(大きい方が前面に表示されます)します。\n", "

\n", "" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 2 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "(hist_plt+list_plt).show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "

\n", "同様の処理をpandasのplot機能で試してみました。pandasではx軸の情報がplot関数の戻り値に返されるので、\n", "これを重ねるplotのaxにセットすることで、図の重ね合わせができるようになります。\n", "

\n", "" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# yとprobからデータフレームを作る\n", "# pandasのplot機能を使用\n", "df = pd.DataFrame(zip(y, prob), columns = ['y', 'prob'])\n", "ax = orgData.data.hist(bins=8)\n", "scatter = df.plot(kind='scatter', x='y', y='prob', color='red', zorder=2, ax=ax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

ポアソン分布の特徴

\n", "\t

\n", "\t\tポアソン分布がλを変えることでどのように分布が変わるのか、見てみましょう。\n", "\t\tSageのGraphisもグラフの重ね合わせたggplot同様にともて簡単です。\n", "\t

\n", "\t

\n", "\t\tですから、ggplotとSageの相性もとても良いのです。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# ポアソン関数p(y, λ)を定義\n", "def p(y, lam):\n", " return lam^y*e^(-lam)/factorial(y)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 3 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 様々な平均(λ)のポアソン分布\n", "# Fig. 2.6\n", "g = Graphics()\n", "for lam, cls in [(3.5, 'red'), (7.7, 'blue'), (15.1, 'green')]:\n", " g = g + list_plot([p(y, lam) for y in range(20)], color=cls, figsize=4)\n", "g.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

ポアソン分布の最尤推定

\n", "\t

\n", "\t\t尤度を「あてはまりの良さ」であり、L(λ)と書きます。ポアソン分布の尤度は、以下の式で与えられます。\n", "$$\n", "\tL(\\lambda) = \\prod_{i} p(y_i | \\lambda) = \\prod_{i} \\frac{\\lambda^{y_i} exp(-\\lambda)}{y_i !}\n", "$$\n", "\t

\n", "\t

\n", "\t\tL(λ) の対数とったものを対数尤度と呼び、上記の定義から以下のように表されます。\n", "$$\n", "\tlog L(\\lambda) = \\sum_{i} \\left( y_i log \\lambda - \\lambda - \\sum_{k}^{y_i} log k \\right)\n", "$$\n", "\t

\n", "\t

\n", "\t\tこのL(λ)が最大になるλは、L(λ)をλで偏微分することで求まります。\n", "$$\n", "\t\t\\frac{\\partial log L(\\lambda)}{\\partial \\lambda} = \\sum_i \\left\\{ \\frac{y_i}{\\lambda} - 1 \\right \\} = \\frac{1}{\\lambda} \\sum_i y_i - k = 0\n", "$$\t\t\n", "\t\tこの結果は、データの標本平均$\\hat{\\lambda}$となり、例題のデータに当てはめると以下の様になります。\n", "$$\n", "\t\t\\hat{\\lambda} = \\frac{1}{50} \\sum_i y_i = データの標本平均 = 3.56\n", "$$\n", "\t

\n", "\t

\n", "\t\tこの式を例題のデータに対して、λ = 3.6としてその値の和をとると、図2.7のlogL = -97.3の値を得ます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[1] -97.25516" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# lambda=3.6の対数尤度を計算してみる。本の図2.7のlog Lと同じ値であることを確認\n", "orgData.data.apply(lambda y : r.dpois(y, 3.6, log=True)).sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

例題データの対数尤度を計算する関数logLを定義

\n", "\t

\n", "\t\tそこで、例題データに対する対数尤度を計算するlogLを以下のように定義し、\n", "\t\t対数尤度が最大になるようなλを求めてみます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 対数尤度の計算\n", "def logL(m):\n", " return sageobj(orgData.data.apply(lambda y : r.dpois(y, m, log=True)).sum())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

\n", "\t\t確認のため、 今度は$\\lambda=2.0$の対数尤度は、logL = -121.9と一致します。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-121.881181787\n" ] } ], "source": [ "# 関数の確認、今度はlambda=2の値でチェック\n", "print logL(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

例題の最尤推定値

\n", "\t

\n", "\t\tλの最尤推定値をグラフから求めてみます。λ=2.0から5.0を0.1刻みで計算してみます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# グラフから最大となる対数尤度を求める(少し時間が掛かる)\n", "lams = np.arange(2.0, 5.0, 0.1)\n", "Ls = [logL(x) for x in lams]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

\n", "\t\t結果は、以下の様になり、標本の平均値3.56近辺で最大になっていることがわかります。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAECCAYAAAARlssoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3X14U/X9//HnyW2TYkuLLXcOAVGUm+8Ap+BEUea40cmQ\ne7EiCIUV7xFFFJwKAm5MUXEiE4FRFVBQ1A1BlE3nFBgbTAT0x2Si4rgppYUmvUlyfn90ZqK9T9ok\np6/HdfUq5iT0/e6RvHI+n3M+xzBN00RERASwxboAERGJHwoFEREJUyiIiEiYQkFERMIUCiIiEqZQ\nEBGRMIWCiIiEKRRERCRMoSAiImEKBRERCVMoAAcOHGDIkCGcfvrptGzZknHjxlFYWBjrsmqkprU/\n+OCDOBwOvF4vXq8Xj8eD1+vlyJEjMai6bnbu3MkVV1xB06ZNadmyJaNGjeLQoUOxLqtGalq7FfbT\nN+644w5stsR8i6mqdivto4ok5h6Lsquvvpr09HS++OILtm/fzscff8zUqVNjXVaN1Kb2MWPG4PP5\n8Pl8+P1+fD4fGRkZDVxx3ZSWltK/f3/69u3LkSNH2LVrF4cOHWLy5MmxLq1ata09kffTN3bs2MGK\nFSswDCPWpdRaTWq3wj6qTKMPhYKCAi644ALmzp2Lx+OhVatW3HDDDbz77ruxLq1aiVx7bfl8PubM\nmcM999yD0+mkWbNmDBkyhF27dsW6tGolcu11YZomOTk53HnnnbEupdYSufZoafShkJqayrPPPntK\nyh84cIDWrVvHsKqaqW3tO3fu5OKLLyY1NZWuXbvy1ltvNVSpEWvatCk33nhj+JD+k08+YdmyZYwa\nNSrGlVWvtrUn8n4CWLRoER6Ph9GjR8e6lFqrae2Jvo+qZMoptm3bZnq9XvOdd96JdSm1VlXtzz77\nrDlixAjzs88+M/1+v/nYY4+ZLpfL/PTTT2NQad19/vnnpsvlMu12u5mTk2OGQqFYl1RjNak90ffT\nf/7zHzMzM9Pcu3ev+e9//9u02WyxLqnGalp7ou+j6igUvuUvf/mLmZ6ebi5cuDDWpdRaXWrv2bOn\nef/999djVfVn3759Zt++fc3Ro0fHupRaq23tibSfrrvuOnP69OmmaZoJFwqR1J5I+6g6CoX/eu21\n18zU1FQzNzc31qXUWl1rHzlypDlhwoR6qqr+ffDBB6ZhGObRo0djXUqt1ab2RNlPmzZtMtu1a2f6\nfD7TNE1z//79CRMKkdaeKPuoJhr9nALAX//6V8aOHcuaNWu47rrrYl1OrdS09ocffpjNmzef8tie\nPXto3759fZcYFZs3b+bcc8895THDMDAMA5fLFaOqaqY2tSfyfnr++ec5fPgwbdq0ISMjg/PPPx/T\nNMnMzGT16tWxLq9Ktak9kfdRjcQ6lWItEAiYnTp1Mn/3u9/FupRaq672c88913z//fdN0zTNO+64\nwzzvvPPMTz75xCwuLjbnz59vJicnm1999VVDllxnBQUFZsuWLc27777b9Pl85uHDh82BAweal112\nWaxLq1Z1tXfs2NES++n48ePmV199Ff768MMPTcMwzIMHD5p+vz/W5VWpqtp9Pp+l/i1Vp9GHwnvv\nvWfabDbT4/GYSUlJp3w/cOBArMurUlW1f/7556bNZjM3bNhgmqZplpSUmFOmTDHPOOMM0+v1mhdc\ncIG5ZcuWGHdQO7t27TIvu+wyMzk52WzevLk5evRo8+DBg7Euq0a+W/u1114brt1q++kbiTan8G3f\nrd2q+6gihmmaZqyPVkREJD5oTkFERMIUCiIiEqZQEBGRMIWCiIiEKRRERCRMoSAiImEKBRERCVMo\niIhImEJBRETCFAoiIhKmUBARkTBHrAtoaKZpcuLEiViXISISE6eddhqGYVS6vdGFwokTJ0hNTY11\nGSIiMVFQUEBKSkql2xvdKqk6UhCRxqy6I4VGFwoiIlI5TTSLiEiYQkFERMIUCiIiEqZQEBGRMIWC\niIiEKRRERCRMoSAiImEKBRERCVMoiIhIWEKHgmmaFBYWoouyRUSiI6EXxPtmcbvqFnj6riNHKl77\nyGYzSE9P5tixIkKhxA8aq/UD6ilRWK0nq/STkXFatc9J6COFaLPZDAzDwGarfLGoRGK1fkA9JQqr\n9WS1fqqiUBARkbCEHj4SSWRlZfD11wb/+U/5Z7PCQjulpTaCQQiFyr+CQb713waGYZKebpKZaZKR\nUf6VlBTjRsRSFAoi9eTECfjySxtffmmEv3/1lY0vvrDx1VcG//mPQSj07eGIur27p6SUh0NmZui/\n38v/u02bEF26hOjQIYTdHp2exPoUCiJRYJqwb5+NLVvsbN1qZ8sWO/v3/2901uEwadXKpHXrEG3b\nhujdO0Tr1iZnnBGiTRs480wvhYU+TDOE3W5it4PNVv5lt//vKxiEvDyDw4cNjhwp/zp82PatPxv8\nv/9n4/Bhg7y88p/v8Zicd16Izp2DdOkSokuXIOedF6JJk1j9tiSeKRRE6qCkBHbutLF1qz38deyY\nDZvNpHPnEH37BujRI8iZZ4Y44wyT5s3NSj+tOxw20tLK37wDgarPbHE4oHnz8r+vOvn5sHu3nV27\nbOzaZefvf7fz4otOAoHyYaj27U26dAnStWuI3r0D/PCHOqIQhYJIjX36qY1XXnHw/vt2/vEPOyUl\nBl6vyfnnBxk3rowLLwzyox8FOa36s/4aRFoaXHxxkIsvDgJlQHmYffqpLRwUu3bZWLDAxezZbtLS\nTC67LMDllwe4/PJgjYJHrEehIFKFr782WLvWwdq1Tj76yE5KikmfPgFmzizhwguDdO4cwumMdZU1\n53ZD164hunYNAQEAAgHYvt3O5s12Nm92cNttSZimQadOQfr2LQ+ICy8M4nbHtnZpGAoFke8oKIDX\nX3eydm35UYHLBf36BbjzzlJ+8pOA5d4cHQ7o2TNIz55B7rmnlLw8gz//2c477zhYtcrJwoVuvF6T\n3r2D9OsXYNCgMpo2jXXVUl8UCiJAcTG89ZaDNWscbNrkIBCA3r2DLFhQzFVXBajFBfMJr1kzkyFD\nAgwZEiAUgo8/trF5s4N33rFz991u7r3XTb9+AUaMKKNv3yAuV6wrlmhSKEij9vXXBr/9rYsXXnBy\n4oRBt25BZswo4ZprAhpTp/zsp/LhplJuvRUOHSofTnvpJSdjxnhp1izENdcEGD68jG7dQhjWv+DX\n8hQK0ih9/rnBk0+6WLnSiccDN95YysiRZXTooCCoSvPmJjk5ZeTklPHxxzZeesnJmjUOnn3Wxdln\nBxkxIsDQoWW0bRvrSqWuFArSqOzbZ/D4425eftlB06Ymd99dyrhxpXFzxlAi6dw5ROfOJcycWcK7\n79pZvdrJY4+5mDPHRe/eIW69FS67LNZVSm0pFKRR+PhjG48/7mLdOgfNm5s88EAJWVllJCfHurLE\nZ7fD5ZcHufzyICdPwhtvOFi50sXw4XDmmR4mTizl2mvLdLFcgtCCeGJpf/+7jTFjkrj88mT+/nc7\nv/pVCdu2FTFpkgKhPjRpAqNGBXjjjWL+9je44IIQ99/vplu3Jjz0kIuvv9akQ7xTKIgl7dtnMGqU\nhwEDktm3z8aTT/r54IMibrihzHKnlMar88+HxYtL+NvfisjKKmP5chfnn5/M5MlJfPSR3nrilfaM\nWEpxMcyb5+Kyy5L57DMbixf7ee89HyNHBhLqIjMrad26fLhux46T3H9/CVu22PnJT5IZOtTDpk12\nQqFYVyjfplAQy/jzn+306ZPMk0+6uPnmUv785yIGDw5oPZ84cdpp8ItflLFlSxGLF/s5edJg9Ggv\nl13m5Q9/cKC76sYHhYIkvMOHDXJykhg+3EvLliE2b/Zxzz2leDyxrkwq4nDA4MEB3nzTx2uv+cjM\nNBk3zsPAgV7ee08JHmsRh0IgEGDq1KnY7XY2btx4yjbTNLnvvvs466yzaNasGVdeeSX79+8Pb8/P\nz2fkyJG0aNGC1q1bk52dTUlJSaQlSSMRCsHy5U4uvjiZzZvtPPGEn1de8XPOORqPSASGAb16BXn5\nZT9r1vgAGDrUy7BhHv7xD31ejZWIfvM+n4/evXuTn59f4faFCxeycuVK1q9fz4EDB+jQoQPXXHNN\nePuECRPw+/3s2bOH7du3s2fPHqZNmxZJSdJI7N5t8LOfebnrriSuuqqM99/3MWpUQFfUJqhLLgmy\nfr2PZcv8HDpk0L9/MuPGJfHppwqHhhbRb/zkyZOMHz+eJUuWYFYwILh48WKmTJnCOeecQ3JyMnPm\nzGH37t1s3bqVw4cPs27dOubOnUtaWhotWrRg5syZLF26lGAwGElZYmFFRXD33dCnj4fCQli3zseC\nBSU0a6YB6URnGHDllQH+9CcfTz7p56OP7Fx6qZdbb03iiy+U9g0lolDIzMwkOzu7wm3FxcXs3r2b\n7t27hx9r0qQJZ599Ntu2bWPHjh04HA46d+4c3t6jRw9OnDjB3r17IylLLOqTT2z07evhySdh+vQy\n3nnHx0UX6QOE1djtMHJkgPffL+Lhh0t4+207F12UzH33ucnLUzjUt3o7NsvPz8c0TdLS0k55PD09\nnaNHj5KXl0dqaur3tgEcPXq0vsqSBLV2rYP+/b3Y7fCPf8CUKWVandPi3G4YP76MrVuLmDq1lFWr\nnFx0UTLLljnRYEL9qfdlLioaVqrJtvpksxnYbN//xGG32075nuis0E9JCcyY4WLJEicjRgRYsKCM\nli09FBYmbk/fZYX99F3R7Ck1FaZODTB2bICHHnJx991JvPCCk1//upTzz2+YkwqsuI8qU6tQyM3N\nDQ8XGYaBz+er9Lnp6enYbDby8vJOeTwvL4/MzEwyMjIoKCjANE2M/84OfvPczMzMWjVRW+npyeGf\nWZGUFGudy5io/Xz+OQwfDjt3wtNPw6RJDgyj/H/ZRO2pKuqpamlpsGIFTJ4MN91kp18/DxMmwNy5\n0KxZ1H5Mlay4j76rVqGQlZVFVlZWjZ7rdrvp0qUL27dv55JLLgHg+PHj7Nu3j169etGmTRtM02Tn\nzp1069YNgK1bt5KWlkbHjh1r2UbtHDtWVOmRQkqKh8JCP8Fg4p/WmMj9vPWWnV/8wk2TJibr15fQ\nvXuI48cTu6fKqKfaOfdc2LgRli51MHu2i5dfhpkzSxkzJoCtnj7IW2UfpaVVv+BXvQ4f5eTkMG/e\nPAYOHEirVq2YNm0aPXr0CE8+Dxs2jBkzZrB8+XL8fj+zZs0iOzsbW33t2f8KhUxCocqHroLBEIFA\n4u7470qkfoJB+PWvXTz2mIsrrgiycKGftLTy+wif+rzE6amm1FPtjB1bylVXlTFrlpspU9ysWOHg\nkUeK6dat/n6HVtxH3xXRu29ubi4ejwev14thGAwaNAiv18ukSZMAmDRpEmPHjqVPnz60bNmSgwcP\nsnbt2vDrFy1aREpKCu3ataNbt2706tWL2bNnR9aRJKyjRw1GjvSwYIGLe+8tZcWK8kAQqUxGhskT\nTxTz+us+Skqgf38vd93lppJLp6QGDDNWs71RUFhYSGpqKgUFBaTU4ia6R46cqPBxh8NGWloy+flF\nlvg0kEj9bN1qIzvbQ1kZPPNMMZdcUvHpJYnUU02pp+gIBGDpUifz5rlxuUweeaSEQYMC1b+wBqyy\njzIyqr+blPWn0iXurV3rYPBgLz/4QYi33/ZVGggiVXE4IDu7jL/+tYhevYJMmOBh4sQkjh2LdWWJ\nRaEgMfXcc05ycpIYMiTAK6/4adkyYQ9cJU40b27y3HPFLFrk509/cnDJJcmsX6+bTNaUQkFiwjRh\n/nwX99yTxMSJZTzxRLHudyBRYxgwZEiA994ronv3EDfc4OGmm5I4fjzWlcU/hYI0uFAIZsxw86tf\nuZk+vYSHHiqpt1MJpXFr3txkxQo/TzzhZ8MGB5demsymTVqeuyr6pygNqqwMbrkliWefdfKrXxVz\nxx2lWtlU6pVhlN83+t13izjvvBCjR3u5/XY3hYWxriw+KRSkwfj9cOONHl55xcEzzxQzdmxZrEuS\nRqRVK5OVK/385jfFrFvnpE+fZP70Jx01fJdCQRpEYSGMHOnhvffs5Ob6GTw4OqcKitSGYcD115fx\n7rtFtG8fYsQIL9OnuykujnVl8UOhIPXu8GGDwYO97NljZ/VqH3376pRTia0f/MDkpZf8zJlTzIoV\nTq66ystnn2kcExQKUs8OHDAYNMjLkSMG69b5uPDCxL3wR6zFZoMJE8pYv95HUZHBT36SzJo1OnVV\noSD15pNPbFx9tZdQCF5/3UenTgoEiT9du4bYtKmI/v0D5OR4uOMON1UsAG15CgWpF//+t8HQoR6a\nNjV5/XUfbdvqojSJX02awNNPF7NggZ+1a50MGOBl797G+fbYOLuWenX4sMGIEV6aNIGXX/bTvLkC\nQeKfYcDo0QE2bCg/TOjf38sLLzhI3NXh6kahIFFVWAijRnnw+2H1ah8ZGY3sX5QkvHPPDfHmmz6G\nDi3j9ts9TJ6cxImK19C0JIWCRE1xMYwZ4+GLL2ysWuWnTRsFgiQmrxcefbSEp5/28+abDn7yEw87\ndsS6qoahUJCoCARg0qQk/v738usQNKksVjB0aIC33y7C6zXp1QtefNH6ZycpFCRipgl33+1m40YH\nzz7rp2dPXYcg1tG+vcmbbxaTlQU33eRmxgw3ZRa+GF+hIBGbO9dFbq6LBQuK6ddPgSDWk5QEv/sd\n/PrXJTz3nJORIz3k5VnzYjeFgkTkmWecLFjg5sEHixk5UktXiHUZBowfH+Dll/3s3Wujf38vu3ZZ\n7y3Ueh1Jg3n5ZQczZyZxyy0l5ORY+Hha5Ft+/OMgGzf6SE01ueoqL6++aq15BoWC1Mnbb9u59dYk\nRo8uZcaM0liXI9Kgzjij/KLMgQMDTJzoYfZsF0GLjJxaK+KkQWzbZuPGGz1ccUWA+fNLdD8EaZS8\n3vKroP/v/4I89JCbjz+2s2iRn9TUWFcWGR0pSK38618G113n5Yc/DPLMM8U49LFCGjHDgMmTy3jx\nRT/bt9vp3z+ZTz9N7LfVxK5eGtTJkzB2rIfTTw+xYoUfjyfWFYnEh8svD7JhQxEul8mAAV42bEjc\nm/coFKRGTBOmTEniyy9tLFtWnPCHyCLR1q6dyR//6OOSSwLccIOHJUucsS6pThQKUiPPPOPk1Ved\nPPFEMeeco6uVRSrSpAksXVrMxIllTJ+exMyZbkIJ9s9FI8JSrb/+1c6DD7q56aZSrr5a1yKIVMVm\ng4ceKuHMM0Pcd5+bL780eOqpYrzeWFdWMzpSkCp9/bXBhAlJXHRRkPvuK4l1OSIJY/z4MpYv97N5\ns4OhQ8vvPpgIFApSqdJSuPFGDy4XOtNIpA769w/y6qs+DhwwuPJKL//6V/wHQ8ShEAgEmDp1Kna7\nnY0bN56yzTRN7rvvPs466yyaNWvGlVdeyf79+8Pb27Zti9vtxuv14vF48Hq9DB48ONKSJEpmznTz\n0Uc2lizx674IInXUrVuI9et9uN0mV16ZzIcfxveZSRGFgs/no3fv3uTn51e4feHChaxcuZL169dz\n4MABOnTowDXXXBPebhgGmzZtwufz4ff78fl8vPrqq5GUJFGyapWDpUtdPPxwCeefn2AzZSJxpk0b\nkzfe8NGpU5BhwzxxvTRGRKFw8uRJxo8fz5IlSzAruGfd4sWLmTJlCueccw7JycnMmTOH3bt3s3Xr\n1vBzKnqdxNZHH9m4664kRo0qY8wYrWkkEg1Nm8LKlX4GDSpfGuOJJ1xxeavPiEIhMzOT7OzsCrcV\nFxeze/duunfvHn6sSZMmnH322Wzbti382IIFC+jQoQMpKSkMHz6cI0eORFKSRCg/H8aN83DOOSEe\neaRYS1iIRJHbDU89VcyUKSXMnu1m6lQ3gTg7oa/eJprz8/MxTZO0tLRTHk9PT+fo0aMA9OjRg549\ne/LPf/6TPXv2cOzYMUaMGFFfJUk1QiGYPNnDiRMGzz2nK5ZF6oNhwD33lLJggZ8XXnAyfnwSxcWx\nrup/6n1gq6rhoTVr1oT/7PV6eeqpp+jUqRP79++nXbt29VaTzWZgs33/I7Ddbjvle6KrbT9z5zp5\n5x07q1eX0L69AcTfYYLV9hGop0RQH/2MGROiefMSxo1zk5XlZcWKYk47LWp/fZ3VKhRyc3PDw0WG\nYeDz+Sp9bnp6Ojabjby8vFMez8vLIzMzs8LXtG3bFoCDBw/WayikpydjVDEukpJirY/INennjTfg\n17+GWbNg2LCkBqgqMlbbR6CeEkG0+xk1Clq1gquvtjNsWDLr10OzZlH9EbVWq1DIysoiKyurRs91\nu9106dKF7du3c8kllwBw/Phx9u3bR8+ePTlw4ADz5s3j8ccfx+ksXyNk9+7dGIZB+/bta9lG7Rw7\nVlTpkUJKiofCQj/BYOKfcVPTfg4dMhgzxsOAAUFyckqo5GSyuGC1fQTqKRHUZz9du8K6dTaGD0/i\nxz82WbOmmNat62cGOi0tudrn1OvwUU5ODvPmzWPgwIG0atWKadOm0aNHD3r06EFxcTGvvfYaDoeD\nefPmcfz4caZMmcKgQYNo2bJlfZZFKGQSClX+Sw8GQwQCif8/8jeq6sc04bbbPNjtJo8+Wvzf300D\nF1gHVttHoJ4SQX3107lziNdfL2LYMC9XXpnESy/5aN8+NqcmRTRAlpubG77ozDAMBg0ahNfrZdKk\nSQBMmjSJsWPH0qdPH1q2bMnBgwdZu3YtAElJSWzYsIFPPvmE1q1b06VLFzp06MDy5csj70pqbNUq\nBxs3Opg/v4TTT4/D8+NEGomzziq/liEpyeTqq2N3/2fDTOALBQoLC0lNTaWgoICUlJQav+7IkRMV\nPu5w2EhLSyY/v8gSn26q6+fLLw369Elm4MAACxfG0ekPVbDaPgL1lAgasp+jRw2uvdbD/v02nn/e\nT8+e0bvPZ0ZG9TPZ1jg1QGotFILbb0+iSROThx9OjEAQaQxOP91k7VofXboEGTHCw9tvN+yyGAqF\nRmrZMifvvutgwQLdMEck3px2Grz4op9LLw1y/fUeXnml4ZbFUCg0Qp99ZvDQQ27Gji3l8sujd2gq\nItHj8cBzz/m55poAv/hFEsuXN8yd3OJ3VSapF8Eg3HKLh4wMk/vv1/0RROKZ0wlPPllMaqqbu+5K\nIhAov09DfVIoNDJPP+3kb3+zsW6dnyZNYl2NiFTHZoOHHy7B6YTp05MIBmHixPoLBoVCI7J3r415\n89z84hdl9OqlYSORRGEY8MADJdjtJjNmlAdDTk79BINCoZEoK4Obb06ibdsQ06dr2Egk0RgGzJxZ\nit0Ov/xlEoGAwS23lEb95ygUGokFC1x8/LGNP/7RR1L8L20kIhUwDLj33vJgmDXLTSgEt90W3WBQ\nKDQCO3bYeOwxF7fdVkr37ol/IZFIY/bN0tt2Ozz8sJtgEKZMiV4wKBQsrrgYcnLcnHdeKKr/44hI\nbN11Vyk2G8ybVx4Md90VnX/fCgWLu/9+2L/fYONGPy5XrKsRkWi6885SHI7/HTFMm1Ya8d0SFQoW\ntm2bjfnz4f77y+jUScNGIlZ0223lRwyzZpUHw733RhYMCgWLKj+cdNG9O9x8c1lc3iBcRKLjlltK\ncThMfvnL8tNVZ86sezAoFCxqxQon//ynnQ8+ALuduLs5uIhEV05OGTYbzJyZxDXXBOjatW6jA1r7\nyILy8gzmzHEzenQZvXrFuhoRaSiTJpWxdetJunSp+3CxQsGC5sxxEQrBL3+ps41EGpu2bc2I5hQU\nChazY4eN3Fwn99xTQkZGrKsRkUSjULCQUKh8waxzzw0xdmz9rqQoItakiWYLWbXKwfbtdtat8+HQ\nnhWROtCRgkUUFJSfpzxkSBkXXaQVUEWkbhQKFvHII278foMHHtAKqCJSdwoFC/j4YxvPPedk6tQS\nWrTQVWoiUncKhQRnmjB9upuzzgqRna3JZRGJjKYjE9zatQ4+/NDBSy/5tOCdiERMRwoJ7ORJeOAB\nN1dfXUafPppcFpHIKRQS2Pz5bgoLDR58UJPLIhIdCoUE9emnNhYvdnL77aWccYYml0UkOhQKCcg0\n4d573fzgByaTJ2t9IxGJnohDIRAIMHXqVOx2Oxs3bvze9kOHDtG/f39sNhulpae+geXn5zNy5Eha\ntGhB69atyc7OpqREQyHVeeMNB+++6+Dhh4txu2NdjYhYSUSh4PP56N27N/n5+RVu37VrFxdeeCGZ\nmZkYFSzbN2HCBPx+P3v27GH79u3s2bOHadOmRVKS5ZWUlE8u9+sX4IorNLksItEVUSicPHmS8ePH\ns2TJEswKbu11+PBhVq1axYQJEyrctm7dOubOnUtaWhotWrRg5syZLF26lGBQb3aVWbHCyVdfGTzw\nQHGsSxERC4ooFDIzM8nOzq50e9++felVyV1eduzYgcPhoHPnzuHHevTowYkTJ9i7d28kZVlWURE8\n+qiLUaPK6NBBk8siEn0xm2jOy8sjNTX1lMfS09MBOHr0aCxKinvPPuuioMDgzjs1uSwi9SOmVzRX\nNOTUEGw2A5vt+3McdrvtlO/x5PhxWLjQxbhxAdq1M4Dqb60Uz/3UlXpKDFbryWr9VKVWoZCbmxse\nLjIMA5/PV+cfnJGRQUFBAaZphieh8/LygPJhqfqUnp5c4cT3N1JSPPX68+ti/nwoK4MHH3SSluas\n1WvjsZ9IqafEYLWerNZPRWoVCllZWWRlZUXlB3fv3h3TNNm5cyfdunUDYOvWraSlpdGxY8eo/IzK\nHDtWVOmRQkqKh8JCP8Fg3W98HW2HD8OCBV4mTSrD7S6jkpO9vide+4mEekoMVuvJKv2kpSVX+5wG\nGT76Zpjo28NFzZo1Y9iwYcyYMYPly5fj9/uZNWsW2dnZ2Gz1e4gWCpmEQpUPXQWDIQKB+Nnxv/mN\nG4cDcnJKCARq//p46yca1FNisFpPVuunIhG9++bm5uLxePB6vRiGwaBBg/B6vUyaNAmAiRMn4vF4\nGDBgAABNmzbF6/Xy/PPPA7Bo0SJSUlJo164d3bp1o1evXsyePTvClqzliy8Mli93cvPNpTRtGutq\nRMTqDDOht7YnAAAMDElEQVRWs71RUFhYSGpqKgUFBaSkpNT4dUeOnKjwcYfDRlpaMvn5RXHzaeD2\n291s3Ohg69YimjSp3WvjsZ9IqafEYLWerNJPRsZp1T7H+lPpCWzfPoOVK53ccUdprQNBRKQuFApx\n7JFH3LRsaTJmjO6oJiINQ3dei1MffWRj3TonCxb4teidiDQYHSnEqblzy++7PGJEHU43EhGpIx0p\nxKEtW+xs2uRg8WI/Du0hEWlAOlKIM6YJc+a46Nw5yKBBOkoQkYalz6Fx5k9/svPBBw6ef95HPV/D\nJyLyPXrbiSPlRwluLrggqBvoiEhM6EghjvzhDw527rTz6qs+qlivT0Sk3uhIIU4EgzBvnovLLgvw\n4x/rKEFEYkNHCnFi7VoHn35qZ+HColiXIiKNmI4U4kAoBE8+6eKnPw3QrVvirqsiIolPoRAH3n7b\nzt69dm65RbfZFJHYUijEgSefdHH++UF69tRcgojEluYUYmzbNhsffuhg2TK/zjgSkZjTkUKMPfWU\niw4dggwYoKuXRST2FAoxtG+fwfr1Dm66qUxXL4tIXNBbUQz99rcuMjNNhg3T/RJEJD4oFGLk0CGD\n1audTJxYpvsliEjcUCjEyOLFTtxuuOEGnYYqIvFDoRADhYWwbJmLG24oJSUl1tWIiPyPQiEGfv97\nJ8XFMHGi5hJEJL4oFBpYSQk884yL4cPLaNHCjHU5IiKnUCg0sDVrHBw6ZOOmm3SUICLxR6HQgEIh\nWLjQxYABZZx9tha+E5H4o1BoQBs2ONi3TwvfiUj8Uig0ENMsX/iuZ88AF1ygowQRiU9aEK+BbNli\n529/s5Ob64t1KSIilYr4SCEQCDB16lTsdjsbN2783vZDhw7Rv39/bDYbpaWnDpu0bdsWt9uN1+vF\n4/Hg9XoZPHhwpCXFpYULXXTsGOSKK7Q8tojEr4hCwefz0bt3b/Lz8yvcvmvXLi688EIyMzMxKlgX\n2jAMNm3ahM/nw+/34/P5ePXVVyMpKS7t3Wtj40YHN91UqoXvRCSuRfQWdfLkScaPH8+SJUswze+f\nc3/48GFWrVrFhAkTKv07Knqd1Tz1lIuWLUMMGaLlsUUkvkUUCpmZmWRnZ1e6vW/fvvTq1avKv2PB\nggV06NCBlJQUhg8fzpEjRyIpKe4cPGiwZo2DSZNKcbliXY2ISNViOpjRo0cPevbsyT//+U/27NnD\nsWPHGDFiRCxLirpFi1x4vTBmjC5WE5H4F9Ozj9asWRP+s9fr5amnnqJTp07s37+fdu3a1dvPtdkM\nbLbvz3HY7bZTvkeqsBByc51kZ5fRtGnD52+0+4kH6ikxWK0nq/VTlVqFQm5ubni4yDAMfL7onl7Z\ntm1bAA4ePFivoZCenlzhxPc3UlI8Ufk5L74Ifj9MmeIiLS12Y0fR6ieeqKfEYLWerNZPRWoVCllZ\nWWRlZUXlBx84cIB58+bx+OOP43Q6Adi9ezeGYdC+ffuo/IzKHDtWVOmRQkqKh8JCP8FgZBeYmSYs\nXOhh4MAQycklVHKCVr2KZj/xQj0lBqv1ZJV+0tKSq31OgwwffXOG0bfPNMrMzOS1117D4XAwb948\njh8/zpQpUxg0aBAtW7as13pCIZNQqPKznoLBEIFAZDv+ww/t7Nlj48EHiyP+uyIVjX7ijXpKDFbr\nyWr9VCSiAbLc3NzwRWeGYTBo0CC8Xi+TJk0CYOLEiXg8HgYMGABA06ZN8Xq9PP/88yQlJbFhwwY+\n+eQTWrduTZcuXejQoQPLly+PvKs4sGyZk3btQlx6qS5WE5HEYZgJfKFAYWEhqampFBQUkFKLW5gd\nOXKiwscdDhtpacnk5xdF9GngyBGDbt2Sue++EiZPjt1ZR9HqJ56op8RgtZ6s0k9GxmnVPsf6U+kx\n8OKLTmw2GDVKp6GKSGJRKERZMFh+u83BgwOkp8e6GhGR2lEoRNnmzXYOHLAxdqzumSAiiUehEGXL\nlrno2jVIjx6JO+4oIo2XQiGKvvjC4K237IwdW0YV18aJiMQthUIUrVjhpEkTGDJEE8wikpgUClFS\nWlq+ztGIEWUkV3/RoIhIXFIoRMkf/uDg6FEbY8fqKEFEEpdCIUqWLXPy4x8H6NhRE8wikrgUClGw\nd6+NDz5w6ChBRBKeQiEKli93kpER4sordbtNEUlsCoUInTwJq1c7ue66Mt1uU0QSnkIhQq+84qSo\nCK6/XkNHIpL4FAoRME1YutTJT38a5Ac/SNjFZkVEwhQKEdi+3cauXXatcyQilqFQiMCyZS7atAlx\n+eW6kY6IWINCoY6OHYN16xyMGVOGTb9FEbEIvZ3V0cqVTkwTRo/WBLOIWIdCoQ5CIVi+3MXVVwc4\n/XRNMIuIdSgU6uDdd+3s3691jkTEehQKdfD8807OOy/IhRdqgllErEWhUEsFBfDmmw5GjNCNdETE\nehQKtfT6607KymDoUK1zJCLWo1CopdWrHVx6aZAWLTTBLCLWo1Cohc8/N/jww/KhIxERK1Io1MLL\nLztJTjYZOFBDRyJiTQqFGjLN8iWyf/azgO7BLCKWpVCooe3bbezfb9PQkYhYmkKhhlavdtK6dYiL\nL9a1CSJiXRGHQiAQYOrUqdjtdjZu3HjKNtM0eeihh2jfvj2pqalcfPHF/OUvfwlvz8/PZ+TIkbRo\n0YLWrVuTnZ1NSUlJpCVFXUkJvPqqk6FDtfidiFhbRG9xPp+P3r17k5+fX+H2Rx99lKVLl/LHP/6R\no0eP0q9fPwYPHszJkycBmDBhAn6/nz179rB9+3b27NnDtGnTIimpXmza5OD4cYPhwzXBLCLWFlEo\nnDx5kvHjx7NkyRJM8/vn7TudTubPn8+5556L0+lk6tSpHDt2jF27dnH48GHWrVvH3LlzSUtLo0WL\nFsycOZOlS5cSDMbXEM3q1Q5++MMgHTuGYl2KiEi9ckTy4szMTLKzsyvdfuutt57y3wcOHMAwDFq1\nasWOHTtwOBx07tw5vL1Hjx6cOHGCvXv3nvJ4LB07Vn6k8MAD8TesJSISbRGFQm2UlpaSnZ3N9ddf\nT5s2bXj//fdJTU095Tnp6ekAHD16tF5rsdkMbLbvL1xkt9tO+Q7w+usOTBOGDQvicCTWhEJF/SQ6\n9ZQYrNaT1fqpSoOEwsmTJ/n5z3+O0+nk6aefDj9e0ZBTQ0hPT8aoYjW7lBRP+M8vvwwDBsA55yTu\nxQnf7scq1FNisFpPVuunIrUKhdzc3PBwkWEY+Hy+al/zzQTzWWedRW5uLm63G4CMjAwKCgowTTP8\nBp2XlweUD0vVp2PHiio9UkhJ8VBY6CcYDLFvn8GWLV6ee66Y/Pz4mueoie/2YwXqKTFYrSer9JOW\nVv2H21qFQlZWFllZWTV+fklJCT/72c+44IILeOaZZ07Z1r17d0zTZOfOnXTr1g2ArVu3kpaWRseO\nHWtTVq2FQiahUOVHKcFgiEAgxMqVLlJSTK64ooxAAp949E0/VqKeEoPVerJaPxWp1wGy+fPn43a7\nvxcIAM2aNWPYsGHMmDGDvLw8vvzyS2bNmkV2dja2OLgYIBSCl15y8vOfl5GUFOtqREQaRkTvvrm5\nuXg8HrxeL4ZhMGjQILxeL5MmTQJg6dKlfPjhh+HnfPN9zpw5ACxatIiUlBTatWtHt27d6NWrF7Nn\nz468qyjYssXOF1/YdG2CiDQqEU00VzectG/fvipfn5KSwgsvvBBJCfVm9WoHbdqE6Nkz8eYSRETq\nKvbjNHHI74fXXnMyfLhuuSkijYtCoQLr19s5ccJg+HCtiCoijYtCoQKrVjn40Y+CtG+vW26KSOOi\nUPiOQ4fgnXfsum+CiDRKCoXvePFFsNvh5z9XKIhI46NQ+I7f/x769QuSlhbrSkREGp5C4Vt27zb4\nxz9g5EhdmyAijZNC4VtWr3aQng4//amuTRCRxkmh8F/ly1o4uPZacLliXY2ISGwoFP7LMKB79xA3\n3xzrSkREYqfBbrIT7wwDcnNLSEtzUMktp0VELE9HCiIiEqZQEBGRMMOM1T0xo6CwsJDU1FQKCgpI\nSUmJdTkiIgkvoUPBNE1OnDjBaaedVuU9l0VEpGYSOhRERCS6NKcgIiJhCgUREQlTKIiISJhCQURE\nwhQKIiISplAQEZEwhYKIiIT9f5WQU707W6NEAAAAAElFTkSuQmCC\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# plotだと時間がかかるので、list_plotで代用\n", "# Fig. 2.8\n", "list_plot(zip(lams, Ls), figsize=4, plotjoined =True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

疑似乱数と最尤推定値のばらつき

\n", "\t

\n", "\t\t久保本のすごいところは、疑似乱数を使って最尤推定値のばらつきまでみているところです。\n", "\t

\n", "\t

\n", "\t\t平均3.5のポアソン分布の50個のサンプルを1000セット作って、そのヒストグラムをプロット\n", "\t\tしてみます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 平均3.5のポアソン分布のサンプルを50個を1000セット生成して、最尤推定値のばらつきを見る\n", "poisSet3000 = [ sageobj(r.rpois(50, 3.5).mean()) for i in range(1000)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

最尤推定値のばらつき

\n", "\t

\n", "\t\t今度は、Pandasの持つ、ヒストグラムプロット機能を使って最尤推定値のばらつきをプロットしてみます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
lambda
03.82
13.68
23.20
33.52
43.60
\n", "
" ], "text/plain": [ " lambda\n", "0 3.82\n", "1 3.68\n", "2 3.20\n", "3 3.52\n", "4 3.60" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Pandasのグラフ機能を使ってヒストグラムを表示する\n", "df3000 = pd.DataFrame({ 'lambda': np.array(poisSet3000)}); df3000.head()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df3000.hist()\n", "plt.savefig(\"images/df3000.png\", dpi=70)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## 確率分布の選び方\n", "離散値の場合\n", "- ポアソン分布:ゼロ以上の範囲、上限なし、平均 $\\approx$ 分散\n", "- 二項分布:ゼロ以上で有限の範囲内、分散は平均の関数\n", "\n", "連続値の場合\n", "- 正規分布: 範囲が$[ -\\infty, +\\infty]$、分散は平均とは無関係に決まる\n", "- ガンマ分布:範囲が$[0, +\\infty]$、分散は平均の関数" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "SageMath 7.2", "language": "", "name": "sagemath" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }