{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# 頻度分布・偏差・分散\n", "\n", "全体の様子、ばらつきの広がり具合など全体をながめわたすための考え方です。\n", "\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "\n", "ここからはつぎのcellでつくる `df_new` を使って、頻度分布、四方位範囲、分散、標準偏差についてPythonで確認します。" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "scrolled": true }, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ccitem
086.792061juice
157.611254milk
279.516464juice
378.421239wine
4139.893782water
.........
19599.158341juice
19652.403940juice
19791.260503milk
198130.337001milk
199105.008055milk
\n", "

200 rows × 2 columns

\n", "
" ], "text/plain": [ " cc item\n", "0 86.792061 juice\n", "1 57.611254 milk\n", "2 79.516464 juice\n", "3 78.421239 wine\n", "4 139.893782 water\n", ".. ... ...\n", "195 99.158341 juice\n", "196 52.403940 juice\n", "197 91.260503 milk\n", "198 130.337001 milk\n", "199 105.008055 milk\n", "\n", "[200 rows x 2 columns]" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import random\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import seaborn as sns\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "df_new = pd.DataFrame({'cc':[random.normalvariate(100,25) for x in range(200)],\n", " 'item':[['water','wine','oil','juice','milk'][random.randrange(5)] for x in range(200)]})\n", "df_new.sample(3)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "cc float64\n", "item object\n", "dtype: object" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_new.dtypes" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 200 entries, 0 to 199\n", "Data columns (total 2 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 cc 200 non-null float64\n", " 1 item 200 non-null object \n", "dtypes: float64(1), object(1)\n", "memory usage: 3.2+ KB\n" ] } ], "source": [ "df_new.info()" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## 頻度分布(histogram)\n", "\n", " それぞれの値の起こる頻度(回数)を数えたものです。\n", "\n", "\n", "`plt.hist()`を使って頻度分布(Histogram)を描写します。[ドキュメント](https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.pyplot.hist.html)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist(df_new['cc'], bins=30, color = 'purple', alpha = 0.5)\n", "plt.title('Histogram of cc')\n", "plt.xlabel('cc')\n", "plt.ylabel('Frequency')\n", "plt.show()" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 四分位範囲\n", "\n", " データの散らばり方を直感的、視覚的に表そうとするもの。データ全体を大きさの順に並べて四等分してみせます。
\n", " 大きさの順で小さい方から1/4のところの値を第一四分位数、2/4のところの値を第二四分位数、3/4のところを第三四分位数と呼びます。第二四分位数はちょうど中央値に一致します。
\n", " 箱ひげ図を用いて描くことが多いです。\n", " \n", "\n", "\n", "matplotlibのboxplotを用いて `df_new` の `cc` 列について箱ひげ図を描きます。" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(5,5))\n", "plt.boxplot(df_new['cc'],showmeans=True)\n", "plt.title('BoxPlot of cc')\n", "plt.grid() # グリッド線を描きます\n", "plt.ylabel('cc')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "小さい方から、箱の下辺が第一四分位数、オレンジの水平線が第二四分位数、箱の上辺が第三四分位数を示しています。
\n", "ここでは、逆T字とT字の水平線はそれぞれウィンカの終わりの位置を示しています。\n", "\n", "ウィンカの上限はとはここでは、\n", "\n", "$$Q3 + whis*IQR$$\n", "\n", "$$IQR = 第三四分位数(Q3) - 第一四分位数(Q1)$$\n", "\n", "$$whis = 1.5(default値で変更可能)$$ \n", "\n", "下限は、$Q1 - whis*IQR$となります。\n", "このウィンカを超えると*外れ値*としてプロットされます。\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "続いて、`df_new` の `item` 別の箱ひげ図を描いてみましょう。" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/yuyashibu/opt/anaconda3/lib/python3.7/site-packages/numpy/core/_asarray.py:83: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray\n", " return array(a, dtype, copy=False, order=order)\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(13,7))\n", "\n", "data = [df_new.loc[df_new['item'].isin([x]),'cc'] for x in df_new['item'].unique()]\n", "\n", "plt.boxplot(data, \n", " labels = list(df_new['item'].unique()),\n", " showmeans=True)\n", "plt.title('BoxPlot of cc', size=18)\n", "plt.grid() \n", "plt.ylabel('cc',size=15)\n", "plt.xlabel('item',size=15)\n", "plt.yticks(size=10)\n", "plt.xticks(size=10)\n", "plt.show()" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 参考 Stripplot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "上の例のように箱ひげ図はデータの散らばり方を直感的に捉え上で有用です。
\n", "しかし、それぞれのデータがどのような値を持っているかを把握することができないのが難点です。
\n", "seabornのstripplotを使って簡単に確認する方法があるので、紹介します。" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "image/png": "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JlGnpqbatLQ0p8No1goLC0lISHA6DAljuoekvnQPSX3pHpL60j10cD/88MMua227fetbXA9EWloa339f2w1fI9P8+fMZNWqU02FIGNM9JPWle0jqS/eQ1JfuoYMzxmyoqV5zIEREREREpNaUQIiIiIiISK0pgRARERERkVpTAiEiIiIiIrWmBEJERERERGpNCYSIiIiIiNSaEggREREREak1JRAiIiIiIlJrSiBERERERKTWlECIiIiIiEitKYEQEREREZFaUwIhIiIiIiK1pgRCRERERERqTQmEiIiIiIjUmhIIERERERGpNSUQEWzJkiXMnDmTjIwMp0MRERERkTDhcToAccb06dN56qmnQuV77rmHc88918GIRERERCQcKIFw0NSpU5v86X9WVhYlJSWsW7eO8vLyUP2NN97If//730a7bnp6OpMnT26084uIiIhI01ACEWGKioooKyvDWlul3u/3OxSRiIiIiIQTJRAOcuKJ/Pjx48nNzWX8+PG88sorofpbb72VSy+9tMnjEREREZHw0qQJhDHmJeAsYIe1dkCl+huBG4By4H1r7e3B+juA3wM+4CZr7YdNGW9LduONNzJw4EBWrFjB0KFDOeaYY5wOSURERETCQFP3QEwHngJmVFQYY0YD5wKDrLWlxpj2wfp+wG+A/kBn4BNjTF9rra+JY26xRo0axahRo5wOQ0RERETCSJMu42qt/QLI2af6OmCqtbY02GZHsP5c4A1rbam1dj2wBhjeZMGKiIiIiEg1zWEfiL7ACGPMt8aYz40xRwfruwAbK7XbFKwTERERERGHNIdJ1B6gNfAr4GjgTWNMT8DU0NbWUIcxZgIwAaBDhw7Mnz+/cSJtAXJzc/H5fHqPpF4KCgp0D0m96B6S+tI9JPWle6jumkMCsQl4xwbWFV1kjPEDqcH6bpXadQW21HQCa+00YBrAsGHDrMb179/06dPJzc3V3Aepl/nz5+seknrRPST1pXtI6kv3UN01hyFM7wInAhhj+gLRwC7gf8BvjDExxpgeQB9gkWNRioiIiIhIky/j+jowCkg1xmwC/gK8BLxkjPkJ8AJXBHsjfjbGvAmsILC86/VagUlERERExFlNmkBYay/Zz0u/20/7B4AHGi8iERERERE5FM1hCJOIiIiIiIQJJRAiIiIiIlJrSiBERERERKTWlECIiIiIiEitKYEQEREREZFaUwIhIiIiIiK1pgQiQsyaNYubbrqJ5cuXU1pa6nQ4IiIiIo7ZuXMnTzzxBLt27XI6lLCkBCICvP3229x///18/fXXbNiwgWXLlhHYq09EREQkMuzcuZOcnBwAnn32WdauXcszzzzjcFThqUk3khNnfPTRR1XKhYWFrF69mr59+zoUkTRXeXl5PPnkkyxbtozBgwdz4403kpSU5HRYIiIidebz+bj33nv56KOPMMZw0kkn8eGHH2Kt5d133+W6664jNTXV6TDDinogIkCHDh2qlF0ul/5HkRr93//9H++++y7r1q3jnXfe4a9//avTIYmIiNTLxx9/HEoY/H4/M2bMID8/HwC/369eiDpQD0QEmDBhAj/++CNbt24FIC0tjTZt2jgclTSEqVOnkpGR0WDnmz17dpXyyy+/zPbt26vUZWVlUVpaSp8+fRrsurWRnp7O5MmTm/SaIiIS/jZs2FClnJubizGGmJgYysrKmD17Nvfcc49D0YUn9UBEgK5du/Luu+/y0ksvcdJJJ9G9e3enQ5Jmat/hSomJidXaFBUVaSK+iIiEjREjRuBy7f3I27p1a5KTkwGIiorirLPOciq0sKUeiAjhdrsZNGgQcXFx+vDXgjT0E/lly5YxefJkduzYQYcOHXjkkUfo379/lTbjx48nNzeX6dOnN+i1RUREGkO/fv14+OGHmTlzJm63m7PPPpt7772X0tJSXC4X1113ndMhhh0lECISMmjQIN577z22bdtGp06dqjyxERERCVejR49m9OjRofLixYt58803GTt2rOaF1oE+HYhIFW63my5duih5EBGRFuvaa6+lV69e6n2oI31CEBEREZGI0q5dO2655Rb1PtSREggREREREak1JRAiItIodu3axcKFCykoKHA6FBERaUCaRC0iIg3u/fffZ8qUKfh8PuLj4/nb3/7GsGHDnA5LREQagBIIEZEI1tCbEUJgZ9dPPvkEr9cbqrv44osZMWIEoM0IRUTCnRIIERFpUH6/v0ryAFTZf6aoqIjy8vKmDktERBqIEggRkQjWWE/kJ02axKeffhoqX3nllVx//fWANiMUkYbxwQcf8OSTT7Jnzx7OPfdcbrvtNtxut9NhRQQlECIi0uDuu+8+evfuTUZGBsOHD+fCCy90OiQRaabqMpSyuLi4ykOKRx55hDlz5pCWllar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ofKXX37J22+/zaWXXupgVNKYWrduTXx8PEVFRaG6Ll261OuckydPxuv18t1333HEEUdw99131zdMaQa2bdvGggUL6NSpE8cdd1yVfYekcSmBEJFG4/V6+eabb6rUzZs3TwmE1FpmZmat6qTliI2N5c9//jNTp06ltLSUTp06cf3119frnKmpqTz55JMNFKE0Bz/99BPXXHNNqEfy1FNP5cEHH3Q4qsihVE1EGk1UVBQdOnSoUte9e3eHopFwNHz4cGJiYqrUjRw50qFopKmcffbZfPDBB8ycOZN3332XHj161PrYVatWMWHCBE4//XQefvhhvF5vI0YqTvnXv/5VZTjjRx99RFZWloMRRRYlECLSaIwx3HnnnSQlJQGBp4C33Xabw1FJOGnbti1PPfUUw4cPp3///tx7770cf/zxToclTSApKYm+ffvidrtrfYzP5+OPf/wjixcvZufOnfznP/9h2rRpjRilOKWsrKxWddI4NIRJJAI988wzvPHGG8TExDBhwgQuuOCCRrvWcccdx9y5c9m0aRNpaWl4PPq1I4fmqKOO4umnn3Y6DAkDGzZsYMeOHVXqFi1a5FA00pguvvhivvzyy9ASv8OHD6dXr14ORxU59Jc8Qqxfv56nnnqKzz//nFatWuH3+zXZKELNmzePF198EYDCwkKmTp3KoEGD6Nu3b6NdMzY2lt69ezfa+UVEADp37kxSUhL5+fmhuvT0dAcjksZyzDHHMGPGDObNm0enTp0488wznQ4pougTZATw+XzcdNNNfP755+Tn55OZmcmrr77qdFjikKVLl1arW7ZsmQORiIg0rNjYWKZMmUK7du2AwFPpiRMnOhyVNJb09HQmTpzIuHHjiI6OdjqciKIEIgKsWbOGrVu3VqlbsGCBQ9GI0/ZdDx1g0KBBDkQiItLwRowYwfvvv88XX3zB008/TUpKitMhibQ4SiAiQKdOnaqtYnIoK1pIy3LiiSdy9dVXk5SURGpqKnfeeWejDl8SEWlqLpdLG8WJNCLNgYgAycnJTJo0icceewwIrGwxYcIEh6MSJ11zzTVcc801TochIiIiYUgJRIQ455xzOOWUU7jiiivwer2kpqY6HZKIiIiIhCENYYogcXFx6tIVERERkXpRAiEiIiItxsaNG8nJyXE6DJEWTQmEiITs2LGDvLw8p8MQETlkRUVFXHPNNYwb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a3K73dTU1IT6DlzJS+RAwWCQ1atXk5qaSqdOneyOIyL7aRYbyYmISPRKS0vjvvvuIz09HYfDQWZmpj4Qyk8qKSnhiiuuICsri0suuYRp06bZHUlE9qMCQkREGt2oUaOYM2cOCxYsYOjQoRrmJj/p9ddfZ+PGjaH222+/zbp162xMJCL7UwEhIiJNwuFwEB8fb3cMiQD5+fn16quPYDDI008/zYQJE5g8eTKrV68+3ngiMU8FhIiIiDQrF154YVg7PT2dU0455Zgea8aMGbz00kvk5uayZMkSfve734XNxxGRo6dryCIiInLMpk2bxtq1axv8cTMyMti2bRtut5uUlBRuvPHG0G1r167F7/eTlZV1xMdZuHAhhYWFoXZ2djaXXXYZ6enpR52pb9++jbLpmUikUQEhIiIizU5mZmZoV/sDeTye0KaVR9KiRYuwAsLhcJCcnNwgGUVilQoIobS0FJ/PR6tWreyOIiIiEcaub+Tnz5/PyJEjj3hcaWkpU6dO5bvvviMlJYUpU6YwduzYxg8oEsVUQMS4J554gldffRW/38+5557LAw88gNvttjuWiIhIg0hJSeHpp59mz549eDweXC6X3ZFEIp4KCBs11rjRn7L/uNHdu3fz9ddfh2576aWXWLx4MV26dGnw59W4URERsVNqaqrdEUSihlZhijEejye0jGJZWdlBtx+qT0RERERkL12BsJHd40bz8/O55JJLwpaze/LJJxk2bJgtuURERESk+VMBEcPatm3LY489xosvvkhlZSWXXXaZigcRERER+UkqIGLcqaeeyqmnnmp3DBERERGJEJoDISIiIiIi9aYCQkRERERE6k0FhIiIiIiI1JsKCBERERERqTcVECIiIiIiUm8qIEREpMGsX7+eJUuWEAgE7I4iIiKNRMu4iohIg7jrrrv45JNPAOjatSvPP/88LVu2tDmViIg0NF2BEBGR47ZixYpQ8QCQnZ3NW2+9ZWMiiWa7du3iscceo7Cw0O4oIjFJBYSIiBy3Q32QKyoqsiGJxIJnn32WTZs28cwzzwC1BYWKCZGmowJCRESO27Bhw0hPTwfAsiwKCwtZsmQJTzzxBJWVlTank2iya9cu3n//fSzL4r333mPKlCmMHTuWMWPGcN999xEMBu2OKBL1VECIiMhx83g8vPzyy0ycOJGkpCQSExPJycnhlVde4W9/+5vd8SSKPPvss6EiobS0lNdffx3LsrAsi9mzZ/Pll1/anFAk+mkStYhIDJs2bRpr165t0Mdct24dgUCAXbt2AfC///u/5Obmhm5fu3Ytfr+frKysBn3eI+nbty9Tp05t0ueUhjd79mx8Ph8AlZWVlJSU0K5du9DtW7dutSuaSMzQFQgREWlQiYmJYW2Px3NQOz4+vikjSRS56KKLcLlcAKSkpISt9OVwOBgxYoRd0URihq5AiIjEsMb4Rn7x4sXccccdlJWVkZyczLRp0xg2bFjYMfPnz2fkyJEN/twS/SZPnsz7778P1BajDz30ELNnz8YYw1VXXUXPnj1tTigS/VRAiIhIgzrllFP4+OOP2bx5M926dTvoioTI8WjdujUTJkzgrbfeYsKECYwbN45x48bZHUskpmgIk4iINLiEhAT69eun4kEaxeTJk+nRowc33nij3VFEYpIKCBEREYkorVu35rbbbiMjI8PuKCIxSQWEiIiIiIjUmwoIERERERGpNxUQItKovF6vdiIWERGJIiogRKRRBINBHn74Yc4991zOO+88nnjiCbsjiYiISAPQMq4iEawxdhE+kvruIpyXl8fSpUtD7b/85S/MmTOH1q1bH9PzahdhERGR5kFXIETkqNR3F+E9e/Yc1FdWVtYYkURERKQJ6QqESASz6xv5+uwivGzZMq6//vpQ2xjDiy++SK9evRo5nYiIiDQmFRAi0iiGDBnCvffey4wZM4iLiyMrK0vFg4iISBRQASEijWbcuHGMGzfO7hgiEmV27drFY489Rv/+/bWZnIgNNAdCREREIkJJSQkvvfQSv/nNb1i9ejXPPPOM3ZFEYpIKCBE5Knu/+SssLLQ7iojEkJqaGq655hoef/xxvvzyS3Jzc3njjTf0WiRig2ZVQBhjnMaYZcaY2XXtbsaYRcaYDcaYN40xbrszisS6Z599lk2bNh3VN39er5dZs2bxn//8h5KSkkZMJyLRauHChWzbto1du3ZhWRaWZbF7925dhRCxQbMqIIDfAWv2az8EPGpZVi9gN3CtLalEBKi9+vD+++9jWRbvv/9+vb75q6qqIisri/vvv5+HHnqIX/7yl+zatasJ0opINElMTARqhzFZlgWAZVnMnj3bzlgiManZFBDGmI7Az4AX6toGOBd4u+6QV4AJ9qQTEai9+hAMBoHanabr883fl19+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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "palette = [plt.get_cmap('plasma')(i*0.3) for i in range(len(df_new['item'].unique()))]\n", "\n", "plt.figure(figsize=(13,7))\n", "sns.boxplot(x='item', y='cc', data=df_new, \n", " palette = palette)\n", "sns.stripplot(x='item', y='cc', data=df_new, jitter=True, color = 'black', alpha = 0.8)\n", "plt.xlabel('item',fontsize=15)\n", "plt.ylabel('cc',fontsize=15)\n", "plt.yticks(fontsize=10)\n", "plt.xticks(fontsize=10)\n", "plt.title('BoxPlot of items in df_new', fontsize=15)\n", "plt.grid()\n", "plt.show()" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 分散・標準偏差\n", "\n", "### 分散(variance)\n", " データの散らばり具合を示す指標の1つ。1つ1つのデータ$x_i$と平均$\\bar{X}$ の差をの二乗の和をデータの個数で割った値です。\n", " 個々のデータが平均値からどれだけ離れているのかの距離$(x_i-\\bar{X})^2$を二乗して合計し、データの個数で割ることで標準化した値です。\n", "\n", "$$ s^2 = \\frac{\\sum_i(x_i-\\bar{X})^2}{n} $$\n", "\n", "\n", "### 標準偏差 (standard deviation)\n", "\n", " 分散の平方根です\n", " \n", "$$ \\sigma = \\sqrt{\\frac{\\sum_i(x_i-\\bar{X})^2}{n}} $$\n", "

\n", "分散および標準偏差を`n`ではなく `n-1` で割って求める不偏分散(標本から母集団の分散の推定) などもあります。詳しくは統計関連の文献をご確認ください。\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "ここから`def_new`を用いて分散と標準偏差を求めましょう。\n", "\n", "`df_new`の`cc`列の分散と標準偏差を求めます。" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "660.0270390696879" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_new['cc'].var()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "この`var`は`n-1`で割った不偏分散を求めています。`n`で割った分散を求めるには、`var(ddof=0)`とします。 \n", "\n", "`var()` の[公式ドキュメント](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.var.html)も参照してください。\n" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "656.7269038743394" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_new['cc'].var(ddof=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`df_new`の`cc`列の標準偏差を求めます。`pandas` の`std`ではdefault で`n-1`で割ったものとなっています。" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "25.690991399120588" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_new['cc'].std()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`n`で割った分散を求めるには、`std(ddof=0)`とします。 " ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "25.626683434934368" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_new['cc'].std(ddof=0)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## まとめ\n", "\n", "ここでは、与えられたデータがどのようなものであるのかを概観するためのいくつかの方法について紹介しました。
\n", "`pandas`では`describe()`を使って基本的な統計量を一変に得ることができます。
\n", "なお、学術論文においては、標本数(`n`)、平均(`mean`)、標準偏差(`std`)、最小値(`min`)、最大値(`max`)を最低限の記述統計量として掲載することが基本となっています。" ] }, { "cell_type": "code", "execution_count": 54, "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", " \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", "
cc
countmeanstdmin25%50%75%max
item
juice39.0102.63627925.19002552.40394084.200926103.970790116.298434161.980076
milk44.096.69719024.98320340.00154984.38079798.710193112.433929154.249114
oil39.098.49161122.18973657.77479782.05292794.404108110.658467154.363890
water42.0106.91353626.85483040.75846194.903507111.320487126.533637145.381507
wine36.095.36238728.53365646.90326871.75273195.908448114.362140150.830733
\n", "
" ], "text/plain": [ " cc \\\n", " count mean std min 25% 50% \n", "item \n", "juice 39.0 102.636279 25.190025 52.403940 84.200926 103.970790 \n", "milk 44.0 96.697190 24.983203 40.001549 84.380797 98.710193 \n", "oil 39.0 98.491611 22.189736 57.774797 82.052927 94.404108 \n", "water 42.0 106.913536 26.854830 40.758461 94.903507 111.320487 \n", "wine 36.0 95.362387 28.533656 46.903268 71.752731 95.908448 \n", "\n", " \n", " 75% max \n", "item \n", "juice 116.298434 161.980076 \n", "milk 112.433929 154.249114 \n", "oil 110.658467 154.363890 \n", "water 126.533637 145.381507 \n", "wine 114.362140 150.830733 " ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_new.groupby(['item']).describe()" ] }, { "cell_type": "code", "execution_count": 55, "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", "
cc
count200.000000
mean100.110392
std25.690991
min40.001549
25%82.908855
50%101.453652
75%116.694766
max161.980076
\n", "
" ], "text/plain": [ " cc\n", "count 200.000000\n", "mean 100.110392\n", "std 25.690991\n", "min 40.001549\n", "25% 82.908855\n", "50% 101.453652\n", "75% 116.694766\n", "max 161.980076" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_new.describe()" ] } ], "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.7.6" } }, "nbformat": 4, "nbformat_minor": 2 }