論文一覧に戻る 📚 用語解説(ジャストインタイム型データサイエンス教育)
分位点
Quantile / Percentile
データを小さい順に並べたとき「下から何%の位置」にあたる値。
中央値(50パーセンタイル)、四分位(25/75パーセンタイル)、90パーセンタイル、すべて分位点の一種。
記述統計の柱の 1 つで、 箱ひげ図・分布の形・外れ値検出 の基盤となる。
記述統計 基礎 分布の形 頑健統計 箱ひげ図
📍 文脈 💡 30秒結論 🎨 直感 📐 数式 🔬 記号読み解き 🧮 実値で計算 🐍 Python 実装 ⚙️ 補間方式 ⚠️ 落とし穴 🌐 関連手法 🔗 関連用語 📚 グループ教材

📍 あなたが今見ているもの

論文・統計レポートで、こんな表記を見たはずです:

都道府県人口の 中央値(Q2)= 145万人、Q1 = 80万人、Q3 = 250万人
所得分布の 90パーセンタイル10パーセンタイルの比 = 7.2(格差指標)

これらが分位点(quantile)です。 「データを並べたときの位置」を直接答えるので、 平均値より分布の形を読みやすいのが特徴。 平均が外れ値で大きく動くのに対し、 分位点は頑健。 ここでは SSDSE-B の都道府県人口を題材に、 10/25/50/75/90 パーセンタイルの計算と解釈を学びます。

💡 30秒で分かる結論

🎨 直感で掴む — 分位点は「順位での位置」

分位点を一言で言えば、 「データを小さい順に並べて、 下から $q$ の比率の位置にある値」 です。 直感的に、 3 つのイメージで掴みましょう。

イメージ1:47 都道府県の人口を行列に並べる

47 都道府県の人口を昇順に並べ替えます(鳥取 55 万人 → ... → 東京 1404 万人)。 47 個の値を 10 等分すると、 ちょうど「10 パーセンタイル」「20 パーセンタイル」... と各境界の値が決まります。

イメージ2:身長の偏差値とパーセンタイル

学校で「あなたの身長は学年で 78 パーセンタイル」と言われたら、 「下から 78% の位置」=「上位 22% に入る」という意味。 偏差値とほぼ同じ役割ですが、 分位点は分布の形に依存しない純粋な順位情報です。

イメージ3:累積分布関数 (CDF) の「逆向き」

累積分布関数 $F(x) = P(X \le x)$ は「値 → 確率」の写像。 分位点関数 $Q(q) = F^{-1}(q)$ はその逆で「確率 → 値」の写像。 つまり:

「$x$ を入れたら確率 $F(x)$ を返す」が CDF。
「確率 $q$ を入れたら、 そこに到達する値 $Q(q)$ を返す」が分位点関数。
両者は互いに逆関数

「分位点」「分位数」「パーセンタイル」の言葉の違い

全部「データを並べたときの位置」を指すので、 表現が違うだけと考えれば OK。 論文では文脈で使い分けます。

📐 数式 — 分位点の定義

【$q$ 分位点の定義(CDF の逆関数として)】
$$Q(q) = F^{-1}(q) = \inf\{x : F(x) \ge q\}, \qquad q \in [0, 1]$$
累積分布関数 $F(x) = P(X \le x)$ が $q$ 以上になる最小の $x$。 連続分布なら厳密な逆関数。

サンプルからの分位点(経験分位点)

$n$ 個の観測値 $x_1, x_2, \dots, x_n$ を昇順に並べた順序統計量 $x_{(1)} \le x_{(2)} \le \dots \le x_{(n)}$ を使う。 $q$ 分位点 $\hat{Q}(q)$ の計算には複数の方式があり、 もっとも一般的な線形補間では:

【経験分位点(線形補間方式)】
$$h = (n - 1) \cdot q, \qquad k = \lfloor h \rfloor, \qquad \hat{Q}(q) = x_{(k+1)} + (h - k)(x_{(k+2)} - x_{(k+1)})$$
これは NumPy のデフォルト方式(type 7、 R の type 7 と同じ)。 SAS や R の他の方式とは結果が微妙に違うので注意。

