0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【統計学】累積分布関数とは_統計検定2級対策

0
Posted at

以下の統計検定2級対策動画で用いられているスライドの一部です。

今回のテーマ

  • 統計学における 確率分布 を理解するための重要なツール…
  • それが 累積分布関数 です。

  • 具体例 から考え方を学び、その後に 一般的な定義性質 を理解する流れで解説します。

まずは具体例から

  • 累積分布関数は、扱うデータの種類によって振る舞いが異なります。
  • 離散型確率変数
    • 値が飛び飛びになる変数 (例: サイコロの目、アンケートの評価点)
  • 連続型確率変数
    • 値が連続的な変数 (例: 身長、体重、製品の重量)

具体例①:離散型 (1/4)

小テストの点数分布

  • 状況設定
    • 20人の学生が受けた10点満点の小テスト
    • データは以下の通り
点数 (x) 度数(人数)
5点 2人
6点 3人
7点 5人
8点 6人
9点 3人
10点 1人
合計 20人

具体例①:離散型 (2/4)

「ある点数以下」の割合を考える

  • 「ある点数以下の学生は、全体の何割か?」 を考えます。
  • そのために、2つの指標を計算します。
    • 累積度数
      • ある点数までの人数を すべて合計 した値
    • 累積相対度数
      • 累積度数を全体(20人)で割った値
      • これが「ある点数 $x$ 以下である確率」 $P(X \le x)$ になります

具体例①:離散型 (3/4)

累積相対度数を計算する

点数 (x) 度数 累積度数 累積相対度数 $P(X \le x)$
5 2 $2$ $2/20 = 0.10$
6 3 $2+3=5$ $5/20 = 0.25$
7 5 $5+5=10$ $10/20 = 0.50$
8 6 $10+6=16$ $16/20 = 0.80$
9 3 $16+3=19$ $19/20 = 0.95$
10 1 $19+1=20$ $20/20 = 1.00$

この右端の 累積相対度数 の列が、各点数に対応する
累積分布関数 $F(x)$ の値です。


具体例①:離散型 (4/4)

グラフと解釈

  • 例えば、「点数が 8点以下 である確率」は?
    • 表から $F(8) = P(X \le 8) = 16/20 = 0.8$
    • つまり、80%の確率で点数が8点以下となります。
  • グラフにすると、値がジャンプする 階段状 になります。

image.png


import numpy as np
import matplotlib.pyplot as plt

scores = np.array([5, 6, 7, 8, 9, 10])
counts = np.array([2, 3, 5, 6, 3, 1])
total_students = counts.sum()
cdf_values = np.cumsum(counts) / total_students
plot_scores = np.concatenate(([scores[0] - 1], scores))
plot_cdf = np.concatenate(([0], cdf_values))

plt.figure(figsize=(10, 6))
plt.step(plot_scores, plot_cdf, where='post', marker='o', linestyle='-')
plt.title('Cumulative Distribution Function (Discrete Variable)')
plt.xlabel('Test Score (x)')
plt.ylabel('Cumulative Probability F(x) = P(X <= x)')
plt.xticks(np.arange(4, 12, 1))
plt.yticks(np.arange(0, 1.1, 0.1))
plt.grid(True, which='both', linestyle='--', linewidth=0.5)
plt.ylim(-0.05, 1.05)
plt.xlim(4, 11)
plt.show()

具体例②:連続型 (1/3)

工場で製造される部品の重量

  • 状況設定
    • ある部品の重量 $X$ は、平均50g, 標準偏差2gの正規分布に従う

* **問題** * この部品の重量が「 **53g以下** である確率」はいくつか?

具体例②:連続型 (2/3)

考え方

  • 連続型の場合、特定の一点の値をとる確率は 0 になります。
    例: $P(X = 50) = 0$
  • そのため、「ある値以下」や「ある範囲内」の確率を考えることが重要です。
  • この問題は、累積分布関数 $F(53)$ の値を求めることに相当します。
    $$
    F(53) = P(X \le 53)
    $$

具体例②:連続型 (3/3)

グラフと解釈

  • 連続型の場合、CDFは 確率密度関数 を積分して求めます。
  • グラフにすると、なめらかな S字状の曲線 を描きます。
  • $F(53)$ は、下のグラフで$x=53$までの青い部分の面積に相当します。

