Top 5 This Week

関連記事

【医療統計版】正規分布:どこまで仮定が必要かとZスコア

- 本サイト運営者のサービスの紹介 -

血圧や検査値を要約した後、「正規性がないので平均値を使えないのでは」と迷うことがあります。右裾の長い入院日数や費用では、ヒストグラムが左右対称にならず、正規性検定も小さなp値を返しがちです。しかし、観測値の分布、標本平均の分布、解析モデルの誤差分布は別の対象です。この区別をしないまま検定結果だけで解析法を替えると、平均値について知りたい研究なのに、別の差を捉える手法を選ぶことになります。

この記事では、正規分布を平均と標準偏差から読み、医学データに正規分布をどこまで求めるべきかを考えます。さらに、Zスコアが尺度をそろえる一方で分布の歪みを直さないことを、ランダムに生成したデータセットで確かめます。正規性検定のp値だけに頼らず、研究目的、外れ値、標本サイズ、推測したい量を結び付けて判断できるようになれば幸いです。

平均と標準偏差で決まる正規分布

正規分布は、中心を表す平均と広がりを表す標準偏差によって形が決まる、左右対称な連続分布です。確率変数$X$が平均$\mu$、標準偏差$\sigma$の正規分布に従うとき、その確率密度は次の式で表されます。

$$f(x)=\frac{1}{\sigma\sqrt{2\pi}}\exp\left\{-\frac{(x-\mu)^2}{2\sigma^2}\right\}\tag{1}$$

式(1)は、$x$が平均$\mu$から離れるほど密度が低くなり、その低下の速さを標準偏差$\sigma$が決めることを表しています。$f(x)$は確率密度であり、曲線の高さそのものが特定の値を取る確率ではありません。

AltmanとBland(1995)は、正規分布を平均と標準偏差で記述できる点を医学統計の基本として説明しています。ただし、平均と標準偏差を計算できるデータが正規分布に従うとは限らず、たとえば0未満を取らないことや、大きな値が少数含まれる入院日数は右に歪みやすく、平均が中央値より大きくなることがあります。分布の形は、要約統計量だけでなくヒストグラムやQ-Qプロットでも確かめる必要があります。

また、正規分布は「多くの値が平均付近にある」ということでもなく、左右対称性と裾の形まで含む特定の確率分布です。外れ値が1例加わるだけでも平均と標準偏差は動くため、医学データではその値が入力誤りなのか、対象集団に実在する重要な観測なのかを区別してから要約します。

医学データそのものに必要な仮定

t検定を使うなら各観測値が完全な正規分布でなければならない、と考えてしまいがちです。実際に推測の根拠となるのは、独立性、標本平均の標本分布、分散推定の安定性などです。Lumleyら(2002)は、大規模な公衆衛生データで、よく使われる回帰やt検定の推測が正規性からの逸脱にどこまで耐えるかを論じています。

一方、小標本で強い歪みや極端値がある場合には話が変わります。今回の対数正規分布からのシミュレーションでは、標本サイズ15のt信頼区間が真の平均を含んだ割合は87.1%で、名目95%より低い過小被覆でした。標本サイズ50では91.2%、200では93.7%へ近づきましたが、この結果は対数位置$\log(100)$、対数尺度0.9という今回の設定に限られます。

この数値から、200例なら常に十分という基準は作れません。分布の歪み、裾の重さ、群間の不均衡、欠測、観測同士の依存によって、平均値の推測の振る舞いは異なるからです。私なら、正規性検定のp値より先に、研究目的が平均差なのか、中央値や分布全体の差なのかを確認し、次に図と外れ値が推定結果へ与える影響を見ます。

そのため、「正規ならt検定、非正規なら順位検定」という機械的な振り分けは推奨しません。順位に基づく検定は、単純に平均値の差へ置き換わる手法ではなく、帰無仮説と解釈が変わります。平均医療費の差が研究目的なら、平均という推定対象を保ったまま、標本サイズ、標準誤差の推定法、変換や再標本化の必要性を考える方が筋の通った解析になります。

