【高级编程技术】【作业】【第十四周】【1】

jupyter notebook练习

题目链接:https://nbviewer.jupyter.org/github/schmit/cme193-ipython-notebooks-lecture/blob/master/Exercises.ipynb
homework.ipynb:

{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import random\n",
    "import numpy\n",
    "import scipy\n",
    "import pandas\n",
    "import matplotlib.pyplot\n",
    "import seaborn\n",
    "import statsmodels.api\n",
    "import statsmodels.formula.api\n",
    "\n",
    "seaborn.set_context(\"talk\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       " .dataframe tbody tr th:only-of-type {\n",
       " vertical-align: middle;\n",
       " }\n",
       "\n",
       " .dataframe tbody tr th {\n",
       " vertical-align: top;\n",
       " }\n",
       "\n",
       " .dataframe thead th {\n",
       " text-align: right;\n",
       " }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       " <thead>\n",
       " <tr style=\"text-align: right;\">\n",
       " <th></th>\n",
       " <th>dataset</th>\n",
       " <th>x</th>\n",
       " <th>y</th>\n",
       " </tr>\n",
       " </thead>\n",
       " <tbody>\n",
       " <tr>\n",
       " <th>0</th>\n",
       " <td>I</td>\n",
       " <td>10.0</td>\n",
       " <td>8.04</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>1</th>\n",
       " <td>I</td>\n",
       " <td>8.0</td>\n",
       " <td>6.95</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>2</th>\n",
       " <td>I</td>\n",
       " <td>13.0</td>\n",
       " <td>7.58</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>3</th>\n",
       " <td>I</td>\n",
       " <td>9.0</td>\n",
       " <td>8.81</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>4</th>\n",
       " <td>I</td>\n",
       " <td>11.0</td>\n",
       " <td>8.33</td>\n",
       " </tr>\n",
       " </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       " dataset x y\n",
       "0 I 10.0 8.04\n",
       "1 I 8.0 6.95\n",
       "2 I 13.0 7.58\n",
       "3 I 9.0 8.81\n",
       "4 I 11.0 8.33"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "anascombe = pandas.read_csv('https://nbviewer.jupyter.org/github/schmit/cme193-ipython-notebooks-lecture/tree/master/data/anscombe.csv')\n",
    "anascombe.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       " .dataframe tbody tr th:only-of-type {\n",
       " vertical-align: middle;\n",
       " }\n",
       "\n",
       " .dataframe tbody tr th {\n",
       " vertical-align: top;\n",
       " }\n",
       "\n",
       " .dataframe thead th {\n",
       " text-align: right;\n",
       " }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       " <thead>\n",
       " <tr style=\"text-align: right;\">\n",
       " <th></th>\n",
       " <th>x</th>\n",
       " <th>y</th>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>dataset</th>\n",
       " <th></th>\n",
       " <th></th>\n",
       " </tr>\n",
       " </thead>\n",
       " <tbody>\n",
       " <tr>\n",
       " <th>I</th>\n",
       " <td>9.0</td>\n",
       " <td>7.500909</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>II</th>\n",
       " <td>9.0</td>\n",
       " <td>7.500909</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>III</th>\n",
       " <td>9.0</td>\n",
       " <td>7.500000</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>IV</th>\n",
       " <td>9.0</td>\n",
       " <td>7.500909</td>\n",
       " </tr>\n",
       " </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       " x y\n",
       "dataset \n",
       "I 9.0 7.500909\n",
       "II 9.0 7.500909\n",
       "III 9.0 7.500000\n",
       "IV 9.0 7.500909"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "anascombe.groupby('dataset')[['x', 'y']].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       " .dataframe tbody tr th:only-of-type {\n",
       " vertical-align: middle;\n",
       " }\n",
       "\n",
       " .dataframe tbody tr th {\n",
       " vertical-align: top;\n",
       " }\n",
       "\n",
       " .dataframe thead th {\n",
       " text-align: right;\n",
       " }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       " <thead>\n",
       " <tr style=\"text-align: right;\">\n",
       " <th></th>\n",
       " <th>x</th>\n",
       " <th>y</th>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>dataset</th>\n",
       " <th></th>\n",
       " <th></th>\n",
       " </tr>\n",
       " </thead>\n",
       " <tbody>\n",
       " <tr>\n",
       " <th>I</th>\n",
       " <td>11.0</td>\n",
       " <td>4.127269</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>II</th>\n",
       " <td>11.0</td>\n",
       " <td>4.127629</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>III</th>\n",
       " <td>11.0</td>\n",
       " <td>4.122620</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>IV</th>\n",
       " <td>11.0</td>\n",
       " <td>4.123249</td>\n",
       " </tr>\n",
       " </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       " x y\n",
       "dataset \n",
       "I 11.0 4.127269\n",
       "II 11.0 4.127629\n",
       "III 11.0 4.122620\n",
       "IV 11.0 4.123249"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "anascombe.groupby('dataset')[['x', 'y']].var()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       " .dataframe tbody tr th:only-of-type {\n",
       " vertical-align: middle;\n",
       " }\n",
       "\n",
       " .dataframe tbody tr th {\n",
       " vertical-align: top;\n",
       " }\n",
       "\n",
       " .dataframe thead th {\n",
       " text-align: right;\n",
       " }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       " <thead>\n",
       " <tr style=\"text-align: right;\">\n",
       " <th></th>\n",
       " <th></th>\n",
       " <th>x</th>\n",
       " <th>y</th>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>dataset</th>\n",
       " <th></th>\n",
       " <th></th>\n",
       " <th></th>\n",
       " </tr>\n",
       " </thead>\n",
       " <tbody>\n",
       " <tr>\n",
       " <th rowspan=\"2\" valign=\"top\">I</th>\n",
       " <th>x</th>\n",
       " <td>1.000000</td>\n",
       " <td>0.816421</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>y</th>\n",
       " <td>0.816421</td>\n",
       " <td>1.000000</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th rowspan=\"2\" valign=\"top\">II</th>\n",
       " <th>x</th>\n",
       " <td>1.000000</td>\n",
       " <td>0.816237</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>y</th>\n",
       " <td>0.816237</td>\n",
       " <td>1.000000</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th rowspan=\"2\" valign=\"top\">III</th>\n",
       " <th>x</th>\n",
       " <td>1.000000</td>\n",
       " <td>0.816287</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>y</th>\n",
       " <td>0.816287</td>\n",
       " <td>1.000000</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th rowspan=\"2\" valign=\"top\">IV</th>\n",
       " <th>x</th>\n",
       " <td>1.000000</td>\n",
       " <td>0.816521</td>\n",
       " </tr>\n",
       " <tr>\n",
       " <th>y</th>\n",
       " <td>0.816521</td>\n",
       " <td>1.000000</td>\n",
       " </tr>\n",
       " </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       " x y\n",
       "dataset \n",
       "I x 1.000000 0.816421\n",
       " y 0.816421 1.000000\n",
       "II x 1.000000 0.816237\n",
       " y 0.816237 1.000000\n",
       "III x 1.000000 0.816287\n",
       " y 0.816287 1.000000\n",
       "IV x 1.000000 0.816521\n",
       " y 0.816521 1.000000"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "anascombe.groupby('dataset')[['x', 'y']].corr()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "I\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.667\n",
      "Model:                            OLS   Adj. R-squared:                  0.629\n",
      "Method:                 Least Squares   F-statistic:                     17.99\n",
      "Date:                Wed, 13 Jun 2018   Prob (F-statistic):            0.00217\n",
      "Time:                        21:06:40   Log-Likelihood:                -16.841\n",
      "No. Observations:                  11   AIC:                             37.68\n",
      "Df Residuals:                       9   BIC:                             38.48\n",
      "Df Model:                           1                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Intercept      3.0001      1.125      2.667      0.026       0.456       5.544\n",
      "x              0.5001      0.118      4.241      0.002       0.233       0.767\n",
      "==============================================================================\n",
      "Omnibus:                        0.082   Durbin-Watson:                   3.212\n",
      "Prob(Omnibus):                  0.960   Jarque-Bera (JB):                0.289\n",
      "Skew:                          -0.122   Prob(JB):                        0.865\n",
      "Kurtosis:                       2.244   Cond. No.                         29.1\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "\n",
      "II\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.666\n",
      "Model:                            OLS   Adj. R-squared:                  0.629\n",
      "Method:                 Least Squares   F-statistic:                     17.97\n",
      "Date:                Wed, 13 Jun 2018   Prob (F-statistic):            0.00218\n",
      "Time:                        21:06:40   Log-Likelihood:                -16.846\n",
      "No. Observations:                  11   AIC:                             37.69\n",
      "Df Residuals:                       9   BIC:                             38.49\n",
      "Df Model:                           1                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Intercept      3.0009      1.125      2.667      0.026       0.455       5.547\n",
      "x              0.5000      0.118      4.239      0.002       0.233       0.767\n",
      "==============================================================================\n",
      "Omnibus:                        1.594   Durbin-Watson:                   2.188\n",
      "Prob(Omnibus):                  0.451   Jarque-Bera (JB):                1.108\n",
      "Skew:                          -0.567   Prob(JB):                        0.575\n",
      "Kurtosis:                       1.936   Cond. No.                         29.1\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "\n",
      "III\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.666\n",
      "Model:                            OLS   Adj. R-squared:                  0.629\n",
      "Method:                 Least Squares   F-statistic:                     17.97\n",
      "Date:                Wed, 13 Jun 2018   Prob (F-statistic):            0.00218\n",
      "Time:                        21:06:40   Log-Likelihood:                -16.838\n",
      "No. Observations:                  11   AIC:                             37.68\n",
      "Df Residuals:                       9   BIC:                             38.47\n",
      "Df Model:                           1                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Intercept      3.0025      1.124      2.670      0.026       0.459       5.546\n",
      "x              0.4997      0.118      4.239      0.002       0.233       0.766\n",
      "==============================================================================\n",
      "Omnibus:                       19.540   Durbin-Watson:                   2.144\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):               13.478\n",
      "Skew:                           2.041   Prob(JB):                      0.00118\n",
      "Kurtosis:                       6.571   Cond. No.                         29.1\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "\n",
      "IV\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.667\n",
      "Model:                            OLS   Adj. R-squared:                  0.630\n",
      "Method:                 Least Squares   F-statistic:                     18.00\n",
      "Date:                Wed, 13 Jun 2018   Prob (F-statistic):            0.00216\n",
      "Time:                        21:06:40   Log-Likelihood:                -16.833\n",
      "No. Observations:                  11   AIC:                             37.67\n",
      "Df Residuals:                       9   BIC:                             38.46\n",
      "Df Model:                           1                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Intercept      3.0017      1.124      2.671      0.026       0.459       5.544\n",
      "x              0.4999      0.118      4.243      0.002       0.233       0.766\n",
      "==============================================================================\n",
      "Omnibus:                        0.555   Durbin-Watson:                   1.662\n",
      "Prob(Omnibus):                  0.758   Jarque-Bera (JB):                0.524\n",
      "Skew:                           0.010   Prob(JB):                        0.769\n",
      "Kurtosis:                       1.931   Cond. No.                         29.1\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\dragon\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\scipy\\stats\\stats.py:1394: UserWarning: kurtosistest only valid for n>=20 ... continuing anyway, n=11\n",
      "  \"anyway, n=%i\" % int(n))\n",
      "c:\\users\\dragon\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\scipy\\stats\\stats.py:1394: UserWarning: kurtosistest only valid for n>=20 ... continuing anyway, n=11\n",
      "  \"anyway, n=%i\" % int(n))\n",
      "c:\\users\\dragon\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\scipy\\stats\\stats.py:1394: UserWarning: kurtosistest only valid for n>=20 ... continuing anyway, n=11\n",
      "  \"anyway, n=%i\" % int(n))\n",
      "c:\\users\\dragon\\appdata\\local\\programs\\python\\python36\\lib\\site-packages\\scipy\\stats\\stats.py:1394: UserWarning: kurtosistest only valid for n>=20 ... continuing anyway, n=11\n",
      "  \"anyway, n=%i\" % int(n))\n"
     ]
    }
   ],
   "source": [
    "for group in anascombe.groupby('dataset'):\n",
    "    result = statsmodels.formula.api.ols('y ~ x', group[1]).fit()\n",
    "    print(group[0], '\\n', result.summary(), sep='', end='\\n\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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TCCA/f1rEAj06dPoDpCIiIikht9PuNFx+s5PPOHGHByBgOYEiWQwu2kLbQuXE24YgM0twoR/j7OwhZw7rsPMqOj151MCJCIiIilh99RiXYMSl3EOwtbWYpQAiWQku2kLrf/+ApGh0yAvdoyxsWGwq2LDYHt3LqCGwImIiEhKmHEeTOhE4jLhExiPJ0k1EpFka1u4nMjQyXHPRYZOpm3hyl5/TiVAIiIikho+H87CSMIizsI2DX8TyVR+P+GGvIRFwg3uXp8TpARIREREUibnjhtxHP4g7jnH4Q/Iuf2GJNdIRJLF7qnD5hYnLpM7GFtb16vPqzlAIiIikjJmRiW51uJ4cinhxhyscxAmfCK6D9Df3Kh9gEQymBlXimldj2Vs52VaGzCe0l59XiVAIiIiklKmajqOquk4AoHoggcej4a9iWQDnw/n4BZCCYo4Bwd7/e+BhsCJiIhIevB6MbNnK/kRySI5d1yP48j2uOccR7aTc8f8Xn9O3QESEREREZGUMDMqosNgF64k3ODG5g7GtDbgHBwk52/max8gERERERHJLKaqEkdVZWwYbF10zk8f3glWAiQiIiIiIqnn9SZl02PNARIRERERkayhBEhERERERLKGEiAREREREckaSoBERERERCRrKAESEREREZGsoQRIRERERESyhpbBlgsXCGBrajFlHu3aLSIiIiL9ghIg6Ta76U3anniB8PECbO5QTPhNnIObyLnzy5gZV6a6eiIiIiIinVICJN1iN71J60NriZTMguGxY3gIAY4H15BrLaaqIqV1FBERERHpjOYASbe0PfECkZL4CU6kpIK2hS8muUYiIiIiIl2nBEi6zu8nfLwgYZFw/UAIBJJUIRERERGR7lECJF1m99Rhc4cmLuMswdbWJalGIiIiIiLdowRIusyMK8W0HklcJnwU4ylNUo1ERERERLpHCZB0nc+Hs6gpYRFn8UktiS0iIiIiaUsJkHRLzp1fwXH0zbjnHEffJOeOLye5RiIiIiIiXadlsKVbzIwrybUWx8IXCdcPxDpLMOGjOItPknNPD/cBCgSwNXWYslLdRRIRERGRPqEESLrNVFXgqKrAEQhga+uic356kLDYjW8SeXwN4YZirGM4JrIDZ9ExHHdeg6nSxqoiIiIi0nuSmgAZY24C/itwGZBvrXWec/4a4GeAD9gNfN9auzaZdZRu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\n",
      "text/plain": [
       "<Figure size 864x216 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "graph = seaborn.FacetGrid(anascombe, col='dataset', hue='y')\n",
    "graph = graph.map(matplotlib.pyplot.scatter, 'x', 'y', edgecolor='R')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值