統計的仮説検定

Excelで正規性を確認する方法|ヒストグラム・Q-Qプロット・検定

記事内に広告が含まれています。

t検定や分散分析を使う前に、データが正規分布に従っているかどうかを確認しておく必要があります。この確認を怠ると、検定結果の信頼性が下がります。

この記事では、Excelだけで正規性を確認する3つの方法を解説します。ヒストグラムによる視覚確認、Q-Qプロットの作成手順、そして統計的な判断方法です。サンプルサイズが小さい場合にどこまで信頼できるかについても触れます。

なぜ正規性を確認するのか

製造ラインで新しい加工条件を試し、製品の硬度を10個測定したとします。この10個のデータでt検定を使って「条件を変えたら硬度が変わったか」を調べたい場合、t検定には「データが正規分布に従っている」という前提条件があります。

正規分布とは、平均を中心に左右対称な釣り鐘型に分布する状態のことです。データ数が30以上あれば中心極限定理の効果で多少崩れていても問題ないことが多いですが、製造現場でよくあるn=5〜15程度の少ないサンプルでは、正規性の確認が実際に意味を持ちます。

正規性の確認方法は大きく2種類あります。

  • 視覚的な確認:ヒストグラム、Q-Qプロット
  • 統計的な確認:シャピロウイルク検定、コルモゴロフ・スミルノフ検定

視覚的な方法は感覚的にわかりやすく、統計的な方法は客観的な判断ができます。両方を組み合わせて使うのが実務ではお勧めです。

正規性が棄却された場合は、ノンパラメトリック検定への切り替えを検討することになります。

例題データ

以下の例題で手順を説明します。製品の引張強度(MPa)を10回測定したデータです。

No.引張強度(MPa)
152.3
248.7
350.1
453.2
549.8
651.5
750.9
852.1
948.5
1051.2

平均:50.83 MPa、標準偏差:1.55 MPa(n=10)

方法① ヒストグラムで山の形を見る

最もシンプルな確認方法です。データの分布を棒グラフで表し、釣り鐘型に近いかどうかを目で確認します。

Excelでのヒストグラム作成手順

Excel 2016以降では、グラフの挿入からヒストグラムを直接作れます。

  1. データ範囲(A1:A10)を選択
  2. 「挿入」タブ → 「グラフ」グループ → 「統計グラフの挿入」
  3. 「ヒストグラム」を選択
  4. グラフを右クリック → 「データ系列の書式設定」でビン幅を調整

ヒストグラムで確認するポイントは2つです。

  • 分布が1つの山を持っているか(双峰型になっていないか)
  • 左右がおおよそ対称か(極端に右か左に偏っていないか)

n=10程度では釣り鐘型にきれいには見えないことが多いので、ヒストグラムだけで判断するのは難しいです。「明らかに変な形でなければOK」くらいの感覚で使うのが実態に合っています。

ヒストグラムの詳しい作り方はヒストグラムを作るやり方でも解説しています。

方法② Q-Qプロットを作る

Q-Qプロット(正規確率プロット)は、実測値と「理論上の正規分布で想定されるはずの値」を散布図で比較する方法です。点が対角線(45度の直線)に沿って並べば、正規分布に従っていると判断できます。

ヒストグラムより情報量が多く、少ないサンプルでも傾向を読みやすいです。個人的にはヒストグラムより先にQ-Qプロットを確認することが多いです。

Q-Qプロットの作成手順

Excelには専用機能がないので、以下の手順で手作りします。

Step 1:データを昇順に並べる

データをコピーし、別の列に並べ替えて昇順にソートします。

順位 i昇順データ(MPa)
148.5
248.7
349.8
450.1
550.9
651.2
751.5
852.1
952.3
1053.2

Step 2:累積確率を計算する(Blom公式)

順位 \(i\) から累積確率 \(p\) を計算します。Blom公式を使うと精度が上がります。\[ p_i = \frac{i – 0.375}{n + 0.25} \]

Excelのセル(C列)に次の式を入力します。B列に昇順データ、A列に順位が入っている場合:

=(A2-0.375)/($A$11+0.25)  ※ $A$11 はサンプルサイズ n=10 を入力したセル

Step 3:理論分位数を計算する

累積確率から、標準正規分布の分位数を計算します。ExcelのNORM.S.INV関数を使います。

=NORM.S.INV(C2)

これで D列に理論分位数が入ります。

Step 4:散布図を作成する

  1. 理論分位数(D列)と昇順データ(B列)を選択
  2. 「挿入」→「散布図」を選択
  3. グラフの横軸が理論分位数、縦軸が実測値になっているか確認

Step 5:参照直線を追加する(オプション)

目安となる45度の直線を追加すると見やすくなります。グラフに系列を追加し、X軸とY軸が同じ値になる2点を使って直線を引きます。

Q-Qプロットの読み方