Zスコアが変える尺度と残す形

異なる単位の測定値を共通の尺度で表したい場合、Zスコアは観測値から平均を引き、標準偏差で割って求めます。

$$z_i=\frac{x_i-\bar{x}}{s}\tag{2}$$

式(2)は、観測値$x_i$が標本平均$\bar{x}$から標本標準偏差$s$の何倍離れているかを表します。標本内で計算したZスコアの平均は0、標本標準偏差は1になります。

たとえばZスコアが2なら、元の値が標本平均より標本標準偏差2個分だけ上に位置します。Andrade(2021)は、この標準得点によって異なる尺度上の位置を比較できることを説明しています。ただし、基準集団の平均と標準偏差が変われば、同じ測定値でもZスコアは変わります。臨床的な基準値や疾患リスクをZスコアだけから決めるのではなく、何を基準集団にした値かを明記する必要があります。

Zスコア化で正規分布になる、という一般論も正確ではありません。引き算と割り算は位置と尺度を変える線形変換なので、元の順位、左右の歪み、外れ値の相対的な位置は残ります。今回の400例では、元の値の歪度もZスコアの歪度も2.795でした。Zスコアの最大値は6.933で、2を超えた割合は4.25%でしたが、-2を下回る値はありませんでした。この非対称性は標準化後にも残っています。

正規性検定のp値を入口にしない

ShapiroとWilk(1965)が提案した検定は、観測された並びが正規分布からどの程度外れているかを形式的に評価します。今回の400例では$W=0.726$、p値は約$4.07\times10^{-25}$でした。この結果は正規分布との整合性が低いことを表しますが、それだけで平均値の報告や特定の解析法を禁止する結論にはなりません。

実際、標本サイズが大きいと小さな形のズレも検出されやすく、反対に小標本では実質的な歪みがあっても検出力が足りない場合があります。GhasemiとZahediasl(2012)は、形式的検定に加えてヒストグラムやQ-Qプロットなどを併用する考え方を説明しています。p>0.05を「正規分布だと確認した」と読むのも避けるべきです。有意でない結果は、正規分布からの逸脱を検出できなかったという範囲にとどまります。

そこで必要になるのは、検定結果を採否のスイッチにすることではなく、解析がどの仮定に依存しているかを特定することです。記述統計なら分布の形と外れ値、平均の信頼区間なら標本平均と標準誤差、線形回帰なら説明変数ごとの残差の振る舞いを見ます。観測値全体の正規性を1回検定して、全ての判断を代用することは適切ではありません。

Rで右偏りと標準化を確かめる

右裾の長い正値を想定し、対数正規分布から400例をランダムに生成したデータセットを用意しました。使用するのはbase Rとstatsパッケージです。次のコードは元の値とZスコアを要約し、同じ区切りに対応するヒストグラムを描きます。

set.seed(42)
observed_value <- rlnorm(400, meanlog = log(100), sdlog = 0.9)
observed_z <- as.numeric(scale(observed_value))
skewness <- function(value) {
  mean((value - mean(value))^3) / mean((value - mean(value))^2)^(3 / 2)
}
c(mean = mean(observed_value), median = median(observed_value),
  raw_skewness = skewness(observed_value), z_skewness = skewness(observed_z))
#>          mean        median  raw_skewness    z_skewness
#>    143.621278     97.695544      2.794880      2.794880

出力では平均143.62が中央値97.70を上回り、歪度は標準化の前後で2.795のままです。読み違えやすいのは、Zスコアの平均0、標準偏差1という性質を、正規分布の平均0、標準偏差1と同一視する点です。前者は標本内で中心と尺度をそろえた結果であり、分布形についての保証ではありません。

