楼主: NOIL
2022 0

DCC_GARCH程序问题,求教~~ [推广有奖]

  • 0关注
  • 1粉丝

已卖:1份资源

硕士生

25%

还不是VIP/贵宾

-

威望
0
论坛币
129 个
通用积分
0
学术水平
1 点
热心指数
0 点
信用等级
0 点
经验
283 点
帖子
65
精华
0
在线时间
232 小时
注册时间
2006-3-20
最后登录
2020-3-5

楼主
NOIL 发表于 2012-3-20 22:13:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

自己根据 Kevin Sheppard的2001-Ucsd_garch给出的似然函数dcc_mvgarch_likelihood写的Sas程序,但是在求参数时出现问题,求教!

a是两列数据,去过均值,并用除过GARCH的条件方差。但是最后用“CALL NLPQN”优化参数时出现问题,估计是OPTN的设置时没有用这个似然函数使用最适合的函数设置,但又不知道怎么调整。希望各位大侠不吝赐教...

ods output  Corr.Cov=corr;
proc corr data=a cov;
run;
ods output close;

proc sql;
        select stdresid_us into:cov1 from corr where variable="stdresid_us";
        select stdresid_chn into:cov4 from corr where variable="stdresid_chn";
        select stdresid_us into:cov2 from corr where variable="stdresid_chn";
        select stdresid_chn into:cov3 from corr where variable="stdresid_us";
quit;

/*下面用单变量的条件方差来计算DCC_MULTIVARIATE_GARCH模型的参数*/
proc iml;
use a;
read all into stdresid;

start trans4_constrain(c0);
    c1=c0;
        c1[1]=exp(c0[1])/(1+exp(c0[1])+exp(c0[2]));
        c1[2]=exp(c0[2])/(1+exp(c0[1])+exp(c0[2]));
        return(c1);
finish trans4_constrain;

start dcc_garch(parms) global(stdresid);
        t=nrow(stdresid);
        k=ncol(stdresid);
/*        约束条件,a,b>0,a+b<1*/
        parms=trans4_constrain(parms);
        print parms;
        a=parms[1];
        b=parms[2];
        suma=sum(a);
        sumb=sum(b);
        m=1;
        qbar=j(2,2,0);qbar[1,1]=&cov1.;qbar[1,2]=&cov2.;qbar[2,1]=&cov3.;qbar[2,2]=&cov4.;

        likelihoods=j(t+1,1,0);
        QT1=J(T+1,1,0);        QT2=J(T+1,1,0);        QT3=J(T+1,1,0);        QT4=J(T+1,1,0);
        RT1=J(T+1,1,0);        RT2=J(T+1,1,0);        RT3=J(T+1,1,0);        RT4=J(T+1,1,0);
       
        QT1[1]=QBAR[1,1]; QT2[1]=QBAR[1,2];QT3[1]=QBAR[2,1];QT4[1]=QBAR[2,2];
        RT1[1]=QBAR[1,1]; RT2[1]=QBAR[1,2];RT3[1]=QBAR[2,1];RT4[1]=QBAR[2,2];

        LOGL=0;

        STDRESID=J(1,2,0)//STDRESID;

        DO J=2 TO T+1;
                C=J(2,2,0);
                C=A*STDRESID[J-1,]`*STDRESID[J-1,];

                QT1[J]=QBAR[1,1]*(1-A-B)+C[1,1]+QT1[J-1];
                QT2[J]=QBAR[1,2]*(1-A-B)+C[1,2]+QT2[J-1];
                QT3[J]=QBAR[2,1]*(1-A-B)+C[2,1]+QT3[J-1];
                QT4[J]=QBAR[2,2]*(1-A-B)+C[2,2]+QT4[J-1];


                R=J(2,2,0);

                R[1,1]=1;
                R[1,2]=QT2[J]/(SQRT((QT1[J]*QT4[J])));
                R[2,1]=QT3[J]/(SQRT((QT1[J]*QT4[J])));
                R[2,2]=1;

                RT1[J]=R[1,1];
                RT2[J]=R[1,2];
                RT3[J]=R[2,1];
                RT4[J]=R[2,2];

                LIKELIHOODS[J]=LOG(RT1[J]*RT4[J]-RT3[J]*RT4[J])+STDRESID[J,]*INV(R)*STDRESID[J,]`;
                LOGL=LOGL+LIKELIHOODS[J];

        END;
        return(LOGL);
finish dcc_garch;

/*初始优化参数*/
        parms={0.1,0.97};
/*        a=dcc_garch(parms);print a;*/
        optn=j(1,11,0);        optn[1]=1;optn[2]=0; optn[4]=1; optn[6]=2;optn[10]=0; optn[11]=0;
        CALL NLPQN(rc,xout,"dcc_garch",parms,optn);
/*优化后的参数*/
        prm_opt=trans4_constrain(xout);

quit;

二维码

扫码加我 拉你入群

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

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

关键词:GARCH ARCH DCC ARC RCH 程序

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-5 15:28