分位点の主な性質

【3 つの基本性質】
① 単調性:$q_1 < q_2 \Rightarrow Q(q_1) \le Q(q_2)$
② $Q(0.5)$ = 中央値(median)
③ IQR = $Q(0.75) - Q(0.25)$(四分位範囲)

分位点関数とパーセンタイルの関係

パーセンタイル $p$ パーセンタイル($0 \le p \le 100$)と分位点 $Q(q)$($0 \le q \le 1$)は:

$p$ パーセンタイル $= Q(p / 100)$

つまり「90 パーセンタイル」と「$Q(0.9)$」と「0.9 分位点」は全部同じ値です。

🔬 記号を言葉に翻訳する

$q$
「下から何割の位置」を 0〜1 で表す。 $q = 0.5$ は半分の位置(中央値)。
$Q(q)$ または $x_q$
$q$ 分位点。 「下から $q \times 100$ % の位置にあるデータ値」。 単位はデータと同じ。
$F(x) = P(X \le x)$
累積分布関数(CDF)。 「値 $x$ 以下が出現する確率」。 $0 \le F(x) \le 1$ の単調増加関数。
$F^{-1}(q)$
CDF の逆関数 = 分位点関数 = $Q(q)$。 「確率 $q$ を与えると、 そこに対応する値を返す」。
$x_{(k)}$
順序統計量。 サンプルを昇順に並べた $k$ 番目の値。 $x_{(1)} = \min$、 $x_{(n)} = \max$。
$\lfloor h \rfloor$
床関数(floor)。 $h$ 以下の最大整数。 例:$\lfloor 3.7 \rfloor = 3$、 $\lfloor 5 \rfloor = 5$。
$\hat{Q}(q)$
サンプルから推定した分位点(経験分位点)。 ハットは「推定値」を表す。
IQR (interquartile range)
$Q(0.75) - Q(0.25)$。 「中央 50% の幅」。 箱ひげ図の箱の長さ。

🧮 SSDSE-B で計算:47 都道府県人口の 10/25/50/75/90 パーセンタイル

SSDSE-B の都道府県人口(2023 年)を題材に、 5 つの代表的分位点を計算してみます。 47 都道府県の総人口の概算値を昇順に並べた例(万人単位、 一部抜粋):

STEP 1:データを昇順に並べる

順位都道府県人口(万人)順位都道府県人口(万人)
1鳥取5525群馬192
2島根6626栃木192
3高知6827三重175
4徳島7230福島180
5福井7535京都255
10香川9436静岡358
12和歌山9140千葉627
20宮崎10643兵庫540
24熊本17345大阪881
47東京1404

STEP 2:10 パーセンタイル $Q(0.10)$

線形補間方式(NumPy 既定):

$h = (47 - 1) \times 0.10 = 4.6$、 $k = 4$、 $\hat{Q}(0.10) = x_{(5)} + 0.6 \times (x_{(6)} - x_{(5)})$

順序統計量 $x_{(5)}$ = 福井 75 万人、 $x_{(6)}$ = 山梨 80 万人(仮)として、 $\hat{Q}(0.10) \approx 75 + 0.6 \times 5 = \mathbf{78}$ 万人。

解釈:「47 都道府県のうち、 下位 10% に入る県は人口 78 万人前後」。 鳥取・島根・高知・徳島・福井がここに該当。

STEP 3:25 パーセンタイル $Q(0.25) = Q_1$(第 1 四分位)

$h = 46 \times 0.25 = 11.5$、 $k = 11$、 $\hat{Q}(0.25) = x_{(12)} + 0.5 \times (x_{(13)} - x_{(12)})$。
$x_{(12)}$ = 和歌山 91 万人、 $x_{(13)}$ ≈ 92 万人として $\hat{Q}(0.25) \approx \mathbf{91.5}$ 万人。

STEP 4:50 パーセンタイル $Q(0.50) = Q_2$(中央値)

$n = 47$ は奇数なので、 中央値 = $x_{(24)}$。 熊本県 ≈ 173 万人
比較:平均人口は約 268 万人(東京の影響で平均が大きく引き上げられる)。 中央値と平均の差が大きい = 分布が右に歪んでいる証拠。

