ドキュメンテーションヘルプ センター
最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
最尤推定量の漸近共分散
acov = mlecov(params,data,'pdf',pdf)
acov = mlecov(params,data,'pdf',pdf,'cdf',cdf)
acov = mlecov(params,data,'logpdf',logpdf)
acov = mlecov(params,data,'logpdf',logpdf,'logsf',logsf)
acov = mlecov(params,data,'nloglf',nloglf)
acov = mlecov(___,Name,Value)
例
acov = mlecov(params,data,'pdf',pdf) は、カスタム確率密度関数 pdf で指定された分布に対して、パラメーターの最尤推定量の漸近共分散行列の近似を返します。
acov
params
data
pdf
mlecov は、観測された data から、最尤推定 params での対数尤度のヘッシアンへの有限差分近似を計算し、そのヘッセ行列の負の逆数を返します。
mlecov
acov = mlecov(params,data,'pdf',pdf,'cdf',cdf) は、カスタムな確率密度関数 pdf および累積分布関数 cdf によって指定された分布について acov を返します。
cdf
acov = mlecov(params,data,'logpdf',logpdf) は、カスタムな対数確率密度関数 logpdf によって指定された分布について acov を返します。
logpdf
acov = mlecov(params,data,'logpdf',logpdf,'logsf',logsf) は、カスタムな対数確率密度関数 logpdf およびカスタムな対数生存時間関数 logsf によって指定された分布について acov を返します。
logsf
acov = mlecov(params,data,'nloglf',nloglf) は、カスタムな負の対数尤度関数 nloglf によって指定された分布について acov を返します。
nloglf
acov = mlecov(___,Name,Value) は、前の構文の入力引数のいずれかと、名前と値のペアを使用して、オプションを指定します。たとえば、打ち切られたデータや観測値の頻度を指定できます。
Name,Value
すべて折りたたむ
標本データを読み込みます。
load carbig
ベクトル Weight には 406 台の自動車の重量が示されます。
Weight
MATLAB® エディターで、対数正規分布の確率密度関数 (pdf) を返す関数を作成します。現在の作業フォルダーにファイルを lognormpdf.m として保存します。
lognormpdf.m
function newpdf = lognormpdf(data,mu,sigma) newpdf = exp((-(log(data)-mu).^2)/(2*sigma^2))./(data*sigma*sqrt(2*pi));
カスタム定義の分布のパラメーター mu と sigma を推定します。
mu
sigma
phat = mle(Weight,'pdf',@lognormpdf,'start',[4.5 0.3])
phat = 7.9600 0.2804
パラメーター推定の近似共分散行列を計算します。
acov = mlecov(phat,Weight,'pdf',@lognormpdf)
acov = 1.0e-03 * 0.1937 -0.0000 -0.0000 0.0968
推定値の標準誤差を推定します。
se = sqrt(diag(acov))
se = 0.0139 0.0098
mu と sigma の推定値の標準誤差はそれぞれ 0.0139 と 0.0098 です。
MATLAB エディターで、ベータ分布の対数確率密度関数を返す関数を作成します。現在の作業フォルダーにファイルを betalogpdf.m として保存します。
betalogpdf.m
function logpdf = betalogpdf(x,a,b) logpdf = (a-1)*log(x)+(b-1)*log(1-x)-betaln(a,b);
パラメーター 1.23 および 3.45 をもつベータ分布から標本データを生成し、シミュレーションを実行したデータを使用してパラメーターを推定します。
rng('default') x = betarnd(1.23,3.45,25,1); phat = mle(x,'dist','beta')
phat = 1.1213 2.7182
acov = mlecov(phat,x,'logpdf',@betalogpdf)
acov = 0.0810 0.1646 0.1646 0.6074
load('readmissiontimes.mat');
この標本データには、100 人の患者の再入院時間を示す ReadmissionTime が含まれています。列ベクトル Censored には各患者の打ち切り情報が含まれ、1 は打ち切られた観測を示し、0 は正確な再入院時間が観測されることを示します。このデータは、シミュレーションされたものです。
ReadmissionTime
Censored
カスタム対数確率密度および生存時間関数を定義します。
custlogpdf = @(data,lambda,k) log(k)-k*log(lambda)... +(k-1)*log(data)-(data/lambda).^k; custlogsf = @(data,lambda,k) -(data/lambda).^k;
打ち切れらた標本データのカスタム分布のパラメーター lambda および k を推定します。
lambda
k
phat = mle(ReadmissionTime,'logpdf',custlogpdf,... 'logsf',custlogsf,'start',[1,0.75],'Censoring',Censored)
phat = 1×2 9.2090 1.4223
カスタム定義の分布のスケール パラメーターと形状パラメーターはそれぞれ 9.2090 と 1.4223 です。
acov = mlecov(phat,ReadmissionTime,... 'logpdf',custlogpdf,'logsf',custlogsf,'Censoring',Censored)
acov = 2×2 0.5653 0.0102 0.0102 0.0163
この標本データには、100 人の患者の再入院時間を示す ReadmissionTime が含まれています。このデータは、シミュレーションされたものです。
負の対数尤度関数を定義します。
custnloglf = @(lambda,data,cens,freq) -length(data)*log(lambda)... + nansum(lambda*data);
定義された分布のパラメーターを推定します。
phat = mle(ReadmissionTime,'nloglf',custnloglf,'start',0.05)
phat = 0.1462
パラメーター推定の分散を計算します。
acov = mlecov(phat,ReadmissionTime,'nloglf',custnloglf)
acov = 2.1374e-04
標準誤差を計算します。
sqrt(acov)
ans = 0.0146
パラメーター推定。スカラー値またはスカラー値のベクトルとして指定します。これらのパラメーター推定は最尤推定でなければなりません。たとえば、mle で返されるパラメーター推定を指定できます。
mle
データ型: single | double
single
double
mle で分布パラメーターの推定に使用する標本データ。ベクトルとして指定します。
カスタム確率分布関数。@ を使用して作成された関数ハンドルとして指定します。
@
このカスタム関数は、ベクトル data と 1 つまたは複数の個別の分布パラメーターを入力パラメーターとして受け入れ、確率密度値のベクトルを返します。
たとえば、カスタム確率密度関数の名前が newpdf の場合、mlecov で次のように関数ハンドルを指定することができます。
newpdf
例: @newpdf
@newpdf
データ型: function_handle
function_handle
カスタム累積分布関数。@ を使用して作成された関数ハンドルとして指定します。
このカスタム関数は、ベクトル data と 1 つまたは複数の個別の分布パラメーターを入力パラメーターとして受け入れ、累積確率値のベクトルを返します。
データが打ち切られ、'Censoring' 名前と値のペア引数を使用している場合は、cdf を pdf と共に定義しなければなりません。'Censoring' が存在しない場合、pdf を使用しているときに cdf を指定する必要はありません。
'Censoring'
たとえば、カスタム累積分布関数の名前が newcdf の場合、mlecov で次のように関数ハンドルを指定することができます。
newcdf
例: @newcdf
@newcdf
カスタム対数確率密度関数。@ を使用して作成された関数ハンドルとして指定します。
このカスタム関数は、ベクトル data と 1 つまたは複数の個別の分布パラメーターを入力パラメーターとして受け入れ、対数確率値のベクトルを返します。
たとえば、カスタム対数確率密度関数の名前が customlogpdf の場合、mlecov で次のように関数ハンドルを指定することができます。
customlogpdf
例: @customlogpdf
@customlogpdf
カスタム対数生存時間関数。@ を使用して作成された関数ハンドルとして指定します。
このカスタム関数は、ベクトル data と 1 つまたは複数の個別の分布パラメーターを入力パラメーターとして受け入れ、対数生存確率値のベクトルを返します。
データが打ち切られ、'Censoring' 名前と値のペア引数を使用している場合は、logsf を logpdf と共に定義しなければなりません。'Censoring' が存在しない場合、logpdf を使用しているときに logsf を指定する必要はありません。
たとえば、カスタム対数生存時間関数の名前が logsurvival の場合、mlecov で次のように関数ハンドルを指定することができます。
logsurvival
例: @logsurvival
@logsurvival
カスタムの負の対数尤度関数。@ を使用して作成された関数ハンドルとして指定します。
このカスタム関数は、次の入力引数を受け入れます。
cens
freq
nloglf は、'Censoring' または 'Frequency' の名前と値のペア引数を使用しなくても、4 つの引数すべてを受け入れなければなりません。'nloglf' を作成して、その場合の引数 cens と freq を無視できます。
'Frequency'
'nloglf'
nloglf はスカラーの負の対数尤度値を返し、オプションで負の対数尤度勾配ベクトル ('Options' の 'GradObj' フィールドを参照) を返します。
'Options'
'GradObj'
カスタムの負の対数尤度関数の名前が negloglik の場合、mlecov で次のように関数ハンドルを指定することができます。
negloglik
例: @negloglik
@negloglik
オプションの Name,Value 引数のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。
Name
Value
Name1,Value1,...,NameN,ValueN
'Censoring',cens,'Options',opt
opt
打ち切りのインジケーター。'Censoring' と、data と同じサイズの論理値配列で構成されるコンマ区切りのペアで指定します。右側打ち切りの観測値の場合は 1、完全に観測された観測値の場合は 0 を使用します。既定の設定では、すべての観測値が完全に観測されます。
打ち切りデータの場合は、cdf と pdf または logsf と logpdf を指定するか、打ち切りで考慮する nloglf を定義しなければなりません。
たとえば、打ち切りデータ情報が Censored という名前のバイナリ配列内にある場合、次のように打ち切りデータを指定することができます。
例: 'Censoring',Censored
'Censoring',Censored
データ型: logical
logical
観測の頻度。'Frequency' と、非負の整数カウントを含む data と同じサイズの配列で構成されるコンマ区切りのペアで指定します。既定の設定では、data の 1 つの要素に対して 1 つの観測値です。
たとえば、観測頻度が Freq という名前の配列に格納される場合、次のように頻度を指定できます。
Freq
例: 'Frequency',Freq
'Frequency',Freq
有限差分ヘッセ計算の数値オプション。'Options' と、statset で返される構造体で構成されるコンマ区切りのペアとして指定します。
statset
新しい名前で設定したオプションを名前と値のペア引数で使用できます。適用可能な statset パラメーターは以下のとおりです。
既定値は 'off' です。
'off'
nloglf 入力引数で与えられた関数が 2 番目の出力として負の対数尤度の勾配ベクトルを返すことができるかどうかを示す、'on' か 'off' の文字列です。
'on'
'DerivStep'
既定値は eps^(1/4) です。
eps^(1/4)
ヘッセ計算の有限差分で使われる相対ステップ サイズ。スカラーまたは params と同じサイズです。'GradObj' が 'on' の場合、既定値よりも小さい値が適切です。
例: 'Options',statset('mlecov')
'Options',statset('mlecov')
データ型: struct
struct
漸近共分散行列の近似。p 行 p 列の行列として返されます。ここで p は params のパラメーターの数です。
生存時間関数とは、時間の関数としての生存の確率です。これは生存時間関数とも呼ばれます。この関数は、個体の生存時間が特定の値を超える確率を示します。累積分布関数 F(t) は、生存時間が特定の時点以下である確率で、連続分布の生存時間関数 S(t) は、累積分布関数の補数です。 S(t) = 1 – F(t).
この例の変更されたバージョンがシステム上にあります。代わりにこのバージョンを開きますか?
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office