matlab mvgarch,求助,关于beek-mvgarch模型的计算似然函数。

该博客详细介绍了如何使用scalar_bekk_mvgarch_likelihood函数来估计多变量贝克尔(BEKK)GARCH模型的似然函数。通过参数估计、误差矩阵处理和条件方差计算,程序基于正态分布进行。若需更改分布,需理解其概率密度函数并相应调整计算逻辑。适合用于学术研究中计算特定分布的GARCH模型。
摘要由CSDN通过智能技术生成

scalar_bekk_mvgarch_likelihood计算似然函数:

function [LLF,likelihoods,Ht]=scalar_bekk_likelihood(parameters,errors,p,q,k,k2,t);

% PURPOSE:

%      To Estimate a scalar BEKK multivariate GARCH likelihood.

%

%

% USAGE:

%      [LLF,likelihoods,Ht]=scalar_bekk_mvgarch_likelihood(parameters,errors,p,q,k,k2,t);

%

%

% INPUTS:

%      parameters - a k*(k+1)/2 + p +q vector of model parameters of the form

%                   [ivech(C);(A(1));...;(A(p));(B(1)); ...(B(q))]

%      errors     - A zeromean t by k martix of residuals

%      p          - The lag length of the innovation process

%      q          - The lag length of the AR process

%      k          - The number of data series

%      k2         - k*k

%      t          - the length of the data series

%

%

% OUTPUTS:

%      LLF           - The loglikelihood of the function at the optimum

%      Ht            - A k x k x t 3 dimension matrix of conditional covariances

%      likelihoods   - A t by 1 vector of individual likelihoods

%

%

% COMMENTS:

%

%

% Author: Kevin Sheppard

% kksheppard@ucsd.edu

% Revision: 2    Date: 12/31/2001

%The first k(k+1)/2 parameters are C, the next p are A, and the next q are B

C=parameters(1:(k2));

A=parameters(k2+1:k2+p);

B=parameters(k2+p+1:k2+p+q);

C=ivech(C);

C=tril(C);

const=C*C';

uncond=cov(errors);

% for starting up, both ee' and H have expectation uncond.  We cna leverage thsi to help the loops.

m=max(p,q);

eeprime=zeros(k,k,t+m);

Ht=zeros(k,k,t+m);

for i=1:m

eeprime(:,:,i)=uncond;

Ht(:,:,i)=uncond;

end

LLF=0;

errors=[repmat(diag(uncond)',m,1);errors];

likelihoods=zeros(t+m,1);

for i=m+1:t+m;

Ht(:,:,i)=const;

for j=1:p

Ht(:,:,i)=Ht(:,:,i)+A(j)*(errors(i-j,:))'*(errors(i-j,:))*A(j);

end

for j=1:q

Ht(:,:,i)=Ht(:,:,i)+B(j)*Ht(:,:,i-j)*B(j);

end

likelihoods(i)=k*log(2*pi)+(log(det(Ht(:,:,i)))+errors(i,:)*Ht(:,:,i)^(-1)*errors(i,:)');

LLF=LLF+likelihoods(i);

end

LLF=0.5*(LLF);

likelihoods=0.5*likelihoods(m+1:t+m);

Ht=Ht(:,:,m+1:t+m);

if isnan(LLF)

LLF=1e6;

end

这个是计算似然函数的程序么,大家谁知道这个程序的算法是怎么做的,或者是基于什么样的理论做的?这个程序是基于正态分布,如果我想换一个分布应该如何做呢?毕业论文要用到,希望懂的大牛们可以指导下,不胜感激了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值