image.png


import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

mu, sigma = 50, 2
x = np.linspace(mu - 4*sigma, mu + 4*sigma, 1000)
pdf_values = norm.pdf(x, mu, sigma)
cdf_values = norm.cdf(x, mu, sigma)

fig, ax1 = plt.subplots(figsize=(12, 7))
color_pdf = 'tab:blue'
ax1.set_xlabel('Weight (g)')
ax1.set_ylabel('Probability Density (PDF)', color=color_pdf)
ax1.plot(x, pdf_values, color=color_pdf, label='PDF f(x)')
ax1.tick_params(axis='y', labelcolor=color_pdf)
ax1.grid(True, linestyle='--', linewidth=0.5)

x_fill = np.linspace(mu - 4*sigma, 53, 500)
ax1.fill_between(x_fill, norm.pdf(x_fill, mu, sigma), color=color_pdf, alpha=0.3, label='Area for P(X <= 53)')

ax2 = ax1.twinx()
color_cdf = 'tab:red'
ax2.set_ylabel('Cumulative Probability (CDF)', color=color_cdf)
ax2.plot(x, cdf_values, color=color_cdf, linestyle='--', label='CDF F(x)')
ax2.tick_params(axis='y', labelcolor=color_cdf)

cdf_at_53 = norm.cdf(53, mu, sigma)
ax2.plot(53, cdf_at_53, 'ro')
ax1.axvline(x=53, color='grey', linestyle=':', linewidth=2)
ax2.axhline(y=cdf_at_53, color='grey', linestyle=':', linewidth=2)
ax2.text(53.5, cdf_at_53 - 0.05, f'F(53) = {cdf_at_53:.4f}', color=color_cdf)

fig.suptitle('PDF and CDF of a Normal Distribution (mu=50, sigma=2)', fontsize=16)
lines1, labels1 = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax2.legend(lines1 + lines2, labels1 + labels2, loc='upper left')
fig.tight_layout(rect=[0, 0.03, 1, 0.95])
plt.show()

一般化 (1/2)

  • ここまでの具体例を踏まえて、一般化しましょう。

累積分布関数 $F(x)$ とは、確率変数 $X$ がある特定の値 $x$ 以下になる確率を示す関数です。

  • この考え方は、離散型・連続型どちらにも共通です。

$$
F(x) = P(X \le x)
$$


一般化 (2/2)

  • CDFを使うと、特定の範囲の確率も計算できます。
    「$a$ より大きく $b$ 以下である確率」$P(a < X \le b)$ は、$F(b) - F(a)$ で計算可能です。

  • 連続型の場合は、 確率密度関数 $f(t)$ の積分で表されます。
    グラフの面積を求めることに相当します。

$$
F(x) = \int_{-\infty}^{x} f(t) dt
$$


CDFの3つの基本的な性質 (1/3)

どのような確率分布でも、CDFは共通の性質を持ちます。

  • 性質1:値の範囲は0以上1以下
    • $F(x)$ は確率なので、0から1の間の値しかとりません。

$$
0 \le F(x) \le 1
$$


CDFの3つの基本的な性質 (2/3)

  • 性質2:非減少関数である
    • $x$ が大きくなっても、$F(x)$ の値が 減少することはありません
      (同じ値をとり続けるか、増加します)
      数式で書くと、$x_1 < x_2$ であれば、必ず $F(x_1) \le F(x_2)$ が成り立ちます。
    • 理由:$P(X \le x)$ の対象範囲は、$x$ が増えると広がる一方だからです。

CDFの3つの基本的な性質 (3/3)

  • 性質3:極限の値
    • $x$ を限りなく小さくすると、$F(x)$ は 0 に近づきます。
    • $x$ を限りなく大きくすると、$F(x)$ は 1 に近づきます。

$$
\lim_{x \to -\infty} F(x) = 0
$$

$$
\lim_{x \to \infty} F(x) = 1
$$


まとめ

  • 累積分布関数 $F(x)$
    • 確率変数 $X$ がある値 $x$ 以下である確率 $P(X \le x)$
  • 離散型
    • CDFは 階段状 のグラフになる
  • 連続型
    • CDFは確率密度関数を積分したもので、 S字状 のなめらかなグラフになる
  • CDFは、確率分布の特性を理解するための基本的なツールです
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?