楼主: peggyppan
1377 2

[统计软件] 多元混合copula模型matlab代码中的参数问题 [推广有奖]

  • 0关注
  • 0粉丝

高中生

2%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
250 点
帖子
2
精华
0
在线时间
38 小时
注册时间
2020-4-3
最后登录
2022-5-2

楼主
peggyppan 学生认证  发表于 2020-4-14 07:33:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我想用多元混合copula模型进行参数估计

运行代码显示:
未定义函数或变量 'copula_pdf'。
出错 M_Copulas (line 66)
copula_pdf=subs(copula_pdf,x(:),zdata(:));

实在是不懂
以下为完整代码,请大家帮我看看哪里问题~

function [p,l]= M_Copulas(family,zdata)
% Estimate parameters of different copulas
% Inputs: zdata  --- t*n matrix:
%                    t is the length of time series
%                    n is the number of all time series
%                --> Note that zdata is not original data,
%                    you should transform original data through
%                    marginal cumulative distribution function
%                    to get zdata, that is, each element in
%                    zdata belongs to the interval [0,1]
%         copula --- options for different copulas:
%                    'Clayton'
%                    'Gumble'
%                    'Frank'
%
% Output: p      --- parameters in chosen copula
%         l      --- value of maximized log-likelihood function
%
zdata=xlsread('C:\Users\Administrator\Desktop\ttcdf.xlsx','Sheet1')
tic;
n=length(zdata(1,:));
t=length(zdata(:,1));
x=[];
y=sym(ones(1,n));
for j=1:t
for i=((j-1)*n+1):(j*n)
y(mod(i+n-1,n)+1)=['x' num2str(i)];
end
x=[x;y];
end
switch 'family'
    case 'Clayton'
        syms a;
        ini=1;
        lower=0.00001;
        copula_pdf=((sum((x.^(-a))')')-n+1).^(-1/a);
        for j=1:t
            for i=((j-1)*n+1):(j*n)
                copula_pdf(j)=diff(copula_pdf(j),x(j,mod(i+n-1,n)+1));
            end
        end
    case 'Gumbel'
        syms a;
        ini=2;
        lower=1.00001;
        copula_pdf=exp(-((sum(((-log(x)).^a)'))').^(1/a));
        for j=1:t
            for i=((j-1)*n+1):(j*n)
                copula_pdf(j)=diff(copula_pdf(j),x(j,mod(i+n-1,n)+1));
            end
        end
        
    case 'Frank'
        syms a;
        ini=1;
        lower=0.00001;
        copula_pdf=-(1/a)*log(1+((prod((exp(-a*x)-1)'))')/(exp(-a)-1)^(n-1));
        for j=1:t
            for i=((j-1)*n+1):(j*n)
                copula_pdf(j)=diff(copula_pdf(j),x(j,mod(i+n-1,n)+1));
            end
        end
end     
copula_pdf=subs(copula_pdf,x(:),zdata(:));
copula_pdf=log(copula_pdf);
copula_pdf=sum(copula_pdf);
copula_pdf=-copula_pdf;
myfun=inline(copula_pdf);
[p,l] = fmincon(myfun,ini,[],[],[],[],lower,[],[]);
l=-l;
toc;

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB编程 多元copula 混合copula copula

沙发
xinqingnian0314 发表于 2022-5-2 19:53:04 来自手机
大佬,您解决了吗请问?能求一份代码吗?谢谢,求求了。

藤椅
18650347648 学生认证  发表于 2022-5-2 21:34:13 来自手机
peggyppan 发表于 2020-4-14 07:33
我想用多元混合copula模型进行参数估计

运行代码显示:
静态、时变混合copula的matlab实现,若需帮助指导可联系535844430

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-4 08:47