論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
尺度水準
Scale of Measurement
基礎統計
別称: 測定尺度

🔖 キーワード索引

尺度水準」を取り巻く中核キーワード群です。 検索やインデックス作成で参照する際の手がかりにしてください。 各キーワードは関連する概念・手法・道具立てを含み、 文献検索や学習計画の起点になります。

尺度水準名義尺度順序尺度間隔尺度比例尺度Stevens測定理論代表値

🔖 Round 43 増補: 尺度水準を相関ページ級に読む

この増補は、尺度水準を「用語の暗記」ではなく、実データで使い、数式を言葉に戻し、結果の限界まで説明するための補講である。使用データは data/raw/SSDSE-B-2026.csv の実測値であり、合成データは使わない。

DataFramepandasNumPy標準化線形回帰相関過学習訓練/テスト分割交差検証特徴量目的変数損失関数正則化機械学習機械学習の基礎深層学習活性化関数ReLUMLPscikit-learn数理最適化尺度水準概念マップ用語集トップ

🔖 キーワード索引(拡張版)

本ページに登場する主要キーワード 10 件。 クリックで該当セクションへ。

🔖 名義尺度🔖 順序尺度🔖 間隔尺度🔖 比例尺度🔖 Stevens(1946)🔖 カテゴリ変数🔖 数値変数🔖 演算可能性🔖 OneHot🔖 SSDSE-B-2026

💡 30秒で分かる結論 — 尺度水準

🍰 まずはやさしく

データの情報のレベルのことです。

使える計算方法を決めるために使います。

身長や血液型などの違いに似ています。

4つの段階について詳しく読みましょう。

最も忙しい読者のために、 まず結論だけまとめます。 詳細は以下のセクションへ:

💡 30秒で分かる結論

💡 30 秒で分かる結論(拡張)

📍 文脈 — どこで出会うか

🍰 まずはやさしく

計算のルールを決めるための道具です。

間違った分析をしないために使います。

アンケートの点数を平均してよいか考えます。

どんな場面でこの考え方が必要か読みましょう。

「アンケートの 5 段階評価を平均してよいか?」 「都道府県コードを足し算してよいか?」 — 全ての統計手法は適用可能な尺度水準が決まっています。 これを無視すると無意味な結果が出ます。

このページの読み方:まず 30秒結論直感 を読み、 必要に応じて 数式計算例落とし穴 に進んでください。

📍 文脈ボックス

統計・データ解析コンペで尺度水準が出てくる場面は、探索的分析、特徴量設計、モデル構築、検証、説明資料のどこかに必ずある。たとえば都道府県別の人口、年平均気温、宿泊者数、消費支出を扱うとき、値をそのまま比べてよいのか、標準化すべきか、目的関数をどう置くか、評価指標をどう読むかが問題になる。

観点確認する問い誤ると起きること
入力列名・単位・年度は何か別年度や別単位を混ぜて結論が崩れる
変換標準化・活性化・尺度分類は妥当か数値は出るが意味が薄い
評価誤差・順位・係数をどう読むか精度だけを見て限界を落とす
報告何を意味しないかを書いたか因果や一般化を言い過ぎる

📍 文脈ボックス — あなたが今見ているもの

あなたは 尺度水準 (Scale of Measurement) の用語ページを読んでいる。 統計分析・機械学習の最初の関門。 データの尺度を間違えると、 平均値の解釈・モデル選択・前処理がすべて崩れる。 SSDSE-B-2026 の 112 列を題材に、 「都道府県名 = 名義」「年度 = 順序(または間隔)」「気温 = 間隔」「人口 = 比例」と仕分けることで、 ML パイプラインの最上流の意思決定が見えてくる。

🎨 直感で掴む

🍰 まずはやさしく

計算できる範囲を決めるピラミッドです。

データの扱い方を直感的に知るために使います。

人口や気温などのデータの違いに似ています。

段階が上がると何ができるようになるか読みましょう。

尺度水準を直感で捉えるには、表計算の一列だけを見るのではなく、値がどの手順で判断に変わるかを見る。SSDSE-B-2026では、北海道、東京都、沖縄県のように人口規模、気候、観光、消費が大きく違う地域が同じ表に並ぶ。ここで同じ処理を機械的に当てると、規模の効果と構造の効果が混ざる。

都道府県総人口 A1101年平均気温 B4101消費支出 L3221
北海道5,092,00011.0296,888
東京都14,086,00017.6341,320
沖縄県1,468,00023.8251,222

🎨 直感で掴む — 4 段階のピラミッド

尺度水準は「許される操作」のピラミッド。 下から積み上げ、 上の尺度は下の操作も全部使える:

水準許される操作代表値SSDSE 例
4. 比例 (Ratio)=, ≠, <, >, +, −, ×, ÷平均、 幾何平均、 調和平均身長、 人口、 出生数A1101 (総人口)、 A4101 (出生数)
3. 間隔 (Interval)=, ≠, <, >, +, −平均、 中央値、 最頻値温度℃、 西暦B4101 (年平均気温)、 年度
2. 順序 (Ordinal)=, ≠, <, >中央値、 最頻値満足度、 順位、 学歴(SSDSE には少ない)
1. 名義 (Nominal)=, ≠最頻値のみ性別、 血液型、 IDCode (R01000…)、 Prefecture (北海道…)

誤用の典型例

❌ 温度 30℃ は 15℃ の 2 倍暖かい — 間隔尺度なので比は無意味。 ケルビンなら 303K/288K = 1.05 倍。
❌ 都道府県コード (R01000…R47000) の平均 = R24000 — 名義尺度。 「24 番目が平均的県」は意味なし。
✅ 北海道の人口は鳥取の 9.5 倍 — 比例尺度なので比が意味を持つ。 SSDSE A1101 (北海道 5,092,000 / 鳥取 537,000 = 9.48)。

📐 数式または定義

🍰 まずはやさしく

データの性質を分ける定義のことです。

数学的に正しい処理を選ぶために使います。

スマホのデータなどをどう変換するか似ています。

それぞれの尺度で許される操作を読みましょう。

尺度水準は 許される変換群 $T$ で定義される(Stevens 1946):

尺度許される変換意味
名義$T(x) = $ 任意の 1 対 1 関数ラベル付け替えに不変
順序$T(x) = $ 任意の単調増加関数順位だけ保てばよい
間隔$T(x) = ax + b, \; a > 0$原点と単位を変更可
比例$T(x) = ax, \; a > 0$単位のみ変更可(原点は不変)

平均が意味を持つ条件:$\bar{T(x)} = T(\bar{x})$ (線形変換に不変)。 これは 間隔・比例尺度のみ

中央値が意味を持つ条件:単調変換に不変 → 順序以上で使える。

最頻値(mode):1 対 1 変換に不変 → 全尺度で使える。

🔬 記号・要素の読み解き

名義尺度 (Nominal)
分類のためのラベル。 順序すらない。 代表値:最頻値のみ。
順序尺度 (Ordinal)
順序はあるが間隔が等しいとは限らない。 代表値:中央値・最頻値。 ノンパラ統計。
間隔尺度 (Interval)
差が意味を持ち、 等間隔。 ただし 0 が原点ではない(温度 0℃ ≠ 「ない」)。 平均・分散 OK。 比は意味なし。
比例尺度 (Ratio)
絶対零点を持つ。 「2 倍」「半分」が意味を持つ。 ほぼ全ての統計手法が適用可。
離散・連続
尺度水準とは 独立の分類軸。 「離散の比例尺度(人数)」もある。

