搜索
人大经济论坛 附件下载

附件下载

所在主题:
文件名:  FINAL PROJECT.pdf
资料下载链接地址: https://bbs.pinggu.org/a-1091867.html
附件大小:
  1. function [beta,stderror,V,it,Chi_sta,Pvalue]=gmmestimation(moment,be0,Y,X,Z,number,K)
  2. %input:
  3. %moment: moment conditions function defined by users
  4. %be0:initial value for estimated parameters
  5. %Y,X:data used to estimate parameters
  6. %Z: data for instrument variables
  7. %number: maximum convergence number when choosing optimal weighting matrix
  8. %K:number of moment conditions
  9. %output:
  10. %beta:parameters estimated
  11. %stderror:standard errors
  12. %t_sta: T statistics for each estimated parameter
  13. %V:covariance matrix for estimated parameters
  14. %it: number of iteration
  15. %Chi_sta and Pvalue: overidentifying test, null hypothesis is moment
  16. %conditions are feasible
  17. nlag=0;%lag lenth
  18. W(:,:,1)=eye(K);
  19. [be(:,1),fv(:,1)]=fminsearch(moment,be0,[],1,Y,X,Z,W(:,:,1));
  20. % update weight matrix and find optimal solution
  21. for i=2:number
  22. mom=feval(moment,be(:,i-1),2,Y,X,Z,W(:,:,i-1));
  23. W(:,:,i)=gmmweightmatrix(mom,nlag);
  24. [be(:,i),fv(:,i)]=fminsearch(moment,be(:,i-1),[],1,Y,X,Z,W(:,:,i));
  25. if abs(fv(:,i)-fv(:,i-1))/abs(fv(:,i-1))<1e-4|fv(i)<=1e-10
  26. break
  27. end
  28. end

  29. it=i;
  30. if it==number
  31. error('number of iteration exceeds defined maximum number')
  32. else
  33. beta=be(:,it);% optimal bemeter
  34. f0=feval(moment,beta,3,Y,X,Z,W(:,:,it));% optimal function value
  35. % find covariance matrix of estimated parameter vector, using numerical method
  36. for j=1:length(be0)
  37. a=zeros(length(be0),1);
  38. eps=max(beta(j)*1e-6,1e-5);
  39. a(j)=eps;
  40. M(:,j)=(feval(moment,beta+a,3,Y,X,Z,W(:,:,it))-f0)/eps;
  41. end
  42. end

  43. V=pinv(M'*W(:,:,it)*M)/size(Y,1);
  44. stderror=sqrt(diag(V));
  45. t_sta=beta./(stderror);
  46. Chi_sta=size(Y,1)*fv(it);
  47. Pvalue=1-chi2cdf(Chi_sta,K-length(be0));



  48. %find the weight matrix using Newey and West method

  49. function W=gmmweightmatrix(mom,nlag)
  50. q=size(mom,2);T=size(mom,1);
  51. a2=zeros(q,q);a3=zeros(q,q);
  52. for j=1:nlag
  53. a1=zeros(q,q);
  54. for i=1:(T-j)
  55. a1=mom(i+j,:)'*mom(i,:)+a1;
  56. end
  57. S(:,:,j)=1/T*a1;
  58. a2=(1-j/(nlag+1))*S(:,:,j)+a2;
  59. a3=(1-j/(nlag+1))*S(:,:,j)'+a3;
  60. end

  61. b1=zeros(q,q);
  62. for i=1:T
  63. b1=mom(i,:)'*mom(i,:)+b1;
  64. end
  65. if nlag==0
  66. newS=b1*1/T;
  67. else
  68. newS=a2+a3+b1*1/T;
  69. end
  70. W=pinv(newS);


  71. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%moment conditions
  72. function f=linearmodel01(be,num,Y,X,Z,W)
  73. [T,q]=size(Y);
  74. alpha=be(1);beta=be(2);
  75. eta=[Y-(alpha+beta*X)];
  76. for i=1:T
  77. m_t(i,:)=kron(eta(i,:),Z(i,:));
  78. end
  79. m=mean(m_t)';
  80. obj=m'*W*m;
  81. if num==1
  82. f=obj;
  83. elseif num==2
  84. f=m_t;
  85. elseif num==3
  86. f=m;
  87. end

  88. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%moment conditions
  89. function f=linearmodel02(be,num,Y,X,Z,W)
  90. [T,q]=size(Y);
  91. beta=be(1);
  92. eta=[Y-beta*X];
  93. for i=1:T
  94. m_t(i,:)=kron(eta(i,:),Z(i,:));
  95. end
  96. m=mean(m_t)';
  97. obj=m'*W*m;
  98. if num==1
  99. f=obj;
  100. elseif num==2
  101. f=m_t;
  102. elseif num==3
  103. f=m;
  104. end
复制代码
上面是用(Generalized Method of Moments) 同时估计6个CAPM模型(6个 α's 和 6个β's) 及它们共同的market excess return(γ)的matlab程序,由于空间限制,最后一部分程序在下面第一个回帖,程序没有问题,求修改成一份或两份(最好两份,每份程序悬赏500金币,可追加悬赏)跟上面程序看起来不大一样的程序(比如修改一下函数的名字,变量的名称,顺序,matlab程序表达方式,甚至是逻辑思路比如把(a-b)/a趋于无限小改成a-b趋于无限校。。),但最后求出来的结果要一样。




    熟悉论坛请点击新手指南
下载说明
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。
2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。
3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。
(如有侵权,欢迎举报)
二维码

扫码加我 拉你入群

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

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

GMT+8, 2026-1-7 10:44