ある会社の求人票に「平均年収 600 万円、標準偏差 100 万円」と書いてあったとします。stats-01・stats-02 で学んだ知識があれば「平均から 100 万円前後のばらつきがある」と読めます。しかしこの数字だけでは「社員のほとんどが 500〜700 万円に収まるのか」「一部の役員が 900 万円超で平均を引き上げているのか」の区別がつきません。2 つのシナリオは平均も標準偏差もまったく同じにできます。
stats-01 で典型値(平均・中央値)、stats-02 で散らばり(分散・標準偏差)を扱いました。本記事は「形」を扱います。次の stats-04 は「標準化と z スコア」で、単位の違う分布どうしを同じスケールで並べる操作に進みます。
平均と分散だけでは見えないもの
具体的な数字で確かめます。次の 2 つのデータセットは、どちらも 平均 600 万円・標準偏差 100 万円 に揃えた仮想の年収データ(20 人分)です。
データセット A(対称型): 440, 455, 470, 485, 505, 520, 535, 550, 570, 585, 615, 630, 650, 665, 680, 695, 715, 730, 745, 760 (単位: 万円)
データセット B(右歪み型): 500, 505, 510, 515, 520, 525, 530, 540, 550, 560, 565, 575, 600, 615, 640, 660, 700, 740, 800, 850 (単位: 万円)
検算結果: A の平均 = 600 万円、標準偏差 = 100.0 万円。B の平均 = 600 万円、標準偏差 = 99.6 万円。どちらも「平均 600 万円・標準偏差 100 万円」と言える数値です。
ヒストグラムを 2 つ並べます。
横軸は年収(万円)、縦軸は人数。赤い破線が平均(600 万円)です。データセット A では 600 万円の左右にほぼ均等に人が分布しています。400〜500 万円に 4 人、500〜600 万円に 6 人、600〜700 万円に 6 人、700〜800 万円に 4 人です。
横軸は年収(万円)、縦軸は人数。赤い破線は同じ 600 万円の平均線です。データセット B では 450〜650 万円に 15 人が密集し、右側に 740 万円・800 万円・850 万円の 3 人が並びます。特に 800・850 万円の 2 人は単独の棒として右端に並んでいます。
2 つの数字が持つ意味を比べます。A の 20 人のうち 12 人が 500〜700 万円の帯に収まります。平均 600 万円はこの 12 人の実態にほぼ近い値です。
B の 20 人のうち 17 人が 500〜700 万円の帯にいますが、この 17 人の帯平均は約 565 万円です。右端の 3 人(740・800・850 万円)が平均を 35 万円分の寄与で全体平均 600 万円にしています。3 人の寄与を計算すると 万円で、17 人で割ると一人あたり約 41 万円分の底上げです。
B の 17 人の帯平均(565 万円)に対し全体平均 600 万円は 35 万円高く、しかも 17 人のうち 12 人は 600 万円未満です。大多数にとって「平均を下回っている」点は変わりません。A の社員 12 人にとっては自分の給与から 100 万円以内の距離にある数字です。同じ「600 万円」という数が、A では集団の実態を代表し、B では 2 層の間に浮きます。
標準偏差を足しても状況は変わりません。A も B も標準偏差は約 100 万円。「平均 ± 1 標準偏差(500〜700 万円)」という情報から A と B を区別するのは難しいです。2 つの数が揃っていても、形がまったく違うことは起きます。
数値要約だけでは見えないものがあります。形を視覚的に見る道具がヒストグラムと密度関数で、形を 1 つの数で要約する道具が歪度と尖度です。
平均と標準偏差が同じでも、分布の形が違えばデータが示す現実は違う。形を視覚で見るのがヒストグラムと密度関数、形を 1 つの数で要約するのが歪度と尖度。
ヒストグラムは何を見せているのか
ヒストグラムと棒グラフは別物です。見た目が似ているので混同しやすいですが、用途が根本的に違います。
棒グラフ は離散的なカテゴリの比較に使います。「月曜〜金曜の来店数」「都道府県別の人口」のように、横軸がカテゴリ名で、棒と棒の間に隙間があります。
ヒストグラム は連続的な値の頻度分布を示します。「身長の分布」「所得の分布」のように、横軸が数値の区間(ビン)で、棒と棒の間に隙間はありません。棒が接するのは、数値が切れ目なくつながっている連続データを扱っているからです。
ビン(箱)と度数の仕組み
stats-01・stats-02 で使ってきたバイト時給 8 人のデータ(A〜H 人、単位: 円)で作り方を確認します。
| 人 | A | B | C | D | E | F | G | H |
|---|---|---|---|---|---|---|---|---|
| 時給 | 1,000 | 1,050 | 1,050 | 1,100 | 1,150 | 1,200 | 1,300 | 4,500 |
横軸を 500 円幅で区切ります。
| ビン(区間) | 入る人 | 度数(人数) |
|---|---|---|
| 1,000〜1,500 円未満 | A, B, C, D, E, F, G | 7 |
| 1,500〜2,000 円未満 | (なし) | 0 |
| 2,000〜2,500 円未満 | (なし) | 0 |
| 2,500〜3,000 円未満 | (なし) | 0 |
| 3,000〜3,500 円未満 | (なし) | 0 |
| 3,500〜4,000 円未満 | (なし) | 0 |
| 4,000〜4,500 円以下 | H | 1 |
「度数(ひんど)」は各ビンに入るデータの個数です。このデータでは、H さんの 4,500 円が単独で 1 本の棒を作ります。
横軸は時給(円)、縦軸は人数。赤い破線は平均(1,544 円)です。A〜G の 7 人が 1,000〜1,300 円台に集まり、H さんは 4,500 円の位置に単独で存在します。stats-01 で確認した「平均が実態と乖離する」構造が形で見えます。
ビン幅で印象が変わる
同じデータでもビン幅の選び方で、ヒストグラムの形が大きく変わります。身長 80 人分の仮想データ(平均 170 cm、標準偏差 6 cm)で 3 種類のビン幅を並べます。
3 枚とも同じデータです。ビン幅 1 cm はガタガタすぎて形が見えず、ビン幅 15 cm は粗すぎて分布の左右非対称さが潰れます。ビン幅 5 cm では釣り鐘状の形がはっきり見えます。
上の 3 枚は固定のビン幅でした。下では自分でビン幅を動かして、同じデータの印象が連続的にどう変わるかを確認できます。赤い曲線(同じ幅のガウスカーネル密度)は、ビン幅が細かいほどギザギザに、大きいほどなめらかになります。次節で扱う「ビン幅を限りなく細かくすると曲線に近づく」性質も、この赤い曲線で見えています。
触って確かめる:同じデータでもビン幅で印象が変わる
ビン幅を小さくすると棒が細かくギザギザになり、大きくすると粗くなめらかになります。赤い曲線は同じ幅のガウスカーネル密度です。同じデータでも「どの解像度で見るか」で分布の印象が変わります。
ビン幅の選び方に「唯一の正解」はありません。データの性質に応じた目安はあります。
度数と相対度数
縦軸を「人数そのもの」にしたのが度数版、「全体の何割か」にしたのが相対度数版です。形は同じですが、縦軸の単位が変わります。
データ数が違う 2 集団を比較するときは相対度数(割合)を使います。1,000 人のグループと 100 人のグループを度数(人数)で比べると、大きいグループの棒がすべて高くなって形が読めません。相対度数にすれば両者を同じ縦軸スケールで並べられます。
歪度・尖度という数値を計算するより、ヒストグラムの形を先に見ます。形を目で確認してから数値で要約します。
ヒストグラムから密度関数へ
ビン幅を段階的に細かくすると、棒の集合が連続的な曲線に近づきます。「ビン幅を限りなく細かくした極限」に現れる滑らかな曲線が密度関数です。
縦軸は「人数」でも「割合」でもなく「密度」です。密度関数では「曲線の下の面積が 1 になる」という約束があります(積分の概念ですが、本記事では「面積が 1」とだけ覚えれば十分です)。
実際のデータは有限個なので、密度は「推定するもの」です。ヒストグラムはデータから直接見える形の近似で、ビン幅という設計上の判断が残ります。これを解消する方法の 1 つがカーネル密度推定(KDE)です。
KDE は「各データ点に小さな山を置いて重ねる」発想です。1 つのデータ点 に幅 (バンド幅)の山(カーネル)を置き、全データ分を足すと、次の式で密度を推定できます。
の「ハット()」は「データから推定した値」を意味します。 はカーネル関数(例えば正規分布形の山)、 は山の幅、 はデータ数です。 で割るのは「全データの山の合計の面積が 1 になる」ように正規化するためです。バンド幅 が小さいと細かくガタガタな曲線に、大きいと過度に滑らかな曲線になります。数学的な詳細は補足記事 stats-supplement-kernel-density-estimation で扱います。
計算数学的な土台:経験分布関数(興味があれば)
ヒストグラムの背景にある数学的概念として「経験分布関数」があります。サンプルのデータを増やすと、特定の値以下に入る比率が滑らかに増えていく曲線(累積分布関数)に近づきます。その「実際のデータから計算した版」が経験分布関数で、式で書くと次の通りです。
は「 が成り立てば 1、成り立たなければ 0 を返す」指示関数です。 は「 以下のデータが全体の何割か」を返す階段関数で、データ点ごとに ずつ上に上がります。ヒストグラムは、この階段関数を区間ごとに集計して棒の高さで表したものです。
分布の形を分類する
4 種類の典型的な形を絵で見てから、名前を当てます。
それぞれの形に名前を当てます。
① 対称(symmetric): 中央を軸に左右が鏡像になる形です。17 歳の身長分布はこのパターンに近く、平均 170 cm 前後を中心に左右にほぼ均等に分布します(文部科学省 学校保健統計調査)。平均・中央値・最頻値が一致します。
② 右歪み(right-skewed、正の歪み): 右に長く裾を引く形です。日本の世帯所得は典型例で、2024 年の国民生活基礎調査(2023 年所得)では平均 536 万円に対して中央値は 410 万円です(厚生労働省)。右にいる高所得層が平均を増やすため 「平均 > 中央値」 になります。stats-01 で見たこの乖離は、右歪みの結果です。
③ 左歪み(left-skewed、負の歪み): 左に長く裾を引く形です。「満点に近い簡単な試験」では高得点に人が集まり、低得点側に裾を引きます(天井効果)。「平均 < 中央値」 になります。
④ 多峰(multimodal): 山が 2 つ以上ある形です(双峰など)。「英語ネイティブと日本語話者が混在するクラスの TOEFL スコア」のように、異質な集団が混在しているときに現れます。平均を出しても「2 つの山のどちらでもない中間」を指してしまい、形の特徴が潰れます。
次の図は <SkewedDistributionComparison> コンポーネントで対称・右歪み・左歪みを切り替えて確認できます。各モードで平均(赤)・中央値(青)・最頻値(緑)の位置関係がどう変わるかを見ます。
分布の歪みと、平均・中央値・最頻値の位置関係
左右対称(正規分布)では、平均・中央値・最頻値が同じ位置に重なる
- 平均
- 5.00
- 中央値
- 5.00
- 最頻値
- 5.00
単峰・連続の分布で右歪みになる多くの場合、最頻値 < 中央値 < 平均 という順序が成り立ちます。仕組みは次の通りです。最頻値は曲線の頂点(最も人が多い場所)です。中央値は「データを半分に分ける面積の区切り」で、頂点よりわずかに右側の位置です。平均は stats-01 で確認した通り右の外れ値の寄与で右に位置する重心で、さらに右に寄ります。左歪みではこの順序が逆転します。von Hippel (2005) が示すように、特殊な分布形ではこの順序が逆転することもあります。
平均と中央値の位置関係は、分布の歪みの方向を反映します。stats-01 で学んだ「平均は外れ値で大きく変わる」性質が、形の非対称さとして現れます。
形を 1 つの数で要約する: 歪度と尖度
ヒストグラムで形を視覚的に確認したあと、その形を 1 つの数で要約したい場面があります。複数のデータセットを比較するとき、毎回ヒストグラムを並べるのは手間で、「右歪みが強い・弱い」を数値で比べたいこともあります。
次中心化モーメントの構造
stats-02 で学んだ「偏差の合計はゼロになる」という性質を起点に整理します。
次中心化モーメント(標本版)の式は次の通りです。
の値を変えると見えるものが変わります。
| 偏差の処理 | 何が見えるか | |
|---|---|---|
| 1 | そのまま | ゼロになる(stats-01 既出) |
| 2 | 二乗(符号が消える) | 散らばり(分散、stats-02 既出) |
| 3 | 三乗(符号が残る) | 左右の非対称さ(歪み) |
| 4 | 四乗(大きな値の寄与が急増) | 裾の重さ |
なぜ 3 乗・4 乗なのでしょうか。stats-02 で見た構造の延長線上にあります。偶数乗(2 乗・4 乗)は負の値を正に直すので符号が消え、距離だけを測ります。奇数乗(3 乗)は負の偏差を負のまま保つので、右に大きく外れた点と左に大きく外れた点の寄与が打ち消し合わず、方向が残ります。3 乗の平均が正なら右側に偏っているということです。4 乗は偶数乗ですが 2 乗より増幅が急で、標準偏差から遠い点ほど寄与が桁違いに膨れます。裾(端っこ)の重みはそこに出ます。
歪度
歪度(skewness)は、標準化されたデータの 3 乗の平均です。
「標準化」とは、各データから平均を引き、標準偏差で割る操作です。この結果を と書きます。
は「平均からの距離を標準偏差 という単位で測ったもの」です。stats-04 でこの操作を本格的に扱います。
歪度は、標準化されたモーメント(偏差を で割って無次元にした量)を表すギリシャ文字 (ガンマ)で表す慣習があります。添字 1 が 3 次モーメント由来の歪度、添字 2 が 4 次モーメント由来の尖度に対応します。
歪度 は、この の 3 乗の平均です。
を 3 乗すると符号が保たれます(例えば なら )。右に大きく離れた点は大きな正、左に大きく離れた点は大きな負になります。全部足して平均をとると、「右の裾の寄与 − 左の裾の寄与」が残ります。歪度はこの「左右の寄与の差」を 1 つの数に圧縮した量です。
: 右に裾を引く(右歪み) : 左右対称 : 左に裾を引く(左歪み)
なぜ「単位を消す」( で割る)のでしょうか。時給のデータは円、身長のデータは cm という単位があります。3 乗すると「円³」「cm³」という単位になります。(標準偏差の 3 乗)も同じ単位なので、割り算すると単位が消えて無次元の数になります。円のデータでもドルのデータでも、同じ歪度の値で比較できます。
超過尖度
尖度(kurtosis)は、 の 4 乗の平均から 3 を引いた値です。これを超過尖度と呼びます。
「尖度」という名前から「分布の中央が尖っているか」を測ると誤解しやすいです。実際には 「裾の重さ」 を測ります。
4 乗すると (標準偏差より外側)の点の寄与が指数的に大きくなります。標準偏差の内側()の点の 4 乗は 1 未満なので影響はほぼありません。つまり尖度は「裾にどれだけ重みのあるデータがあるか」を測る量です。
Pearson が尖度を定義した 1905 年当時は「中央の高さ(peakedness)」の指標として発表しましたが、これは誤解でした。2014 年の Westfall の研究で「尖度は裾の重さ(tail extremity)」であることが明確に示されています。
「」の意味についても確認します。正規分布(左右対称な釣り鐘形)では、中央から離れるほど密度が小さくなる対称な構造があります。この構造のもとで理論的に計算すると、 の平均がちょうど 3 になることが示せます(詳細は下の展開を参照)。 することで正規分布をゼロ点にし、「正規分布より裾が重い場合は正、軽い場合は負」という基準が直感的になります。
計算正規分布で尖度がちょうど 3 になる理由(数学的補足)
標準正規分布 の場合、 を計算します。
部分積分を 2 回使うか、再帰公式 を使うと、
となります( は標準偏差 1 の定義)。したがって正規分布での尖度()は 3 になり、そこから 3 を引いた超過尖度は 0 です。
: 正規分布より裾が重い(leptokurtic、株価リターン等) : 正規分布と同程度の裾の重さ(mesokurtic) : 正規分布より裾が軽い(platykurtic)
本記事の定義(正規分布でゼロになる版)は「超過尖度」と呼ばれます。一方、 をしない「通常尖度()」を採用する教科書もあります。通常尖度では正規分布の値が 3 です。Python(scipy.stats.kurtosis)・R・Excel の KURT 関数はデフォルトで超過尖度を返します。詳細は補足記事 stats-supplement-excess-kurtosis-conventions で扱います。
歪度と尖度の定義がどのような経緯で現在の形になったかは、補足記事 stats-supplement-fisher-pearson-skewness-history で扱います。
計算(バイト時給 8 人)
バイト時給 8 人のデータで歪度と超過尖度を手で計算します。
stats-02 で求めた値を使います。
- 平均 円
- 標本標準偏差( 割り版) 円
各人の偏差を 3 乗・4 乗します。
| 人 | ||||
|---|---|---|---|---|
| A | 1,000 | |||
| B | 1,050 | |||
| C | 1,050 | |||
| D | 1,100 | |||
| E | 1,150 | |||
| F | 1,200 | |||
| G | 1,300 | |||
| H | 4,500 | |||
| 合計 | 0 |
偏差の合計がゼロになることは stats-01 で確認した通りです。
と を計算します( で割ります)。
次に と で割って無次元化します。
歪度と超過尖度の値は次の通りです。
は強い右歪みを示します(参考: 正規分布なら 0)。 は正規分布より裾が分厚い(leptokurtic)ことを示します。
H さん単独の偏差³()は、A〜G の 7 人の合計()を 40 倍以上上回ります。H さんの寄与は 全体の大半を占め、残り 7 人の負の寄与をすべて打ち消してなお余ります。
偏差⁴ではさらに顕著で、H さんの寄与は約 99.6% です。残り 7 人の合計は のうち 程度にとどまります。
と は、ほぼ H さん 1 人で決まります。外れ値が高次モーメントに与える寄与がいかに大きいかが、この計算で体感できます。H さんの 4,500 円がなければ、歪度も超過尖度もほぼゼロに近い値になります。
本記事では素朴な 版で計算しましたが、実データで計算するときには標本サイズに応じた補正項が入る場合があります。詳細は補足記事 stats-supplement-sample-skewness-kurtosis-correction で扱います。
金融での登場場面
株式日次リターンの分布は、正規分布より裾がはるかに分厚い(高超過尖度、leptokurtic)ことが知られています。これを「ファットテール(fat tail)」と呼びます。S&P 500 の日次リターンを長期で観察すると(1987 年のブラックマンデー級の暴落を含む期間で超過尖度は約 28、平時の数年スパンでも 3〜5 程度になることが報告されています)、4 標準偏差を超える変動日が、正規分布の予想(10,000 営業日に約 0.3 日、片側)より頻繁に観測されます。
Black-Scholes などの多くの金融モデルは正規分布を仮定します。しかし株価リターンの実際の超過尖度は 5〜10 程度(危機時はさらに高い値)で、正規分布(超過尖度 = 0)とはかけ離れています。正規分布を仮定して標準偏差だけでリスクを測ると、稀な大幅変動(金融危機・暴落・暴騰)を過小評価します。実務では VaR(バリュー・アット・リスク)や CVaR(条件付き VaR)で裾を別途扱います。詳細は実践記事 stats-practice-fat-tail-returns で扱います。
次に学ぶこと
stats-04(標準化と z スコア)では、本記事で先取りした という操作を本格的に学びます。単位の違うデータ(円と身長 cm など)を同じスケールで比べるための変換で、歪度・超過尖度の計算でも使った操作です。