🔬 数式を言葉で読み解く

右へ行くほど情報量が増える。名義は同じ/違う、順序は大小、間隔は差、比例は0と比まで意味を持つ。平均や相関を計算してよいかは、データの尺度水準に依存する。

記号・部品言葉での意味読み間違いを避けるポイント
x / X入力特徴量。SSDSEでは人口、気温、宿泊者数など単位が違う列を同じ重みで読まない
y説明したい値。ここでは消費支出や人口増減など予測対象と説明変数を混同しない
パラメータデータから決める重みや境界大きいほど重要とは限らない
損失・誤差予測と実測のずれ小さいほどよいが、過学習も見る
制約・前提使ってよい解の範囲や仮定現実の制約を落とすと使えない結論になる

🧮 実値で計算してみる

このコードでやること:SSDSE-B-2026の列を尺度水準の例として取り出し、都道府県名(名義)、高齢化率順位(順序)、平均気温(間隔)、総人口(比例)で許される要約を分けて計算する。

入力例data/raw/SSDSE-B-2026.csv から2023年の47都道府県を抽出し、Prefecture は文字列、A1101 などの統計列は数値に変換する。

Prefecture A1101 A1303 B4101 G7101 I510120 L3221 北海道 5092000 1681000 11.0 32783470 464 296888 青森県 1184000 417000 12.6 3880720 72 263371 岩手県 1163000 407000 12.5 4980740 76 298536
📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) A1303(65歳以上人口) B4101(年平均気温) L3221(消費支出(二人以上の世帯)) 北海道 5,092,000 1,681,000 11.0 296,888 東京都 14,086,000 3,205,000 17.6 341,320 沖縄県 1,468,000 350,000 23.8 251,222 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import pandas as pd

raw = pd.read_csv("data/raw/SSDSE-B-2026.csv", encoding="cp932")
df = raw.iloc[1:].copy()
df = df[df["SSDSE-B-2026"].astype(str) == "2023"].copy()
for col in ["A1101", "A1303", "B4101", "L3221"]:
    df[col] = pd.to_numeric(df[col], errors="coerce")
df["aging_rate"] = df["A1303"] / df["A1101"] * 100
print("nominal categories", df["Prefecture"].nunique())
print(df[["Prefecture", "aging_rate"]].sort_values("aging_rate", ascending=False).head())
print("temperature mean/min/max", df["B4101"].mean(), df["B4101"].min(), df["B4101"].max())
print("population mean/median", df["A1101"].mean(), df["A1101"].median())
📤 実行例(実測) nominal categories 47 Prefecture aging_rate 49 秋田県 39.059081 457 高知県 36.336336 421 徳島県 35.395683 409 山口県 35.362096 13 青森県 35.219595 temperature mean/min/max 16.80212765957447 11.0 23.8 population mean/median 2645808.510638298 1549000.0

実行結果

名義: Prefecture は47カテゴリ、平均は不可 順序: 高齢化率上位 秋田県39.06%, 高知県36.34%, 徳島県35.40% 間隔: 年平均気温 平均16.80度、最小11.0度、最大23.8度 比例: 総人口 平均2,645,808.51人、中央値1,549,000人

結果の読み方:都道府県名の平均は意味を持たないが、人口の平均は意味を持つ。気温は差は読めるが「20度は10度の2倍暑い」とは読めない。

🧮 実値で計算してみる(SSDSE-B-2026 の 112 列を 4 尺度に分類)

STEP 1: 列ごとの尺度判定例

列コード意味尺度許される代表値不適切な操作
SSDSE-B-2026年度 (2014-2023)間隔平均 / 中央値 / 最頻値比(× ÷)
Code地域コード (R01000…)名義最頻値のみ平均、 中央値
Prefecture都道府県名名義最頻値のみ並べ替え以外
A1101総人口比例全て(幾何平均含む)(なし)
A130365 歳以上人口比例全て(なし)
A4103合計特殊出生率比例全て(なし)
B4101年平均気温℃間隔平均 / 中央値比 (× ÷)
E1101幼稚園数比例全て(離散だが比例)(なし)

STEP 2: 尺度別の代表値(47 県、 年度 2023)

A1101 (総人口、 比例尺度):\n 最小 537,000 (鳥取)\n 中央 1,549,000\n 平均 2,645,809\n 最大 14,086,000 (東京)\n 幾何平均 1,831,367 (← 比例尺度なので意味あり)\n\nB4101 (年平均気温、 間隔尺度):\n 最小 11.0 (北海道)\n 中央 17.4\n 平均 16.8\n 最大 23.8 (沖縄)\n 幾何平均 16.7 (← 計算可能だが意味不明)\n 比『沖縄/北海道』 = 2.16 ← 物理的意味なし (絶対零度ベースで計算すべき)\n\nPrefecture (都道府県、 名義尺度):\n 最頻値 = 各県 1 回ずつ → 定義困難\n 平均 = 計算不能 (文字列)\n 最小 = 五十音順なら『青森』、 コード順なら『北海道』 → 解釈依存

STEP 3: 尺度を間違えた誤分析の例

気温の比 (沖縄 23.8 / 北海道 11.0 = 2.16 倍) は気温が間隔尺度のため無意味。 「沖縄は北海道より 約 13 度高い」と差で語るのが正しい。 一方、 人口比 (東京 14,086,000 / 鳥取 537,000 = 26.2 倍) は比例尺度のため有意義。 同じ計算でも尺度で意味が変わる。

🧮 数式に値を入れて手で計算する: 尺度別の代表値

SSDSE-B-2026 にも含まれる典型例(血液型カテゴリ、 満足度評価、 気温℃、 収入)を題材に、 4 つの尺度(名義/順序/間隔/比例)で使用可能な代表値を整理する。

Step 1: 4 尺度

尺度代表値
名義血液型最頻値
順序満足度 1-5+中央値
間隔気温 [℃]+算術平均
比例収入+幾何平均

Step 2: 例

血液型: 最頻値のみ意味あり 収入: 幾何平均で対数正規分布を扱える

🐍 Python で再現

1
2
3
scales = {'名義':1, '順序':2, '間隔':3, '比例':4}
for k, v in scales.items():
    print(f"{k}: 階層 {v}")

📤 実行結果

名義: 階層 1 順序: 階層 2 間隔: 階層 3 比例: 階層 4

💬 手計算 (Step 1) と Python 出力が完全一致。

🐍 Python での扱い

最小再現コード。 SSDSE-B のような実データを前提に、 4〜8 行で動く例です:

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A4103(合計特殊出生率) Prefecture(都道府県) 北海道 1.06 北海道 東京都 0.99 東京都 沖縄県 1.6 沖縄県 …(全 47 行)
1
2
3
4
5
6
import pandas as pd
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=1)   # 日本語の列名で読む(2 行目を見出しにする)
# 比例尺度(数値)には平均・標準偏差が意味あり
print(df['合計特殊出生率'].describe())
# 名義尺度の都道府県には value_counts が適切
print(df['都道府県'].value_counts())
📤 実行例(実測) count 564.000000 mean 1.450372 std 0.153000 min 0.990000 25% 1.340000 50% 1.460000 75% 1.550000 max 1.960000 Name: 合計特殊出生率, dtype: float64 都道府県 北海道 12 徳島県 12 大阪府 12 兵庫県 12 奈良県 12 和歌山県 12 鳥取県 12 島根県 12 岡山県 12 広島県 12 山口県 12 香川県 12 滋賀県 12 愛媛県 12 高知県 12 福岡県 12 佐賀県 12 長崎県 12 熊本県 12 大分県 12 宮崎県 12 鹿児島県 12 京都府 12 三重県 12 青森県 12 千葉県 12 岩手県 12 宮城県 12 秋田県 12 山形県 12 福島県 12 茨城県 12 栃木県 12 群馬県 12 埼玉県 12 東京都 12 愛知県 12 神奈川県 12 新潟県 12 富山県 12 石川県 12 福井県 12 山梨県 12 長野県 12 岐阜県 12 静岡県 12 …(以下略)

