裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

サイコロ投げで中心極限定理を理解するための GIF アニメーション

2021年06月21日 | ブログラミング

毎回,サイコロを1個だけ投げて出た目を記録して棒グラフを描くと,1 ~ 6 の目はほぼ均等に出る(矩形分布になる)ことがわかる。

毎回,サイコロを2個投げて出た目の平均値を求め記録して棒グラフを描くと,分布は三角分布になることがわかる。

毎回,サイコロを3, 4, 5, ..., n個投げて出た目の平均値を求め記録して棒グラフを描くと,分布はだんだん正規分布に近くなることがわかる。

出目の平均値は 3.5 程度で,分散が小さくなる。

以下の図の縦軸は確率密度である。

シミュレーションプログラムは以下の通り。

using Plots, PlotThemes Random, Statistics, FreqTables

function centrallimittheorem(nmax=20; fps=1)
    Random.seed!(12345)
    theme(:gruvbox_light)
    pyplot(grid=false, label="", size=(400, 300))
    n = 100000
    anim = @animate for i = 1:nmax
        data = vec(mean(reshape(rand(1:6, n*i), n, :), dims=2));
        height = freqtable(data);
        x = vec(names(height)...);
        width = minimum(diff(x));
        height = vec(height) / (n*width)
        bar(x, height, bar_width=width, linewidth=0,
            xlims=(0.5, 6.5), ylims=(0, 1.2),
            tick_direction=:out, tickfontsize=10,
            xlabel="出目の平均値", ylabel="密度",
            title="出目の平均値の分布")
        annotate!(3.5, 1.1,
            text("$i 個のサイコロを投げるという試行を $n 回繰り返す", 8, :black))
    end
    gif(anim, "centralliittheorem.gif", fps=fps)
end

centrallimittheorem(20)

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« χ2分布の概形を示す GIF ア... | トップ | コイントスで中心極限定理を... »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事