ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

normfit

正規パラメーターの推定

構文

[muHat,sigmaHat] = normfit(x)
[muHat,sigmaHat,muCI,sigmaCI] = normfit(x)
[muHat,sigmaHat,muCI,sigmaCI] = normfit(x,alpha)
[___] = normfit(x,alpha,censoring)
[___] = normfit(x,alpha,censoring,freq)
[___] = normfit(x,alpha,censoring,freq,options)

説明

[muHat,sigmaHat] = normfit(x) は、x 内の標本データに対して正規分布の推定パラメーター (平均 muHat と標準偏差 sigmaHat) を返します。muHat は標本平均、sigmaHat は分散の不偏推定量の平方根です。

[muHat,sigmaHat,muCI,sigmaCI] = normfit(x) は、さらに、平均および標準偏差のパラメーター推定に対する 95% 信頼区間をそれぞれ配列 muCI および sigmaCI に返します。

[muHat,sigmaHat,muCI,sigmaCI] = normfit(x,alpha) は、信頼区間の信頼度が 100(1–alpha)% であることを指定します。

[___] = normfit(x,alpha,censoring) は、x 内の各値を右側打ち切りするかどうかを指定します。右側打ち切りの観測値を 1、完全に観測される観測値を 0 で示す logical ベクトル censoring を使用します。打ち切りを行う場合、muHatsigmaHat は最尤推定量 (MLE) です。

[___] = normfit(x,alpha,censoring,freq) は、観測値の頻度または重みを指定します。

[___] = normfit(x,alpha,censoring,freq,options) は、打ち切りを伴う MLE の計算に使用する反復アルゴリズム normfit の最適化オプションを指定します。options を作成するには、関数 statset を使用します。

alphacensoring および freq について [] を渡すと、既定値を使用できます。

すべて折りたたむ

平均 3 および標準偏差 5 をもつ正規分布から 1000 個の正規乱数を生成します。

rng('default') % For reproducibility
x = normrnd(3,5,[1000,1]);

パラメーター推定と 99% 信頼区間を求めます。

[muHat,sigmaHat,muCI,sigmaCI] = normfit(x,0.01)
muHat = 2.8368
sigmaHat = 4.9948
muCI = 2×1

    2.4292
    3.2445

sigmaCI = 2×1

    4.7218
    5.2989

muHat は標本平均、sigmaHat は分散の不偏推定量の平方根です。muCIsigmaCI は、平均および標準偏差のパラメーターに対する 99% 信頼区間です。1 行目は下限、2 行目は上限です。

normfit を使用して、打ち切りがあるデータセットの MLE を求めます。statset を使用して、打ち切られたデータの MLE を計算するために normfit で使用する反復アルゴリズムのオプションを指定してから、再度 MLE を求めます。

標本データを読み込みます。

load lightbulb

データの 1 列目には、2 種類の電球の寿命 (時間単位) が含まれています。2 列目には、電球が蛍光灯と白熱灯のどちらであるかを示すバイナリ変数が含まれています。1 は電球が蛍光灯であることを、0 は白熱灯であることを示します。3 列目には打ち切り情報が含まれます。ここで、0 は電球が故障するまで観測されることを示し、1 はアイテム (電球) が打ち切られることを示します。

蛍光灯電球のインデックスを求めます。

idx = find(lightbulb(:,2) == 0);

寿命が正規分布に従うと仮定し、正規分布のパラメーターの MLE を求めます。normfit の 2 番目の入力引数では、信頼度を指定します。[] を渡して、既定値 0.05 を使用します。3 番目の入力引数では、打ち切り情報を指定します。

censoring = lightbulb(idx,3) == 1;
[muHat1,sigmaHat1] = normfit(lightbulb(idx,1),[],censoring)
muHat1 = 9.4966e+03
sigmaHat1 = 3.0640e+03

正規分布のパラメーターを推定するために関数 normfit が使用する既定のアルゴリズム パラメーターを表示します。

statset('normfit')
ans = struct with fields:
          Display: 'off'
      MaxFunEvals: 200
          MaxIter: 100
           TolBnd: 1.0000e-06
           TolFun: 1.0000e-08
       TolTypeFun: []
             TolX: 1.0000e-08
         TolTypeX: []
          GradObj: []
         Jacobian: []
        DerivStep: []
      FunValCheck: []
           Robust: []
     RobustWgtFun: []
           WgtFun: []
             Tune: []
      UseParallel: []
    UseSubstreams: []
          Streams: {}
        OutputFcn: []

異なる名前でオプションを保存します。結果の表示方法 Display と目的関数の終了許容誤差 TolFun を変更します。

options = statset('normfit');
options.Display = 'final';
options.TolFun = 1e-10;