補足:ライブラリのバージョンや前処理状態によって出力は変わります。 自分の環境で動かすときは pip list でバージョンを確認し、 入力 CSV のパス・列名を実態に合わせてください。

🐍 Python 実装

このコードでやること:尺度ごとに許される処理を辞書化し、列を分析前に点検する簡易チェック表を作る。

入力例:同じSSDSE-B-2026の実データを用いる。必要な列だけを取り出し、列名を明示してから処理する。

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) A1303(65歳以上人口) B4101(年平均気温) 北海道 5,092,000 1,681,000 11.0 東京都 14,086,000 3,205,000 17.6 沖縄県 1,468,000 350,000 23.8 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import pandas as pd

raw = pd.read_csv("data/raw/SSDSE-B-2026.csv", encoding="cp932")
df = raw.iloc[1:].copy()
df = df[df["SSDSE-B-2026"].astype(str) == "2023"].copy()
for col in ["A1101", "A1303", "B4101"]:
    df[col] = pd.to_numeric(df[col], errors="coerce")
df["aging_rank"] = (df["A1303"] / df["A1101"]).rank(ascending=False, method="min")

scale_rules = {
    "Prefecture": ("nominal", ["count", "mode", "groupby"]),
    "aging_rank": ("ordinal", ["median", "percentile", "rank correlation"]),
    "B4101": ("interval", ["mean", "difference", "standardization"]),
    "A1101": ("ratio", ["mean", "ratio", "coefficient of variation"]),
}
for col, (scale, allowed) in scale_rules.items():
    exists = col in df.columns
    print(f"{col}: {scale} -> {', '.join(allowed)} / data column: {exists}")
print("inappropriate examples: Prefecture.mean(), temperature ratio")
📤 実行例(実測) Prefecture: nominal -> count, mode, groupby / data column: True aging_rank: ordinal -> median, percentile, rank correlation / data column: True B4101: interval -> mean, difference, standardization / data column: True A1101: ratio -> mean, ratio, coefficient of variation / data column: True inappropriate examples: Prefecture.mean(), temperature ratio

実行結果

Prefecture: nominal -> count, mode, groupby / data column: True aging_rank: ordinal -> median, percentile, rank correlation / data column: True B4101: interval -> mean, difference, standardization / data column: True A1101: ratio -> mean, ratio, coefficient of variation / data column: True inappropriate examples: Prefecture.mean(), temperature ratio

結果の読み方:尺度水準は理屈だけでなく、コードレビューのチェックリストである。列ごとに「この演算は意味を持つか」を先に決めると、後工程の誤解が減る。

🐍 Python 実装(尺度水準、 SSDSE-B-2026)

コード 1: 列ごとの尺度を自動判定

🎯 このコードでやること:SSDSE-B-2026 の各列を読み込み、 型・unique 数・分布から尺度水準を簡易判定する。

📥 入力データ (SSDSE-B-2026 から抽出):

df.dtypes: SSDSE-B-2026 int64 (年度) Code object (R01000 等) Prefecture object (北海道 等) A1101 int64 (総人口) B4101 float64 (気温)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import pandas as pd
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])

def detect_scale(s):
    if s.dtype == object:
        return '名義'
    nuniq = s.nunique()
    if nuniq <= 12 and s.dtype in ('int64', 'int32'):
        # 順序か間隔かは name で判定 (例: 年度)
        if s.name == 'SSDSE-B-2026':
            return '間隔 (年度)'
        return '順序の可能性'
    # 0 が物理的に意味を持つか? 簡易ルール: 名前が温度系なら間隔
    if 'B41' in s.name:  # 気温系
        return '間隔 (温度系)'
    return '比例'

print(f'{"列":<14s} {"型":<10s} {"unique":>6s}  尺度')
for col in df.columns[:10]:
    print(f'{col:<14s} {str(df[col].dtype):<10s} {df[col].nunique():>6d}  '
          f'{detect_scale(df[col])}')

📤 実行すると次の出力が得られる:

列 型 unique 尺度 SSDSE-B-2026 int64 12 間隔 (年度) Code object 47 名義 Prefecture object 47 名義 A1101 int64 520 比例 A110101 int64 501 比例 A110102 int64 489 比例 A1102 int64 529 比例 A110201 int64 504 比例 A110202 int64 496 比例 A1301 int64 398 比例

💬 結果の読み方:型と unique 数・列名で 4 尺度を簡易判定。 Code/Prefecture は名義、 年度は間隔、 人口系は比例。 ML パイプラインで前処理を分岐する基盤になる。

コード 2: 尺度別の代表値計算

🎯 このコードでやること:比例(A1101 人口)と間隔(B4101 気温)で平均・中央値・幾何平均の意味を比較する。

📥 入力データ (SSDSE-B-2026 から抽出):

d (47 行, 年度=2023): A1101, B4101
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import pandas as pd
import numpy as np
from scipy.stats import gmean, hmean
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
d = df[df['SSDSE-B-2026'] == 2023]

for col, label, scale in [('A1101', '総人口', '比例'),
                          ('B4101', '年平均気温', '間隔'),
                          ('A4103', '合計特殊出生率', '比例')]:
    s = d[col]
    print(f'--- {col} {label} ({scale}尺度) ---')
    print(f'  算術平均 (mean)  : {s.mean():>15,.2f}')
    print(f'  中央値 (median)  : {s.median():>15,.2f}')
    print(f'  最頻値 (mode)    : {s.mode().iloc[0]:>15,.2f}')
    if (s > 0).all():
        print(f'  幾何平均 (gmean) : {gmean(s):>15,.2f}  '
              f'{"(比例なので意味あり)" if scale == "比例" else "(間隔: 計算可だが意味不明)"}')
        print(f'  調和平均 (hmean) : {hmean(s):>15,.2f}')
    print(f'  最大/最小 比    : {s.max()/s.min():>15.2f}  '
          f'{"(比例: 意味あり)" if scale == "比例" else "(間隔: 物理的意味なし)"}')

📤 実行すると次の出力が得られる:

--- A1101 総人口 (比例尺度) --- 算術平均 (mean) : 2,645,808.51 中央値 (median) : 1,549,000.00 最頻値 (mode) : 537,000.00 幾何平均 (gmean) : 1,831,366.64 (比例なので意味あり) 調和平均 (hmean) : 1,422,775.39 最大/最小 比 : 26.23 (比例: 意味あり) --- B4101 年平均気温 (間隔尺度) --- 算術平均 (mean) : 16.80 中央値 (median) : 17.40 最頻値 (mode) : 16.60 幾何平均 (gmean) : 16.67 (間隔: 計算可だが意味不明) 調和平均 (hmean) : 16.54 最大/最小 比 : 2.16 (間隔: 物理的意味なし) --- A4103 合計特殊出生率 (比例尺度) --- 算術平均 (mean) : 1.29 中央値 (median) : 1.30 最頻値 (mode) : 1.29 幾何平均 (gmean) : 1.29 調和平均 (hmean) : 1.28 最大/最小 比 : 1.62 (比例: 意味あり)

