Python

【Pythonで行う】仮説検定

Pythonを用いた仮説検定について解説します.

仮説検定の選び方や,使用するライブラリなども紹介しています.

仮説検定の選び方

代表的な検定方法の選び方は,以下のフローチャートになります.(日本で最もわかりやすいかつ,正確なフローチャートです)

検定方法選択フローチャート

検定方法を選ぶ際の主な観点は4つになります.より詳しい選び方は以下のページで解説しています.

データの種類
対応のある・対応のない
正規性のある・ない
標本数

主な検定手法の考え方やExcelを用いた計算方法は以下のページで解説しています.

仮説検定の実行方法(ウェルチのt検定)

Pythonで仮説検定を行うための記述例を紹介します.

具体例として,対応のない2群に対して行うウェルチのt検定で解説します.記述例は以下になります.

# ライブラリのインポート
from scipy import stats

# データの定義
x = [50, 71, 85, 63, 43, 34, 54, 93, 77, 45]
y = [45, 88, 93, 93, 74, 92, 79, 68, 74, 80]

# 検定の実行
result = stats.ttest_ind(x, y, equal_var=False)

# 結果の出力
print(result)
① ライブラリ・モジュールのインポート

必要なライブラリ・モジュールをインポートします.仮説検定では,主に数値解析用ライブラリであるSciPyのstatsモジュールを用います.

from ライブラリ名 import モジュール名 の形式で記述します.

※ ライブラリは複数のプログラムファイル群で,モジュール(部品)はライブラリ内の1ファイルを意味します.

② データの定義

仮説検定を行う標本の定義を行います.基本的にはデータは配列形式で定義します.

事前に作成したcsvファイルなどからデータを読み込み,定義することもできます.

》【Python用】CSVファイルの作り方・読み込み方

③ 検定の実行

①でインポートしたモジュールの関数を用いて仮説検定を実行します.配列データを引数として指定することで,対象のデータとして計算されます.

モジュール名.関数名(データA, データB) の形式で記述します.

検定結果は新しい変数(result)に格納します.

④ 結果の出力

検定結果を画面上に出力します.print関数を用いて出力することができます.

検定結果は以下のように出力されます.statisticは検定統計量,pvalueはp値を示しています.

Ttest_indResult(statistic=-2.2065995919387995, pvalue=0.04159065447065379)

以上がPythonを用いた仮説検定になります.

仮説検定の使用するライブラリ一覧

主な仮説検定で使用するライブラリ・モジュール・関数の一覧になります.

検定手法ライブラリモジュール関数備考
カイ二乗検定SciPystatschi2_contingencyデータはクロス集計表(表形式)
フィッシャーの正確確率検定SciPystatsfisher_exactデータはクロス集計表(表形式)
対応のないt検定SciPystatsttest_ind
ウェルチのt検定SciPystatsttest_ind引数で「equal_var=False」を指定
一元配置分散分析SciPystatsf_oneway
マンホイットニーのU検定SciPystatsmannwhitneyu
クラスカル・ウォリス検定SciPystatskruskal
対応のあるt検定SciPystatsttest_rel
対応のある一元配置分散分析statsmodelsstats.anovaAnovaRM
ウィルコクソンの符号順位検定Scipystatswilcoxon
フリードマン検定Scipystatsfriedmanchisquare

カイ二乗検定やフィッシャーの正確確率検定は,クロス集計表の検定方法であるため配列形式ではなく表形式でデータを渡す必要があります.Pythonを用いたクロス集計表の作成方法は補足②で解説しています.

補足① PyCharmを用いた実行環境の構築

Pythonを初めて使う方や,自分のPCにPython・PyCharmが入っていない方は以下のページで解説している手順で実行環境の構築を行ってください.

初めて触る方にもわかりやすいようにPyCharmを用いた手順となっています.仮説検定では,”SciPy”というライブラリを使用します.インストール方法が分からない方は,ライブラリのインストールを参考にしてください.

》Pythonを用いた統計解析【初心者向け】

》実行環境の構築方法【Pycharm使用】
》ライブラリのインストール方法【Pycharm使用】

補足② Pythonを用いたクロス集計表の作り方

PythonのPandasライブラリを用いたクロス集計表の作成方法について解説します.以下のようなデータからクロス集計表作成する例とします.

記述例は以下になります.

# ライブラリのインポート
import pandas as pd

# データフレームの読み込み
df = pd.read_csv(sample.csv)

# クロス集計表の作成
table = pd.crosstab(df["side_job"], df["sex"])

事前に作成したCSVファイルをデータフレームに格納して,crosstab関数を用いて作成します.作成されたクロス集計表は以下のようなデータフレームになります.

side_job  No  Yes  Total
sex                     
man        5    1      6
woman      2    2      4
Total      7    3     10