ケィオスの時系列解析メモランダム

時系列解析、生体情報解析などをやわらかく語ります

【私のチの冒険】体格指標BMIの成功と挫折、そして再生(2):BMIが語る成人のデザイン

 子どものころは身長がどんどん伸びていきますが、骨格が成熟した成人では、体重の増減はあっても、骨格的なスケールは一定に保たれます。ここでは、骨格の成長(伸び)が完了した成人におけるBMI(Body Mass Index)の意味について考えてみます。

 近年、BMIの限界が繰り返し指摘されるようになりました。たとえば、体脂肪率との相関は必ずしも高くなく、筋肉量の多い人では肥満と誤って評価されることがあります。また、循環器疾患などのリスク予測においても、その精度は限定的であると報告されています。さらに、人種や民族による体格や代謝特性の違いを十分に反映していない点も問題視されています。「BMIの限界」という言葉でインターネット検索をすれば、関連する記事や文献を数多く見つけることができるでしょう。

 しかし、こうした批判の背景には、多くの研究者が「BMIの正しさの根拠は何か」、「BMIは本来何を評価しているのか」を十分に理解しないまま、BMIに過大な期待を寄せていることがあると私は考えます。そこでここでは、改めて「BMIとは何か」をじっくりと考えてみたいと思います。

BMIは「身長とほぼ相関がないから最善だ」って本当?

 BMIはもともと「体重が身長の二乗に比例する」という経験則に基づいて提案されました。1970年代にはアンセル・キーズ(Ancel Keys)らが多国間研究を行い、さまざまな身長補正の指標を比較した結果、体重を身長の二乗で割るケトレー指数が、他の指標に比べて身長との相関が最も弱く、肥満度を表すうえで最適だと結論づけました。その後、この指標は Body Mass Index(BMI) と呼ばれるようになり、世界中に広まりました。歴史的にみれば、「良い体格指標の基準は身長と相関しないこと」 が重視されてきたのです。

 このように、19世紀以来「身長と相関しない体格指標を探す」という課題が強調されてきました。つまり、「BMIは身長と無相関だから妥当である」という理解が広く受け入れられてきたのです。

 しかし、本当にそれだけで十分なのでしょうか。私はどうしても納得できませんでした。なぜなら、BMIが示すのは人々の「典型的な体格(平均や中央値に近い値)」を基準とした位置づけにすぎません。肥満や痩せの程度を表すのは、その基準からの「ずれ」です。そして、真に妥当な指標であるためには、この「ずれ」の大きさが身長に依存しないことこそ重要だと考えられるのです。

 結論から言えば、幸いにして骨格が成熟した成人では、この「ずれ」が驚くほど適切に評価されています。BMIを用いれば、肥満や痩せといった「標準からのずれ」を、きちんと定量的に捉えることができるのです。では、BMIによって評価される肥満や痩せの程度とは、いったい何を意味するのでしょうか?

BMIは何を比較しているのか

 BMI体脂肪率とある程度相関することが知られています (もちろん、完璧ではありませんので、用途によっては満足できないかもしれません)。しかし実際に肥満・痩せの基準が、体脂肪率の分布や病気のリスク研究から定められているかというと、そうではありません。驚くかもしれませんが、BMIによる判定基準は、体脂肪率や病気のなりやすさを直接見て決められてはいないのです。実際には、一般人口から身長と体重の組み合わせのデータを集めて、そのデータだけを分析しています。通常の分析では、BMIの分布を調べて、「その体型がどの程度珍しいか」という、一般集団における出現確率に基づいて、肥満や痩せの判定基準が設定されています。

 ここでいう「珍しさ」とは、例えば「同じ身長の人を無作為に10人集めたときに、その中で一番太っている人」「一番痩せている人」になる確率 (あるいは順位)といった具合です。BMIの基準値とは、まさにその「珍しさ」の水準を示しているのです。こうした説明をしているのは、もしかすると世界で私だけかもしれません。ですから多少の疑いをもって読んでいただいても構いません。ただし、私は科学的に正しいという確信をもって、この話をしています。

 ではなぜ、BMIを使えば「体型の珍しさ(出現確率)」が比較できるのでしょうか。その理由を、下の図を使って説明しましょう。