💬 結果の読み方:比例尺度(人口・出生率)は幾何平均や比が意味を持つ。 間隔尺度(気温)は計算可能だが解釈が難しい(最大/最小比 2.16 は無意味)。 尺度に応じて代表値を選ぶ。

コード 3: 尺度別の前処理(OneHot vs Ordinal vs Scaler)

🎯 このコードでやること:sklearn の ColumnTransformer で名義は OneHot、 順序は Ordinal、 比例は StandardScaler に分岐する。

📥 入力データ (SSDSE-B-2026 から抽出):

X = d[['Prefecture', 'A1101', 'B4101', 'A1303']] / y = d['A4103']
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import pandas as pd
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import StandardScaler, OneHotEncoder, OrdinalEncoder

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
d = df[df['SSDSE-B-2026'] == 2023].copy()

# 簡易な順序変数を作成: 人口規模 (小/中/大)
d['pop_class'] = pd.cut(d['A1101'], bins=[0, 1e6, 3e6, 2e7],
                        labels=['小', '中', '大'])

pre = ColumnTransformer([
    ('nominal_onehot', OneHotEncoder(sparse_output=False),
                       ['Prefecture']),
    ('ordinal_enc',    OrdinalEncoder(categories=[['小', '中', '大']]),
                       ['pop_class']),
    ('interval_scale', StandardScaler(),
                       ['B4101']),
    ('ratio_log',      StandardScaler(),
                       ['A1101', 'A1303']),
])
X = d[['Prefecture', 'pop_class', 'B4101', 'A1101', 'A1303']]
Xt = pre.fit_transform(X)
print(f'入力 shape    : {X.shape}')
print(f'変換後 shape  : {Xt.shape}')
print(f'内訳: 名義47 + 順序1 + 間隔1 + 比例2 = {47+1+1+2}')
print('北海道行の変換結果(先頭 10 値):', Xt[0][:10].round(2))

📤 実行すると次の出力が得られる:

入力 shape : (47, 5) 変換後 shape : (47, 51) 内訳: 名義47 + 順序1 + 間隔1 + 比例2 = 51 北海道行の変換結果(先頭 10 値): [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]

💬 結果の読み方:Prefecture(名義 47 種)→OneHot 47 列、 pop_class(順序)→1 列(0/1/2)、 B4101(間隔)→1 列(z-score)、 人口(比例)→2 列(z-score)。 計 51 特徴量。 尺度別エンコーディングが ML 性能を左右する。

コード 4: 尺度別の統計検定(カテゴリ vs 連続)

🎯 このコードでやること:Prefecture(名義)と A4103(比例)の関連を ANOVA で、 気温(間隔)と出生率(比例)を Pearson 相関で評価する。

📥 入力データ (SSDSE-B-2026 から抽出):

d (47 行): Prefecture, A1101, A4103, B4101
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import pandas as pd
from scipy import stats

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
d = df[df['SSDSE-B-2026'] == 2023].copy()

# 地方ブロック (名義) を作成
def region(code):
    n = int(code[1:3])
    return '北東' if n<=7 else '関東' if n<=14 else '中部' if n<=23 else '近畿' if n<=30 else '中四国' if n<=39 else '九州沖縄'
d['region'] = d['Code'].apply(region)

# (1) 名義 vs 比例: 一元配置 ANOVA
groups = [d[d['region']==r]['A4103'].values for r in d['region'].unique()]
F, p = stats.f_oneway(*groups)
print(f'[名義 vs 比例] 地方ブロック別 出生率 ANOVA: F={F:.3f}, p={p:.4f}')

# (2) 間隔 vs 比例: Pearson 相関
r, p = stats.pearsonr(d['B4101'], d['A4103'])
print(f'[間隔 vs 比例] 気温 × 出生率 Pearson: r={r:.3f}, p={p:.4f}')

# (3) 比例 vs 比例: 対数変換後 Pearson
import numpy as np
r2, p2 = stats.pearsonr(np.log(d['A1101']), d['A4103'])
print(f'[比例 vs 比例] log(人口) × 出生率 Pearson: r={r2:.3f}, p={p2:.4f}')

📤 実行すると次の出力が得られる:

[名義 vs 比例] 地方ブロック別 出生率 ANOVA: F=18.050, p=0.0000 [間隔 vs 比例] 気温 × 出生率 Pearson: r=0.502, p=0.0003 [比例 vs 比例] log(人口) × 出生率 Pearson: r=-0.588, p=0.0000

💬 結果の読み方:尺度別検定: 名義 vs 比例 → ANOVA (F=18.1, p<0.001 で地方差あり)、 間隔 vs 比例 → Pearson (r=0.5, 気温高い県は出生率高め)、 比例 vs 比例 → log 変換後 Pearson (r=-0.59, 人口多い県は出生率低)。

🎮 触って理解する

尺度水準の核心は「その変数にどの操作が許されるか」に尽きる。ここでは (1) 操作ボタンで許される計算を体感し、(2) クイズで判定力を鍛え、(3) 尺度を下げると情報が失われる様子を実測データで可視化する。質的変数量的変数の 2 分法を、操作の観点から 4 段階に細分するのがこのページの視点である。

① 操作ボタン — この変数に何ができるか

変数を 1 つ選ぶと、4 つの操作のうちその尺度で許されるものだけが有効化される。グレーのボタンも押せば「なぜ無意味か」の説明が出る。気温は SSDSE-B-2026(2023 年・年平均気温 B4101)の実測値、血液型・順位・身長は架空の例である。

STEP 1: 変数を選ぶ
STEP 2: 操作を押す
変数を選んでから操作ボタンを押してください。緑=許される操作、グレー=その尺度では無意味な操作です。

② 判定クイズ — この変数はどの尺度?

ランダムに出題される変数例(一般的な例・一部架空の設定)を 4 尺度に分類しよう。西暦・摂氏温度・偏差値・郵便番号・リッカート尺度など間違いやすい例ほど、即時フィードバックの解説を読む価値がある。

4 つのボタンから尺度を選んでください。
正解 0 / 出題 0

③ 尺度を下げる — 実測気温の 2 値化で情報が消える

SSDSE-B-2026 の 2023 年・年平均気温 B4101(47 都道府県の実測値、最小 11.0℃ 北海道〜最大 23.8℃ 沖縄)を、しきい値で「低/高」の 2 値(順序尺度)に落とす。ヒストグラムが 2 本の棒に潰れ、県ごとの気温差の情報が不可逆に失われる様子を確認しよう。スライダーまたはグラフ上のドラッグ(タッチ対応)でしきい値を動かせる。

🎨 直感の深化 — 尺度は「情報の豊かさ」の階層

4 つの尺度は並列な 4 分類ではなく、情報量の包含階層である。比率尺度のデータはいつでも間隔・順序・名義として扱い直せる(身長 172cm → 「高い」 → 「A グループ」)が、逆方向の復元は不可能。ウィジェット③で 2 値化した気温を元の 47 個の実測値に戻せないのがまさにこれで、尺度を下げる変換は一方通行である。だから測定・記録の段階では可能な限り高い尺度で取得し、集計・報告の段階で必要に応じて落とすのが原則になる。アンケートで「年齢を 20 代/30 代…で聞く」設計は、回答負担を下げる代わりに間隔情報を最初から捨てている、という設計判断だと読める。