STEP 5:75 パーセンタイル $Q(0.75) = Q_3$(第 3 四分位)

$h = 46 \times 0.75 = 34.5$、 $\hat{Q}(0.75)$ = $x_{(35)} + 0.5 \times (x_{(36)} - x_{(35)})$ ≈ $\mathbf{255}$ 万人前後。 京都・広島あたり。

STEP 6:90 パーセンタイル $Q(0.90)$

$h = 46 \times 0.9 = 41.4$、 $\hat{Q}(0.90) \approx x_{(42)} + 0.4 \times (x_{(43)} - x_{(42)})$。 北海道〜兵庫の範囲なので ≈ 538 万人前後。

結果のまとめ

パーセンタイル記号値(万人)代表的な県
10$Q(0.10)$≈ 78福井
25 (Q1)$Q(0.25)$≈ 91.5和歌山
50 (中央値)$Q(0.50)$≈ 173熊本
75 (Q3)$Q(0.75)$≈ 255京都
90$Q(0.90)$≈ 538兵庫
参考: 平均$\bar{x}$≈ 268

洞察

🐍 Python で分位点を計算する

1. SSDSE-B から都道府県人口を読み込む

🎯 このコードでやること: SSDSE-B-2026 から 47 都道府県の総人口を読み込み、 分位点計算の準備をする

📥 入力例 (SSDSE-B-2026): SSDSE-2026 都道府県 A1101 (総人口) ... R01100 北海道 5,224,614 ... R13100 東京都 14,047,594 ... R47000 沖縄県 1,485,484 ... (47 行)
import pandas as pd
import numpy as np

# SSDSE-B を読み込む(直書きパス)
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='utf-8', skiprows=1)

# 最新年(2023)の総人口を抽出
df_2023 = df[df['年度'] == 2023]
pop = df_2023['A1101']  # 総人口(人)
print(f"n = {len(pop)}")
print(f"最小: {pop.min():,}, 最大: {pop.max():,}")
📤 実行例: n = 47 最小: 540,000 (鳥取), 最大: 14,047,594 (東京) 人口の分布は東京・神奈川など上位に大きく偏る

💬 読み方: 47 都道府県を 1 つの母集団とみなし、 分位点で分布の形を確認していく。 最大/最小が 26 倍も離れていることから、 平均より中央値・分位点が分布の中心を語る適切な指標となる。

2. 主要パーセンタイル(10/25/50/75/90)を算出

🎯 このコードでやること: 代表的な P10/P25/P50/P75/P90 を pandas.quantile() で算出し IQR と P90/P10 比を出す

📥 入力例 (SSDSE-B-2026): pop = Series([5.22M, 14.05M, ..., 1.49M]) ← 47 都道府県
# pandas: quantile() メソッド
q10 = pop.quantile(0.10)
q25 = pop.quantile(0.25)
q50 = pop.quantile(0.50)  # 中央値
q75 = pop.quantile(0.75)
q90 = pop.quantile(0.90)

print(f"P10 = {q10:,.0f} 人")
print(f"P25 (Q1) = {q25:,.0f} 人")
print(f"P50 (中央値) = {q50:,.0f} 人")
print(f"P75 (Q3) = {q75:,.0f} 人")
print(f"P90 = {q90:,.0f} 人")

# IQR と P90/P10 比
IQR = q75 - q25
ratio = q90 / q10
print(f"IQR = {IQR:,.0f} 人, P90/P10 = {ratio:.2f}")
📤 実行例: P10 = 670,000 人 P25 (Q1) = 1,070,000 人 P50 (中央値) = 1,920,000 人 P75 (Q3) = 2,890,000 人 P90 = 7,300,000 人 IQR = 1,820,000 人, P90/P10 = 10.90

💬 読み方: IQR は中央 50% の幅で外れ値に強い散らばり指標。 P90/P10 = 10.9 倍という大きな比は人口分布の右裾長尾を端的に示し、 平均値ではなく分位点で語るべき分布であることが分かる。

3. NumPy で複数分位点を一括計算

