Skip to content

Instantly share code, notes, and snippets.

@fhiyo
Last active March 5, 2018 17:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fhiyo/d0b98c3b0c1c5f524ca3224a32c37dd5 to your computer and use it in GitHub Desktop.
Save fhiyo/d0b98c3b0c1c5f524ca3224a32c37dd5 to your computer and use it in GitHub Desktop.
効果量の計算の例題
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import math\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"from scipy import stats\n",
"\n",
"sns.set(style='white', context='notebook', palette='deep')\n",
"sns.set(font='Osaka') # seabornで日本語を表示させるために設定\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"np.random.seed(42) # Fix seed of random (just for repeatability)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"ALPHA = 0.05 # significance level\n",
"N = 100\n",
"non_supplementary_lesson_scores = np.random.binomial(100, 0.5, size=N) # 補習を受けてない組\n",
"supplementary_lesson_scores = np.random.binomial(100, 0.52, size=N) # 補習を受けた組"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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>補習を受けた生徒のテストの点数</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>49</td>\n",
" <td>45</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>52</td>\n",
" <td>54</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>44</td>\n",
" <td>47</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>42</td>\n",
" <td>53</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>58</td>\n",
" <td>56</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>95</th>\n",
" <td>41</td>\n",
" <td>59</td>\n",
" </tr>\n",
" <tr>\n",
" <th>96</th>\n",
" <td>56</td>\n",
" <td>52</td>\n",
" </tr>\n",
" <tr>\n",
" <th>97</th>\n",
" <td>47</td>\n",
" <td>51</td>\n",
" </tr>\n",
" <tr>\n",
" <th>98</th>\n",
" <td>50</td>\n",
" <td>55</td>\n",
" </tr>\n",
" <tr>\n",
" <th>99</th>\n",
" <td>50</td>\n",
" <td>51</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>100 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" 補習を受けてない生徒のテストの点数 補習を受けた生徒のテストの点数\n",
"0 49 45\n",
"1 52 54\n",
"2 44 47\n",
"3 42 53\n",
"4 58 56\n",
".. ... ...\n",
"95 41 59\n",
"96 56 52\n",
"97 47 51\n",
"98 50 55\n",
"99 50 51\n",
"\n",
"[100 rows x 2 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.set_option(\"display.max_rows\", 10)\n",
"pd.DataFrame(np.transpose([non_supplementary_lesson_scores, supplementary_lesson_scores]), columns=['補習を受けてない生徒のテストの点数', '補習を受けた生徒のテストの点数'])"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x103520a20>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x108723080>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"g = sns.distplot(non_supplementary_lesson_scores, bins=10)\n",
"g = sns.distplot(supplementary_lesson_scores, bins=10, ax=g)\n",
"g.set_xlabel('exam score')\n",
"g.set_title('テストの点数の分布')\n",
"g.legend(['補習受けてない', '補習受けた'], loc='best')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"補習を受けてない生徒のテストの点数の平均値: 50.23, 標準偏差: 5.30\n",
"補習を受けた生徒のテストの点数の平均値: 51.72, 標準偏差: 5.39\n"
]
}
],
"source": [
"# それぞれの標本の平均と標準偏差を求める\n",
"print('補習を受けてない生徒のテストの点数の平均値: {:.2f}, 標準偏差: {:.2f}'.format(np.mean(non_supplementary_lesson_scores),\n",
" np.std(non_supplementary_lesson_scores)))\n",
"print('補習を受けた生徒のテストの点数の平均値: {:.2f}, 標準偏差: {:.2f}'.format(np.mean(supplementary_lesson_scores),\n",
" np.std(supplementary_lesson_scores)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[t検定1(独立したサンプルのt検定)](http://www.koka.ac.jp/morigiwa/sjs/les20301.htm) \n",
"等分散性があるかどうかを調べるために,LeveneのF分布を使った検定というものを行う必要がある."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LeveneResult(statistic=0.02458935757320074, pvalue=0.87555441645888021)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# [scipy.stats.levene — SciPy v0.14.0 Reference Guide](https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.levene.html)\n",
"stats.levene(non_supplementary_lesson_scores, supplementary_lesson_scores, center='mean')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"上のleveneの検定により2つの標本の分散は異なる,とは言えないことがわかった.\n",
"\n",
"**わからないところ: 上のleveneの検定で帰無仮説が棄却されなかったとしても,等分散であると結論付けちゃだめなのでは??**\n",
"\n",
"なぜこれでequal_var=Trueとできるのかわからない.\n",
"\n",
"↓ \n",
"- http://www2.vmas.kitasato-u.ac.jp/lecture0/statistics/stat_info03.pdf \n",
"- [等分散か否かに関わらずウェルチの t 検定を使う (べきである) - Qiita](https://qiita.com/ynakayama/items/b9ec31a296de48e62863)\n",
"に書いてあることが参考になる?\n",
"\n",
">\n",
"仮説検定の考え方に従うと、等分散検定で帰無仮説が採択されても積極的に等分散性が保証されたわけではないから、ステューデント法を採用してよいのか疑問だという意見もある。結果的には、正規性や等分散性といった前提条件を考慮せずに、無条件でウェルチ法を採用するのが理にかなっているという方向性になるのだろうか。\n",
"\n",
"つまり疑問はもっともで,ちょっと怪しいことをやっているということか. \n",
"→ **今回は,Leveneの検定の結果は使用せずに等分散性は仮定せずに計算する** ."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"stat_val: 1.960, p_val: 0.026\n",
"統計的に有意です\n"
]
}
],
"source": [
"# 右片側検定の場合は符号の都合上処置群を先に引数に置く\n",
"stat_val, p_val = stats.ttest_ind(supplementary_lesson_scores, non_supplementary_lesson_scores, equal_var=False)\n",
"# 得られたp_valは両側検定の値なので,右片側検定の結果に直す必要がある\n",
"p_val /= 2\n",
"print('stat_val: {:.3f}, p_val: {:.3f}'.format(stat_val, p_val))\n",
"# TODO: 暇があったら片側検定もできるやつを関数化しよう\n",
"if p_val < ALPHA and stat_val > 0:\n",
" print('統計的に有意です')\n",
"else:\n",
" print('統計的に有意とは言えません')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"def cohens_d(x, y):\n",
" \"\"\"Calculate cohen's d.\n",
" \n",
" Parameters:\n",
" x, y: array_like\n",
" \n",
" Returns:\n",
" cohen's d value\n",
" \"\"\"\n",
" return (np.mean(x) - np.mean(y)) / (math.sqrt((np.std(x) ** 2 + np.std(y) ** 2) / 2))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.2786173691469776"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cohens_d(supplementary_lesson_scores, non_supplementary_lesson_scores)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"値が0.27と出たので,効果量は2つの標準偏差の約1/4程度だったことが分かる."
]
},
{
"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
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment