Skip to content

Instantly share code, notes, and snippets.

@shotahorii
Created March 24, 2019 23:41
Show Gist options
  • Save shotahorii/521c015300b8b634016fe5e5fc7c74df to your computer and use it in GitHub Desktop.
Save shotahorii/521c015300b8b634016fe5e5fc7c74df to your computer and use it in GitHub Desktop.
Sample variance and Unbiased variance
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Sample variance and Unbiased variance\n",
"- [読めば必ずわかる分散分析の基礎](http://elsur.jpn.org/resource/anova.pdf)\n",
"- [統計用語集 普遍推定量](https://bellcurve.jp/statistics/glossary/1061.html)\n",
"- [統計学における分散と不偏分散 例題でわかりやすく解説](https://to-kei.net/basic/glossary/variance/)\n",
"- [標本分散と不偏分散](https://stats.biopapyrus.jp/stats/var.html)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"標本分散$$s^2$$、普遍分散$$\\hat{\\sigma}^2$$は以下のように定義される。\n",
"<br><br>\n",
"$$s^2 = \\frac{1}{n}\\sum_{i=1}^n(x_i - \\overline{x})^2$$<br>\n",
"$$\\hat{\\sigma}^2 = \\frac{1}{n-1}\\sum_{i=1}^n(x_i - \\overline{x})^2$$\n",
"<br><br>\n",
"\n",
"\n",
"が、なぜ普遍分散の分母が$$n-1$$なのか、という理解が曖昧であったので、整理しておく。"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%latex\n",
"標本分散$$s^2$$、普遍分散$$\\hat{\\sigma}^2$$は以下のように定義される。\n",
"<br><br>\n",
"$$s^2 = \\frac{1}{n}\\sum_{i=1}^n(x_i - \\overline{x})^2$$<br>\n",
"$$\\hat{\\sigma}^2 = \\frac{1}{n-1}\\sum_{i=1}^n(x_i - \\overline{x})^2$$\n",
"<br><br>\n",
"\n",
"が、なぜ普遍分散の分母が$$n-1$$なのか、という理解が曖昧であったので、整理しておく。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 不偏推定量とは\n",
"まず、普遍推定量(Unbiased Estimator)について。標本から測定した推定量の期待値が母集団のそれに等しいとき、その推定量を不偏推定量と言う。これは具体的には、例えば「n個の標本を抽出してある推定量θを算出する」という行為を無限回繰り返した時、θの期待値が母集団から算出した推定量と等しくなることを意味する。"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"例えば標本平均について考えてみる。標本平均を$$\\overline{x}$$とし、母平均を$$\\mu$$とすると、\n",
"<br><br>\n",
"$$E(\\overline{x}) = E(\\frac{1}{n}\\sum_{i=1}^nx_i) = \\frac{1}{n}\\sum_{i=1}^nE(x_i)\n",
"=\\frac{1}{n}n\\mu=\\mu$$\n",
"<br><br>\n",
"であり、$$E(\\overline{x}) = \\mu$$となるので標本平均$$\\overline{x}$$は母平均の不偏推定量($$\\hat{\\mu}$$)である。"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%latex\n",
"例えば標本平均について考えてみる。標本平均を$$\\overline{x}$$とし、母平均を$$\\mu$$とすると、\n",
"<br><br>\n",
"$$E(\\overline{x}) = E(\\frac{1}{n}\\sum_{i=1}^nx_i) = \\frac{1}{n}\\sum_{i=1}^nE(x_i)\n",
"=\\frac{1}{n}n\\mu=\\mu$$\n",
"<br><br>\n",
"であり、$$E(\\overline{x}) = \\mu$$となるので標本平均$$\\overline{x}$$は母平均の不偏推定量($$\\hat{\\mu}$$)である。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 母分散の普遍推定量\n",
"ここから、母分散の不偏推定量について考える。が、まず最初に、標本分散と母分散との間のズレを定量的に算出する。(標本のみから分散を計算すると母分散よりも小さい値を見積もってしまうことは直感的にわかるが、どの程度なのか、というのを計算してみる。)"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"母平均を$$\\mu$$,母分散を$$\\sigma^2$$とおく。\n",
"標本分散の定義式に、$$x_i-\\overline{x} = x_i-\\mu-(\\overline{x}-\\mu)$$を代入する。\n",
"<br><br>\n",
"$$s^2 = \\frac{1}{n}\\sum_{i=1}^n(x_i - \\overline{x})^2$$<br>\n",
"$$= \\frac{1}{n}\\sum_{i=1}^n((x_i-\\mu)-(\\overline{x}-\\mu))^2$$<br>\n",
"$$= \\frac{1}{n}\\sum_{i=1}^n((x_i-\\mu)^2-2(x_i-\\mu)(\\overline{x}-\\mu)+(\\overline{x}-\\mu)^2)$$<br>\n",
"$$= \\frac{1}{n}\\sum_{i=1}^n(x_i-\\mu)^2 - 2(\\overline{x}-\\mu)\\frac{1}{n}\\sum_{i=1}^n(x_i-\\mu)\n",
"+(\\overline{x}-\\mu)^2$$<br>\n",
"$$= \\frac{1}{n}\\sum_{i=1}^n(x_i-\\mu)^2 - 2(\\overline{x}-\\mu)\\frac{1}{n}\n",
"(x_1-\\mu + x_2-\\mu + ... + x_n-\\mu) +(\\overline{x}-\\mu)^2$$<br>\n",
"$$= \\frac{1}{n}\\sum_{i=1}^n(x_i-\\mu)^2 - 2(\\overline{x}-\\mu)\\frac{1}{n}(n\\overline{x}-n\\mu)\n",
"+(\\overline{x}-\\mu)^2$$<br>\n",
"$$= \\frac{1}{n}\\sum_{i=1}^n(x_i-\\mu)^2 - 2(\\overline{x}-\\mu)^2+(\\overline{x}-\\mu)^2$$<br>\n",
"$$= \\frac{1}{n}\\sum_{i=1}^n(x_i-\\mu)^2 - (\\overline{x}-\\mu)^2$$<br>"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%latex\n",
"母平均を$$\\mu$$,母分散を$$\\sigma^2$$とおく。\n",
"標本分散の定義式に、$$x_i-\\overline{x} = x_i-\\mu-(\\overline{x}-\\mu)$$を代入する。\n",
"<br><br>\n",
"$$s^2 = \\frac{1}{n}\\sum_{i=1}^n(x_i - \\overline{x})^2$$<br>\n",
"$$= \\frac{1}{n}\\sum_{i=1}^n((x_i-\\mu)-(\\overline{x}-\\mu))^2$$<br>\n",
"$$= \\frac{1}{n}\\sum_{i=1}^n((x_i-\\mu)^2-2(x_i-\\mu)(\\overline{x}-\\mu)+(\\overline{x}-\\mu)^2)$$<br>\n",
"$$= \\frac{1}{n}\\sum_{i=1}^n(x_i-\\mu)^2 - 2(\\overline{x}-\\mu)\\frac{1}{n}\\sum_{i=1}^n(x_i-\\mu)\n",
"+(\\overline{x}-\\mu)^2$$<br>\n",
"$$= \\frac{1}{n}\\sum_{i=1}^n(x_i-\\mu)^2 - 2(\\overline{x}-\\mu)\\frac{1}{n}\n",
"(x_1-\\mu + x_2-\\mu + ... + x_n-\\mu) +(\\overline{x}-\\mu)^2$$<br>\n",
"$$= \\frac{1}{n}\\sum_{i=1}^n(x_i-\\mu)^2 - 2(\\overline{x}-\\mu)\\frac{1}{n}(n\\overline{x}-n\\mu)\n",
"+(\\overline{x}-\\mu)^2$$<br>\n",
"$$= \\frac{1}{n}\\sum_{i=1}^n(x_i-\\mu)^2 - 2(\\overline{x}-\\mu)^2+(\\overline{x}-\\mu)^2$$<br>\n",
"$$= \\frac{1}{n}\\sum_{i=1}^n(x_i-\\mu)^2 - (\\overline{x}-\\mu)^2$$<br>"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"ここで、標本分散の期待値を計算すると以下となる。\n",
"<br><br>\n",
"$$E[s^2] = E[\\frac{1}{n}\\sum_{i=1}^n(x_i-\\mu)^2 - (\\overline{x}-\\mu)^2]$$<br>\n",
"$$=\\frac{1}{n}\\sum_{i=1}^nE[(x_i-\\mu)^2] - E[(\\overline{x}-\\mu)^2]$$\n",
"<br><br>\n",
"この時、母分散は以下のように計算される。\n",
"<br><br>\n",
"$$\\sigma^2 = E[(x_i-\\mu)^2]$$\n",
"<br><br>\n",
"また、平均$$\\mu$$,分散$$\\sigma^2$$の母集団について、次の式が成り立つことがわかっている。\n",
"<br><br>\n",
"$$E[(\\overline{x}-\\mu)^2] = \\frac{\\sigma^2}{n}$$\n",
"<br><br>\n",
"これらを上の標本平均の期待値の式に代入すると、\n",
"<br><br>\n",
"$$E[s^2]=\\frac{1}{n}\\sum_{i=1}^nE[(x_i-\\mu)^2] - E[(\\overline{x}-\\mu)^2]\n",
"=\\frac{1}{n}\\sum_{i=1}^n\\sigma^2 - \\frac{\\sigma^2}{n} = \\sigma^2 - \\frac{\\sigma^2}{n}$$"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%latex\n",
"ここで、標本分散の期待値を計算すると以下となる。\n",
"<br><br>\n",
"$$E[s^2] = E[\\frac{1}{n}\\sum_{i=1}^n(x_i-\\mu)^2 - (\\overline{x}-\\mu)^2]$$<br>\n",
"$$=\\frac{1}{n}\\sum_{i=1}^nE[(x_i-\\mu)^2] - E[(\\overline{x}-\\mu)^2]$$\n",
"<br><br>\n",
"この時、母分散は以下のように計算される。\n",
"<br><br>\n",
"$$\\sigma^2 = E[(x_i-\\mu)^2]$$\n",
"<br><br>\n",
"また、平均$$\\mu$$,分散$$\\sigma^2$$の母集団について、次の式が成り立つことがわかっている。\n",
"<br><br>\n",
"$$E[(\\overline{x}-\\mu)^2] = \\frac{\\sigma^2}{n}$$\n",
"<br><br>\n",
"これらを上の標本平均の期待値の式に代入すると、\n",
"<br><br>\n",
"$$E[s^2]=\\frac{1}{n}\\sum_{i=1}^nE[(x_i-\\mu)^2] - E[(\\overline{x}-\\mu)^2]\n",
"=\\frac{1}{n}\\sum_{i=1}^n\\sigma^2 - \\frac{\\sigma^2}{n} = \\sigma^2 - \\frac{\\sigma^2}{n}$$"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/latex": [
"つまり、以下である。\n",
"<br><br>\n",
"$$E[s^2]=\\frac{n-1}{n}\\sigma^2$$\n",
"<br><br>\n",
"従って標本平均は母分散の普遍推定量ではなく、$$\\frac{1}{n}\\sigma^2$$分だけ母分散が低く見積もられる。\n",
"<br><br>\n",
"ここで、私たちが興味があるのは母分散の不偏推定量である。つまり期待値が母分散となるような推定量。\n",
"上の式を変形すると、\n",
"<br><br>\n",
"$$\\frac{n}{n-1}E[s^2]=\\sigma^2$$<br>\n",
"$$\\frac{n}{n-1}E[\\frac{1}{n}\\sum_{i=1}^n(x_i - \\overline{x})^2]=\\sigma^2$$<br>\n",
"$$E[\\frac{1}{n-1}\\sum_{i=1}^n(x_i - \\overline{x})^2]=\\sigma^2$$\n",
"<br><br>\n",
"すなわち、以下が母分散の普遍推定量であることがわかる。\n",
"<br><br>\n",
"$$\\hat{\\sigma}^2 = \\frac{1}{n-1}\\sum_{i=1}^n(x_i - \\overline{x})^2$$"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%latex\n",
"つまり、以下である。\n",
"<br><br>\n",
"$$E[s^2]=\\frac{n-1}{n}\\sigma^2$$\n",
"<br><br>\n",
"従って標本平均は母分散の普遍推定量ではなく、$$\\frac{1}{n}\\sigma^2$$分だけ母分散が低く見積もられる。\n",
"<br><br>\n",
"ここで、私たちが興味があるのは母分散の不偏推定量である。つまり期待値が母分散となるような推定量。\n",
"上の式を変形すると、\n",
"<br><br>\n",
"$$\\frac{n}{n-1}E[s^2]=\\sigma^2$$<br>\n",
"$$\\frac{n}{n-1}E[\\frac{1}{n}\\sum_{i=1}^n(x_i - \\overline{x})^2]=\\sigma^2$$<br>\n",
"$$E[\\frac{1}{n-1}\\sum_{i=1}^n(x_i - \\overline{x})^2]=\\sigma^2$$\n",
"<br><br>\n",
"すなわち、以下が母分散の普遍推定量であることがわかる。\n",
"<br><br>\n",
"$$\\hat{\\sigma}^2 = \\frac{1}{n-1}\\sum_{i=1}^n(x_i - \\overline{x})^2$$"
]
}
],
"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.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment