記述統計●●○○○

標準化と偏差値

Standardization and Z-score ・ ひょうじゅんかとへんさち

平均を引いて標準偏差で割り、単位の異なるデータを同じ物差しで比べる操作。偏差値もその応用

✦ 30秒で試す — 航海同じ80点でも、科目が違えば価値がまるで違う国語80点と同じ位置になる数学の点は?予想してみる

概要

標準化は、データの各値から平均を引き、標準偏差で割る変換です(標準偏差については分散と標準偏差を参照)。変換後の値は z スコアと呼ばれ、「その値が平均から標準偏差何個ぶん離れているか」を表します。どんなデータでも、標準化すれば平均0・標準偏差1に揃います。点数・身長・金額といった単位や尺度の違いを消し去り、「集団の中での相対的な位置」だけを取り出す操作です。

日本でおなじみの偏差値は、この z スコアを見やすく化粧直ししたものです。z スコアを10倍して50を足す、つまり「平均を50、標準偏差を10」に置き直した値が偏差値です。平均点ちょうどなら偏差値50、平均より標準偏差1個ぶん上なら60。数学の80点と国語の80点のどちらが「すごい」かは素点では比べられませんが、偏差値に直せば同じ物差しの上で比較できます。

なぜ生まれたか

根本にある課題は「異なる物差しで測った値は比べられない」ことです。数学が平均60点で点数が大きくばらつく試験、国語が平均70点で皆が似た点を取る試験だったとき、素点の80点どうしを並べても意味がありません。意味のある比較には、「平均からどれだけ離れているか」を「その集団のばらつき」を単位にして測り直す必要があります。

この発想は19世紀、正規分布の研究の中で育ちました。どんな正規分布も標準化すれば平均0・標準偏差1の「標準正規分布」1つに帰着するので、1枚の数表であらゆる正規分布の確率が引けます。計算機のない時代、この「表を1枚に集約できる」性質は決定的に重要でした。偏差値のほうは教育現場の発明で、z スコアは負の数や小数が現れて直感的に読みにくいため、平均50・標準偏差10に変換して「おおむね20〜80に収まる正の数」として読めるようにしたものです。日本では1957年に中学校教師の桑田昭三が進路指導に用いたのが始まりとされ、試験の難易度が違っても成績を比べられる指標として受験の世界に定着しました。

詳細

変換の中身 — 平行移動と伸縮

標準化の計算は2ステップだけです。まず値から平均を引く。これで数直線全体が平行移動し、平均が0の位置に来ます。次に標準偏差で割る。これで数直線が伸び縮みして、ばらつきの1単位(標準偏差1個ぶん)がどの教科でも同じ長さになります。数学が平均60点・標準偏差15点、国語が平均70点・標準偏差5点なら、数学の80点の z スコアは (80 − 60) ÷ 15 ≈ 1.33、国語の80点は (80 − 70) ÷ 5 = 2.0 です。

素点の軸(0〜100点)数学 平均60・SD15国語 平均70・SD50102030405060709010080どちらも80点素点では同じ位置標準化した軸(z = (得点 − 平均) ÷ SD)2教科の山がぴったり重なる-3-2-10123数学 z = 1.33(偏差値63)国語 z = 2.00(偏差値70)
標準化 — 素点では同じ位置の80点が、それぞれの集団のばらつきで測り直すと別々の位置に着地する

素点で見ると、数学の80点は平均より20点上、国語の80点は10点上なので、数学のほうが上位に思えます。ところが国語は皆が似た点を取る試験で、10点の差が標準偏差2個ぶんにあたります。標準化すると、国語の80点(偏差値70)のほうが数学の80点(偏差値63)より集団の中でずっと上位だと分かります。「平均からの距離」だけでは足りず、「その集団で、その距離がどれほど珍しいか」まで測って初めて比べられるのです。

⚡ 体験: 平均を引いて、SDで割る
いまの軸: 素点の軸
数学(平均60・SD15)±1SD010203040506070809010080点国語(平均70・SD5)±1SD010203040506070809010080点-320-230-140050160270380z下の数字 = 偏差値
数学 80点 → 偏差値?国語 80点 → 偏差値?

数学も国語も、あなたの得点は80点——素点の軸では同じ位置です。「標準化する」を押して、それぞれの集団の中での位置に直してみてください。

数学: 平均60・標準偏差15、国語: 平均70・標準偏差5(各80人)。z = (得点 − 平均) ÷ 標準偏差、偏差値 = 50 + 10z

