建议采Patton_copula_toolbox,
可以直接得到*negative* LL.
而copulafit则需修改程序,
我改为copulafit1.m,得到的nll当然
与Patton_copula_toolbox相同.
楼主若需要我再上传.
两者比较如下:
%%%%%%%%%
load stockreturns
x = stocks(:,1);
y = stocks(:,2);
u = ksdensity(x,x,'function','cdf');
v = ksdensity(y,y,'function','cdf');
options = statset('copulafit');
lowerBnd = options.TolBnd;
%%%%% 'Clayton'
theta0 = 1;
lower = 0.0001;
[kappa2,LL2] = fmincon('claytonCL',theta0,[],[],[],[],lower,[],[],options,[u,v])
% kappa2 = 1.3979, LL2 = -25.1516
[alphaHat,nll]=copulafit1('Clayton', [u v])
% alphaHat = 1.3979, nll = -25.1516
%%%%% 'Frank'
[ kappa5 LL5] = fmincon('frankCL',theta0,[],[],[],[],lower,[],[],options,[u,v])
% kappa5 = 6.2835 LL5 = -34.1131
[alphaHat,nll]=copulafit1('Frank', [u v])
% alphaHat = 6.2835 nll = -34.1131
%%%%% 'Gumbel'
[ kappa6 LL6] = fmincon('gumbelCL',theta0,[],[],[],[],lower,[],[],options,[u,v])
% kappa6 = 2.0826, LL6 = -35.5635
[alphaHat,nll]=copulafit1('Gumbel', [u v])
% alphaHat = 2.0826, nll = -35.5635