{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\tHiroshi TAKEMOTO\n", "\t(take@pwv.co.jp)\n", "\t\n", "\t

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

\n", "\t

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

\n", "\t

\n", "\t\t前回に続き、データ解析のための統計モデリング入門\n", "\t\t(以下、久保本と書きます)\n", "\t\tの第6章の例題をSageを使って再現してみます。\n", "\t

\n", "\t

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

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

前準備

\n", "\t

\n", "\t\t最初に必要なライブラリーやパッケージをロードしておきます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "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", "# statsmodelsを使ってglmを計算します\n", "import statsmodels.formula.api as smf\n", "import statsmodels.api as sm\n", "from scipy.stats.stats import pearsonr\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\t6章の最初に二項分布を使った回帰分析の例がでてきます。ポアソン分布では上限のないカウントデータでしたが、\n", "\t\t上限のある場合には、二項分布を使うのだと説明がありました。\n", "\t\t(自然界ではこのように上限のあるカウントデータが多いので、とても参考になりました)\n", "\t

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

二項分布用のデータについて

\n", "\t

\n", "\t\t二項分布用のデータは、サポートページにあるdata4a.csvです。\n", "\t\tこれを読み込んで、データの性質と分布を表示します。\n", "\t

\n", "\t

\n", "\t\t直感的に施肥を施す(f=T)ことでサイズxが大きくなっているのが分かります。\n", "\t\tまた、サイズと種子数の右上がりの関係が見られます。(種子数の上限は8です。)\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 2, "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", " \n", " \n", " \n", " \n", " \n", " \n", "
Nyxf
0819.76C
18610.48C
28510.83C
38610.94C
4819.37C
\n", "
" ], "text/plain": [ " N y x f\n", "0 8 1 9.76 C\n", "1 8 6 10.48 C\n", "2 8 5 10.83 C\n", "3 8 6 10.94 C\n", "4 8 1 9.37 C" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 6章のデータを読み込む\n", "d = pd.read_csv('data/data4a.csv')\n", "d.head()" ] }, { "cell_type": "code", "execution_count": 3, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Nyx
count100.0100.000000100.000000
mean8.05.0800009.967200
std0.02.7438821.088954
min8.00.0000007.660000
25%8.03.0000009.337500
50%8.06.0000009.965000
75%8.08.00000010.770000
max8.08.00000012.440000
\n", "
" ], "text/plain": [ " N y x\n", "count 100.0 100.000000 100.000000\n", "mean 8.0 5.080000 9.967200\n", "std 0.0 2.743882 1.088954\n", "min 8.0 0.000000 7.660000\n", "25% 8.0 3.000000 9.337500\n", "50% 8.0 6.000000 9.965000\n", "75% 8.0 8.000000 10.770000\n", "max 8.0 8.000000 12.440000" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d.describe()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# F別の分布をみる\n", "sns.lmplot('x', 'y', data=d, hue='f', fit_reg=False )\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

二項分布

\n", "\t

\n", "\t\tここで、Sageのプロット関数を使って二項分布の確率分布がどのような形になっているか\n", "\t\t久保本の図6.3と同じ条件でブロットしてみます。\n", "\t

\n", "\t

\n", "\t\t二項分布を\n", "$$\n", "\tp(y | N, q) = \\binom{N}{y} q^y (1 -q)^{N-y}\n", "$$\t\t\n", "\t\t以下の様に_p関数で定義します。\n", "\t

\n", "\t

\n", "\t\tSageでプロットしてみます。Sageではグラフ(Graphics)にグラフを足すことで、重ね合わせのプロットができます。\n", "\t\tとても直感的にグラフを書くことができます。(ggplotも同じです)\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 二項分布を定義\n", "def _p(q, y, N):\n", " return binomial(N, y)*q^y*(1-q)^(N-y)" ] }, { "cell_type": "code", "execution_count": 6, "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": [ "g = Graphics()\n", "g += list_plot([_p(0.8, y, 8) for y in (0..8)], plotjoined=True, rgbcolor=\"red\", legend_label =\"q=0.8\")\n", "g += list_plot([_p(0.3, y, 8) for y in (0..8)], plotjoined=True, rgbcolor=\"green\", legend_label =\"q=0.3\")\n", "g += list_plot([_p(0.1, y, 8) for y in (0..8)], plotjoined=True, rgbcolor=\"blue\", legend_label =\"q=0.1\")\n", "g.show(figsize=4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

ロジスティック関数

\n", "\t

\n", "\t\tロジスティック関数\n", "$$\n", "\t\tq_i = logistic(z_i) = \\frac{1}{1 + exp(-z_i)}\n", "$$\t\t\n", "\t\tの関数を_logisticとして定義し、その分布をSageを使ってプロットします。\n", "\t

\n", "\t

\n", "\t\tロジスティック関数のような曲線を持つデータの場合には、二項分布の確率分布があると予測して回帰分析を行います。\n", "\t\tリンク関数は、ロジスティック関数の逆関数であるロジットリンク関数を指定します。\n", "\t

\n", "\t

\n", "\t\tロジット関数は、以下の様に表されます(式a)。\n", "$$\n", "\t\tlogit(q_i) = log \\frac{q_i}{1 - q_i}\n", "$$\t\t\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# ロジスティック関数の定義\n", "def _logistic(z):\n", " return 1/(1 + exp(-z))" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAECCAYAAAARlssoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3Xl8E3X6wPHPJGmaXimtHG0RKBWhoEAVREBEXQUUXREW\nBRGXS/ECFXBBQREWhEVcFBeU6yfuVkEOkUsEQQSVQ0A5LSAICKXlbKE0TZprfn9EChVKC02aY573\n69VX0ulk8jzNJE++3/nOdxRVVVWEEEIIQOfvAIQQQgQOKQpCCCGKSFEQQghRRIqCEEKIIlIUhBBC\nFJGiIIQQoogUBSGEEEWkKAghhCgiRUEIIUQRKQpCCCGKSFEQIWPFihUkJCTQrVs3f4ciRNAy+DsA\nIbxh/PjxfPTRR9StW/eaHq+qKufOnSMmJgZFUbwcnRDBo8xF4eTJc5ddrtMpxMdHkZNjwe0O7bn1\ntJQrBFe+LpfCsmXfMHToYAoLC0vcX0tisZyjdu3qHDx4lKioGB9FGRiC6XUtLy3lCqXnW6VK6ft2\nuVsKOp2CoijodErI/9O1lCsEV759+jxTrsefbx1ooZUQTK9reWkpV/BOvmUuCjqd54n+TK/XFbsN\nZVrKFYIzX0XxvCkMhquL+eJcr/axwSYYX9drpaVcwTv5lrkoxMdHXfFblNkccc1BBBst5QrBlW94\nuAFwERcXdVWP0+tdgCdXs/nqHhusgul1LS9/5aqqYLdDQQFYrZ7bkn6sVrDZPOvb7eBwXLhf1h+j\nET77DK6//trzLXNRyMmxlNhSMJsjyMuz4nK5rzmQYKClXCE48y0sdGK3O8nNtVzV4ywWK8Afuep9\nEVrACMbX9VqVJ1dVBYsFTp9WOH1aISdH4exZOHdOIS9P4dw5yMtTyMs7f3vhfkGBUlQE3O6ydUnq\n9SomE4SFgdGo/nF74fcL9yEszPO70QjR0RfWr1QJYmLCSsy3LF+WylwU3G71in1ULpcbpzO0d7Dz\ntJQrBFe+qqqiqupVx3v+DRRMuZaXVnO1WODYMYWsLB3Z2QrZ2TpOnlQ4derCh//5W5vt0g90nU4l\nJgZiYlRiYlTMZhWzGapVc1Onjuf3qCiIiFCJiPDcRkYW/91kunR5WFj58zQYdMTGhpGbe+2vrQxJ\nFUKElLw8OHRIx8GDOg4f1pOVBQcPhpOV5SkAZ88W/6CPi1OpWtXNddepxMerJCd77l/8Ex/vuT3/\ngR/K4xGkKIiQULNmVRRFweFwALBs2VIUReH334/7OTLhC243HD6ssGePjj179Ozdq/ujECjk5Fw4\nyBobq3LjjZCQAK1auUhIcJKU5CYxUSUx0U1CgufburhAioIICYcPn/B3CMJHbDb45RcdW7fq2blT\nz549Ovbu1VFQ4Pm6HhurUreumzp13LRp4yY52U3t2p7bKlV0xMVFkZtbqJmusvKSoiCECBiqCvv3\n6/jpJx0//6xn61Y9GRk6HA4Fo1Glfn039eu76dDBQWqq535CghrS3TkVTYqCEMJvVBV+/VXHunV6\nNmzQs369npMndSiKyo03urnlFjePP+7glltcNGjgJjzc3xGHPikKQogKVVAA33+vZ9UqA6tWGTh6\nVIfBoJKW5qZbNwctWrho2tSF2ezvSLVJioIQwueysxWWLTOwcqWBdev0FBYqJCe7ad/eyb33Orn9\ndhdR2jhnMOBJURBC+MSpUwpLlhhYuNDAxo169Hpo0cLF0KGFtGnj5IYb5FhAIJKiIITwGrsdVqww\nMGtWGGvWeM4Mv+suFxMn2njgASexsX4OUJRKioIQotz271dITzcyb56BU6d0NGniYuzYQh56yEnl\nyqE/O2kokaIghLgmqgo//KBnyhQjK1caiI938+ijTp54wjNcVAQnKQrlYLPZ2Lp1C3Pnzubddyf7\nOxwhKoTdDl98YWDKFCO//KKnQQMX779vpWNHpwwZDQHamGTcR0wmEy1atMLlcvk7FCF8zm6H//43\njGbNoujfP4LERJX58wv49tsCunaVghAqpKUghLgipxPmzTPw73+Hc+SIQseOTgYMsFKvnnQRhSIp\nCkKIy1JVWLzYwNix4Rw4oOPBBx2kp9upX1+KQSiTouAFqiqjK0Ro2b5dx+uvh/Pjjwbuu8/JtGlW\nGjWSYqAFPisKhw55rkR0OWazSnJy8H+QOhwO1qz5hmPHjvHNN19z111/wWCQOiuCV24ujBoVzqef\nhlGvnpu5cwu4+245ZqYlPvkEO31aoXnzqBIvQ6fXq+zaZeG664oXBqfTyUcfTaNq1apYrTZsNist\nWrQiNbU+eXl5zJ6dXrTu+W/n568braoqJpOJnj2f8kVKlxUWFkabNvfTps39FfacQviCqsKCBQbe\neCMcu11hzJhCevRwIN9xtMcnL/l116ls3Gi5YkvhzwUB4O2336Ju3Xo88khnjh07RvfunXnyyV5/\n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\nQmCC\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# ロジスティック曲線\n", "plot(_logistic(x), [x, -6, 6], figsize=4, legend_label='$q=\\\\frac{1}{1+exp(-z)}$')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

パラメータ推定

\n", "\t

\n", "\t\t残念ながら、statmodelsではcbindに相当する二項分布の解析方法が分からず、\n", "\t\tRを使って計算することにしました。\n", "\t

\n", "\t

\n", "\t\tSageの中からRの関数を使うことができるので、計算を中断することなく進めることができます。\n", "\t

\n", "\t

\n", "\t\t回帰の結果、$\\beta_1 = -19.536, \\beta_2 = 1.95, \\beta_3=2.02$と求まりました。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# statmodelsでcbind(y, N -y)の部分を表現する方法が見つからなかった\n", "# 0, 1の場合には、statmodelsでも解析可能です。\n", "# 残念ですが、Rを使って処理します。\n", "PandaDf2RDf(d, \"d\")" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "\n", "Call: glm(formula = cbind(y, N - y) ~ x + f, family = binomial, data = d)\n", "\n", "Coefficients:\n", "(Intercept) x fT \n", " -19.536 1.952 2.022 \n", "\n", "Degrees of Freedom: 99 Total (i.e. Null); 97 Residual\n", "Null Deviance:\t 499.2 \n", "Residual Deviance: 123 \tAIC: 272.2" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r('glm(cbind(y, N - y) ~ x + f, data=d, family=binomial)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### statmodelsで二項分布を解析\n", "以下のサイトにstatmodelsで二項分布を解析する方法が紹介されていました。\n", "- [Data Science by R and Python](http://tomoshige-n.hatenablog.com/entry/2014/11/07/202201)\n", "\n", "cbind(A, B)の部分は、A + Bと表現すればよいことが分かりました。" ] }, { "cell_type": "code", "execution_count": 11, "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", "
Model: GLM AIC: 272.2111
Link Function: logit BIC: -323.6676
Dependent Variable: ['y', 'NmY'] Log-Likelihood: -133.11
Date: 2016-08-28 02:54 LL-Null: -321.20
No. Observations: 100 Deviance: 123.03
Df Model: 2 Pearson chi2: 109.
Df Residuals: 97 Scale: 1.0000
Method: IRLS
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Coef. Std.Err. z P>|z| [0.025 0.975]
Intercept -19.5361 1.4138 -13.8184 0.0000 -22.3070 -16.7651
f[T.T] 2.0215 0.2313 8.7404 0.0000 1.5682 2.4748
x 1.9524 0.1389 14.0590 0.0000 1.6802 2.2246
" ], "text/plain": [ "\n", "\"\"\"\n", " Results: Generalized linear model\n", "==============================================================\n", "Model: GLM AIC: 272.2111 \n", "Link Function: logit BIC: -323.6676\n", "Dependent Variable: ['y', 'NmY'] Log-Likelihood: -133.11 \n", "Date: 2016-08-28 02:54 LL-Null: -321.20 \n", "No. Observations: 100 Deviance: 123.03 \n", "Df Model: 2 Pearson chi2: 109. \n", "Df Residuals: 97 Scale: 1.0000 \n", "Method: IRLS \n", "--------------------------------------------------------------\n", " Coef. Std.Err. z P>|z| [0.025 0.975] \n", "--------------------------------------------------------------\n", "Intercept -19.5361 1.4138 -13.8184 0.0000 -22.3070 -16.7651\n", "f[T.T] 2.0215 0.2313 8.7404 0.0000 1.5682 2.4748\n", "x 1.9524 0.1389 14.0590 0.0000 1.6802 2.2246\n", "==============================================================\n", "\n", "\"\"\"" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# statmodelsで解析\n", "# N-yのカラムを追加\n", "N = 8\n", "d['NmY'] = N - d.y\n", "fit = smf.glm('y + NmY ~ x + f', data=d, family=sm.families.Binomial()).fit()\n", "fit.summary2()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

結果の図化

\n", "\t

\n", "\t\tSageを使って解析結果、施肥あり$logistic(-19.536+1.952x + 2.022)$、施肥なし$logistic(-19.536+1.952x)$をプロットしました。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 4 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dT = d[d.f == 'T']\n", "dC = d[d.f == 'C']\n", "dT_pts = list_plot(zip(dT.x, dT.y), zorder=2)\n", "dC_pts = list_plot(zip(dC.x, dC.y), zorder=2, rgbcolor='red')\n", "dT_plt = plot(_logistic(-19.536+1.952*x + 2.022)*8, [x, 7, 13])\n", "dC_plt = plot(_logistic(-19.536+1.952*x)*8, [x, 7, 13], rgbcolor='red')\n", "(dT_pts+dT_plt+dC_pts+dC_plt).show(figsize=4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

結果の解釈

\n", "\t

\n", "\t\t久保本のすごいところは、単に回帰をすることで終わらず、その解釈を説明しているところです。\n", "\t\tリンク関数がロジット関数である(式a)であることから\n", "$$\n", "\t\tlog \\frac{q_i}{1 - q_i} = \\beta_1 + \\beta_2 x_i + \\beta_3 f_i\n", "$$\t\t\n", "\t\tとなり、両辺の指数を取ると、\n", "$$\n", "\t\t\\frac{q_i}{1 - q_i} = exp(\\beta_1 + \\beta_2 x_i + \\beta_3 f_i) \n", "\t\t\t\t\t\t\t= exp(\\beta_1) exp(\\beta_2 x_i) exp(\\beta_3 f_i)\n", "$$\t\t\n", "\t\tとなります。$\\frac{q_i}{1 - q_i}$がオッズと呼ばれる量です。\n", "\t

\n", "\t

\n", "\t\t施肥の有無による違いは、exp(2.02)=7.5倍であると推定されました。\n", "\t

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

割り算を使わない方法はすごい!

\n", "\t

\n", "\t\t久保本の6章で感動したのは、割り算を使わない方法です。\n", "\t\t私のようなものは、割り算を使って正規化してしまいますが、\n", "\t\tこのように割り算をしないで、回帰分析する方法としてオフセット項の使い方を\n", "\t\t紹介しています。\n", "\t

\n", "\t

\n", "\t\tオフセット用のデータには、data4b.csvを使います。\n", "\t\tこのデータは、\n", "\t\t

\n", "\t\tの記録です。横軸にA, 縦軸にyを取りデータをプロットすると以下の様になります。\n", "\t\t面積が大きいほど植物個体数が多く、xが大きい(明るい)程植物個体数が多いことが\n", "\t\t見て取れます。\n", "\t

\n", "\t

\n", "\t\tオフセット項は、offset=np.log(オフセットのカラム)のように指定します。ここでは、オフセット値Aのlogを\n", "\t\t取った値が使われていますが、これは以下のような理由からです。\n", "\t

\n", "\t

\n", "\t\t人口密度を以下の様に表し、\n", "$$\n", "\t\t\\frac{平均個体数\\lambda_i}{A_i} = 人口密度\n", "$$\t\t\n", "\t\t平均個体数と明るさに指数関数的な関係があると仮定すると、\n", "$$\n", "\t\t\\lambda_i = A_i \\times 人口密度 = A_i exp(\\beta_1 + \\beta_2 x_i)\n", "$$\t\t\n", "\t\tここで、面積を掛けている部分にlogを使うことで\n", "$$\n", "\t\t\\lambda_i = exp(\\beta_1 + \\beta_2 x_i + log A_i)\n", "$$\t\t\n", "\t\tと変形することができます。つまり、$log A_i$だけずれた値(オフセット項)、久保本では「げた」をはかせたと考えると\n", "\t\tよいとありました。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 13, "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", "
yxA
0570.6810.3
1640.2715.6
2490.4610.0
3640.4514.9
4820.7414.0
\n", "
" ], "text/plain": [ " y x A\n", "0 57 0.68 10.3\n", "1 64 0.27 15.6\n", "2 49 0.46 10.0\n", "3 64 0.45 14.9\n", "4 82 0.74 14.0" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# オフセット用のデータを読み込む\n", "d2 = pd.read_csv('data/data4b.csv')\n", "d2.head()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nFV8REQf+P4W1Hl1MIWsDAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Aの値で色を変えてプロット\n", "sns.lmplot('A', 'y', data=d2, hue='x', fit_reg=False, legend=False)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "\n", "\t

推定値

\n", "\t

\n", "\t\t推定された値をプロットすると以下のようになります。\n", "\t\tデータよりもはっきりと明るさによる影響がきれいに分かります。(そのようにモデルを作ったので当たり前なのですが)\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 15, "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", "
Model: GLM AIC: 650.3406
Link Function: log BIC: -369.6983
Dependent Variable: y Log-Likelihood: -323.17
Date: 2016-08-28 02:54 LL-Null: -413.09
No. Observations: 100 Deviance: 81.608
Df Model: 1 Pearson chi2: 81.5
Df Residuals: 98 Scale: 1.0000
Method: IRLS
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Coef. Std.Err. z P>|z| [0.025 0.975]
Intercept 0.9731 0.0451 21.5999 0.0000 0.8848 1.0614
x 1.0383 0.0777 13.3638 0.0000 0.8860 1.1905
" ], "text/plain": [ "\n", "\"\"\"\n", " Results: Generalized linear model\n", "==============================================================\n", "Model: GLM AIC: 650.3406 \n", "Link Function: log BIC: -369.6983\n", "Dependent Variable: y Log-Likelihood: -323.17 \n", "Date: 2016-08-28 02:54 LL-Null: -413.09 \n", "No. Observations: 100 Deviance: 81.608 \n", "Df Model: 1 Pearson chi2: 81.5 \n", "Df Residuals: 98 Scale: 1.0000 \n", "Method: IRLS \n", "---------------------------------------------------------------\n", " Coef. Std.Err. z P>|z| [0.025 0.975]\n", "---------------------------------------------------------------\n", "Intercept 0.9731 0.0451 21.5999 0.0000 0.8848 1.0614\n", "x 1.0383 0.0777 13.3638 0.0000 0.8860 1.1905\n", "==============================================================\n", "\n", "\"\"\"" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fit = smf.glm('y ~ x', data=d2, offset=np.log(d2.A), family=sm.families.Poisson(link=sm.families.links.log)).fit()\n", "fit.summary2()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "d2['pred'] = fit.predict()\n", "# xの値で色を変えてプロット\n", "sns.lmplot('A', 'pred', data=d2, hue='x', fit_reg=False, legend=False)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

正規分布と尤度

\n", "\t

\n", "\t\tSageにも確率分布を扱う関数RealDistirubtionがVer.5から導入されました。(まだ一部の関数のサポートですが)\n", "\t\tこれを使って、正規分布の確率密度関数をプロットしていました。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Sage ver.5から導入されたRealDistributionを使う\n", "T1 = RealDistribution('gaussian', 1, seed=101)\n", "T2 = RealDistribution('gaussian', 3, seed=101)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nnQAAAABJRU5ErkJggg==\n", "text/plain": [ "Graphics object consisting of 3 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "T1_plt = plot(lambda x : T1.distribution_function(x), [x, -4, 4], rgbcolor=\"red\")\n", "T2_plt = plot(lambda x : T2.distribution_function(x), [x, -4, 4], rgbcolor=\"green\")\n", "T3_plt = plot(lambda x : T1.distribution_function(x-2), [x, -4, 4], rgbcolor=\"blue\")\n", "(T1_plt + T2_plt + T3_plt).show(figsize=4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

確率密度関数から確率を得る

\n", "\t

\n", "\t\t確率密度関数から指定された範囲に含まれる確率は、その範囲の面積になります。(その範囲で積分した値)\n", "\t\tcum_distribution_functionは、マイナス無限大から指定された値までの確立を計算するので、\n", "\t\tこの関数の差を計算することで、指定範囲の確率(面積)を求めることができます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.07913935110878245" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# xが1.2から1.8となる確率は、cum_distribution_functionの差で計算で求まる\n", "T1.cum_distribution_function(1.8) - T1.cum_distribution_function(1.2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

正規分布の尤度

\n", "\t

\n", "\t\t久保本に従って正規分布の尤度をと最尤尤度を求めてみます。\n", "\t\t$y_iがy_i - 0.5\\Delta y \\leq y \\leq y_i + 0.5\\Delta y$である確率は、\n", "$$\n", "\t\t\\begin{eqnarray}\n", "\t\t\tL(\\mu, \\sigma) & = & \\prod_i p(y_i | \\mu, \\sigma) \\Delta y \\\\\n", "\t\t\t\t& = & \\prod_i \\frac{1}{\\sqrt{2 \\pi \\sigma^2}} exp\\left\\{ \\frac{(y_i - \\mu)^2}{2\\sigma^2} \\right\\} \\Delta y \\\\\n", "\t\t\t\t& = & \\prod_i (2 \\pi \\sigma^2)^{-\\frac{1}{2}} exp\\left\\{ \\frac{(y_i - \\mu)^2}{2\\sigma^2} \\right\\} \\Delta y\n", "\t\t\\end{eqnarray}\n", "$$\t\n", "\t\t両辺をlogを取って\n", "$$\n", "\\begin{eqnarray}\n", "\tlog L(\\mu, \\sigma) & = & -\\frac{1}{2} \\sum_i log(2 \\pi \\sigma^2) - \\frac{1}{2 \\sigma^2} \\sum_i (y_i - \\mu)^2 + \\sum_i log(\\Delta y) \\\\\n", "\t\t\t\t\t\t& = & -\\frac{1}{2} N log(2 \\pi \\sigma^2) - \\frac{1}{2 \\sigma^2} \\sum_i (y_i - \\mu)^2 + N log(\\Delta y) \n", "\\end{eqnarray}\n", "$$\n", "\t\t$\\Delta y$の項を無視すると、\n", "$$\n", "\tlog L(\\mu, \\sigma) = -\\frac{1}{2} N log(2 \\pi \\sigma^2) - \\frac{1}{2 \\sigma^2} \\sum_i (y_i - \\mu)^2\n", "$$\t\t\n", "\t\tとなります。これを$\\mu$で偏微分し、最小となるのは、$y = \\mu$と求まります。(最小自乗法の解と同じ)\n", "\t

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

ガンマ分布

\n", "\t

\n", "\t\tどんなときにガンマ分布を使うのかGoogleでみると、正の値で、寿命や待ち時間など経過時間に無関係一定値の場合に、\n", "\t\t使われるとありました。\n", "\t

\n", "\t

\n", "\t\tガンマ分布の確立密度関数は、以下の様に定義されます。\n", "$$\n", "p(y\\,|\\,s, r) = \\frac{r^s}{\\Gamma(s)}y^{s-1}\\, exp(-ry)\n", "$$ \n", "ここでsはshapeパラメータ、rはrateパラメータと呼ばれています。\n", "\n", "ガンマ分布の平均は$s/r$、分散は$s/r^2$となります。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# ガンマ分布の確率密度分布を定義\n", "def _p(y, s, r):\n", " return r^s/gamma(s)*y^(s-1)*e^(-r*y)" ] }, { "cell_type": "code", "execution_count": 21, "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": [ "y = var('y')\n", "plt1 = plot(_p(y,1,1), [y,0,5], rgbcolor=\"red\", legend_label =\"r=s=1\")\n", "plt2 = plot(_p(y,5,5), [y,0,5], rgbcolor=\"green\", legend_label =\"r=s=5\")\n", "plt3 = plot(_p(y,0.1,0.1), [y,0,5], rgbcolor=\"blue\", legend_label =\"r=s=0.1\")\n", "(plt1+plt2+plt3).show(figsize=4, ymax=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

ガンマ分布を使った回帰分析

\n", "\t

\n", "\t\t例題では、ある個体の花の重量を$y_i$が平均$\\mu_i$のガンマ分布にしたがっていると仮定します。\n", "$$\n", "\t\t\\mu_i = A x_i^b\n", "$$\t\t\n", "\t\tで、A=exp(a)とすると、\n", "$$\n", "\t\t\\mu_i = exp(a)x_i^b = exp(a + log x_i^b) = exp(a + b log x_i)\n", "$$\t\t\n", "\t\tと表され、リンク関数は、expの逆関数のlogとなり、\n", "$$\n", "\t\tlog \\mu_i = a + b log x_i\n", "$$\t\t\n", "\t\tとなります。\n", "\t

\n", "\t

\n", "\t\tガンマ分布の例題データは、RData形式なので、Rで解析します。family=Gamma(link=\"log\")でリンク関数logのガンマ分布を指定します。\n", "\t

\n", "\t

\n", "\t\tglmを使うと複雑な分布の回帰が簡単に計算できます。しかし、どのモデルが良いかは、\n", "\t\tプロット結果を見ながら判断するのがよいと実感しました。人間の目で分からない違いは、尤度やAICを使うのが現実できなのでは?\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "\n", "Call: glm(formula = y ~ log(x), family = Gamma(link = \"log\"), data = d)\n", "\n", "Coefficients:\n", "(Intercept) log(x) \n", " -1.0403 0.6833 \n", "\n", "Degrees of Freedom: 49 Total (i.e. Null); 48 Residual\n", "Null Deviance:\t 35.37 \n", "Residual Deviance: 17.25 \tAIC: -110.9" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# ガンマ分布用のデータを使って回帰分析\n", "r('load(\"data/d.RData\")')\n", "r('glm(y ~ log(x), family=Gamma(link=\"log\"), data=d)')" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfgAAAH4CAMAAACR9g9NAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAm1QTFRF\n////9/f39PT0+Pj49fX1+vr68PDw6+vr9vb2rKysbm5ufX1929vbEBAQnZ2dPz8/AAAALy8vTk5O\nzMzMHx8f5+fnuLi48/PzfHx8xMTE0NDQoKCgiIiIra2taWlpqamp/v7++/v7/f395OTkycnJ2dnZ\ncXFxXl5evLy8cHBwp6enQEBAdXV1gICAICAgjY2NsLCwlJSUZWVl5ubm8fHx19fXysrK4eHh4uLi\n09PT3t7ez8/P6enp3Nzc2tra4ODg7u7uzc3Nrq6uUFBQY2NjWVlZpKSkPT09kpKSbGxswcHBf39/\nm5ubZmZmMzMzd3d3IiIiVVVVmZmZqqqqu7u7ERER3d3dtr3RhJvjUXr0kKjvM2b/Vn/51tbWwMPO\njqLfZYftPW37b47qp7jrc3NzQkJCUlJS1dXV7Ozs0tLS0dHRxsrUkqbjaIrwmKncW4Hxoq/YrLbV\neZXmR3P45eXlw8bQcY/rPW38Unv1hZ3kc5LtU3z2cpHtSHT5SlRzaIfjgoaQOU2LNV7YNWXzSWvR\njJ3Q7e3tdnZ2jZSoQVytO2r5RleKNli+OGj2UXDMkJCQ+fn5tcDedJPvOWLcTGCdY2ZwPV/FeIm8\nOWj3Tmm6PEJXen2Ij6ThSHX5rrjXxcXFISEh6urqXYPztra2kZGRJiYmpaWluL/UfpnqPm38e5bo\nvsTZUVFRurq6g4ODv7+/fZjqp7TdMDAwR0dHwsLCOjo6KSkpBAQENjY2bIrmOFCYYH/bWWqdO2DQ\nN2b1O2v6najGepbn1trkxMvfxdP7gJvsRluYNmX0PWnulpaWvMPXSFZ/h4eHZGRkRERECkGtQQAA\nAAFiS0dEEJWyDSwAAAAJcEhZcwAAAEgAAABIAEbJaz4AAB2DSURBVHja7Z2Je9vIeYdpe20ZIEyA\nBERSlLKJN7smkzRhHUWydXtXPiXF3t1sVnbVyEe7UcIktmwrbZMe6X03aZPeaZs0PdOmbdqm933f\n+ZtKAAQJEDPADAiAIOb3PX4eyqDgF8BrDOb4ZlAoIBAIBAKBQCAEi2PH/XHimeP8cSzCPgCZ8UyU\n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\nRK5CYII=\n", "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 結果の図化、stat_smoothのglmを使う場合、method.argsにfamilyをセットするのに変わったみたい。\n", "graph = preGraph(\"images/fig-6.13.pdf\")\n", "r('p <- ggplot(data=d, aes(x=x, y=y)) + geom_point() + stat_smooth(method=glm, formula=y ~ log(x), method.args = list(family=Gamma(link=\"log\")))')\n", "r('plot(p)')\n", "postGraph(graph)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## おまけ\n", "Rの代わりにPythonでガンマ分布のGLM例題を試してみます。" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nFfx/iitLgLpOHn0AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Rからsageにデータを取り込みます。\n", "d = RDf2PandaDf(\"d\")\n", "# 結果のプロットを簡単にするために、xでソートしたデータをdにセット\n", "d = d.sort_values(by=['x'])\n", "# 分布をプロット\n", "d.plot(kind='scatter', x='x', y='y')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 25, "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", "
Model: GLM AIC: -112.9643
Link Function: log BIC: -170.5416
Dependent Variable: y Log-Likelihood: 58.482
Date: 2016-08-28 02:54 LL-Null: 30.617
No. Observations: 50 Deviance: 17.236
Df Model: 1 Pearson chi2: 15.6
Df Residuals: 48 Scale: 0.32487
Method: IRLS
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Coef. Std.Err. z P>|z| [0.025 0.975]
Intercept -1.0410 0.1187 -8.7675 0.0000 -1.2737 -0.8082
np.log(x) 0.6827 0.0684 9.9874 0.0000 0.5487 0.8166
" ], "text/plain": [ "\n", "\"\"\"\n", " Results: Generalized linear model\n", "==============================================================\n", "Model: GLM AIC: -112.9643\n", "Link Function: log BIC: -170.5416\n", "Dependent Variable: y Log-Likelihood: 58.482 \n", "Date: 2016-08-28 02:54 LL-Null: 30.617 \n", "No. Observations: 50 Deviance: 17.236 \n", "Df Model: 1 Pearson chi2: 15.6 \n", "Df Residuals: 48 Scale: 0.32487 \n", "Method: IRLS \n", "---------------------------------------------------------------\n", " Coef. Std.Err. z P>|z| [0.025 0.975]\n", "---------------------------------------------------------------\n", "Intercept -1.0410 0.1187 -8.7675 0.0000 -1.2737 -0.8082\n", "np.log(x) 0.6827 0.0684 9.9874 0.0000 0.5487 0.8166\n", "==============================================================\n", "\n", "\"\"\"" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fit = smf.glm('y ~ np.log(x)', data=d, family=sm.families.Gamma(link=sm.families.links.log)).fit()\n", "fit.summary2()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nuhtPgAyMRPxqeGSU/U0RnjvYwfOHO+juGwKguCjAljUhXt64lJc3LiVcPftRRTK5vNhUPvUBLlaL\nmtwiyeU8OMzsWefcHufcM8AocKtz7kagy8y+75z7DrAS2Oic+y/gATP7dq7rzLX+c8O8cPgMvz3Y\nzt6jnRMXM6ooK+XqS+t4eeNStqxd4vtzP+VTH+BiteRTuInko0B0/MgvH2tv7/XFLzH103ykd5Dn\nDrbz25faseNdE6cfr60uY+vGMJdvWEpjQxVFRbkbfPlpiJ2tOiNdkQsCJd2muR7PzFKdmRUOB9N6\nc/H3x1cfOtN9jj0H29ltbRw+2c144q2pC/KKjWG2blhK/dLFeXPVu3zaCypX/L5bsEi2zcvgyPWb\nYXvXWXZbG88fPsPB411ArIGzYWU1r3Rhtm4Ms6Qye+eAmgudP0pEppqXwZGLN8NI7yC/OdDGr/ef\n5khLDwBFRQEuWRPiClfL1g1LqapYmNH7zAY1ikVkqnkZHNl6M+wZGGKPtfPrF09z8EQXUWJXwduy\nJsSVm5fxhm1rGDo7lJk7yxE1ikVkqnkZHJl8MxwaHuV3hzr45b5T7DvSyVh8Z4ONK6p41SXLeKWr\npXJx7JoVVRULaZ9lcORLbyGf9oISkfwwL4Njrm+GY9EoL53o4pf7TrHb2ibONLu6Lsi2S5Zx5aba\nOfcskk2n5TJU0m0U50vwiYCej5k2L4Mj3TfDtq6z/OKFVp7dd4ozPedi2wou5PVbV3DVljrqly7O\nWI3JptP80LD2Q40yf+j5mFnzMjhSMTI6xnMH2/n58y28eCwCwMIFxVx9WR3bt9ThVocoysKus8mm\n0/zQsPZDjTJ/6PmYWQqOizjVOcDPf9fCM/ta6Y1fc3vjiiquubyeKzbWsnBBdk+qmGw6zQ8Naz/U\nKPOHno+ZpSPHE4yNRfntS+08teckB+LHW1SUlbL90jqueXn9nKeiMnU0aSaPbJ7KDzWCr47MVZ0Z\nlG6d2X4+TrqvSISvPfJdWiPDed9PSffIcQUHcHZwhKdfaOWnu0/Q0R3rXWxaVc1rL29g68Zw0mtZ\npMIPL858rXFqc/Pzd76f0dH8HzDn6+M5lerMnDvv+edYPyU+umkIWN72U3TKkTS0d53lqT0n+fnz\nLZwbGqW0pIhtm2s4vP83NB0Y4gdNUTbm8aeF+WRqc/NTX3qYOz/8Pq/LErnAfOinzMvgONnWx+PP\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 推定結果をd.predに追加して、プロット\n", "d['pred'] = fit.predict()\n", "# 分布をプロット\n", "ax = d.plot(kind='scatter', x='x', y='y')\n", "d.plot(kind='line', x='x', y='pred', ax=ax)\n", "plt.show()" ] }, { "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 }