統計分析
統計分析の一例として、t検定を用いた2つのサンプル間の平均値の差の検定を行います。
以下に、SciPyを使ってt検定を実行する方法を示します。
まず、2つのサンプルデータを用意します。
1 | sample1 = [12, 15, 16, 18, 19, 22, 24, 25, 26, 28] |
次に、SciPyのstats
モジュールをインポートし、ttest_ind
関数を使ってt検定を実行します。
1 | from scipy import stats |
t_statistic
はt統計量、p_value
はp値を表します。
p値が有意水準(例えば0.05)よりも小さい場合、帰無仮説(2つのサンプル間に平均値の差がない)を棄却し、対立仮説(2つのサンプル間に平均値の差がある)を採択します。
1 | alpha = 0.05 |
この例では、sample1
とsample2
のデータを用いてt検定を実行し、2つのサンプル間に平均値の差があるかどうかを検定しています。
[実行結果]
帰無仮説を棄却し、対立仮説を採択します。2つのサンプル間に平均値の差があります。
グラフ化
結果をグラフ化するために、MatplotlibとSeabornを使ってデータの分布を可視化し、t検定の結果を理解しやすくします。
以下のコードで、2つのサンプルデータのヒストグラムと箱ひげ図を作成できます。
まず、必要なライブラリをインポートします。
1 | import matplotlib.pyplot as plt |
次に、ヒストグラムを作成します。
1 | plt.hist(sample1, alpha=0.5, label='Sample 1') |
[実行結果]
このヒストグラムでは、sample1
とsample2
のデータ分布が重なっている部分が少ないことがわかります。
これは、2つのサンプル間に平均値の差があることを示唆しています。
さらに、箱ひげ図を作成してデータの分布を確認します。
1 | sns.boxplot(data=[sample1, sample2]) |
[実行結果]
箱ひげ図では、sample1
とsample2
の中央値、四分位範囲、外れ値が表示されます。
この図からも、2つのサンプル間に平均値の差があることがわかります。
これらのグラフを使って、t検定の結果を視覚的に確認できます。
グラフにより、2つのサンプル間に平均値の差があることが示されているため、t検定の結果が理解しやすくなります。
解釈
グラフによる結果の確認が終わったら、t検定の結果を詳しく解釈しましょう。
先ほどのt検定の結果を再度表示します。
1 | print(f"t統計量: {t_statistic:.2f}") |
[実行結果]
t統計量: -3.34 p値: 0.00364
t統計量とp値を見て、帰無仮説(2つのサンプル間に平均値の差がない)を棄却するかどうかを判断します。
p値が有意水準(例えば0.05)よりも小さい場合、帰無仮説を棄却し、対立仮説(2つのサンプル間に平均値の差がある)を採択します。
1 | alpha = 0.05 |
[実行結果]
帰無仮説を棄却し、対立仮説を採択します。2つのサンプル間に平均値の差があります。
この例では、グラフとt検定の結果から、sample1
とsample2
の間に平均値の差があることが示されています。
これにより、データを分析し、2つのサンプル間の違いを定量的に評価することができます。
統計分析を通じて、データに潜むパターンや関係性を明らかにし、意思決定や予測に役立てることができます。