部品の「標準化する」で、2つの軸が平行移動してから伸縮し、形の違う2つの山がぴったり重なる様子を見てください。ここから分かる大事な性質があります。標準化は目盛りを付け替えるだけの一次変換なので、分布の形は変わりません。右に歪んだデータを標準化しても、右に歪んだまま平均0・標準偏差1になるだけです。「標準化すれば正規分布になる」というのはよくある誤解です。

偏差値の読み方と「上位何%」への換算

偏差値は z スコアの言い換えなので、読み方も対応します。偏差値60は z = 1、70は z = 2、40は z = −1。得点の分布が正規分布に近ければ、偏差値60以上は上位約16%、偏差値70以上は上位約2.3%に相当します。偏差値50は、分布が左右対称なら分位数でいう中央値、つまり真ん中の順位です。「偏差値70は1000人中の上位23人程度」と答えられるのは、この対応関係のおかげです。

ただしこの換算が成り立つのは分布が正規分布に近いときだけです。易しすぎる試験で高得点側に人が詰まっていれば偏差値と順位の対応はずれますし、理論上、偏差値は100を超えることも0を下回ることもあります。また偏差値は「その母集団の中での位置」でしかないため、受験者層のレベルが違う模試の偏差値どうしを比べても意味がありません。標準化は単位の違いを消しますが、集団の違いまでは消せない——ここが偏差値の最も誤解されやすい点です。

統計学の随所に現れる「差をばらつきで割る」発想

標準化は成績処理だけの道具ではなく、統計学の内部に至るところで顔を出します。外れ値の検出では「z スコアの絶対値が3を超えたら候補」という基準が定番ですし、相関係数は「2つの変数をそれぞれ標準化してから掛け合わせて平均したもの」と読めます。仮説検定の z 検定やt検定も、推定値と仮説の値の差を標準誤差で割った統計量を使います。これは「個々の値」ではなく「推定値」を、その推定値のばらつきで標準化したものです。差をばらつきで割って単位のない物差しにすることは、統計学の根底を貫く発想なのです。

機械学習の前処理として

機械学習の前処理でも標準化は必須級です。身長(150〜190)と年収(数百万)のように桁の違う特徴量をそのまま使うと、距離にもとづく手法(k近傍法やクラスタリング)は桁の大きい変数だけで距離が決まってしまい、勾配法による学習も収束が遅くなります。分散の大きい方向を探す主成分分析では、標準化しないと単位の大きい変数が第1主成分を独り占めします。係数の大きさに罰則をかける正則化も、係数の大きさが変数の単位に依存するため、標準化して土俵を揃えないと罰則が変数ごとに不公平にかかります。

実務で最も多い落とし穴は、標準化のタイミングです。データ全体の平均と標準偏差で標準化してから訓練用と評価用に分けると、評価用データの情報(平均と標準偏差)が訓練に紛れ込むデータリークになります。平均と標準偏差は訓練データだけから求め、その値で評価データや本番のデータも変換するのが正しい手順です。

似た目的の変換に、最小値0・最大値1に収める正規化(min-max法)がありますが、こちらは最小値と最大値、つまり外れ値1つに尺度全体を決められてしまう点が弱点です。もっとも標準化も平均と標準偏差を使う以上、外れ値の影響を受けます。外れ値が多いデータでは、中央値を引いて四分位範囲で割る頑健版の標準化が使われる、というところまで押さえておくと実務で迷いません。

試問

数学のテストは平均 60・標準偏差 15、国語のテストは平均 70・標準偏差 5 で、あなたは国語で 80 点を取りました。標準化(平均を引いて標準偏差で割る)すると、それぞれの集団の中での位置を同じ物差し(偏差値)で比べられます。この試問では、得点は標準化する前の素点の軸でしか動かせません(目盛りの10点刻み)。

✦ 命題挑戦中

素点の軸のまま数学の得点を決めて、国語の 80 点と集団の中でまったく同じ位置(同じ偏差値)にせよ

  • 国語は 80 点のまま
  • 数学の素点は 80 点以外
  • 標準化したとき、数学と国語の偏差値がぴったり一致する
⚡ 体験: 素点で決めて、標準化で確かめる
いまの軸: 素点の軸
数学(平均60・SD15)±1SD010203040506070809010080点国語(平均70・SD5)±1SD010203040506070809010080点-320-230-140050160270380z下の数字 = 偏差値
数学 80点 → 偏差値?国語 80点 → 偏差値?

国語は80点のままです。素点の軸で数学の金の丸を動かして得点を決め、「標準化する」で確かめてください(標準化した軸の上では丸は動かせません)。

数学: 平均60・標準偏差15、国語: 平均70・標準偏差5(各80人)。z = (得点 − 平均) ÷ 標準偏差、偏差値 = 50 + 10z