LoginSignup
0
2

【統計の基礎2】大数の法則って、ナニ?

Posted at

目次

1.はじめに
2.大数の法則って、ナニ?
3.大数の法則を「見える化」
4.参考
5.おわりに

1. はじめに

統計の勉強を始めた時、「大数の法則」という専門用語にぶち当たりました。「法則」と付いたので、ビビりましたが、それほど、難しいものではないようです。

自分が理解した大数の法則について、まとめてみました。

2. 大数の法則って、ナニ?

最近のお気に入りのChat-GPTに、「大数の法則」を聞いてみました。

大数の法則 (Law of Large Numbers):
サンプルサイズ(試行回数)が大きくなるほど、サンプルの平均が母集団の平均に収束すること

例:サイコロを振って平均を計算する場合、サンプルサイズが大きくなると、その平均は理論的な期待値である3.5に近づいていきます。

大数の法則は、たくさんのデータを使って平均を出すと、その平均が本当の平均に近づいていくという考え方です。

今度は、コインを何回も投げる実験を考えてみましょう。

1回目の試行では、表が出る確率と裏が出る確率はちょうど半々ですが、1回だけだと偶然の要素が強く影響します。でも、たくさんの回数(たとえば100回、1000回)投げると、表が出る平均がほぼ50%に近づいてくるんです。

これは、データの数が多くなるほど、ばらつきや偶然の影響が少なくなって、実際の確率に近づくということです。これが大数の法則の考え方です。

3. 大数の法則を「見える化」

では、本当に「大数の法則が成立するのか?」ということについて、Pythonを使って、グラフに見える化して、見てみましょう。

以下は、コイントスの結果を使って大数の法則を示すグラフを作成しました。サンプル回数が増えるにつれて、コイントスの平均が真の確率に近づいていく様子が分かりますね。

image.png

最初は、バラツキが大きいですが、600回を超える当たりから、真の確率とほぼ等しいですね。こんなこと、人手では無理ですので、コンピュータの有難さを痛感します。

コードも参考までに載せておきます。

import numpy as np
import matplotlib.pyplot as plt

# コイントス関数(表:1, 裏:0)
def coin_toss():
    return np.random.randint(2)

# コイントスを行う試行回数
num_trials = 1000

# 試行回数ごとに平均を計算して保存
averages = []
total_heads = 0

for trial in range(1, num_trials + 1):
    toss = coin_toss()
    total_heads += toss
    average = total_heads / trial
    averages.append(average)

# グラフ化
plt.figure(figsize=(10, 6))
plt.axhline(y=0.5, color='r', linestyle='--', label='True Probability')
plt.plot(range(1, num_trials + 1), averages, label='Running Averages')
plt.xlabel('Number of Trials')
plt.ylabel('Average')
plt.title('Law of Large Numbers')
plt.legend()
plt.grid(True)
plt.show()

4. 参考

大数の法則には2つの主要なバリエーションがあるようです。

弱法則(Weak Law of Large Numbers): サンプルサイズが無限に大きくなるとき、サンプル平均は母集団平均に確率的に近づくという法則です。つまり、確率的な収束が成り立ちます。しかし、特定のサンプルサイズに対しても比較的小さな誤差で母集団平均に近づくことが期待されます。

強法則(Strong Law of Large Numbers): サンプルサイズが無限に大きくなるとき、サンプル平均は母集団平均に確実に収束するという法則です。つまり、ほぼ確実にサンプル平均が母集団平均に一致することを示す法則です。弱法則よりも強い結果を提供しますが、一般的に証明が難しいです。

5. おわりに

大数の法則って、なんとなく、分かっていたつもりですが、いったん、自分の中で、整理できて良かったです。

サンプルサイズが大きくなれば、サンプルの平均が本当の平均に近づくっていうのは感覚的にも分かりますが、Pythonでシミュレーションできて良かったです。

この記事が、皆さんのお役に立てば、嬉しいです。

間違った点に対するご指摘や、ご意見などがあれば、ぜひとも、お願いいたします。
マサカリ、大歓迎です!

(追伸)
ちなみに、目次から、上手くリンクできない項目があります。どうすれば、上手くリンクできるか、ご存じの方がいたら、教えてください。

0
2
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
2