2663 4

[问答] 做bekk模型,怎样调用m文件,求助,挺急的T_T [推广有奖]

  • 1关注
  • 3粉丝

已卖:26份资源

大专生

88%

还不是VIP/贵宾

-

威望
0
论坛币
34 个
通用积分
0.0955
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
310 点
帖子
49
精华
0
在线时间
62 小时
注册时间
2012-9-12
最后登录
2017-3-7

楼主
加油!小猫~ 在职认证  发表于 2015-3-30 15:21:41 |AI写论文
10论坛币
大家好,目前我需要用matlab做garch-bekk模型,求两组金融高频数据的方差和协方差,以求套保比率。
现在,我已经找到了bekk的工具包,里面的程序如下,是一个m文件,我想知道,我怎样将我的两组数据带入,调用m文件,run出结果。
因为之前都没用过这个软件,想知道详细步骤,万分感谢,比较急,论坛币不多,希望能得到回复~或者用其它软件怎么做,有人知道么?

function [ll,lls,Ht] = bekk_likelihood(parameters,data,dataAsym,p,o,q,backCast,backCastAsym,type)
% Likelihood for BEKK(p,q) multivarate volatility model estimation
%
% USAGE:
%  [LL,LLS,HT] = bekk_likelihood(PARAMETERS,DATA,P,O,Q,BACKCAST,TYPE)
%
% INPUTS:
%   PARAMETERS   - Vector of parameters required to compute the (negative) of the log-likelihood
%   DATA         - K by K by T array of data
%   DATAASYM     - K by K by T array of asymmetric data
%   P            - Positive, scalar integer representing the number of symmetric innovations
%   O            - Non-negative, scalar integer representing the number of asymmetric innovations
%   Q            - Non-negative, scalar integer representing the number of conditional covariance lags
%   BACKCAST     - K by K matrix to use for back casting
%   TYPE         - Number indicating type:
%                    1 - Scalar
%                    2 - Diagonal
%                    3 - Full
%
% OUTPUTS:
%   LL           - The log likelihood evaluated at the PARAMETERS
%   LLS          - A T by 1 vector of log-likelihoods
%   HT           - A [K K T] dimension matrix of conditional covariances
%
% COMMENTS:
%
% See also BEKK

% Copyright: Kevin Sheppard
% kevin.sheppard@economics.ox.ac.uk
% Revision: 1    Date: 3/27/2012

% Get the parameters together
T = size(data,3);
k = size(data,2);

[C,A,G,B] = bekk_parameter_transform(parameters,p,o,q,k,type);

Ht = zeros(k,k,T);
lls = zeros(T,1);
logLikConst = k*log(2*pi);

for i=1:T
    Ht(:,:,i) = C;
    for j=1:p
        if (i-j)<=0
            Ht(:,:,i) = Ht(:,:,i) + A(:,:,j)'*backCast*A(:,:,j);
        else
            Ht(:,:,i) = Ht(:,:,i) + A(:,:,j)'*data(:,:,i-j)*A(:,:,j);
        end
    end
    for j=1:o
        if (i-j)<=0
            Ht(:,:,i) = Ht(:,:,i) + G(:,:,j)'*backCastAsym*G(:,:,j);
        else
            Ht(:,:,i) = Ht(:,:,i) + G(:,:,j)'*dataAsym(:,:,i-j)*G(:,:,j);
        end
    end   
    for j=1:q
        if (i-j)<=0
            Ht(:,:,i) = Ht(:,:,i) + B(:,:,j)'*backCast*B(:,:,j);
        else
            Ht(:,:,i) = Ht(:,:,i) + B(:,:,j)'*Ht(:,:,i-j)*B(:,:,j);
        end
    end
    lls(i) = 0.5*(logLikConst + log(det(Ht(:,:,i))) + sum(diag(Ht(:,:,i)^(-1)*data(:,:,i))));
end
ll = sum(lls);

if isnan(ll) || isinf(ll) || ~isreal(ll)
    ll = 1e7;
end

最佳答案

kimility 查看完整内容

matlab: [NUM,TXT,RAM]=xls('data') = full_bekk_mvgarch(NUM,1,1)
关键词:BEKK模型 bekk m文件 conditional Innovations matlab bekk 操作步骤 m文件调用

本帖被以下文库推荐

沙发
kimility 发表于 2015-3-30 15:21:42
matlab:
[NUM,TXT,RAM]=xls('data')
[parameters, loglikelihood, Ht,...]  = full_bekk_mvgarch(NUM,1,1)
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

藤椅
十里春风 学生认证  发表于 2015-3-30 18:23:53
把数据和m文件放在MATLAB工作目录下,然后用数据代替函数参数就可以了
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

板凳
加油!小猫~ 在职认证  发表于 2015-3-30 20:39:09
十里春风 发表于 2015-3-30 18:23
把数据和m文件放在MATLAB工作目录下,然后用数据代替函数参数就可以了
你好,我在电脑上试过总是出现错误,我把数据贴上,不知道能否帮忙跑一下呀,比较着急

mmm.xls
下载链接: https://bbs.pinggu.org/a-1759715.html

2 MB

数据

报纸
zhouqingyun2 在职认证  学生认证  发表于 2019-2-26 20:15:50
请问楼主做好了么?我也是毕业论文需要,试了m文件显示出错,请问方便交流一下么

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 11:44