2

丸め込みによる逐次平均の誤差について

38
0
$$\newcommand{Hom}[0]{\mathrm{Hom}} \newcommand{id}[0]{\mathrm{id}} \newcommand{ilim}[1]{\displaystyle \lim_{\stackrel{\longrightarrow}{#1}}} \newcommand{qinteg}[0]{\displaystyle \:\cancel{^{}}\!\!\!\:\:\:\llap{\int}} \newcommand{spec}[0]{\mathrm{spec}} $$

$a_1,\dots a_n$の平均$S_n=\frac{1}{n} \sum_{k=1}^n a_k$には,$$S_1=a_1, S_{n+1}=\frac{nS_n+a_{n+1}}{n+1}$$という漸化式でも求めることができます.しかし,割る時に整数に丸め込みを行う,すなわち小数点以下を切り捨てた場合,誤差はどのようになるのでしょうか.

問題

正確に述べると次のようになります.

$a$を正の整数とする.
確率空間$(\Omega, \mathcal{F}, P)$上の独立同分布な確率変数列$\{X_n\}_{n=1}^{\infty}$があり,各$X_n$は有限集合$\{-a, -(a-1), \dots, 0, \dots, a-1, a\}$上の離散一様分布に従うものとする.
確率変数列$\{S_n\}_{n=1}^{\infty}$および$\{S'_n\}_{n=1}^{\infty}$を次のように定義する.

  1. $S_n = \left\lfloor \frac{1}{n} \sum_{k=1}^n X_k \right\rfloor$
  2. $S'_1 = X_1$とし,$n \ge 1$に対して漸化式$$S'_{n+1} = \left\lfloor \frac{n S'_n + X_{n+1}}{n+1} \right\rfloor$$
    によって定める.

ただし,$\lfloor x \rfloor$$x$以下の最大の整数を表す床関数とする.
この時,以下の問いに答えよ.

  1. $S'_n$$n\rightarrow\infty$$-a$に概収束することを示せ.
  2. 概収束の意味で以下の2つの等式が成り立つことを示せ.$$\limsup_{n \to \infty} |S_n - S'_n| = a$$ $$\liminf_{n \to \infty} |S_n - S'_n| = a - 1$$

是非考えてみてください.ヒントは(1)はボレル・カンテリの第2補題を使い,(2)は大数の強法則とLaw of the Iterated Logarithmを使います.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

解答

(1)

まず明らかに$n \ge 2a$の時,$-a\leq S'_{n+1} \leq S'_{n}$である.
$A_n=\{\omega \in \Omega \mid X_n(\omega) = -a\}$とおく. $X_n$は離散一様分布だったので,事象の列 $\{A_n\}$ は互いに独立であり,$P(A_n)= \frac{1}{2a+1}$ゆえ,$\sum_{n=1}^{\infty} P(A_n) = \infty$である.よってボレル・カンテリの第2補題より,$P(\limsup_{n \to \infty} A_n)=1$である.
任意に$\omega\in \limsup_{n \to \infty} A_n$を固定する.ここで,$S'_n(\omega) > -a$と仮定する.この時任意の$N\in \mathbb{N}$に対して,ある$k > N$が存在して,
\begin{align} S'_{k+1}(\omega) & = \left\lfloor S'_k(\omega) + \frac{X_{k}(\omega) - S'_k(\omega)}{k+1} \right\rfloor \\ & = \left\lfloor S'_k(\omega) + \frac{-a - S'_k(\omega)}{k+1} \right\rfloor <\left\lfloor S'_k(\omega) \right\rfloor= S'_k(\omega) \end{align}
が成立する.しかし,$S'_n(\omega)+a$が自然数であることに矛盾する.よって$S'_m(\omega) =-a$となる$m$が存在する.以上より
$$\limsup_{n \to \infty} A_n\subset\{\omega \in \Omega \mid\lim_{n \to \infty}S'_n(\omega) =-a\} $$
なので,$\lim_{n \to \infty} S'_n = -a \text{ a.s.}$である.

(2)

(1)より,ある確率1の事象$\Omega_1 \subset \Omega$が存在して,任意の$\omega \in \Omega_1$に対し,ある自然数$N_1(\omega)$が存在して,すべての$n \ge N_1(\omega)$$S'_n(\omega) = -a$が成り立つ.
また,大数の強法則より,ある確率1の事象$\Omega_2 \subset \Omega$が存在して,任意の$\omega \in \Omega_2$に対してある自然数$N_2(\omega)$が存在し,$n \ge N_2(\omega)$ならば$\left| \frac{1}{n} \sum_{k=1}^n X_k(\omega) \right| < 1$である.特にこの時$S_n\in\{-1,0\}$である.
さらにLaw of the Iterated Logarithmから,$X_n$の分散を$\sigma^2 > 0$とすると,ある確率1の事象$\Omega_3 \subset \Omega$が存在して,任意の$\omega \in \Omega_3$および任意の自然数$N$に対し,ある$k \ge N$が存在し,
$$\sum_{i=1}^{k} X_i(\omega)> \frac{\sigma}{2}\sqrt{2k\log\log k}>0$$
を満たす.すなわち,$\frac{1}{k}\sum_{i=1}^{k} X_i(\omega)>0$が成立する.
ここで,確率1の共通部分事象$\Omega_0 = \Omega_1 \cap \Omega_2 \cap \Omega_3$を考え,任意に$\omega \in \Omega_0$を固定する.
$N_0(\omega) = \max\{N_1(\omega), N_2(\omega)\}$とおき,任意に自然数$N$を取ると,$\frac{1}{M}\sum_{i=1}^{M} X_i(\omega)>0$を満たす$M \ge \max\{N, N_0(\omega)\}$が存在する.
この時,$S_M(\omega) \in \{-1, 0\}$だったため$S_M(\omega) = 0$となる.以上より,$\limsup_{n \to \infty} S_n(\omega) = 0$が分かる.同様に$\liminf_{n \to \infty} S_n(\omega) = -1$も成り立つ.
従って
$$\limsup_{n \to \infty} |S_n(\omega) - S'_n(\omega)| = a$$ $$\liminf_{n \to \infty} |S_n(\omega) - S'_n(\omega)| = a - 1$$
であり,$P(\Omega_0)=1$であることから,結論が分かる.

最後に

プログラミング等で平均値を求める際,漸化式による計算方法はオーバーフローを起こしませんが,丸め込みが起きた時に誤差が出てくることが分かります.さらに,

  1. 小数点以下を切り捨てるのではなく,四捨五入ならどうなるのか.
  2. 固定小数点数ではなく,浮動小数点数ではどうなるのか.

という問題も考えれます.是非とも考えてみてください.

投稿日:16日前
更新日:16日前
数学の力で現場を変える アルゴリズムエンジニア募集 - Mathlog served by OptHub

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

「ツクツクボーシ、ツクツクボーシ」 ほら、カエルが鳴いてるよ 春の訪れを感じながら 落ち葉で黄色くなった道を歩いてく

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中