Main Content

copulafit

データへのコピュラの当てはめ

説明

rhohat = copulafit('Gaussian',u) は、u にデータが指定されると、ガウス型コピュラに対する線形相関パラメーターの行列を推定する rhohat を返します。

[rhohat,nuhat] = copulafit('t',u) は、u 内のデータに対して、t コピュラに対する線形相関パラメーターの行列を推定する rhohat と、自由度パラメーターを推定する nuhat を返します。

[rhohat,nuhat,nuci] = copulafit('t',u) は、nuhat の推定自由度に対して近似した 95% 信頼区間 nuci も返します。

paramhat = copulafit(family,u) は、u にデータが指定されると、family で指定されたタイプの二変量アルキメデス型コピュラに対するコピュラ パラメーターを推定する paramhat を返します。

[paramhat,paramci] = copulafit(family,u) は、コピュラ パラメーターの推定値 paramhat で近似した 95% 信頼区間 paramci も返します。

___ = copulafit(___,Name,Value) は、1 つ以上の Name,Value ペア引数で指定された追加オプションを使用して、前の構文のいずれかを返します。たとえば、計算する信頼区間を指定したり、オプションの構造体を使用して反復パラメーター推定アルゴリズムの制御パラメーターを指定できます。

すべて折りたたむ

シミュレートされた株式収益データを読み込み、プロットします。

load stockreturns
x = stocks(:,1);
y = stocks(:,2);

figure;
scatterhist(x,y)

累積分布関数のカーネル推定器を使って、データをコピュラ スケール (単位正方形) に変換します。

u = ksdensity(x,x,'function','cdf');
v = ksdensity(y,y,'function','cdf');

figure;
scatterhist(u,v)
xlabel('u')
ylabel('v')

データに t コピュラを当てはめます。

rng default  % For reproducibility
[Rho,nu] = copulafit('t',[u v],'Method','ApproximateML')
Rho =

    1.0000    0.7220
    0.7220    1.0000


nu =

   3.2727e+06

t コピュラから無作為標本を生成します。

r = copularnd('t',Rho,nu,1000);
u1 = r(:,1);
v1 = r(:,2);

figure;
scatterhist(u1,v1)
xlabel('u')
ylabel('v')
set(get(gca,'children'),'marker','.')

無作為標本を変換して、データのオリジナルのスケールに戻します。

x1 = ksdensity(x,u1,'function','icdf');
y1 = ksdensity(y,v1,'function','icdf');

figure;
scatterhist(x1,y1)
set(get(gca,'children'),'marker','.')

入力引数

すべて折りたたむ

コピュラの値。(0,1) の範囲にあるスカラー値の行列を指定します。u が n 行 p 列の行列である場合、それぞれの値は p 次元の単位超立方体における n 個の点を表します。u が n 行 2 列 の行列である場合、それぞれの値は単位正方形における n 個の点を表します。

二変量アルキメデス型コピュラ タイプ ('Clayton''Frank' または 'Gumbel') を指定する場合、u は n 行 2 列の行列でなければなりません。

データ型: single | double

二変量アルキメデス型コピュラ族。次のいずれかを指定します。

'Clayton'クレイトン コピュラ
'Frank'フランク・コピュラ
'Gumbel'ガンベル・コピュラ

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: 'Alpha',0.01,'Method','ApproximateML' の場合、推定したコピュラ パラメーターについて 99% 信頼区間を計算し、近似法を使用してコピュラを近似させます。

信頼区間の有意水準。'Alpha' と (0,1) の範囲にあるスカラー値をコンマ区切りのペアとして指定します。copulafit は、近似した 100 × (1–Alpha)% 信頼区間を返します。

例: 'Alpha',0.01

データ型: single | double

t コピュラの近似方式。'Method''ML' または 'ApproximateML' のいずれかをコンマ区切りのペアとして指定します。

'ApproximateML' を指定した場合、copulafit は自由度パラメーターに対してプロファイル対数尤度を近似する目的関数を最大化することにより、大規模な標本について t コピュラを近似させます [1]。この方式は最尤法 ('ML') より大幅に高速になることがありますが、標本のサイズが十分に大きくない場合は推定値と信頼限界が正確ではなくなる可能性があります。

例: 'Method','ApproximateML'

制御パラメーターの仕様。'Options'statset で作成したオプションの構造体をコンマ区切りのペアとして指定します。copulafit で使用するフィールドと既定値を調べるには、コマンド プロンプトで「statset('copulafit')」と入力します。

コピュラ タイプとして 'Gaussian' を指定した場合、この名前と値のペアは適用されません。

データ型: struct

出力引数

すべて折りたたむ

u のデータに基づいて近似させたガウス型コピュラの推定相関パラメーター。スカラー値の行列として返されます。

近似させた t コピュラの推定自由度パラメーター。スカラー値として返されます。

自由度パラメーターに対する近似信頼区間。1 行 2 列のスカラー値の行列として返されます。1 列目には下限が、2 列目には上限が含まれています。既定では、copulafit は近似した 95% 信頼区間を返します。名前と値のペア 'Alpha' を使用すると、異なる信頼区間を指定できます。

近似させたアルキメデス型コピュラの推定コピュラ パラメーター。スカラー値として返されます。

コピュラ パラメーターに対する近似信頼区間。1 行 2 列のスカラー値の行列として返されます。1 列目には下限が、2 列目には上限が含まれています。既定では、copulafit は近似した 95% 信頼区間を返します。名前と値のペア 'Alpha' を使用すると、異なる信頼区間を指定できます。

アルゴリズム

既定の設定では、copulafit は最尤法を使用してコピュラを u に当てはめます。周辺累積分布関数のパラメトリック推定によって単位超立方体に変換したデータが u に含まれている場合、これは "Inference Functions for Margins (IFM)" 法と呼ばれます。経験的累積分布関数 (ecdf 参照) によって変換されたデータが u に含まれている場合、これは "正準最尤法" と呼ばれます。

参照

[1] Bouyé, E., V. Durrleman, A. Nikeghbali, G. Riboulet, and T. Roncalli. “Copulas for Finance: A Reading Guide and Some Applications.” Working Paper. Groupe de Recherche Opérationnelle, Crédit Lyonnais, Paris, 2000.

バージョン履歴

R2007b で導入