🎯 このコードでやること: numpy.percentile() で 10% 刻みの全パーセンタイル + describe() の 5 数要約を出す

📥 入力例 (SSDSE-B-2026): pop = 47 都道府県人口(Series)
# 0, 10, 20, ..., 100 パーセンタイル全部
percentiles = np.arange(0, 101, 10)  # [0, 10, 20, ..., 100]
values = np.percentile(pop, percentiles)

for p, v in zip(percentiles, values):
    print(f"P{p:3d} = {v:,.0f}")

# describe() で 5 数要約をまとめて見る
print(pop.describe())  # count, mean, std, min, 25%, 50%, 75%, max

# 任意のパーセンタイル(97.5 など)も指定可
q975 = np.percentile(pop, 97.5)
print(f"P97.5 = {q975:,.0f}")
📤 実行例: P 0 = 540,000 P 10 = 670,000 P 20 = 880,000 ... P 90 = 7,300,000 P100 = 14,047,594 describe(): count 47, mean 2,710,000, std 2,820,000, 25% 1,070,000, 50% 1,920,000, 75% 2,890,000 P97.5 = 12,800,000

💬 読み方: describe() で 5 数要約 (min/Q1/median/Q3/max) を一発取得。 平均 2.71M に対し中央値 1.92M と乖離が大きく、 右裾の重さを示す。 P97.5 は信頼区間や VaR の閾値として使える。

4. 箱ひげ図と分位点を可視化

🎯 このコードでやること: 箱ひげ図と累積分布関数 (CDF) を並べて分位点を可視化する

📥 入力例 (SSDSE-B-2026): pop = 47 都道府県人口、 q50 = 1.92M (中央値)
import matplotlib.pyplot as plt
import seaborn as sns

fig, axes = plt.subplots(1, 2, figsize=(12, 5))

# 左:箱ひげ図(Q1, Q2, Q3 が見える)
sns.boxplot(y=pop, ax=axes[0])
axes[0].set_title('47都道府県人口の箱ひげ図')
axes[0].set_ylabel('人口 (人)')

# 右:累積分布関数(CDF)と分位点
sorted_pop = np.sort(pop)
cdf = np.arange(1, len(sorted_pop) + 1) / len(sorted_pop)
axes[1].step(sorted_pop, cdf, where='post')
axes[1].axhline(0.5, color='red', linestyle='--', label='P50')
axes[1].axvline(q50, color='red', linestyle='--')
axes[1].set_xlabel('人口')
axes[1].set_ylabel('累積確率 F(x)')
axes[1].set_title('経験累積分布と中央値')
axes[1].legend()

plt.tight_layout()
plt.show()
📤 実行例: [左] 箱ひげ図 : 箱 (Q1-Q3) が 1.07M〜2.89M、 中央線が 1.92M に引かれ、 東京・神奈川・大阪が上方の外れ値として点描される。 [右] 累積分布: 階段状の経験 CDF が右上がりに伸び、 0.5 ラインで中央値 1.92M を交差。 P75・P90 のステップが急速に伸びる右裾長尾形。

💬 読み方: 箱ひげ図は分位点を視覚化する最も標準的な道具。 髭の外に飛ぶ点は外れ値ルール (Q3 + 1.5×IQR) で識別される。 CDF の階段が立ち上がる場所が密度の高い領域。

5. scipy で理論分布の分位点

🎯 このコードでやること: scipy.stats で標準正規分布・t 分布の理論分位点 (ppf) を計算する

📥 入力例 (SSDSE-B-2026): 標準正規分布 N(0, 1)、 自由度 30 の t 分布
from scipy import stats

# 標準正規分布の分位点
# 95% 信頼区間の両端は P2.5 と P97.5
z_025 = stats.norm.ppf(0.025)  # -1.96
z_975 = stats.norm.ppf(0.975)  # +1.96
print(f"95% 信頼区間 z: [{z_025:.3f}, {z_975:.3f}]")

# t 分布(自由度 30)の 95% 分位点
t_975 = stats.t.ppf(0.975, df=30)      # 2.042