3つの身長が異なるグループの体格比較。上は体重の比較。下はBMIの比較。図中の人のイラストは、各身長グループでの体重分布の2%点、10%点、50%点、90%点、98%点に当たる体形を模式的に描いている。

 上の図は、身長の異なる3つの成人グループを想定して比較しています。各グループの中では、全員の身長は同じです。高身長のグループは赤いパンツ、中くらいの身長のグループは緑のパンツ、低身長のグループは青いパンツを履いています。たくさんの人を描くと見づらくなるので、図には各グループの中で体重順に並べたときの代表的なパーセンタイル位置の人だけを描いてあります。最上段には例として、体重分布の2%点、10%点、50%点、90%点、98%点にあたる人を模式的に示しました。ここでいう「パーセンタイル」とは、全体の分布の中での相対的な位置を示す指標です。たとえば、同じ身長の人を101人に集めて体重の順に並べると、0%点は一番軽い人、100%点は一番重い人にあたります。50%点(中央値)は真ん中の順位の51番目の人、90%点は軽い方から数えて91番目の人にあたります。さらに、2%点は3番目に軽い人、98%点は上から3番目に重い人に相当します。身体計測の分野では、パーセンタイルをセンタイルとも言います。図の上から2段目には、身長が異なる3つのグループの体重分布 (身長が一定の条件下での体重分布)を描いてあります。この図からわかるように、体重の分布は身長に依存してしまうため、体重を比べただけでは肥満ややせを公平に比較することができません。

 では、これらの人々の BMI を計算するとどうなるでしょうか。

 BMIを使えば、異なる身長グループの間でも、身長に影響されずに体重の分布上の位置を表すパーセンタイルを比較できるようになります。そのことを示したのが図の下の2段です。下から2段目に描いたように、BMIを使えば、同じ身長の人々だけを比較したときの、体重のパーセンタイル位置を比較することができます。そしてこれは3つの身長グループに限らず、どの身長であっても成り立ちます。BMIを用いることで初めて、その体重の珍しさを客観的に、パーセンタイルという形で公平に比べられるのです。この点こそが、私が主張するBMIの妥当性の根拠であり、BMIが持つ本来の意味です。

 したがって、BMI体脂肪率を直接測定しているわけでも、病気のなりやすさを予測しているわけでもありません。BMIによって「肥満」と評価された人とは、「同じ身長の人々の中では、あなたの体重は100人に2〜3人しか存在しないほど珍しい体形にあたります」ということを示しているにすぎません。そして、そのように珍しい体形であることが、何らかの異常や健康リスクと関係している可能性があるため、詳しい検査や評価を行いましょう、という意味になるのです。

 ただし、現在用いられている基準は、骨格の成長がほぼ完成する18~20歳程度(あるいは比較的若い成人)の人々を想定して作られていると考えられます。そのため、年齢を重ねるにつれて多くの人が「肥満」と判定される傾向があります。若者と同じ基準で中高齢の方々を評価することの妥当性については、慎重に検討する必要があるでしょう。したがって、BMIの判定基準は、性別や年齢、人種の違いを考慮して再設定することが望ましいと思います。

 以上の議論を、より正確に理解していただくために、成人の身長・体重データをシミュレーションによって生成し、改めてBMIの意味を確認してみます。データを生成するためのRスクリプトは、この記事の最後に掲載してあります。なお、実測データを用いた詳細な解析結果については、以下の論文を参照してください。

Allometric multi-scaling of weight-for-height relation in children and adolescents: Revisiting the theoretical basis of body mass index of thinness and obesity assessment

 下の図は、20歳くらいの成人男性を想定して、身長について、いくつかの階級に分けて体重と体格指標の分布を比較したものです。体格指標は、BMIだけでなく、体重(kg)を身長(m)の α 乗で割ったものを考えています。そして、α が2のとき、体格指標はBMIと一致します。驚くことに、α が2のとき、つまり、BMIでは、身長が異なる階級のBMI分布がすべて重なるのです。このことは、BMIは、「身長との相関がなくなるから良い」のではなく、「どんな身長でも、BMI分布が同じになるから良い」ということを示しています。ですので、BMIに基準値を設定すれば、同じ身長グループ内でのあなたの体形の珍しさを評価できます。現在の基準では、18歳くらいの一般人口で体重が上位10%以上の太り具合が「 肥満(1度)」、上位2~3%以上の太り具合が「肥満(2度)」に、おおよそ対応しています。逆に痩せは、体重の下位の10パーセント未満が「低体重」と評価されるようになっています。

成人の身長階層別の体重分布比較(左)と体格指標の分布比較(右)。体格指標は体重(kg)を身長(m)の α 乗で割ったもの。α が2のとき、体格指標はBMIと一致する。図中の丸は、各身長階層での体重の2パーセント点、三角は50パーセント点、ダイヤは98パーセント点を表す。

身長体重データから読み取れるヒトのデザイン

 成人の身長は、きれいに正規分布することが知られています。これは、19世紀前半にケトレー(Adolphe Quetelet)が兵士の身長データなどを用いて「人間集団の形質は正規分布に従う」と示したことに始まります。その後、ガルトン(Francis Galton)が集団内の身長分布や遺伝的特性を研究する中で正規分布の重要性を強調し、さらにピアソン(Karl Pearson)が数理統計学の体系を築く過程で、身長をはじめとする人間の形質が正規分布に従うことを理論的に裏づけました。

 そのような正規分布が現れる理由として、中心極限定理を思い浮かべる人も多いと思いますが、別の説明として「最大エントロピー原理」があります。最大エントロピー原理とは、与えられた制約条件のもとで最も情報の偏りが少ない(=最も無知な)分布を選ぶ、という考え方です。たとえば、ある確率変数の平均と分散だけが分かっているとき、他の情報が一切ないとすれば、その条件を満たす分布の中でエントロピーが最大になるのは正規分布です。つまり「平均値と分散しか知られていないとき、最も自然に導かれる分布は正規分布である」ということです。

 人間の身長を考えると、個体差は確かに存在しますが、その背後にある詳細な要因(遺伝子、生活習慣、栄養状態など)をすべて説明することはできません。社会全体で観測されるのは「平均身長」と「そこからのばらつき(標準偏差)」程度であり、それ以上の細かい制約は与えられていません。したがって「人の身長は平均値と分散だけが決まっており、あとは自然にばらついている」と解釈することができ、その結果として観測される分布が正規分布になるのです。

 この視点に立つと、人間の身長分布は「自然の設計図」によって厳密に決められているものではなく、むしろ「最小限の制約条件のもとで自然にばらついた結果」だと理解できます。そして、その最小限の制約が、ヒトに固有の「デザイン」(身長のセットポイント)の存在を示唆しているとも言えるでしょう。

 では体重はどうでしょうか。1920〜40年代には、体重分布が正規分布とは異なり、高体重側に歪むことが報告されていました。その後、1950年代以降の大規模データ解析によって、成人の体重分布は対数正規分布でよく近似できることが明確になり、疫学や栄養学の分野では「体重は対数正規分布で近似できる」という認識が定着しました。最大エントロピー原理で説明すると、体重の対数の平均と分散が与えられたときに自然に導かれる分布は対数正規分布です。

 もっとも、体重について「ヒトのデザインのセットポイントとして平均体重が一つだけ決まっている」と考えるのは妥当ではないと感じます。なぜなら、その前提では「体重が身長の二乗に比例する」という経験則を説明できず、さらにクライバーの法則(代謝量は体重の3/4乗に比例する)とも矛盾するからです。

 私見では、成人の体重は身長に条件づければ対数正規分布に従うものの、身長のばらつきを考慮した周辺分布(条件を外した分布)は厳密には対数正規分布ではなく、身長ごとの対数正規分布の混合分布になります。直感的に言えば、「身長ごとに代表的な体重が定まり、その周囲に一定の倍率スケールでばらつく」という構造を持つ、と理解するのが自然です。こうした仮定に基づけば、実際に観測される身長・体重データをよく再現することができます。

 以下に示す R スクリプトも、この発想に基づいたモデルを採用しています。一見単純に見える身長・体重データですが、数理的な視点から眺めることで多くの知見を引き出すことができるのです。今回は詳細な議論には踏み込みませんが、身長と体重の分析は非常に奥深く、科学の面白さを実感させてくれます。