⚠️ 落とし穴の深化 — 「許される操作」の視点で読み直す

リッカート尺度(満足度 1〜5)を間隔扱いする慣行の是非は、「平均を取る=足し算と割り算を認める=目盛りが等間隔だと仮定する」と操作に翻訳すると論点が明確になる。「不満(1)→やや不満(2)」の心理的距離と「満足(4)→大変満足(5)」の距離が等しい保証はないため、厳密には順序尺度として中央値・順位検定で扱うのが正しい。実務で平均を報告する場合は、等間隔仮定を明記し中央値・最頻値を併記するのが防御的な作法である。同様に、順序尺度の平均(成績順位の平均など)はウィジェット①で見た通り「差が無意味なものを足している」操作であり、カテゴリコードの数値誤用(血液型 A=1, B=2… や都道府県コードの平均)は「符号の割り当てを変えると結果が変わる計算」=名義尺度で許されない演算の典型である。

🚀 発展 — 尺度水準と統計量・検定手法の対応表

尺度代表値散らばり2 変数の関連代表的な検定
名義最頻値カテゴリ数・多様性指数クロス集計・クラメールの Vχ² 検定(独立性・適合度)
順序中央値・四分位数四分位範囲スピアマン順位相関・ケンドールの τ順位検定(Mann-Whitney U、Wilcoxon 符号順位、Kruskal-Wallis)
間隔算術平均+標準偏差・分散+ピアソン積率相関t 検定・分散分析(ANOVA)
比率+幾何平均・調和平均+変動係数(CV)+比・弾力性の分析、対数変換後の相関間隔と同じ+比率の検定

表の「+」は下位尺度で使えるものはすべて上位でも使えることを表す(階層性)。手法選択は「①尺度判定 → ②分布確認 → ③検定選択」の順で行い、順序データに t 検定を当てる・名義コードにピアソン相関を当てるといった尺度を飛び越えた適用を避けるのが第一関門となる。順序尺度向けのスピアマン順位相関や Mann-Whitney U 検定は、値そのものではなく順位だけを使うため、等間隔仮定なしで比較できるのが利点である。

⚠️ よくある落とし穴

尺度水準 を実務で扱うとき、 多くの分析者が同じところでつまずきます。 代表的な失敗パターンを先回りで押さえておくと、 後工程のトラブルを大幅に減らせます。

❌ 順序尺度の平均
5段階評価の平均 3.5 は 仮定の上での 値。 等間隔仮定の妥当性に注意。
❌ 名義尺度を数値化して計算
性別を 0/1 にして「平均 0.4」は OK(割合)。 だが血液型 A=1, B=2, O=3, AB=4 の平均は無意味。
❌ 間隔と比例の混同
温度℃ で「20℃ は 10℃ の 2 倍暖かい」は誤り。 ケルビン尺度なら OK。
❌ カテゴリ変数のエンコーディング
順序があれば OrdinalEncoder、 なければ OneHotEncoder。 機械学習でも影響大。
❌ リッカート尺度の扱い
順序尺度として扱う厳密派と、 間隔として扱う実用派あり。 慣行と目的で選択。

※ 上記は文献調査・現場経験で報告される頻度の高い注意点。 ドメインや手法のバージョンによって追加の落とし穴がある場合があります。

❓ よくある質問

Q1. 尺度水準を判定する手順は?
(1) カテゴリか数値か → 名義/順序か間隔/比率か。 (2) 順序があるか → 順序尺度以上。 (3) 差に意味があるか → 間隔尺度以上。 (4) 0 が絶対的か → 比率尺度。 名義順序間隔比率 の順に強くなる。
Q2. 気温は比率尺度ですか?
摂氏・華氏は 間隔尺度 (0℃ に絶対的意味なし、 20℃ は 10℃ の 2 倍暖かいと言えない)。 ケルビン (絶対零度=0K) のみ 比率尺度。 単位系で水準が変わる代表例。
Q3. リッカート尺度 (5 段階満足度) は何尺度?
本来は順序尺度だが、 実務では便宜的に間隔尺度として平均値を出すことが多い。 厳密には 中央値・順位検定 (Mann-Whitney など) が正しい扱い。
Q4. 名義尺度で使える統計量は?
最頻値・度数・カイ二乗検定 (独立性検定) のみ。 平均・中央値・標準偏差は意味を持たない (血液型 A=1, B=2, AB=3, O=4 の平均=2.5 は無意味)。
Q5. なぜ水準を意識すべき?
水準に合わない統計操作は 誤った結論 を導く。 SSDSE-B-2026 の都道府県コード R01100 を平均しても無意味だが、 平均人口は意味を持つ。 水準のチェックがデータ分析の出発点となる。

⚠️ 尺度水準を扱う際の運用上の注意点

注意 1: コードは尺度を反映しない:SSDSE の都道府県コード R01000 〜 R47000 は数値型に見えるが名義尺度。 pandas で int 型として読むと「平均 24000」が出てしまうので、 必ず dtype=str または category 型で読み込む。
注意 2: リッカートを平均する場面の明示:5 段階満足度の平均 3.4 を出すなら、 報告書に「便宜的に間隔尺度として扱った」と明記し、 中央値とモードも併記する。 これだけで査読者の指摘を 8 割回避できる。
注意 3: 0 の意味を必ず確認:気温 0℃、 年齢 0 歳、 西暦 0 年は全て意味が違う。 「2 倍」を語る前に「0 が物理的無を表すか」を 1 行でメモ。 比率尺度のみ「2 倍」が言える。
注意 4: OneHot か Ordinal か:scikit-learn で名義変数を OrdinalEncoder に投入すると、 モデルは順序 (A < B < AB < O) を仮定して学習し精度が落ちる。 名義は必ず OneHotEncoder または pd.get_dummies
注意 5: 順序尺度の距離計算:等級 A=1, B=2, C=3 を Euclidean 距離で測ると「A と C の距離 = 2」と数値解釈されるが、 等間隔の保証がない。 Hamming 距離か順位相関を使う。
注意 6: 検定の選び間違い:満足度 (順序) を t 検定すると、 等分散・正規性の仮定が成立しないまま p 値が出る。 Mann-Whitney 検定や Wilcoxon 符号順位検定を使う。
注意 7: 対数変換の適用範囲:人口・所得 (比率) は対数で正規化されるが、 気温 (間隔) を対数化すると 0℃ の log が定義できず破綻する。 比率尺度のみ log 適用。
注意 8: SSDSE での実例混同:SSDSE-B-2026 の「年度 2014〜2023」は順序兼間隔 (差 = 1 年)、 「市町村コード」は名義、 「人口」は比率。 同じ CSV の中で水準が混在しているため、 列ごとに分類表を作る習慣をつける。

⚠️ 落とし穴 — 7 件

❌ 名義に平均
血液型を 1,2,3,4 と符号化して平均 = 2.3 ... 無意味。 最頻値(mode)のみ意味を持つ。
❌ 順序に算術
満足度 1-5 の平均 3.2 は『便宜的指標』。 等間隔の保証はない。 中央値・順位検定が本来の方法。
❌ 間隔の比
気温 20℃ は 10℃ の『2 倍暖かい』とは言えない(0℃ が無を意味しない)。 比は絶対零度ベースで考える必要。
❌ 比例の引算誤用
人口の差分 ($p_t - p_{t-1}$) は意味があるが、 比率変化 ($p_t / p_{t-1}$) の方が比較しやすい。
❌ カテゴリの OrdinalEncoder 誤用
OneHot にすべき名義変数を OrdinalEncoder で数値化 → モデルが擬似順序を学習し精度悪化。
❌ 時系列を順序のみと誤認
年度は順序かつ間隔(1 年差は一定)。 単なる順位扱いだと回帰が成立しない。
❌ 対数変換の場面
比例尺度(出生数・人口)は対数変換で正規性に近づく。 間隔尺度(気温)は対数を取ると意味が消える。

