Juliaで見る漸近理論 (確率変数でない数列の収束)
回帰分析の漸近バイアスについて議論するために必要な漸近理論について確認しておきます.
数列の収束
まずは確率変数ではなく,普通の数列の値の収束を見てみます.
(確率変数でない)数列の収束の定義
-
任意の
に対して,\epsilon > 0 ならばN>N_{\epsilon} となるような正の整数| a_{N} - a |<\epsilon が存在するとき,数列N_{\epsilon} は実数\{ a_N: N=1, 2, \ldots \} に 収束する(converge) といい,a
a_N \rightarrow a \quad \text{as} \quad N \rightarrow \infty
と書く.このとき は 極限(limit) という.a -
任意の
に対して,すべての正の整数\epsilon > 0 についてN=1, 2, \ldots となる実数|a_N| \leq b が存在するとき,数列b < \infty は有界である(bounded) といい,そうでなければ有界でない(unbounded) という.\{ a_N: N=1, 2, \ldots \}
上記は
収束の定義ではサンプルサイズ
これだけだとなかなか実感が湧きにくいので,いくつか
数列の収束:例
例1.
using Plots, LaTeXStrings
N_inf = 100 # large sample size
# converged sequence
a1(N) = 2 + 1/N
# plot "a_N = 2 + 1/N"
anim = @animate for N in 1:N_inf
plot(
a1, Vector(1:N), markershape=:circle, label=L"a_N = 2 + \frac{1}{N}",
title="Converged Sequence", xlabel=L"N", ylabel=L"a_N",
xlim=(0, Inf), ylims=(1.9, 3.1)
)
end
gif(anim, "1_converged_sequence.gif", fps=60)
例2.
# bounded sequence
a2(N) = (-1) ^ N
# plot "a_N = (-1) ^ N"
anim = @animate for N in 1:N_inf
plot(
a2, Vector(1:N), markershape=:circle, label=L"a_N = (-1)^{N}",
title="Bounded Sequence", xlabel=L"N", ylabel=L"a_N",
xlim=(0, Inf), ylims=(-1.5, 1.5)
)
end
gif(anim, "2_bounded_sequence.gif", fps=60)
例3.
# unbounded sequence
a3(N) = N ^ (1/4)
# plot "a_N = N ^ (1/4)"
anim = @animate for N in 1:N_inf
plot(
a3, Vector(1:N), markershape=:circle, label=L"a_N = N^{\frac{1}{4}}",
title="Unbounded Sequence", xlabel=L"N", ylabel=L"a_N",
xlim=(0, Inf), ylim=ylim=(0.9, Inf), legend=:bottomright
)
end
gif(anim, "3_unbounded_sequence.gif", fps=60)
漸近記号の定義
ここでは収束・発散の概念を導入します.
-
が有界であるとき,数列\frac{a_N}{N^{\lambda}} は\{ a_N \} であるといい,\mathcal{O}(N^{\lambda})
a_N = \mathcal{O}(N^{\lambda})
と書く.特に のとき,\lambda = 0 そのものが有界であり,\{ a_N \}
a_N = \mathcal{O}(1) \quad (N \rightarrow \infty)
と書く. -
であるとき,\frac{a_N}{N^{\lambda}} \rightarrow 0 は\{ a_N \} であるといい,\mathcal{o}(N^{\lambda})
a_N = \mathcal{o}(N^{\lambda})
と書く.特に のとき,\lambda = 0 そのものが\{ a_N \} に収束し,0
a_N = \mathcal{o}(1) \quad (N \rightarrow \infty)
と書く.
ランダウ記号(Landau Symbol)
ここでも,例としていくつかの
漸近記号:例
例4:
# log(N) / N^λ → 0 (converged) (for any λ>0) as N → ∞
# (log(N) は N^λ と比べて高次元の無限小で、早く0に収束する)
# we write log(N) = o(N^λ)
a4(N) = log(N)
Ninvλa4(N, λ) = a4(N) / N^λ
Nλ(N, λ) = N^λ
anim = @animate for N in 1:N_inf
p1 = plot(Nλ.(Vector(1:N), 3/4), markershape=:circle, label=L"N^{3/4}",title=L"N^\lambda, a_N", xlabel=L"N", ylabel=L"N^\lambda, a_N", ylims=(0, 50))
plot!(Nλ.(Vector(1:N), 2), markershape=:circle, label=L"N^{2}")
plot!(Nλ.(Vector(1:N), 5), markershape=:circle, label=L"N^{5}")
plot!(a4, Vector(1:N), markershape=:circle, label=L"a_N = \log(N)")
p2 = plot(Ninvλa4.(Vector(1:N), 3/4), markershape=:circle, label=L"a_N /N^{3/4}", title=L"a_N = \mathcal{o}(N^{\lambda})", xlabel=L"N", ylabel=L"N^{-\lambda}a_N")
plot!(Ninvλa4.(Vector(1:N), 2), markershape=:circle, label=L"a_N / N^2")
plot!(Ninvλa4.(Vector(1:N), 5), markershape=:circle, label=L"a_N / N^5")
plot(p1, p2, layout=(2, 1))
end
gif(anim, "4_landau_log.gif", fps=60)
上のプロットを見てみると,
となります.ちなみに,
例5:
# (10 + √N) / N^(1/2) is bounded as N → ∞
# (10 + √N は N^(1/2) によって押さえられる)
# we write 10 + √N = O(N^(1/2))
# (10 + √N) / N^(1/2 + γ) → 0 (converged) (for any γ>0) as N → ∞
# (10 + √N は N^(1/2 + γ) と比べて高次元の無限小で、早く0に収束する)
# we write 10 + √N = o(N^(1/2 + γ))
a5(N) = 10 + sqrt(N)
Ninvλa5(N, λ) = a5(N) / N^(λ)
Nλ(N, λ) = N^λ
anim = @animate for N in 1:N_inf
p1 = plot(Nλ.(Vector(1:N), 2), markershape=:circle, label=L"N^{2}", xlabel=L"N", ylabel=L"N^\lambda, a_N" , ylims=(0, 50))
plot!(Nλ.(Vector(1:N), 1/2), markershape=:circle, label=L"N^{1/2}")
plot!(Nλ.(Vector(1:N), 0.1), markershape=:circle, label=L"N^{0.1}")
plot!(a5, Vector(1:N), markershape=:circle, xlabel=L"N", label=L"a_N = 10 + \sqrt{N}")
p2 = plot(Ninvλa5.(Vector(1:N), 2), markershape=:circle, label=latexstring(L"a_N / N^{2}", "is bounded"), xlabel=L"N", ylabel=L"N^{-\lambda}a_N")
plot!(Ninvλa5.(Vector(1:N), 1/2), markershape=:circle, label=latexstring(L"a_N / N^{1/2}", "is converged"))
plot!(Ninvλa5.(Vector(1:N), 0.1), markershape=:circle, label=latexstring(L"a_N / N^{0.1}", "is unbounded"))
plot(p1, p2, layout=(2, 1))
end
gif(anim, "5_landau_sqrt.gif", fps=60)
一方,
ちなみに,
次回は確率変数の数列の収束について見ていきます.
Reference
Wooldridge, J. M. (2010). Econometric analysis of cross section and panel data second edition. MIT press.
Discussion