指数分布(exponential distribution)のモーメント母関数を計算するにあたって、モーメント母関数の変数$t$は指数分布のパラメータ$\lambda$によって定義域が定められます。当記事ではこれらをマクローリン級数の収束半径(radius of convergence)の観点から確認を行いました。
収束半径(radius of convergence)は多項式の形式で表されるべき級数に対して、級数が収束する際の多項式の変数の取りうる値の上限を表す概念です。当記事ではダランベールの収束判定法に基づいて、モーメント母関数の収束半径の計算式の導出を行いました。 当記事の作成にあたっては「数理統計学(共立出版)」の$4.5$節「積率母関数と特性関数」を主に参考にしました。
import numpy as np
import math
lamb = 2.
x = np.array([0, 1, 2, 3])
p = np.zeros(5)
for i in range(x.shape[0]):
p[i] = lamb**x[i] * np.e**(-lamb) / math.factorial(x[i])
p[-1] = 1-np.sum(p[:-1])
for i in range(x.shape[0]):
print("x: {:.0f}, prob: {:.3f}".format(i, p[i]))
print("x: {}, prob: {:.3f}".format("more than 4", p[-1]))
p2 = np.zeros(5)
for i in range(x.shape[0]):
p2[i] = estimated_lamb**x[i] * np.e**(-estimated_lamb) / math.factorial(x[i])
p2[-1] = 1-np.sum(p2[:-1])
for i in range(x.shape[0]):
print("x: {:.0f}, prob: {:.3f}".format(i, p2[i]))
print("x: {}, prob: {:.3f}".format("more than 4", p2[-1]))
combination_x, prob = {}, {}
for i in range(1*3,6*3+1,1):
combination_x[i], prob[i] = 0, 0
for i in range(6):
for j in range(6):
for k in range(6):
x = i+j+k+3
combination_x[x] += 1
prob[x] += 1.
for i in range(1*3,6*3+1,1):
prob[i] = prob[i]/6.**3
print("Combination x: {}".format(combination_x))
print("Prob: {}".format(prob))
n, m = 3, 6
def extend_dist(dist_dict, m):
new_dist_dict = {}
for i in range(dist_dict.keys()[0]+1,dist_dict.keys()[-1]+1+m):
new_dist_dict[i] = 0
for key in dist_dict.keys():
for i in range(m):
new_dist_dict[key+i+1] += dist_dict[key]/float(m)
return new_dist_dict
prob_init = {}
for i in range(m):
prob_init[i+1] = 1/float(m)
prob = prob_init
if n>1:
for i in range(n-1):
prob = extend_dist(prob, m)
print(prob)
import numpy as np
p_n = np.zeros([6])+1./6.
for i in range(6):
p_n[i] += np.sum(p_n[:i])/6.
print("p_{}: {:.3f}".format(i+1,p_n[i]))
for i in range(15):
p_n6 = (np.sum(p_n))/6.
p_n[:5] = p_n[1:]
p_n[5] = p_n6
print("p_{}: {:.3f}".format(i+6+1,p_n6))