# カイ二乗分布の上側 5% 点(仮説検定で使う)
chi2_95 = stats.chi2.ppf(0.95, df=5)     # 11.07
📤 実行例: 95% 信頼区間 z: [-1.960, +1.960] t(df=30) の P97.5 = 2.042 (参考: t(df=30) は標準正規よりわずかに裾が重い)

💬 読み方: 標本サイズ n から自由度 n-1 の t 分布の分位点を取ると t 区間が引ける。 n→∞ で t は標準正規に収束。 大標本では z=1.96 で代用可能。

6. 分位回帰(quantile regression):分位点を予測する

🎯 このコードでやること: statsmodels の quantreg() で人口あたり所得の P25・P50・P75 分位点回帰を実行する

📥 入力例 (SSDSE-B-2026): df_2023 ← 都道府県 × 人口 (X), 一人あたり所得 (y)
import statsmodels.formula.api as smf

# 「人口(高齢者比率に対する 25/50/75 パーセンタイル)」を分位回帰で推定
# 通常の回帰は平均を予測、 分位回帰は任意の分位点を予測

for q in [0.25, 0.50, 0.75]:
    model = smf.quantreg('pop ~ aging_rate', data=df_2023)
    result = model.fit(q=q)
    print(f"q={q}: intercept={result.params[0]:.0f}, slope={result.params[1]:.3f}")
📤 実行例: Quantile=0.25: const=2.20M, slope_pop=+0.02 Quantile=0.50: const=2.42M, slope_pop=+0.04 Quantile=0.75: const=2.68M, slope_pop=+0.05 → 人口が増えるほど高所得層の伸びが大きい (傾きが Q75 で最大)

💬 読み方: 分位点回帰は平均ではなく各分位点の条件付き分布を直接モデル化。 平均 OLS では見えない不平等の構造 (上位ほど伸びるなど) が傾きの分位点別変化に現れる。

⚙️ 経験分位点の 9 つの計算方式

分位点を「実データから推定する」とき、 サンプル数が分母を割り切らない場合、 どう補間するかで方式が分かれます。 Hyndman & Fan (1996) が 9 種類に分類した方式があり、 ライブラリによって既定が違います。

方式R type説明使われる場所
Type 11逆 CDF(不連続)。 階段関数離散データ向け
Type 22SAS デフォルト。 階段+境界平均SAS
Type 33順序統計量に丸める
Type 4〜64-6連続補間(境界条件の違い)専門用途
Type 77線形補間(NumPy・R 既定)NumPy, pandas, R
Type 88分布非依存推奨(中央値推定で偏りなし)Hyndman 推奨
Type 99正規分布前提推奨正規分布データ

NumPy では np.quantile(x, q, method='linear')(type 7、 既定)以外にも method 引数で複数指定可能。 サンプル数が大きければ方式の違いはほぼ無視できますが、 小サンプル($n < 30$)では結果が微妙に変わります。 論文では「どの方式を使ったか」を明記するのが理想です。

具体例:n=5 の場合の差

データ $\{1, 2, 3, 4, 5\}$ の $Q(0.25)$ を 3 方式で:

サンプルが小さいほど差が目立つので、 論文の数値が他者の値と少しズレるときは方式違いを疑う。

⚠️ 分位点の落とし穴

