確率統計Python計算(40)連続型全体未知パラメータの最大尤度推定

7319 ワード

(X 1,X 2,⋯̵,X n)(X_1,X_2,cdots,X_n)(X 1,X 2,⋯,Xn)は、全体X X Xからのサンプルであり、(x 1,x 2,⋯̵,x n)(x_1,x_2,cdots,x_n)(x 1,x x x 2,⋯,xn)は、サンプルの観測値である.既知のX X Xの分布であり、ここでm m個の未知パラメータを含むθ 1 , θ 2 , ⋯   , θ m\theta_1,\theta_2,\cdots,\theta_m θ1​,θ2​,⋯,θm,記θ = ( θ 1 , θ 2 , ⋯   , θ m )\theta=(\theta_1,\theta_2,\cdots,\theta_m) θ=(θ1​,θ2​,⋯,θm​).すなわち、X X Xが離散型である場合、分布則P(X=x k;θ ) = p ( x k ; θ ) P(X=x_k;\theta)=p(x_k;\theta) P(X=xk​;θ)=p(xk​;θ), k = 1 , 2 , ⋯ k=1,2,\cdots k=1,2,⋯.X X Xが連続型であれば、密度関数f(x;θ ) f(x;\theta) f(x;θ).サンプル(X 1,X 2,⋯̵,X n)(X_1,X_2,cdots,X_n)(X 1,X 2,⋯,Xn)はn n−次元ランダムベクトルであり、X 1,X 2,⋯̵,X n−X_1,X_2,\cdots,X_nX 1,X 2,⋯,Xnは独立して同分布である.X X Xが離散型である場合、上記の仮定によれば、(X 1,X 2,⋯̵,X n)(X_1,X_2,cdots,X_n)(X 1,X 2,⋯,Xn)の連合分布則はP(X 1=x 1,X 2=x 2,⋯̵,X n=x nである.θ ) = ∏ i = 1 n p ( x i ; θ ) P(X_1=x_1,X_2=x_2,\cdots,X_n=x_n;\theta)=\prod_{i=1}^{n}p(x_i;\theta) P(X1​=x1​,X2​=x2​,⋯,Xn​=xn​;θ)=i=1∏n​p(xi​;θ) X X Xが連続型であれば、(X 1,X 2,⋯̵,X n)(X_1,X_2,cdots,X_n)(X 1,X 2,⋯,Xn)の連合密度関数はf(x 1,x 2,⋯θ ) = ∏ i = 1 n f ( x i ; θ ) f(x_1,x_2,\cdots,x_n;\theta)=\prod_{i=1}^{n}f(x_i;\theta) f(x1​,x2​,⋯,xn​;θ)=i=1∏n​f(xi​;θ) 上記のP(X 1=x 1,X 2=x 2,⋯8201;,X n=xn;θ ) P(X_1=x_1,X_2=x_2,\cdots,X_n=x_n;\theta) P(X1​=x1​,X2​=x2​,⋯,Xn​=xn​;θ)およびf(x 1,x 2,⋯,x n;θ ) f(x_1,x_2,\cdots,x_n;\theta) f(x1​,x2​,⋯,xn​;θ)統一的にサンプルの尤度関数と呼ばれ、L(x 1,x 2,⋯8201;,x nと記す.θ ) = L ( x 1 , x 2 , ⋯   , x n ; θ 1 , θ 2 , ⋯   , θ m ) L(x_1,x_2,\cdots,x_n;\theta)=L(x_1,x_2,\cdots,x_n;\theta_1,\theta_2,\cdots,\theta_m) L(x1​,x2​,⋯,xn​;θ)=L(x1​,x2​,⋯,xn​;θ1​,θ2​,⋯,θm​). 全体パラメータθ = ( θ 1 , θ 2 , ⋯   , θ m )\theta=(\theta_1,\theta_2,\cdots,\theta_m) θ=(θ1​,θ2​,⋯,θm)の尤度関数L(x 1,x 2,⋯8201;,x n;θ ) L(x_1,x_2,\cdots,x_n;\theta) L(x1​,x2​,⋯,xn​;θ)で、θ 1 , θ 2 , ⋯   , θ m\theta_1,\theta_2,\cdots,\theta_m θ1​,θ2​,⋯,θmを変数とし、その他を定数とするとL(θ ) = L ( θ 1 , θ 2 , ⋯   , θ m ) L(\theta)=L(\theta_1,\theta_2,\cdots,\theta_m) L(θ)=L(θ1​,θ2​,⋯,θm​).X X Xが離散型であればΘ = { θ ∣ 0 < L ( θ ) < 1 }\Theta=\{\theta|0Θ={ θ∣0 0 }\Theta=\{\theta|L(\theta)>0\} Θ={ θ∣L(θ)>0}.尤度関数L(θ ) L(\theta) L(θ)最大(すなわち、(X 1,X 2,⋯̵,X n)(X_1,X_2,cdots,X_n)(X 1,X 2,⋯,Xn)の連合分布を(x 1,x 2,⋯̵,x n)(x_1,x_2,cdots,x_n)(x 1,x x 2,⋯,xn)において最も確率的に大きくする)θ\theta θの値θ ∧ = ( θ ∧ 1 , θ ∧ 2 , ⋯   , θ ∧ m )\stackrel{\wedge}{\theta}=(\stackrel{\wedge}{\theta}_1,\stackrel{\wedge}{\theta}_2,\cdots,\stackrel{\wedge}{\theta}_m) θ∧​=(θ∧​1​,θ∧​2​,⋯,θ∧​m​).すなわちL(θ ∧ ) = max ⁡ θ ∈ Θ { L ( θ ) } L(\stackrel{\wedge}{\theta})=\max\limits_{\theta\in\Theta}\{L(\theta)\} L(θ∧​)=θ∈Θmax​{ L(θ)} ここで、θ ∧ i\stackrel{\wedge}{\theta}_i θ∧i(i=1,2,⋯̵,m i=1,2,cdots,m i=1,2,⋯,m)は必ず(x 1,x 2,⋯̵,x n)(x_1,x_2,cdots,x_n)(x 1,x x x 2,⋯,xn)の関数であるθ ∧ i ( x 1 , x 2 , ⋯   , x n )\stackrel{\wedge}{\theta}_i(x_1,x_2,\cdots,x_n) θ∧i(x 1,x 2,⋯,xn)をパラメータと呼ぶθ i\theta_i θiの{heiti{最大尤度推定値}}です.そしてθ i ∧ ( X 1 , X 2 , ⋯   , X n )\stackrel{\wedge}{\theta_i}(X_1,X_2,\cdots,X_n) θi∧(X 1,X 2,⋯,Xn)をパラメータと呼ぶθ i\theta_i θi(i=1,2,⋯,m i=1,2,cdots,m i=1,2,⋯,m)の最大尤度推定量.既知分布タイプの連続型総体X X X X X Xにおける未知パラメータの最大尤度推定値を計算するために、このクラス分布を表すオブジェクトのfit関数を呼び出すことができ、その呼び出しインタフェースはfit(data)text{fit(data)}fit(data)であり、パラメータdataはサンプルデータを伝達し、分布したloc、scaleパラメータの最大尤度推定値を返す.loc,scaleと全体の推定対象パラメータとの対応関係から,推定対象パラメータの最大尤度計値を算出できる.例1全体X X~U(a,b)U(a,b)U(a,b)U,a a a,b bは未知とする.全体X X Xからの容量n=20 n=20 n=20 n=20の試料観測値は1.248,1.664,1.101,1.967,1.468,1.140,1.434,1.063,1.878,1.375 1.819,1.704,1.328,1.619,1.830,1.764,1.034,1.553,1.878,1.166 1.248,1.664,1.101,1.967,1.468,1.140,1.434,1.063,1.878,1.375\1.819,1.704,1.328,1.619,1.830,1.764,1.034,1.853,1.858,1.166 1.248,1.664,1.101,1.967,1.468,1.140,1.434,1.063,1.888,1.3751.819,1.704,1.328,1.619,1.830,1.764,1.034,1.858,166試算aa aおよびbの最大尤度計値.解:次のコードは、この例の計算を完了します.
import numpy as np                              #  numpy
from scipy.stats import uniform                 #  uniform
x=np.array([1.248, 1.664 ,1.101 ,1.967 ,1.468,  #        
            1.140, 1.434, 1.063, 1.878, 1.375,
            1.819, 1.704, 1.328, 1.619, 1.830,
            1.764, 1.034, 1.553, 1.878, 1.166])
l, s=uniform.fit(x)                             #loc,scale    
a=l                                             #a    
b=a+s                                           #b    
print('      a=%.4f, b=%.4f'%(a, b))

なお、7行目はuniform(2行目にインポート)のfit関数を呼び出し、均一分布を計算する最大尤度推定はlocとscaleの推定値のみを返す.プログラムを実行し、出力する
      a=1.0340, b=1.9670

ブログを書くのは容易ではありません.支持してください.もし本文を読んであなたに得られたら、いいね、コメント、コレクションをクリックしてください.支持してくれてありがとう.