本題は子どもにもBMIが適用できるか?

 ここまでは成人の BMI の成り立ちを見てきました。では次の論点です:「子どもにも同じ理屈で BMI を適用できるのか?」

 率直に言えば、骨格の成長期にある子どもに BMI をそのまま当てはめるのは、根本から間違っています。

 次回のお話しで扱うのは、WHO(World Health Organization世界保健機関)や CDC(Centers for Disease Control and Prevention:米国疾病予防管理センター)、そして日本の学校保健統計が長年示してきた枠組みに関連したものです。多くの人々が、「それは妥当だ」と信じられる前提が、その枠組みの基盤としてあったのでしょうか。実施には、その科学的な基盤には脆弱な点があるのです。権威だからといって鵜呑みにせず、データと数理で知を動かす必要があるのです。

 私は、批判を恐れずに言います。これまで「常識」とされてきたものを、ここで勇気をもって壊す必要があります。それは、子どもたちの健康を正しく守るために、新しい指針を築くためです。勇気をもって科学を正しい方向に進めることにこそ、科学が生み出す真の希望があります。(次回に続く)

【付録】成人の身長体重データの生成モデル

 ここでは、Rで、日本の20歳前後の成人を対象にした身長・体重をシミュレートしてみます。

Rスクリプト

 以下のスクリプトで、例数Nを指定すれば、Hに身長、Wに体重のデータがベクトルとして格納されます。

## --------------------------------------------
## 日本の20歳前後の成人 身長・体重データ生成
## モデル:
##   H ~ N(mu_H, sd_H^2)
##   W | H ~ LogNormal(mu_W(H), sdlog = lnSD)
##   ただし E[W | H] = 22.9 * H^2 となるよう mu_W(H) を設定
## --------------------------------------------

## 1) パラメータ設定(必要に応じて調整)
N     <- 10000            # サンプルサイズ
mu_H  <- 1.708             # 平均身長 [m]
sd_H  <- 0.059             # 身長の標準偏差 [m]
BMI0  <- 22.9              # 平均的に目指すBMI(条件付き期待値)
lnSD  <- 0.127             # 体重の対数標準偏差(log-normal の sdlog)

## 2) 身長の生成:正規分布
H <- rnorm(N, mean = mu_H, sd = sd_H)

## 3) 体重の生成:対数正規分布(身長条件付き)
##    対数正規分布 W ~ LogNormal(meanlog = mu, sdlog = s) のとき、
##    E[W] = exp(mu + s^2/2).
##    よって E[W | H] を BMI0 * H^2 にしたければ、
##    mu_W(H) = log(BMI0 * H^2) - (lnSD^2)/2 とすればよい。
meanlog_W <- log(BMI0 * H^2) - (lnSD^2) / 2
W <- rlnorm(N, meanlog = meanlog_W, sdlog = lnSD)

## 4) チェック用の派生量
BMI <- W / (H^2)

## 5) 概要統計の確認
cat("【身長 H (m)】\n")
print(summary(H))
cat("sd(H) =", sd(H), "\n\n")

cat("【体重 W (kg)】\n")
print(summary(W))
cat("sd(W) =", sd(W), "\n\n")

cat("【BMI = W/H^2】\n")
print(summary(BMI))
cat("平均BMI(全体)       =", mean(BMI), "\n")
cat("身長条件付き平均BMI ≈ ", mean(tapply(BMI, cut(H, breaks=50), mean), na.rm=TRUE), "\n\n")