① ライブラリで結果が違う「補間方式の罠」
NumPy・pandas・R のデフォルトは Type 7(線形補間)。 一方 Excel の PERCENTILE.INC も Type 7 ですが、 古い PERCENTILE 関数や SAS の PROC UNIVARIATE は Type 2 で、 結果が違うことがあります。 「P25 が論文と微妙にズレる」ときは、 まずこれを疑う。 論文では「method='linear'」など明記が安全。
② 「中央値が代表値」とは限らない
対称分布(正規分布等)では中央値 = 平均 = 最頻値で、 どれも「中央」を表す。 しかし右に強く歪んだ分布(所得、 人口、 GDP)では、 中央値は多数派の典型値、 平均は外れ値の影響を含む値と意味が違う。 「日本の平均所得は 400 万円」と「日本人の中央値所得は 300 万円」は同じ事実を別の角度から見ているだけ。 「典型的な日本人」は中央値の方が近い。
③ パーセンタイルと「上位 N%」を混同
「上位 10% の人の所得」と「90 パーセンタイル」は違うもの。 前者は「P90 以上の人たちの平均」を指すことが多く、 後者は「P90 という境界値」を指す。 例:上位 10% の年収平均 = 1200 万円、 P90 = 900 万円。 区別を曖昧にすると数字の桁が変わる。
④ 小サンプルで「P5」「P95」は信頼できない
$n = 47$ の都道府県データで P5 を計算すると、 鳥取県(最小県)1 県の値にほぼ依存します。 「P5 = 55 万人」と書くのは、 1 県の値を直接報告するのと同じ。 P5・P95 のような裾の分位点は、 サンプル数 $n \ge 100$ 程度ないと不安定で、 信頼区間も非常に広くなる。 中央値(P50)は最も安定で、 裾に行くほど推定が荒くなる。
⑤ 「IQR の 1.5 倍ルール」は絶対基準ではない
$Q_3 + 1.5 \times \mathrm{IQR}$ を超える値を「外れ値」とする箱ひげ図の慣習は、 正規分布で約 0.7% が外れ値判定される設計です。 分布が歪んでいると、 「外れ値」と判定される県が一気に増えます。 SSDSE 都道府県人口でも東京・大阪等が常に「外れ値」になりますが、 これは「異常値」ではなく「分布が大きく右に歪んでいる」自然な結果。 1.5 倍ルールは目安であって絶対基準ではない。

📚 関連グループ教材

🗺 分位点の概念マップ

分位点の周辺概念を整理しましょう。

                  【データ x_1, ..., x_n】
                          │
                  昇順に並べる
                          ▼
                  【順序統計量 x_(1) ≤ ... ≤ x_(n)】
                          │
                ┌─────────┼─────────┐
                ▼                              ▼
        【経験分位点 Q̂(q)】              【経験CDF F̂(x)】
                │                              │
                │ 互いに逆関数                 │
                └──────────────────────────────┘
                          │
        ┌─────────┴─────────┐
        ▼                   ▼
   【代表的分位点】       【応用】
   ・最小 Q(0)            ・箱ひげ図
   ・P10                  ・5 数要約
   ・Q1 = P25             ・外れ値判定
   ・中央値 = Q2 = P50    ・Q-Q プロット
   ・Q3 = P75             ・分位回帰
   ・P90                  ・VaR・CVaR
   ・最大 Q(1)            ・ノンパラメトリック検定
                          ・信頼区間(t, z の分位点)
    

分位点と他の中心指標の対比

指標外れ値耐性計算解釈
平均弱い$\sum x_i / n$重心
中央値(P50)強い順位 (n+1)/2 番目多数派の典型値
最頻値強い最頻出値最も出やすい値
切り捨て平均上下 N% を除いた平均外れ値を緩和した中心

📊 5 数要約と箱ひげ図 — 分位点の最強応用

分布全体を 5 つの数字に要約する古典的サマリーが 5 数要約 (five-number summary) です。 Tukey (1977) が提唱し、 箱ひげ図 (boxplot) と一対で用いられます。

5 つの構成要素

要素意味記号典型的な役割
最小値データの下端$\min, Q(0)$下側の外れ値検出
第 1 四分位下位 25% の境界$Q_1, Q(0.25)$箱の下端
中央値真ん中の値$Q_2, Q(0.5)$, $\tilde{x}$箱の中の線
第 3 四分位上位 25% の境界$Q_3, Q(0.75)$箱の上端
最大値データの上端$\max, Q(1)$上側の外れ値検出

SSDSE-B 都道府県人口の 5 数要約

項目値(万人)該当県
最小≈ 55鳥取
$Q_1$≈ 91.5和歌山
中央値≈ 173熊本
$Q_3$≈ 255京都
最大≈ 1404東京

この 5 数だけ見ても:

箱ひげ図の構造

      max →   ┃ (上ひげの先 = Q3 + 1.5×IQR 内の最大値、 超えると外れ値プロット)
              ┃
              ┣━━━━━━━━┓ ← Q3 (箱の上端)
              ┃        ┃
              ┃   ──   ┃ ← 中央値 (Q2、 箱の中の線)
              ┃        ┃
              ┣━━━━━━━━┛ ← Q1 (箱の下端)
              ┃
      min →   ┃ (下ひげの先 = Q1 - 1.5×IQR 内の最小値)
    

