私の質問: いくつかのデータを適合させるために、t 分布を持つコピュラを使用しました。そのコピュラを使用して、n 個のサンプルの散布密度プロットを作成しました。私のデータを知っている結果は満足のいくものでした。
次のスクリプトで実行します。
U=ksdensity(Udata1,Udata1,'function','cdf'); % Transforming the data to copula scale(Unit Square)
R=ksdensity(Rdata1,Rdata1,'function','cdf');
[Rho,nu]=copulafit('t',[U R],'method','ApproximateML')
r=copularnd('t',Rho,nu,100000) % Generates n samples from the copula
Uc=r(:,1);
Rc=r(:,2);
U2=ksdensity(Udata1,Uc,'function','icdf'); % Transforming the data back to the original scale
R2=ksdensity(Rdata1,Rc,'function','icdf');
out = scatplot(U2,R2,'squares',2,40,5,1,5)
さらに、コピュラのpdfを作りたかったのです。以下のスクリプトを使用します。
U=ksdensity(Udata1:,Udata1,'function','cdf');
R=ksdensity(Rdata1,Rdata1,'function','cdf');
[Rho,nu]=copulafit('t',[U R],'method','ApproximateML')
x1 = -2:.2:4; x2 = -10:.2:10;
[X1,X2] = meshgrid(x1,x2);
F = mvtpdf([X1(:) X2(:)],Rho,nu);
F = reshape(F,length(x2),length(x1));
surf(x1,x2,F);
caxis([min(F(:))-.5*range(F(:)),max(F(:))]);
axis([-2 4 -10 10 0 .2])
xlabel('x1'); ylabel('x2'); zlabel('Probability Density');
以前の散布図と一致していないように見えるため、結果は満足のいくものではありませんでした。
PDFを作成するときに再スケーリングが欠落していると思いますが、よくわかりません。そして、この再スケーリングを実行または使用する方法がわかりません。
私を助けてくれる人はいますか?
前もって感謝します!