🏭 産業界での活用例

🏭 マーケティングのアンケート設計
リッカート 5 段階(順序)vs 0-100 スコア(間隔)の選択が分析手法を決める。
🏭 医療統計
重症度(順序)→ノンパラ検定、 検査値(比例)→t 検定、 と尺度別に分ける。
🏭 教育評価
成績 A-F(順序)と偏差値(間隔)の混在で平均すべきでない指標を識別。
🏭 品質管理(製造業)
不良数(比例)と不良コード(名義)を区別し SQC 手法を選ぶ。
🏭 社会調査(国勢調査・JGSS)
職業(名義)、 学歴(順序)、 年収(比例)を別々に処理。
🏭 AI のデータ前処理
OneHot vs Ordinal vs StandardScaler を尺度別に自動判定するパイプライン構築。

❓ FAQ 10 問

Q. 名義と順序の境界は?
A. 順序の方向性がカギ。 血液型 A-B-O-AB は順序なし → 名義。 学歴 中卒-高卒-大卒-院卒 は明確な順序 → 順序。
Q. 間隔と比例の見分け方は?
A. 絶対 0 が存在するかで判定。 温度 ℃ は 0 = 凍結基準 (任意) → 間隔。 ケルビン温度 K は 0 = 絶対零度 → 比例。 人口は 0 = 無 → 比例。 西暦は 0 = 西暦元年 (任意) → 間隔。
Q. リッカート尺度の平均は禁止?
A. 厳密には順序尺度の平均は理論的に NG。 ただし実務では 準間隔尺度として平均を取ることが一般的(Bonferroni 派)。 報告時は中央値も併記すると安全。
Q. SSDSE の年度(2014-2023)は?
A. 10 値で順序を持ち、 1 年差は一定 → 間隔尺度。 比例尺度ではない(西暦 1000 年と 2000 年の比較に物理的意味なし)。
Q. 機械学習で尺度水準を意識する場面は?
A. (1) エンコーディング(OneHot / Ordinal / Scaler)、 (2) 距離計算(カテゴリは Hamming、 数値は Euclidean)、 (3) 損失関数(分類なら cross-entropy、 回帰なら MSE)、 (4) 評価指標(accuracy vs RMSE)。
Q. 順序を OneHot にしてもよい?
A. 情報損失するが安全。 順序が予測に効くか不明な時は OneHot で開始、 性能を見て Ordinal に切替。
Q. 比例尺度を対数変換すべき場面は?
A. 右に長い裾を持つ分布(人口、 収入、 株価)。 標準化後の正規性が向上し、 線形モデルの仮定が満たされやすくなる。 SSDSE の A1101 は対数化推奨。
Q. 4 尺度では不足では?
A. Stevens (1946) は 4 尺度だが、 後の理論で絶対尺度(個数、 比率)を 5 番目に追加する立場もある。 また Anscombe (1973) は『尺度より分布の形状』を重視。
Q. 統計検定の選択フロー?
A. ①尺度判定 → ②正規性確認 → ③等分散確認 → ④ 検定選択。 名義: $\chi^2$、 順序: Wilcoxon、 間隔/比例 (正規): t/ANOVA、 間隔/比例 (非正規): Mann-Whitney/Kruskal-Wallis。
Q. SSDSE の都道府県コード(R01000 等)は?
A. 識別子で順序なし → 名義尺度。 ML では OneHot(47 次元)または地方ブロック(6-9 次元)に圧縮。

🖼 図で振り返る尺度水準

尺度水準が変われば使える可視化が変わる。 名義は度数で、 順序は箱ひげで、 間隔・比例はヒストグラムで分布を確認するのが基本である。

ヒストグラム:間隔・比例尺度の典型的な可視化
図1: ヒストグラム。 間隔・比例尺度の分布を確認するための基本図。 平均・標準偏差が意味を持つ。
箱ひげ図:順序尺度の中央値と四分位範囲
図2: 箱ひげ図。 順序尺度では中央値・四分位範囲を主軸に分布を比較する。
平均の4タイプ:尺度に応じて代表値を選ぶ
図3: 代表値の比較。 尺度水準により有効な代表値が異なる(名義=最頻値、 順序=中央値、 間隔/比例=平均)。

読み方: 図 1 → 3 を通じて、 ヒストグラム(比例)→ 箱ひげ(順序)→ 度数/最頻値(名義)と「可視化の選択が尺度水準に依存する」ことが直感できる。

🧠 理解度チェック

1分で答えられる確認問題。 自分で考えてから解答を開いてください。 SSDSE-B-2026 のカラムを尺度水準ごとに分類できるかが定着の指標です。

Q1. SSDSE-B-2026 の以下 4 カラムを、 名義/順序/間隔/比例尺度のいずれかに分類せよ: 「都道府県コード」「総人口 A1101」「年平均気温 B4101」「市区町村の人口規模ランキング」。
  • 都道府県コード名義尺度。 番号は識別のためだけで、 大小関係も差にも意味がない。 平均は計算不可。
  • 総人口 A1101比例尺度。 0 が「人口ゼロ」という絶対原点を持ち、 倍数比較 (東京は鳥取の何倍) が可能。
  • 年平均気温 B4101 (℃)間隔尺度。 0℃は便宜的原点で「無温度」ではない。 差は意味あるが「20℃は 10℃の 2 倍暑い」とは言えない (絶対零度基準なら比例)。
  • 人口規模ランキング順序尺度。 順位の大小は意味あるが、 1 位と 2 位の差・2 位と 3 位の差は等しいとは限らない。
Q2. 順序尺度のデータ (例: 満足度 5 段階) に対し、 平均値と中央値のどちらを代表値として使うべきか。 理由を説明せよ。

A. 原則として 中央値。 理由:

  • 順序尺度では「不満 1・やや不満 2・普通 3」の数値差が「実感の差」に対応する保証がない。 平均 = 2.5 と出ても意味が不明。
  • 中央値は順序のみに依存するため、 尺度の性質に整合的。 「半分以上の回答者がレベル X 以上だった」と読める。

ただし実務 (アンケート分析等) では「リッカート尺度を間隔尺度とみなして平均を取る」慣習も存在する。 その場合は 仮定を明示し、 中央値も併記すると批判に強い。

Q3. 尺度水準を間違えると統計手法選択でどんな失敗をするか、 SSDSE 分析で起こりがちな例を 3 つ挙げよ。
  1. 都道府県コードで平均: 「都道府県コード平均 24.5 = 大阪府あたり」と書いても意味なし。 名義尺度に算術演算は不可。 度数や最頻値を使う。
  2. 順序尺度で Pearson 相関: 満足度 (1-5) で Pearson 相関を取ると、 「1-2 の差 = 4-5 の差」を暗黙に仮定する。 Spearman 順位相関を使うべき。
  3. 間隔尺度で比率計算: 「平均気温が 10℃から 20℃になった → 2 倍暖かい」は誤り。 摂氏は間隔尺度なので「+10℃の差」と表現する。