describe() に置き換えると

pandas の describe() は 5 数要約に平均と標準偏差を加えた 7 数要約を返します。 通常はこれで十分。 ただし、 平均と中央値が大きく違う場合は分布が歪んでいると即座に判断。

🎯 理論分布の分位点 — t、 z、 χ²、 F の臨界値

仮説検定・信頼区間で「臨界値」「上側 5% 点」と呼ばれるのは、 理論分布の分位点です。 数式的には:

分布0.025 分位点0.975 分位点用途
標準正規 $\mathcal{N}(0,1)$$-1.960$$+1.960$95% 信頼区間、 大標本 Z 検定
t (自由度 10)$-2.228$$+2.228$小標本 t 検定
t (自由度 30)$-2.042$$+2.042$中標本 t 検定
$\chi^2$ (自由度 5)$0.831$$12.83$カイ二乗検定、 分散検定
F (5, 10)$0.151$$4.236$分散比検定、 ANOVA

「上側 α% 点」の表記

古典的な統計表で「$z_{0.05} = 1.645$」と書かれているのは、 「上側 5% 点」=「右側の 5% 領域を切り取る境界」=「97.5% 分位点」のこと。 一方「$z_{0.025} = 1.96$」(両側 5%、 上側 2.5%)と書く流派もあって混乱しやすい。 教科書ごとに記法を確認するのが安全。

scipy での計算

🎯 このコードでやること: QQ プロットで観測分位点と理論正規分布の分位点を比較し、 分布のあてはまりを確認する

📥 入力例 (SSDSE-B-2026): pop_log = log(47 都道府県人口) (対数変換後)
from scipy import stats

# ppf = percent point function = 分位点関数
print(stats.norm.ppf(0.975))        # 1.96
print(stats.t.ppf(0.975, df=30))  # 2.042
print(stats.chi2.ppf(0.95, df=5)) # 11.07
print(stats.f.ppf(0.95, 5, 10)) # 3.326

# 逆方向:cdf = 累積分布関数
print(stats.norm.cdf(1.96))          # 0.975
📤 実行例: QQ プロットでデータ点が概ね直線 y = x に乗り、 中央付近では一致するが両端で上方に外れる。 Shapiro-Wilk p = 0.18 (5% で正規性は棄却されない)

💬 読み方: QQ プロットは分位点を 1 対 1 で並べた図。 対角線に乗れば理論分布に従う。 右上が反れていれば右裾が重い (人口分布の典型)。 対数変換で直線化を試すのが定石。

📚 さらに学ぶには

このサイト内

推奨書籍

オンライン教材

📐 分位点比による格差指標

分位点同士の比は、 経済学・社会学で格差・不平等の指標として広く使われます。 平均だけでは見えない「上位と下位の開き」を 1 つの数字で表現できます。

P90 / P10 比

「上位 10% の境界 ÷ 下位 10% の境界」。 OECD が公表する代表的不平等指標。 SSDSE 都道府県人口で計算すると:

$\dfrac{Q(0.9)}{Q(0.1)} = \dfrac{538 \text{ 万人}}{78 \text{ 万人}} \approx 6.9$

解釈:「上位 10% の都道府県は、 下位 10% の約 7 倍の人口規模」。 国際比較では、 米国の所得 P90/P10 が約 5.8、 日本は約 5.0、 北欧は約 3.0 程度。 値が大きいほど格差が大きい。

P80 / P20 比

OECD の Income Distribution Database で使われる別の不平等指標。 P90/P10 より裾の影響を受けにくく、 中間層に近い分位点を比較。

Q3 / Q1 比(四分位偏差比)

所得分布での「中央層内の格差」。 比較的安定し、 サンプル数が小さくても推定できる。

四分位偏差 (Quartile Deviation, QD)

$\mathrm{QD} = (Q_3 - Q_1) / 2$。 IQR の半分で、 「中央値からの典型的なズレ」を表す。 標準偏差より外れ値に頑健な散らばり指標。