点が直線に沿って並んでいれば正規分布に近い、と判断します。よく見られるパターンを示します。

プロットのパターン解釈
直線に沿って並んでいる正規分布に従っている可能性が高い
両端が直線から上に離れている(S字型)裾が重い分布(正規より外れ値が多い)
両端が直線から下に離れている(逆S字型)裾が軽い分布(正規より外れ値が少ない)
片側だけ直線から外れている歪み(スキュー)がある

今回の例題では、点がほぼ直線に沿って並んでいます。視覚的には正規分布に近いと見てよいでしょう。

方法③ シャピロウイルク検定で統計的に判断する

視覚的な確認だけでは「なんとなく大丈夫そう」という感覚的な判断になりがちです。特に報告書や論文に書く場合は、統計的な検定結果を示す必要があります。

シャピロウイルク検定は、n=50以下の小サンプルに特に向いている正規性検定です。p値が有意水準(通常0.05)を上回れば「正規性を棄却できない=正規分布とみなせる」と判断します。

残念ながら、Excelにはシャピロウイルク検定の専用関数がありません。以下の2つの方法で対応できます。

方法A:Excelで近似計算する(簡易版)

厳密な計算は複雑なので、Excelで計算するときはシャピロウイルク検定の手動計算手順を参照してください。係数表を使った手順をまとめています。

方法B:PythonのSciPyで計算する

Pythonが使える環境であれば、数行で計算できます。

from scipy import stats
import numpy as np

# 測定データ
data = [52.3, 48.7, 50.1, 53.2, 49.8, 51.5, 50.9, 52.1, 48.5, 51.2]

# シャピロウイルク検定
stat, p_value = stats.shapiro(data)

print(f"W統計量: {stat:.4f}")
print(f"p値: {p_value:.4f}")

# 判定
alpha = 0.05
if p_value > alpha:
    print(f"p={p_value:.4f} > {alpha}: 正規性を棄却できない(正規分布とみなせる)")
else:
    print(f"p={p_value:.4f} ≤ {alpha}: 正規性を棄却する(ノンパラ検定へ)")

実行結果:

W統計量: 0.9721
p値: 0.9082
p=0.9082 > 0.05: 正規性を棄却できない(正規分布とみなせる)

W統計量は1に近いほど正規分布に近いことを示します。p値0.9082は有意水準0.05を大きく上回っているため、このデータは正規分布に従っているとみなせます。

t検定やシャピロウイルク検定をPythonで実装したい場合はPythonでt検定も参考にしてください。

正規性が棄却されたら

シャピロウイルク検定でp値が0.05を下回った場合、「正規分布に従っているとはいえない」ということになります。このとき取れる選択肢は主に3つです。

対処法内容向いているケース
ノンパラメトリック検定に切り替える正規性を前提としない検定手法を使うサンプルサイズが小さく変換が難しい場合
データを対数変換するlog(x) に変換してから検定する右裾が長い分布(収率・濃度データ等)
外れ値を確認する測定ミスや異常値が原因の場合は除外を検討1〜2点だけが極端に外れている場合

2グループの比較ならウイルコクソンの順位和検定、3グループ以上ならクルスカルワリス検定がt検定・分散分析の代替になります。

正規性検定のp値が0.05をわずかに下回った程度(例:p=0.03)の場合、サンプルサイズが小さいと検出力が低く「本当は正規分布なのに棄却してしまう」こともあります。Q-Qプロットの形状とあわせて総合的に判断するのが実務的なやり方です。

3つの方法を組み合わせた判断フロー

実務では次の順序で確認するのが効率的です。

  1. ヒストグラムで明らかな異常がないか確認(双峰型・極端な歪みがないか)
  2. Q-Qプロットで直線に沿っているか確認
  3. 報告書・論文が必要ならシャピロウイルク検定のp値を記載

1と2で問題なければ、n=50以下でも多くの場合パラメトリック検定を使えます。検定だけに頼らず、視覚的な確認と組み合わせることで、現場での判断精度が上がります。

まとめ

Excelで正規性を確認する方法を3つ解説しました。

  • ヒストグラム:釣り鐘型かどうかを目で確認。手軽だがn=10程度では判断しにくい
  • Q-Qプロット:NORM.S.INV関数で理論分位数を計算し、散布図を作成。直線に沿えばOK
  • シャピロウイルク検定:Excelでは近似計算、Pythonなら scipy.stats.shapiro で一発。p>0.05で正規性を棄却できない

どの検定を使うか迷ったときは統計的検定の選び方(フロー図付き)も参考にしてください。正規性確認の結果が分岐点になっているフローも載せています。

等分散性の確認方法はルビーン検定で等分散性を確認するで解説しています。正規性と等分散性をセットで確認してから、t検定の種類(スチューデントかウェルチか)を選ぶのが正しい手順です。

タイトルとURLをコピーしました