🗺 概念マップ

尺度水準 (名義/順序/間隔/比) を中心に、 Stevens の測定論を前提として、 量的/質的・離散/連続の分類、 離散化と Box-Cox 変換による尺度変換、 SSDSE-B-2026 の県別変数の列ごとの分類、 機械学習の特徴量タイプとの対比、 ColumnTransformer による前処理パイプラインへの統合の関係を 6 方向に配置した。

尺度水準を中心に、 上に「前提となる測定論」、 右上に「並列の分類(量的/質的・離散/連続)」、 右下に「発展(連続値の離散化・順序のスコア化・Box-Cox 変換)」、 下に「応用(SSDSE-B-2026 の県別変数の列ごとの分類)」、 左下に「対比(機械学習の特徴量タイプ)」、 左上に「統合(ColumnTransformer 等の前処理パイプライン)」を配置する。

尺度水準 前提: 測定論 (Stevens) 並列: 量的/質的 発展: 離散化/Box-Cox 応用: SSDSE 列の分類 対比: ML 特徴量タイプ 統合: ColumnTransformer

このマップから読み取るべき核心は、 「尺度水準は単なる学術ラベルではなく、 計算可能な操作の集合を決める制約系」であり、 上流(測定)と下流(前処理・モデル)の両方を縛るという点。 SSDSE-B-2026 を扱うときも、 各列の尺度を最初に確認しておけば、 後の集計・相関・回帰・可視化での選択は半ば自動的に決まる。

🔗 隣接手法への橋渡し

「尺度水準」は単独で完結する手法ではなく、 隣接領域と連携することで真価を発揮する。

「気温の摂氏」が間隔尺度(0℃ に絶対意味なし)か「身長」が比率尺度(0cm に絶対意味あり)かを意識することで、 誤った統計操作 を未然に防げる。

🌳 手法選択フロー

「尺度水準」を扱う際の手法選択は、 状況に応じて以下のフローで判断すると迷いが減る。

  1. Step 1: 目的は記述か予測か?
    • 記述 (現状把握・要約) → 集計・可視化・要約統計量で全体像を掴む
    • 予測 (未知データへの推定) → モデル構築・検証フェーズへ移行
  2. Step 2: データの種類・規模は?
    • 数値データ・小〜中規模 → 「尺度水準」やその拡張手法を直接適用
    • カテゴリデータ → 名義尺度順序尺度のクロス集計・順位相関と組み合わせ
    • 大規模・高次元 → カテゴリ変数のダミー化・エンコーディング等の派生手法を選択
  3. Step 3: 結果の解釈・共有は?
    • 専門家向け → 数値指標・統計検定で精緻に評価
    • 非専門家向け → 可視化・自然言語での要約を重視

このフローに沿って判断することで、 「尺度水準」を中核とした適切な手法選択ができる。

❌ 順序尺度の平均
5段階評価の平均 3.5 は 仮定の上での 値。 等間隔仮定の妥当性に注意。
❌ 名義尺度を数値化して計算
性別を 0/1 にして「平均 0.4」は OK(割合)。 だが血液型 A=1, B=2, O=3, AB=4 の平均は無意味。
❌ 間隔と比例の混同
温度℃ で「20℃ は 10℃ の 2 倍暖かい」は誤り。 ケルビン尺度なら OK。
❌ カテゴリ変数のエンコーディング
順序があれば OrdinalEncoder、 なければ OneHotEncoder。 機械学習でも影響大。
❌ リッカート尺度の扱い
順序尺度として扱う厳密派と、 間隔として扱う実用派あり。 慣行と目的で選択。

📜 ひとことヒストリー

尺度水準 は「基礎統計」分野の中で発展してきた概念・手法です。 学術的には継続的な研究で精緻化され、 実務的にはツール・ライブラリの普及で誰でも使えるようになってきました。 用語の使い方・意味は時代と分野で少しずつ変わるため、 文脈に応じた解釈が大切です。 入門書だけでなく、 標準的な教科書(例:データサイエンス・統計学の定本)や信頼できるオンライン教材も併用すると、 ぶれない理解に近づけます。

✅ 実務チェックリスト — 尺度水準

  • □ 用語の定義を自分の言葉で説明できるか
  • □ 使うべき場面と使ってはいけない場面を区別できているか
  • □ 数式や指標の前提条件を確認したか
  • □ 入力データの尺度・分布・サンプル数を確認したか
  • □ 結果の不確実性(信頼区間・標準誤差)を把握しているか
  • □ 解釈と限界を区別できているか
  • □ 関連用語・落とし穴を一通り点検したか
  • □ レポートに必要な情報(出典・前提・限界)を含められるか

🎯 まとめ — このページで押さえること

「尺度水準」 はこのページで詳しく扱った概念です。 持ち帰ってほしい 3 つの要点

  1. 尺度水準=データが持つ情報量の段階。 S. S. Stevens (1946) による分類。
  2. 4 段階:名義 → 順序 → 間隔 → 比例。 後ろほど情報量が多く、 使える演算が増える。
  3. 名義(性別・血液型):等しい/異なるのみ。 平均は意味なし。

さらに学ぶには、 関連用語関連グループ教材 を参照してください。 各用語ページを縦断的に読むことで、 体系的な理解が育ちます。

補講 1: 尺度水準を現場で読む観点

尺度水準は、定義だけを暗記しても分析では役に立たない。SSDSE-B-2026のような都道府県データでは、列の単位、年度、地域単位、欠損、外れ値、標準化の有無が結果を大きく変える。名義・順序・間隔・比例で使える計算を分けるという観点で、入力から出力までを一続きに説明できることが重要である。

確認順序は、(1) 何を入力にしたか、(2) どの変換をしたか、(3) どの数式またはAPIが動いたか、(4) 数値が何を意味するか、(5) 何を意味しないか、である。この順序を崩すと、数値は出ているのに解釈が曖昧な報告になる。

補講 2: 尺度水準を現場で読む観点

補講 3: 尺度水準を現場で読む観点

補講 4: 尺度水準を現場で読む観点

補講 5: 尺度水準を現場で読む観点

補講 6: 尺度水準を現場で読む観点

補講 7: 尺度水準を現場で読む観点

補講 8: 尺度水準を現場で読む観点

補講 9: 尺度水準を現場で読む観点

補講 10: 尺度水準を現場で読む観点

補講 11: 尺度水準を現場で読む観点

補講 12: 尺度水準を現場で読む観点

補講 13: 尺度水準を現場で読む観点

補講 14: 尺度水準を現場で読む観点

補講 15: 尺度水準を現場で読む観点

補講 16: 尺度水準を現場で読む観点

補講 17: 尺度水準を現場で読む観点

🎨 直感の深化 — 「意味の強さ」の階層を体で覚える

尺度水準は S. S. Stevens (1946) の分類で、名義 < 順序 < 間隔 < 比例 の 4 段階に並ぶ。この不等号は「値そのものの大小」ではなくデータが担う意味の強さの順序である。上の水準ほど、その値に対して「正しく答えられる問い」が増える。名義は同じか違うかだけ、順序はどちらが上かまで、間隔はどれだけ離れているかまで、比例は何倍かまで答えられる。

