{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "aa5ed150-c487-4697-b8cf-d7a89fafe745", "metadata": {}, "source": [ "# 回帰分析\n" ] }, { "attachments": {}, "cell_type": "markdown", "id": "d73b8b34-7416-4cf0-9d4e-13a5259fff07", "metadata": {}, "source": [ "\n", "## 単回帰分析\n", "\n", "ここではまず、説明変数が1つの単回帰(Simple Regression)を考えます。\n", "\n", "$y_i = \\beta_0+\\beta_1x_i+\\epsilon_i$\n", "\n", "\n", "* $y_i$: 被説明変数(explained variable), 従属変数(dependent variable),アウトカム(outcome variable)など\n", "\n", "* $x_i$: 説明変数(explanatory variable), 独立変数(independent variable)など\n", "\n", "* $\\epsilon_i$: 誤差項(erros, error terms) 平均はゼロと仮定\n", "\n", "* $i$: 観測値のインデックス\n", "\n", "* $\\beta_0$:定数項、切片パラメター\n", "\n", "* $\\beta_1$:係数パラメター、傾きパラメター" ] }, { "attachments": {}, "cell_type": "markdown", "id": "19e8e080-95f3-499f-8ec1-7298b829ad4c", "metadata": {}, "source": [ "最小二乗法推定法(Ordinary Least Squares; OLS)やモーメント法、最尤法などで推定できます。\n", "\n", "最小二乗法の場合は、\n", "\n", "$\\sum_{i=1}^{n}(y_i-\\beta_0-\\beta_1x_i)^2$ を最小化する$\\beta_0$, $\\beta_1$を求めます" ] }, { "attachments": {}, "cell_type": "markdown", "id": "ab86b3da-7435-4e0d-9a06-d84410c835e9", "metadata": {}, "source": [ "推定した係数$\\beta_1$は被説明変数$y_i$に対する説明変数$x_i$の影響度合いを表す限界効果、あるいは説明変数が1単位変化した場合の被説明変数の変化($\\frac{\\delta y_i}{\\delta x_i}$)と解釈することができます。" ] }, { "attachments": {}, "cell_type": "markdown", "id": "c08f99a2-f086-4464-842d-724b36403080", "metadata": {}, "source": [ "\n", "\n", "ここでは`statsmodels` を用いて単回帰分析を行います。\n", "\n", "`statsmodels`は線形回帰、一般化線形モデル、制限付き従属変数モデル、ARIMA、VARモデルなどをカバーするパッケージです。\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "75f0d4ed-6a37-42fc-92eb-431249ad332d", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import statsmodels.api as sm\n", "import matplotlib.pyplot as plt" ] }, { "attachments": {}, "cell_type": "markdown", "id": "7775cbd7-ac46-4c43-a91c-5145573d2a9f", "metadata": {}, "source": [ "回帰分析で用いるデータを読み込みます。\n", "\n", "ここでは、`statsmodels`に付属する`statecrime`というデータセットの1つで、1996年`American National Elections Study`のデータを用いて回帰分析を行います。" ] }, { "cell_type": "code", "execution_count": 18, "id": "6eda48b5-9d42-4f0f-9273-719ff44d925c", "metadata": {}, "outputs": [], "source": [ "data = sm.datasets.statecrime.load_pandas().data" ] }, { "cell_type": "code", "execution_count": 19, "id": "73638e8b-8435-4103-b1b7-107530831332", "metadata": {}, "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", "
violentmurderhs_gradpovertysinglewhiteurban
state
Alabama459.97.182.117.529.070.048.65
Alaska632.63.291.49.025.568.344.46
\n", "
" ], "text/plain": [ " violent murder hs_grad poverty single white urban\n", "state \n", "Alabama 459.9 7.1 82.1 17.5 29.0 70.0 48.65\n", "Alaska 632.6 3.2 91.4 9.0 25.5 68.3 44.46" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# dataの最初の2行を表示\n", "data.head(2)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "dffb10b0-bca2-45f2-9dd5-a407a9ecda86", "metadata": {}, "source": [ "このデータは以下のデータを格納しています\n", "\n", "* state: 州の名前\n", "* violent: 暴力犯罪発生率/人口10万人。殺人を含む\n", "* murder: 殺人事件の発生率/人口10万人\n", "* hs_grad: 高等学校以上を卒業した人口の割合\n", "* poverty: 貧困線以下の人口の割合\n", "* white: 白人のみの人口の割合\n", "* single: 片親のいる家族世帯の割合\n", "* urban: 市街化区域に住む人口の割合" ] }, { "attachments": {}, "cell_type": "markdown", "id": "a62577b5-6536-402c-87a7-67545f137d70", "metadata": {}, "source": [ "`murder` 殺人事件の発生率を被説明変数($y_i$)、`poverty`貧困人口の割合を説明変数($x_i$)とした単回帰分析を行います。" ] }, { "cell_type": "code", "execution_count": 43, "id": "73536dcd-63a1-499a-aa60-a1d602e8d4d8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: murder R-squared: 0.294\n", "Model: OLS Adj. R-squared: 0.279\n", "Method: Least Squares F-statistic: 20.36\n", "Date: Wed, 05 Apr 2023 Prob (F-statistic): 4.03e-05\n", "Time: 20:13:27 Log-Likelihood: -128.98\n", "No. Observations: 51 AIC: 262.0\n", "Df Residuals: 49 BIC: 265.8\n", "Df Model: 1 \n", "Covariance Type: nonrobust \n", "==============================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "------------------------------------------------------------------------------\n", "Intercept -3.8989 1.998 -1.952 0.057 -7.913 0.115\n", "poverty 0.6351 0.141 4.512 0.000 0.352 0.918\n", "==============================================================================\n", "Omnibus: 63.810 Durbin-Watson: 2.087\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 533.355\n", "Skew: 3.237 Prob(JB): 1.53e-116\n", "Kurtosis: 17.459 Cond. No. 65.7\n", "==============================================================================\n", "\n", "Notes:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" ] } ], "source": [ "mod = sm.OLS.from_formula('murder ~ poverty', data = data)\n", "res = mod.fit()\n", "print(res.summary())" ] }, { "attachments": {}, "cell_type": "markdown", "id": "4e34392d-4e11-4654-a312-33d382f2d97b", "metadata": {}, "source": [ "** その他の結果の表の読み方は[このページ](https://www.statsmodels.org/stable/generated/statsmodels.regression.linear_model.RegressionResults.html)を参照してください。" ] }, { "attachments": {}, "cell_type": "markdown", "id": "ad3ed119-7158-4711-ad3e-cfeb13a938f9", "metadata": {}, "source": [ "$\\beta_0$の推計値は`intercept`行、`coef`列の値`-3.8989`です。\n", "$\\beta_1$の推計値は`poverty`行、`coef`列の値`0.6351`です。\n", "すなわち、$\\beta_1$は貧困人口の割合が1ポイント高い場合、殺人事件発生率は何ポイント変化するかを示しています。\n", "今回の単回帰分析推定結果からは貧困人口の割合が1ポイント高い場合、殺人事件発生率は約0.6ポイント高いことを示しています。" ] }, { "attachments": {}, "cell_type": "markdown", "id": "85e47f3d-66a1-43b1-92c5-9683bbfd8a00", "metadata": {}, "source": [ "また、回帰モデルの当てはまりの良さは自由度調整済決定係数`Adj. R-squared`で確認できます。\n", "0から1までの間の値で、値が大きいほど回帰直線がデータをうまく説明できている(フィットしている)ことになります。" ] }, { "attachments": {}, "cell_type": "markdown", "id": "a49111b9-83ed-4490-91d2-2fb1228fc3d8", "metadata": {}, "source": [ "回帰分析の結果を図で確認します。\n", "\n", "$\\hat{y}$予測値を取得し、その上で回帰直線を示します。" ] }, { "cell_type": "code", "execution_count": 50, "id": "dbc61246-6fe7-489a-9387-3da874da3e1f", "metadata": {}, "outputs": [ { "data": { "image/png": "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qQAAwCSWDjPt9t+MzjCMbjeomz9/vvx+f+S2bdu2VJQIAABMYulN8woKCpSent5pFKampqbTaE07l8vFVasBABhALB1mMjMzdeyxx+q1117TOeecE3n8tdde09lnnx3Va7T3N9M7AwCAfbR/bkezTsnSYUaS5syZo8svv1zHHXecxo4dq9/97nf64osv9KMf/Siqr9+9e7ck0TsDAIAN7d69W263u8djLB9mLrroIu3cuVN33HGHqqqqdMQRR+jFF19UaWlpVF9fUlKibdu2KS8vr0OfTSAQ0LBhw7Rt27YBv2Sbc7EX56IjzsdenIu9OBcdcT72SuS5MAxDu3fvVklJSa/HWn6fmWRh/5m9OBd7cS464nzsxbnYi3PREedjL7POhS1WMwEAAHSHMAMAAGxtwIYZl8ul2267jWXc4lzsi3PREedjL87FXpyLjjgfe5l1LgZszwwAAOgfBuzIDAAA6B8IMwAAwNYIMwAAwNYIMwAAwNYGVJgJhUK65ZZbNGLECGVnZ2vkyJG64447FA6HzS4tJdauXatJkyappKREDodDzzzzTIfnDcPQggULVFJSouzsbI0fP16ffPKJOcUmWU/noqWlRfPmzdORRx6p3NxclZSU6IorrtBXX31lXsFJ1Nvvxb5++MMfyuFw6N57701ZfakWzfn49NNPddZZZ8ntdisvL08nnHCCvvjii9QXm2S9nYs9e/bo2muv1dChQ5Wdna3DDjtMy5cvN6fYJFu0aJGOP/545eXlqbCwUJMnT9Y//vGPDscMlPfQ3s6FGe+hAyrMLF68WA8++KCWLVumTz/9VEuWLNE999yjX//612aXlhL19fU66qijtGzZsi6fX7JkiZYuXaply5bpvffeU3FxsU455ZTI9a36k57ORUNDgzZu3Khbb71VGzdu1FNPPaXPPvtMZ511lgmVJl9vvxftnnnmGa1fvz6qrcXtrLfz8c9//lPjxo1TWVmZVq9erQ8//FC33nqrsrKyUlxp8vV2Lq6//nq9/PLLeuyxx/Tpp5/q+uuv16xZs/Tss8+muNLkW7NmjWbOnKl33nlHr732mkKhkCZOnKj6+vrIMQPlPbS3c2HKe6gxgJx55pnG9OnTOzx27rnnGpdddplJFZlHkvH0009H7ofDYaO4uNi4++67I481NTUZbrfbePDBB02oMHX2Pxddeffddw1J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ms8//1x//OMf9ac//UmbNm3S/fffr7Fjx+rqq69WVVWVqqqqNHz4cE2fPl0rVqzo8P0eeughfec739GoUaNScm4AxCkpl68EAMMwpk6dapx99tmR++vXrzeGDBlinH/++UZGRobxhz/8IfJcc3OzUVJSYixZssQwDMPYuHGj4XA4jC1bthiGYRitra3GgQceaPzmN78xDMMw/vKXvxj5+flGU1NTh+85atQo47e//a1hGIZx2223GRkZGUZNTU2HY04++WTjxz/+cYfHvvrqKyM9Pd1Yv359pB6Px2M8/PDDfT8RAJKKkRkASfXnP/9ZBxxwgLKysjR27FiddNJJmjVrllpaWvTtb387clxGRob+4z/+Q59++qkk6eijj1ZZWZkef/xxSdKaNWtUU1OjCy+8UJK0YcMG7dmzR0OGDNEBBxwQuVVWVnaYFiotLZXH4+m1Tq/XqzPPPFMPPfRQpO6mpiZdcMEFCTsXAJKDBmAASTVhwgQtX75cGRkZKikpUUZGRqSvxeFwdDjWMIwOj1166aVauXKlbrrpJq1cuVKnnnqqCgoKJLX11Xi9Xq1evbrT9xw0aFDkv3Nzc6Ou9aqrrtLll1+uX/3qV1qxYoUuuugi5eTkxPDTAjADIzMAkio3N1cHH3ywSktLIyuJDj74YGVmZmrdunWR41paWvT+++/rsMMOizw2ZcoUffzxx9qwYYP+7//+T5deemnkuWOOOUbV1dVyOp06+OCDO9zaA093MjMz1dra2unxM844Q7m5uVq+fLleeuklTZ8+va8/PoAUIMwASLnc3Fxdc801mjt3rl5++WX9/e9/19VXX62GhgZdeeWVkeNGjBihE088UVdeeaVCoZDOPvvsyHPf+973NHbsWE2ePFmvvPKKtmzZorffflu33HKL3n///R6//0EHHaT169dry5Ytqq2tVTgcliSlp6dr2rRpmj9/vg4++GCNHTs2OScAQEIRZgCY4u6779Z5552nyy+/XMccc4w+//xzvfLKK/rGN77R4bhLL71UH374oc4991xlZ2dHHnc4HHrxxRd10kknafr06TrkkEN08cUXa8uWLSoqKurxe99www1KT0/X4YcfLo/Hoy+++CLy3JVXXqnm5mZGZQAbcRiGYZhdBABYxVtvvaXx48dr+/btvYYiANZAmAEAScFgUNu2bdMPfvADeb3eTnvcALAuppkAQNLjjz+uQw89VH6/X0uWLDG7HAAxYGQGAADYGiMzAADA1ggzAADA1ggzAADA1ggzAADA1ggzAADA1ggzAADA1ggzAADA1ggzAADA1ggzAADA1v4/AuEYccbtDNoAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "y = data['murder']\n", "x = data['poverty']\n", "y_hat = res.fittedvalues\n", "plt.scatter(x=x, y=y, color = 'grey', alpha= .5)\n", "plt.plot(x, y_hat, color = 'red')\n", "plt.xlabel('Poverty')\n", "plt.ylabel('Murder')\n", "plt.show()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "cd6b659a-3cc5-49bd-888d-d3300ec82ee7", "metadata": {}, "source": [ "最小二乗法のイメージを図で掴んでみます。" ] }, { "cell_type": "code", "execution_count": 58, "id": "d28b5408-ec6a-4443-aee8-4b1de42382ff", "metadata": {}, "outputs": [ { "data": { "image/png": "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+nTYbLZ2Hzdz5kzY7XY8/vjjWL58OQAgLy8P9957L5588kn07t0bAJCSktLmCEhFRQUAtPsB3lYSePvttyMzMxOPPPJIs+PtJYFdfe2mj9+3bx8uuuiiZscnTZqEefPmYfv27bjgggtQU1ODOXPmYO7cucjMzERlZSWAxqk4AKisrITRaERCQgIAwO12Y+rUqfjpp5/w/vvv46qrrsLTTz+N5557rsN4iDRNyepjImrt//2//ycAiPfee6/Tc9euXSsABPRVXFwc9tg741tVU1hYGND59fX1YufOneLAgQNCCCFuu+02kZCQIJxOpxBCiFmzZolevXoJt9vd7HGrVq0SAMSmTZsCji3Y1Uzdfe3bbrtNABDbt29vdnzv3r0CgHj66aeFEEIUFxd3+m97+eWX+x9/0003CYPBID777DMhhBAzZswQcXFx4tixYwG/NyKt4cgMkcps374dQOPoQWfCMc0UTmvXroVOpwt400yTyYQhQ4YAaGwc+M4772DWrFmIi4sDAFx55ZV46aWX8K9//QvTpk3zP+61117zNxkMl+6+9tSpU/G3v/0Nn376Kc4++2z/8U8++QQAMHLkSABAeno61q5d2+rxTzzxBAoKCvDpp5/CarUCaKy3ev311/Hyyy/7R3wefPBBvPHGG/jzn/+MpUuXdu9NE6mV0tkUETU3ceJEYbValQ6jW2bNmiV+97vfiXfeeUesW7dO/POf/xTTpk0TAMT8+fP9561bt07o9fpWTeJ27twpFi1aJP7973+L1atXiz/+8Y/CarWKc889V1RXVzc798ILLxSnnHKK+Nvf/ibWrFkjZs2aJQCIN998M6iYgx2ZCea123ufkydPFiaTSSxevFisXr1aLF26VMTGxopf/epXnb52yz4zf/3rXwUA8fDDD7c699prrxVJSUnixIkTQb0/Iq1gMkOkMjabTUycOFHpMLrllVdeEWPGjBFWq1UYDAaRnJwsxo0bJ954441m5/mmyR555JFmx7///nsxduxYYbFYRExMjBgwYIB4+OGHRU1NTavXqq6uFnfddZdIT08XMTExYtiwYWLVqlVBx9yVZCbQ127vfTqdTnH//feLvn37CoPBILKyssSCBQtEfX19p6/dNJn5+OOPhV6vFzfccEOb5+7cuVNIktRhZ2EiLZOEaLH+j4iIiEhD2GeGiIiINI3JDBER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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for i in range(len(y)):\n", " dot_fitted_values = [x[i], x[i]]\n", " dot_org_values = [y[i], y_hat[i]]\n", " plt.plot(dot_fitted_values, dot_org_values, linestyle='--', \n", " color='grey',alpha=0.5)\n", "plt.scatter(x=x, y=y, color = 'grey', alpha= .5)\n", "plt.plot(x, y_hat, color = 'red')\n", "plt.xlabel('Poverty')\n", "plt.ylabel('Murder')\n", "plt.title(r'$\\hat Y = {:.2f}+{:.2f}X$'.format(res.params[0], res.params[1]))\n", "plt.show()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "92d091d8-4477-40ea-a608-1ae9e3cbbf91", "metadata": {}, "source": [ "上の図で灰色のプロットは観測値で、赤い実線は推定した回帰線です。\n", "\n", "灰色の波線は$y_i$と$\\hat{y_i}$の差、残差(residual)$\\epsilon_i$を示します。\n", "\n", "$$\\epsilon_i = Y_i - \\hat{Y-i} = Y_i - \\hat{\\beta_1} - \\hat{\\beta_2}X_i$$\n", "\n", "最小二乗法ではRSS(residual sum of squares)$RSS=\\sum_{i=1}^n\\epsilon_i^2$を最小化する$\\beta_1$と$\\beta_2$を推定します。" ] }, { "attachments": {}, "cell_type": "markdown", "id": "1d7a9c5e-2c77-4846-bfc4-5538fb7caeef", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.16" } }, "nbformat": 4, "nbformat_minor": 5 }