raw_breaks <- pretty(range(observed_value), n = 18)
z_breaks <- (raw_breaks - mean(observed_value)) / sd(observed_value)
png("normal-distribution-z-score.png", width = 1100, height = 688,
    res = 200, type = "cairo")
par(mfrow = c(1, 2), mar = c(4.2, 4.2, 2.5, 1.0))
hist(observed_value, breaks = raw_breaks, col = "#4C78A8", border = "white",
     main = "Original values", xlab = "Value", ylab = "Frequency")
hist(observed_z, breaks = z_breaks, col = "#F58518", border = "white",
     main = "Z scores", xlab = "Z score", ylab = "Frequency")
dev.off()
右裾の長い400例の元データとZスコアを並べたヒストグラムで、横軸は変わるが棒の度数と右偏りは一致している
図1 同じ400例を元の尺度とZスコアで表示しました。横軸の中心と単位は変わりますが、棒の並びと右裾の長さは変わらず、標準化後も歪みが残ります。

図1では、左右の棒の高さが同じ並びになっています。医学研究で複数の検査値を標準化して回帰モデルへ入れる場合、係数の単位は比較しやすくなりますが、外れ値の影響や残差の問題まで解消したとは限りません。

標準化は尺度の処理であり、正規性への対処とは分けて扱います。

公表研究での正規性の位置づけ

医学論文の方法欄で「正規性を確認した」とだけ記載しても、読者は何の分布を、どの図や検定で調べ、結果を解析法へどう結び付けたかを判断できません。GhasemiとZahediasl(2012)の概説が扱うように、図示と形式的検定は補い合いますが、研究目的に対応する推定対象の説明も欠かせません。

さらに、Lumleyら(2002)の議論は、大標本での頑健性を理由にデータの確認を省いてよいという主張ではありません。極端値、クラスタリング、分散の不均一、モデルの誤指定は、観測値の周辺分布が正規的かどうかとは別に推測を損ないます。どの仮定を置き、逸脱に対してどの解析を用いたかが再現できる記載の方が、「正規性あり」という一語より情報を持ちます。

正規性検定のp値だけで手法を決めないことが、ここでの実務的な結論です。平均値が研究目的なら平均値に対応する推測を守り、分布が強く歪む小標本では、変換後に答える対象が何へ変わるか、頑健な標準誤差や再標本化が研究計画に合うかを考えます。中央値や分布全体の差が目的なら、それに対応する方法を最初から選びます。

研究目的から正規性を読み直す

正規分布は平均と標準偏差で定まる明確な確率分布ですが、医学データの全てがその形になる必要はありません。必要な仮定は、記述したい量と採用する推測方法によって決まります。小標本で強い右偏りがある今回の設定ではt信頼区間の過小被覆が観察され、標本サイズを増やすと被覆率は名目値へ近づきました。ただし、この経過を別の分布へそのまま一般化はできません。

一方、Zスコアは異なる単位を平均0、標準偏差1の尺度へ移す道具です。歪みを消す変換ではないため、標準化の後にも図と外れ値を確認する理由が残ります。解析法を選ぶ場面では、正規性検定の有意差より、推定したい量、標本サイズ、独立性、分布の形、極端値への感度を一続きで判断する方が、研究目的に沿った結果になります。

参考文献

  1. Altman DG, Bland JM. Statistics notes: the normal distribution. BMJ. 1995;310(6975):298.
  2. Lumley T, Diehr P, Emerson S, Chen L. The importance of the normality assumption in large public health data sets. Annual Review of Public Health. 2002;23:151-169.
  3. Shapiro SS, Wilk MB. An analysis of variance test for normality (complete samples). Biometrika. 1965;52(3-4):591-611.
  4. Ghasemi A, Zahediasl S. Normality tests for statistical analysis: a guide for non-statisticians. International Journal of Endocrinology and Metabolism. 2012;10(2):486-489.
  5. Andrade C. Z scores, standard scores, and composite test scores explained. Indian Journal of Psychological Medicine. 2021;43(6):555-557.

Popular Articles