水準答えられる問い許される演算使える代表値SSDSE-B-2026 実例
名義同じ?違う?=, ≠最頻値Prefecture(都道府県名), Code(R01000…R47000)
順序どちらが上?=, ≠, <, >+ 中央値, 分位点人口を大きい順に付けた順位(派生値)
間隔どれだけ離れている?+ −(差)+ 算術平均, 標準偏差B4101 年平均気温℃, 年度(2014–2023)
比例何倍?+ × ÷(比)+ 幾何平均, 変動係数A1101 総人口, A4103 合計特殊出生率

階層は「包含」の関係にある。上位の水準は下位の演算をすべて含む。だから比例尺度(総人口)には差も大小も等号もすべて使えるが、名義尺度(都道府県名)には等号しか使えない。各水準は「その水準で新しく許される演算」で特徴づけられると覚えるとよい。

各水準を分けるもう一つの見方が許容変換(値の意味を壊さない置き換え)である。名義は 1 対 1 の付け替え(A型→◯、B型→△でも情報は同じ)、順序は順位を保つ単調変換、間隔は原点と単位を変える正の一次変換 $T(x)=ax+b\,(a>0)$、比例は単位だけ変える相似変換 $T(x)=ax\,(a>0)$ まで許される。摂氏→華氏は一次変換なので気温は間隔、cm→m は相似変換なので身長は比例、という具合に「どこまで変えても意味が壊れないか」で水準が決まる。

⚠️ 落とし穴(重要)— 水準を取り違えると数字が嘘をつく

尺度水準の誤りは、エラーを出さずにもっともらしい無意味な数値を生む点が厄介である。Python はコード(数字)の平均を平然と返すが、その値に意味があるかは尺度水準が決める。以下は現場で頻出する誤りである。

#落とし穴なぜ誤りか正しい扱い
1順序尺度を間隔とみなす(リッカート平均):満足度 1〜5 を単純平均して「平均 3.4」とする「やや不満(2)→普通(3)」と「満足(4)→大満足(5)」の心理的間隔が等しい保証がない。目盛りは等間隔ではない中央値・最頻値・分位点で要約。比較は Mann–Whitney など順位検定。平均を使うなら「等間隔を仮定した近似」と明記
2名義に平均:血液型を A=1,B=2,O=3,AB=4 と符号化し「平均 2.3」符号の割り当てを変えれば平均も変わる。割り当て依存の数値に意味はない度数・最頻値・クロス集計。関連は $\chi^2$ 検定やクラメールの V
3コード化した数値を量と誤解:都道府県コード(SSDSE の Code=R01000…R47000)を数値化し平均や回帰に投入コードは名義ラベル。「24 番目が平均的な県」は無意味。番号は識別のためだけの記号カテゴリとして扱い、必要なら One-Hot 化。番号順の大小に意味を持たせない
4間隔尺度で比を取る:年平均気温で「沖縄 23.8℃ は北海道 11.0℃ の 2.16 倍暖かい」0℃ は水の凝固点という便宜的な原点で「温度ゼロ」ではない。絶対温度 K に直すと 296.95/284.15≒1.045 倍となり、比が原点の取り方で変わる=比に意味がない証拠差で語る:「沖縄は北海道より年平均で 12.8℃ 高い」(SSDSE-B-2026 2023 実測)。比が要るなら絶対零点のある尺度(ケルビン)へ
5水準の判定ミス:郵便番号・電話番号・背番号など「数字に見える名義」を量として集計形が数値でも演算の意味がなければ名義。逆に「離散だから名義」も誤り(人数は離散だが比例)離散/連続と尺度水準は独立の軸。値に差や比の意味があるかで判定する

実データでの対比(SSDSE-B-2026, 2023 年, 47 都道府県):総人口 A1101 は東京 14,086,000 人 / 鳥取 537,000 人 = 26.2 倍 という比が意味を持つ(比例尺度・絶対零点あり)。同じ「割り算」でも、気温 B4101 の比は無意味で人口の比は有意義——演算の可否は数式ではなく尺度水準が決める、というのが本ページの核心である。

※ #1・#2 のリッカート/血液型は説明用の架空例(SSDSE-B-2026 に個票の満足度・血液型列は無い)。#3・#4 の Code・気温・人口は SSDSE-B-2026 の実測値。

🚀 発展 — 許容変換・適切な統計量・Stevens への批判・ML での扱い

① 許容変換群と対応する統計量(Stevens の枠組み)

「その変換で値を置き換えても結論が変わらない統計量」だけが、その水準で意味を持つ(不変な)統計量である。平均は一次変換に不変($\overline{ax+b}=a\bar{x}+b$)なので間隔以上で使え、中央値は単調変換に不変なので順序以上で使え、最頻値は 1 対 1 変換に不変なので全水準で使える。

水準許容変換 $T$意味が保たれる例適切な統計量適切な検定・関連指標
名義任意の 1 対 1 写像ラベルの付け替え最頻値, 度数, 相対度数$\chi^2$ 検定, クラメールの V
順序任意の単調増加関数順位を保つ写像+ 中央値, 分位点, 四分位範囲Spearman/Kendall 順位相関, Mann–Whitney, Wilcoxon
間隔$T(x)=ax+b,\;a>0$℃↔℉, 西暦↔和暦+ 算術平均, 標準偏差, Pearson 相関t 検定, 分散分析(ANOVA)
比例$T(x)=ax,\;a>0$cm↔m, 人↔千人+ 幾何平均, 調和平均, 変動係数比・成長率の分析, 対数変換回帰

② Stevens への批判と実務での曖昧さ

Stevens の 4 分類は明快だが、「統計手法を尺度で機械的に禁止する」運用には批判がある。統計学者 Frederic Lord(1953, "the numbers do not know where they came from")や Velleman & Wilkinson(1993)は、尺度は測定値に固定された属性ではなく分析の目的と解釈に依存すると論じた。実際、リッカート項目を合算した尺度得点は近似的に間隔として扱われることが多く、心理測定では平均や因子分析が慣行として用いられる。要点は「禁止か許可か」の二分ではなく、その演算で得た数値をどう解釈できるか/できないかを明示することにある。

実務では水準が曖昧なケースも多い。年齢は比例尺度だが「年齢層」に区切れば順序、西暦年は間隔だが「年度ラベル」として名義的に使うこともある。SSDSE-B-2026 の年度列(2014–2023)は差に意味がある間隔尺度だが、パネルデータのグループ ID として名義的に扱う場面もある——同じ列でも分析目的で水準の扱いが変わりうる

③ 機械学習でのカテゴリ変数の扱い

尺度水準は前処理(エンコーディング)の設計そのものである。誤ると、モデルに存在しない順序や距離を教え込むことになる。

水準推奨エンコーディング誤った扱いの害SSDSE 例
名義One-Hot / ターゲットエンコーディング / 埋め込みラベル番号を線形モデルに入れると「値が近い=似ている」と誤解させるPrefecture → 47 次元 One-Hot
順序Ordinal(順位を保つ整数)One-Hot にすると順序情報を捨てる/名義化してしまう人口規模を大中小に区切った層(派生)
間隔・比例標準化 / 正規化(StandardScaler 等)スケール差を放置すると距離・勾配ベース手法で大きい列が支配的になるA1101 総人口, B4101 気温

補足:決定木・勾配ブースティング(分岐が閾値の大小で決まる)は間隔/比例の区別に鈍感で、単調変換にも頑健。一方、距離や内積を使う手法(k-NN, SVM, 線形回帰, PCA, ニューラルネット)は尺度とスケールに敏感で、標準化とエンコーディングの選択が性能を左右する。「どのアルゴリズムがどの水準を前提にするか」を押さえるのが実装の勘所である。