または、関数 statset の名前と値のペアの引数を使用してアルゴリズム パラメーターを指定できます。

options = statset('Display','final','TolFun',1e-10);

新しいアルゴリズム パラメーターで MLE を求めます。

[muHat2,sigmaHat2] = normfit(lightbulb(idx,1),[],censoring,[],options)
Successful convergence: Norm of gradient less than OPTIONS.TolFun
muHat2 = 9.4966e+03
sigmaHat2 = 3.0640e+03

normfit は、最後の反復に関するレポートを表示します。

関数 normfit は、打ち切りを行わずに標本平均と分散の不偏推定量の平方根を求めます。標本平均は平均パラメーターの MLE に等しくなりますが、分散の不偏推定量の平方根は標準偏差パラメーターの MLE に等しくなりません。

normfit を使用して正規分布のパラメーターを求め、MLE に変換し、normlike を使用して推定値の負の対数尤度を比較します。

標準正規分布から 100 個の正規乱数を生成します。

rng('default') % For reproducibility
n = 100;
x = normrnd(0,1,[n,1]);

標本平均と分散の不偏推定量の平方根を求めます。

[muHat,sigmaHat] = normfit(x)
muHat = 0.1231
sigmaHat = 1.1624

分散の不偏推定量の平方根を標準偏差パラメーターの MLE に変換します。

sigmaHat_MLE = sqrt((n-1)/n)*sigmaHat
sigmaHat_MLE = 1.1566

n が大きい場合、sigmaHatsigmaHat_MLE の差は無視できます。

または、関数 mle を使用して MLE を求めることができます。

phat = mle(x)
phat = 1×2

    0.1231    1.1566

phat(1)phat(2) はそれぞれ、平均および標準偏差パラメーターの MLE です。

関数 normlike を使用して、MLE の対数尤度 (muHatsigmaHat_MLE) が不偏推定量の対数尤度 (muHatsigmaHat) より大きいことを確認します。

logL = -normlike([muHat,sigmaHat],x)
logL = -156.4424
logL_MLE = -normlike([muHat,sigmaHat_MLE],x)
logL_MLE = -156.4399

正規分布パラメーターの最尤推定量 (MLE) を求めてから、対応する cdf 値の信頼区間を求めます。

平均 5 および標準偏差 2 をもつ正規分布から 1000 個の正規乱数を生成します。

rng('default') % For reproducibility
n = 1000; % Number of samples
x = normrnd(5,2,n,1);

normfit を使用して、平均および標準偏差という分布パラメーターを推定します。

[muHat,sigmaHat] = normfit(x)
muHat = 4.9347
sigmaHat = 1.9979

打ち切りはなく、muHat は標本平均、sigmaHat は分散の不偏推定量の平方根です。muHat は平均パラメーターの MLE と等しくなっていますが、sigmaHat は標準偏差パラメーターの MLE と等しくなっていません。sigmaHat を MLE に変換します。

sigmaHat = sqrt((n-1)/n)*sigmaHat
sigmaHat = 1.9969

normlike を使用して、分布パラメーターの共分散を推定します。関数 normlike は、MLE がその MLE の推定に使用された標本と共に渡された場合、漸近共分散行列に対する近似を返します。

[~,pCov] = normlike([muHat,sigmaHat],x)
pCov = 2×2

    0.0040   -0.0000
   -0.0000    0.0020

ゼロにおける cdf の値およびその 95% 信頼区間を求めます。

[p,pLo,pUp] = normcdf(0,muHat,sigmaHat,pCov)
p = 0.0067
pLo = 0.0047
pUp = 0.0095

p は、パラメーター muHat および sigmaHat をもつ正規分布を使用した cdf の値です。区間 [pLo,pUp] は、0 で評価した cdf の 95% 信頼区間であり、pCov を使用した場合の muHat および sigmaHat の不確実性を考慮しています。95% 信頼区間は、[pLo,pUp] が真の cdf 値を含む確率が 0.95 であることを意味します。

入力引数

すべて折りたたむ

標本データ。ベクトルまたは行列を指定します。

censoring または freq を指定する場合、x はベクトルでなければなりません。

データ型: single | double

信頼区間の信頼度。範囲 (0,1) のスカラーまたは各要素がその範囲にあるベクトルを指定します。信頼度は 100(1–alpha)% です。alpha は、真の値が信頼区間に含まれない確率です。

alpha がサイズ m のベクトルである場合、muCIsigmaCI は 2 行 m 列の行列になります。1 行目と 2 行目はそれぞれ、信頼区間の下限と上限に対応します。

例: 0.01

データ型: single | double