## 6) 分布の可視化(Freedman–Diaconis の幅を用いたヒストグラム)
par(mfrow = c(1, 2))
hist(H, breaks = "FD", col = "gray90", border = "white",
     main = "Height (m)", xlab = "Height [m]", ylab = "Frequency")
hist(W, breaks = "FD", col = "gray90", border = "white",
     main = "Weight (kg)", xlab = "Weight [kg]", ylab = "Frequency")
par(mfrow = c(1, 1))

## 7) 追加の検証(任意)
##   - 身長と体重の相関
cat("cor(H, W) =", cor(H, W), "\n")
##   - 対数正規のばらつき(CV)参考値:sqrt(exp(lnSD^2) - 1)
cv_W_theory <- sqrt(exp(lnSD^2) - 1)
cat("理論上の体重のCV (sd/mean) ≈", cv_W_theory, "\n")

解説

 上のRスクリプトは、日本人男性の20歳前後を対象としたシミュレーションデータを生成することを目的としています。身長を正規分布に従って生成し、その身長に基づいて体重を対数正規分布から生成するという二段階のモデルを採用しています。重要なのは、身長ごとに期待される体重が平均的に BMI = 22.9 になるように調整されている点です。以下では、コードの流れに沿って詳しく説明します。

身長のモデル化

 まず身長 \displaystyle{
H
}正規分布に従う乱数として生成します。ここでは、平均 \displaystyle{
\mu _ H = 1.708
} m、標準偏差 \displaystyle{
\sigma _ H = 0.059
} m を設定しており、日本人20歳前後の男性の平均的な身長分布を近似しています。サンプルサイズは1万人としていますが、Nの値を大きくすれば、大規模な人口を模擬するデータを得ることもできます。身長のデータは以下のようランダムに生成しています。

H <- rnorm(N, mean = mu_H, sd = sd_H)

 この結果として、正規分布に従った釣鐘型の身長分布が得られます。

体重のモデル化と対数正規分布

 体重 \displaystyle{
W
} は、正規分布ではなく、右に裾の長い分布形を持つ対数正規分布を用いて生成します。体重のように下限がゼロに制約され、かつ肥満側に広がりやすい分布を表現するには対数正規分布が適しています。

対数正規分布 \displaystyle{
\text{LogNormal}(\mu, \sigma^ 2)
} に従う乱数の期待値は

\displaystyle{
E[X] = \exp\!\left(\mu + \frac{\sigma^2}{2}\right)
}

で表されます。ここで、個々の身長 \displaystyle{
H
} に対して条件付き期待値が

\displaystyle{
E[W \mid H] = \text{BMI}_0 \cdot H^2
}

となるように設計します。設定した \displaystyle{
\text{BMI} _ 0 = 22.9
} は、日本人成人男性の標準的なBMIを代表する値です。たとえば、170.8 cm の男性の平均体重は \displaystyle{
22.9 \times (1.708)^ 2 \approx 66.8
} kg となります。

この条件を満たすために、対数正規分布のパラメータ \displaystyle{
\mu _ W(H)
}

\displaystyle{
\mu_W(H) = \log(\text{BMI}_0 \cdot H^2) - \frac{\sigma_{\ln}^2}{2}
}

と設定します。こうすることで、対数正規分布の期待値がBMI基準の値に一致します。Rコードでは以下の通りです。

meanlog_W <- log(BMI0 * H^2) - (lnSD^2)/2
W <- rlnorm(N, meanlog = meanlog_W, sdlog = lnSD)

ここで lnSD は体重の対数標準偏差で、0.127と設定されています。この値は、体重の変動係数がおよそ12.8%になることを意味し、平均体重に対して1割強の個人差が存在する分布を反映しています。

まとめと応用

 このシミュレーションスクリプトは、日本人男性における身長・体重・BMIの分布を再現する単純かつ実用的なモデルです。研究の準備や教育的なデモンストレーションにおいて、仮想的な大規模データを生成する手段として有効に利用できます。