Main Content

betalike

負のベータ対数尤度

構文

nlogL = betalike(params,data)
[nlogL,AVAR] = betalike(params,data)

説明

nlogL = betalike(params,data) は、ベクトル params で指定されたベータ パラメーター a および b と列ベクトル data で指定された観測値に対して、ベータ対数尤度関数の負数を返します。

data の要素は、ベータ分布が定義されている開区間 (0, 1) 内に存在していなければなりません。ただし、正確な 0 または 1 を含んでいるデータにベータ分布を当てはめることが必要な場合もあります。このようなデータの場合、ベータ尤度関数は境界がないため、標準的な最尤推定法は利用できません。この場合、betalike は、0 を sqrt(realmin) で左側打ち切りした値、1 を 1-eps/2 で右側打ち切りした値として扱うことにより 0 または 1 を組み込んで、修正した尤度を計算します。

また、[nlogL,AVAR] = betalike(params,data) は、params の値が最尤推定である場合にパラメーター推定の漸近的分散共分散行列である AVAR も返します。AVAR はフィッシャー情報行列の逆行列です。AVAR の対角要素は各パラメーターの漸近分散です。

関数 betalike は、ベータ分布の最尤推定を行うための関数です。尤度は、データ標本内のすべての要素が、互いに独立であると仮定しています。関数 betalike は、ベータ対数尤度関数に負の符号を付けたものを返すため、関数 fminsearch を使用して関数 betalike を最小にすることは、尤度を最大にすることと等しくなります。

この例は、関数 betafit の例の続きで、無作為に発生させた、ベータ分布するデータのベータ パラメーターを推定したものです。

r = betarnd(4,3,100,1);
[nlogl,AVAR] = betalike(betafit(r),r)
nlogl =

  -27.5996


AVAR =

    0.2783    0.1316
    0.1316    0.0867

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入