楼主: 博学之梦
3778 5

[问答] VASICEK模型GMM估计时出现问题,真心求助! [推广有奖]

  • 0关注
  • 1粉丝

本科生

9%

还不是VIP/贵宾

-

威望
0
论坛币
12 个
通用积分
0.0600
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
181 点
帖子
57
精华
0
在线时间
69 小时
注册时间
2010-5-23
最后登录
2022-5-22

楼主
博学之梦 在职认证  发表于 2012-8-21 16:25:50 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我参考了网上曹老师的程序后,自己在细节的地方修改了一下,但是不知道哪里出现了错误,一直提示错误,希望懂的同学和老师可以帮帮忙,先谢谢大家了!
function [paraest,t_sta,V,it,Chi_sta,Pvalue]=gmmestimation

(moment,para0,Y,X,Z,number,K)

nlag=round(size(Y,1)^(1/3));

W(:,:,1)=eye(K);

[para(:,1),fv(:,1)]=fminsearch(moment,para(:,1),[],1,Y,X,Z,W(:,:,1));

% update weight matrix and find optimal solution

for i=2:number

mom=feval_r(moment,para(:,i-1),2,Y,X,Z,W(:,:,i-1));

W(:,:,i)=gmmweightmatrix(mom,nlag);

[para(:,i),fv(:,i)]=fminsearch(moment,para(:,i-1),[],1,Y,X,Z,W(:,:,i));

if abs(fv(:,i)-fv(:,i-1))/abs(fv(:,i-1))<1e-4|fv(i)<=1e-10

  break

end

end

it=i;

if it==number

    error('number of iteration exceeds defined maximum number')

else

    paraest=para(:,it);% optimal parameter

    f0=feval_r(moment,paraest,3,Y,X,Z,W(:,:,it));% optimal function value

% find covariance matrix of estimated parameter vector, using

numerical method

    for j=1:length(para0)

        a=zeros(length(para0),1);

        eps=max(paraest(j)*1e-6,1e-5);

        a(j)=eps;

        M(:,j)=(feval_r(moment,paraest+a,3,Y,X,Z,W(:,:,it))-f0)/eps;

    end

end

V=pinv(M'*W(:,:,it)*M)/size(Y,1);

stderror=sqrt(diag(V));

t_sta=paraest./(stderror);

Chi_sta=size(Y,1)*fv(it);

Pvalue=1-chi2cdf(Chi_sta,K-length(para0));


%find the weight matrix using Newey and West method

function W=gmmweightmatrix(mom,nlag)

q=size(mom,2);T=size(mom,1);

a2=zeros(q,q);a3=zeros(q,q);

for j=1:nlag

    a1=zeros(q,q);

    for i=1:(T-j)

       a1=mom(i+j,:)'*mom(i,:)+a1;

    end

    S(:,:,j)=1/T*a1;

    a2=(1-j/(nlag+1))*S(:,:,j)+a2;

    a3=(1-j/(nlag+1))*S(:,:,j)'+a3;

end

b1=zeros(q,q);

for i=1:T

    b1=mom(i,:)'*mom(i,:)+b1;

end

if nlag==0

    newS=b1*1/T;

else

    newS=a2+a3+b1*1/T;

end

W=pinv(newS);


%%%%%%%%%%%%%%%%%%%%%
function f=cklstest01(para,num,Y,X,Z,W)

[T,q]=size(Y);

alpha=para(1);beta=para(2);sigsq=para(3);

eta=[Y-(alpha+beta*X)/12,(Y-(alpha+beta*X)/12).^2-sigsq.^2/12];

for i=1:T

    m_t(i,:)=kron(eta(i,:),Z(i,:));

end

m=mean(m_t)';

obj=m'*W*m;

if num==1

     f=obj;

elseif num==2
     f=m_t;

elseif num==3

     f=m;

end
%%%%%%%%%%%%%
clear
data=xlsread('gmm.xlsx');
Y=data(:,1);
X=data(:,2);
para0=[0.05;-0.6;0.5];number=20;moment='cklstest01';K=3;
Z=[ones(length(Y),1),X];
[beta,stderror,V,it,Chi_sta,Pvalue]=gmmestimation

(moment,para0,Y,X,Z,number,K);
二维码

扫码加我 拉你入群

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

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

关键词:Vasicek GMM估计 ASIC ice ASI function 曹老师 number matrix moment

沙发
博学之梦 在职认证  发表于 2012-8-21 16:35:51
运行后 错误提示如下
Error in ==> gmmestimation at 7
[para(:,1),fv(:,1)]=fminsearch(moment,para(:,1),[],1,Y,X,Z,W(:,:,1));

Error in ==> gmm at 7
[beta,stderror,V,it,Chi_sta,Pvalue]=gmmestimation(moment,para0,Y,X,Z,number,K);

藤椅
博学之梦 在职认证  发表于 2012-8-21 16:43:45
错误提示如下??? Undefined function or variable "para".

Error in ==> gmmestimation at 7
[para(:,1),fv(:,1)]=fminsearch(moment,para(:,1),[],1,Y,X,Z,W(:,:,1));

Error in ==> gmm at 7
[beta,stderror,V,it,Chi_sta,Pvalue]=gmmestimation(moment,para0,Y,X,Z,number,K);  那参数该怎样定义呢,哪位朋友可以帮忙看看我的程序该怎样修改吗》

板凳
博学之梦 在职认证  发表于 2012-8-27 15:03:21
已经解决了,谢谢自己

报纸
EconomyGo 发表于 2012-11-13 23:52:56
您好,请问用GMM估计Vasicek模型的原理方面的资料,能不能发给我一些。我找不到很合适的资料,基础比较差。谢谢啊。我也想用GMM估计Vasicek模型

地板
wade20071 发表于 2016-4-21 23:09:47
你好,请问您是怎么解决的,希望你能解答下,急用 谢谢

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

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