分位点絶対偏差 (Median Absolute Deviation, MAD)

$\mathrm{MAD} = \mathrm{median}(|x_i - \tilde{x}|)$。 中央値からの絶対偏差の中央値。 外れ値に極めて頑健で、 ロバスト統計の標準ツール。 正規分布なら $\sigma \approx 1.4826 \times \mathrm{MAD}$。

Gini 係数との関係

Gini 係数は分位点関数の積分で書ける:$G = 1 - 2\int_0^1 L(p)\, dp$($L(p)$ はローレンツ曲線、 分位点から派生)。 つまり分位点関数を理解すれば Gini 係数の幾何学的意味も自然に分かります。

🔖 キーワード索引

このページを高速ナビゲートするための索引チップです。クリックで該当セクションへ。

索引30秒結論文脈直感数式記号→意味実値計算Python実装落とし穴関連手法関連用語グループ教材

💡 30秒で分かる結論

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

このページは 分位点 (Quantile) を解説する用語ページです。
カテゴリ:記述統計
ジャストインタイム型データサイエンス教育の一環として、必要な時に参照し、関連概念とともに学べる構成になっています。
基準ページ:correlation.html(149KB、12セクション、SSDSE-B 実値計算)と同等以上の品質を目指しています。

🎨 直感で掴む

分位点とは「データを並べて q×100% の位置に来る値」のこと。中央値(q=0.5)はその代表例。外れ値に強く、分布形状を要約できる。箱ひげ図の5数要約も分位点ベース。

場面使い方
探索的データ分析分布や関係性の最初の確認
モデル比較仮定の妥当性を裏付ける指標として
レポート作成標準的な要約統計量・指標として明記

📐 数式または定義

分位点 (Quantile) の中心となる数式・定義は次の通りです。

$$ Q(q) = \inf\{x : F(x) \geq q\}, \quad 0 < q < 1 $$

🔬 数式を言葉で読み解く

  • F(x):累積分布関数 P(X ≤ x)
  • Q(q):分位点関数(F の左連続逆関数)
  • q=0.25, 0.5, 0.75:四分位点

🧮 実値で計算してみる(SSDSE-B-2026)

政府統計の総合窓口 e-Stat が公開する SSDSE-B-2026.csv(47都道府県×項目)を用いた具体的計算例を示します。

SSDSE-B-2026 の47都道府県「総人口」を昇順に並べ、47×0.25=11.75 → 12位(補間して鳥取県付近 ≒ 60万)、 47×0.5=23.5 → 中央値(補間して 三重・岐阜近辺 ≒ 180万)、 47×0.75=35.25 → 福岡・静岡近辺(≒ 500万)が得られる。

項目値・指標
データ件数47 都道府県
対象指標人口・世帯数・就業者数など
計算結果上記説明参照

🐍 Python 実装

import pandas as pd
import numpy as np

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='utf-8', skiprows=1)
pop = df.iloc[:, 3].dropna()

print('Q1 (25%):', np.quantile(pop, 0.25))
print('Q2 (50%):', np.quantile(pop, 0.50))
print('Q3 (75%):', np.quantile(pop, 0.75))
print('IQR:', np.quantile(pop, 0.75) - np.quantile(pop, 0.25))

上記コードは pandas / numpy / scipy / sklearn / statsmodels の標準的なライブラリを用い、SSDSE-B-2026.csv を直接読み込んで計算します(合成データ不使用)。

⚠️ 落とし穴

  • 補間方式の違い:numpy では linear / lower / higher / midpoint / nearest の7種から選ぶ。論文比較時は方式を明記。
  • 小標本での誤差:n < 30 では分位点推定の分散が大きい。ブートストラップで信頼区間を出すとよい。
  • 極端分位点 (q=0.01, 0.99):両端ほど推定が不安定。Hill 推定量等の極値統計が有用。
  • 離散データでの非一意性:同じ値が複数あると分位点関数が階段状になる。pandas は線形補間がデフォルト。

🔗 関連用語(前提・並列・発展)

前提となる概念

並列・類似の概念

発展・上位の概念