x 内の各値の打ち切りのインジケーター。x と同じサイズの logical ベクトルを指定します。右側打ち切りの観測値については 1、完全に観測される観測値については 0 を使用します。

既定は、すべての観測値が完全に観測されることを示す 0 の配列です。

データ型: logical

観測値の頻度または重み。x と同じサイズの非負のベクトルを指定します。通常、入力引数 freq には x 内の対応する要素に対する非負の整数カウントを含めますが、任意の非負値を含めることができます。

打ち切りがあるデータセットについて平均と標準偏差の重み付き MLE を取得するには、x 内の観測値の個数に対して正規化した観測値の重みを指定します。

既定は、x の各要素に対して観測値が 1 つずつあることを示す、1 の配列です。

データ型: single | double

最適化オプション。構造体を指定します。options は、打ち切られたデータの MLE を計算するために normfit が使用する反復アルゴリズムの制御パラメーターを決定します。

options を作成するには、関数 statset を使用するか、次の表に記載されているフィールドと値が含まれている構造体配列を作成します。

フィールド名既定値
Display

アルゴリズムで表示される情報量。

  • 'off' — 何の情報も表示しません。

  • 'final' — 最終出力を表示します。

'off'
MaxFunEvals

許容される目的関数評価の最大回数。正の整数を指定します。

200
MaxIter

反復の最大許容回数。正の整数。

100
TolBnd

sigmaHat の下限。正のスカラーを指定します。

muHatsigmaHat の範囲はそれぞれ [-Inf,Inf] および [TolBnd,Inf] です。

1e-6
TolFun

目的関数の値の終了許容誤差。正のスカラーを指定します。

1e-8
TolX

パラメーターの終了許容誤差。正のスカラーを指定します。

1e-8

コマンド ウィンドウで statset('normfit') と入力して、normfit が構造体 options で受け入れるフィールドの名前と既定値を表示することもできます。

例: statset('Display','final','MaxIter',1000) は、反復アルゴリズムの結果の最終情報を表示するよう指定し、許容される最大反復回数を 1000 に変更します。

データ型: 構造体

出力引数

すべて折りたたむ

正規分布の平均パラメーターの推定値。スカラーまたはベクトルとして返されます。

  • 打ち切りがない場合、muHat は標本平均です。

  • 打ち切りがある場合、muHat は MLE です。重み付き MLE を計算するには、freq を使用して観測値の重みを指定します。

正規分布の標準偏差パラメーターの推定値。スカラーまたはベクトルとして返されます。

  • 打ち切りがない場合、sigmaHat は分散の不偏推定量の平方根です。打ち切りがない場合の MLE を計算するには、関数 mle を使用します。

  • 打ち切りがある場合、sigmaHat は MLE です。重み付き MLE を計算するには、freq を使用して観測値の重みを指定します。

正規分布の平均パラメーターの信頼区間。100(1–alpha)% 信頼区間の下限と上限が格納されている 2 行 1 列の列ベクトルまたは 2 行 m 列の行列として返されます。m は alpha 内の値の個数です。

正規分布の標準偏差パラメーターの信頼区間。100(1–alpha)% 信頼区間の下限と上限が格納されている 2 行 1 列の列ベクトルまたは 2 行 m 列の行列として返されます。m は alpha 内の値の個数です。

アルゴリズム

normfit は、信頼区間を計算するため、打ち切られていないデータについては厳密法を、打ち切られたデータについては Wald 法を使用します。厳密法では、t 分布とカイ二乗分布に基づいて、打ち切られていない標本を正確にカバーします。

代替機能

normfit は正規分布専用の関数です。Statistics and Machine Learning Toolbox™ には、さまざまな確率分布をサポートする汎用関数 mlefitdist および paramciDistribution Fitter アプリもあります。

  • mle は、さまざまな確率分布のパラメーターについて MLE と信頼区間を返します。確率分布名またはカスタム密度関数を指定できます。

  • 関数 fitdist または Distribution Fitter アプリを使用して分布をデータにあてはめることにより、NormalDistribution 確率分布オブジェクトを作成します。オブジェクト プロパティ mu および sigma にはパラメーター推定が格納されます。パラメーター推定の信頼区間を取得するには、オブジェクトを paramci に渡します。

参照

[1] Evans, M., N. Hastings, and B. Peacock. Statistical Distributions. 2nd ed. Hoboken, NJ: John Wiley & Sons, Inc., 1993.

[2] Lawless, J. F. Statistical Models and Methods for Lifetime Data. Hoboken, NJ: Wiley-Interscience, 1982.

[3] Meeker, W. Q., and L. A. Escobar. Statistical Methods for Reliability Data. Hoboken, NJ: John Wiley & Sons, Inc., 1998.

拡張機能

R2006a より前に導入