組合預測模型(轉)


組合預測模型---基於R語言的模型組合 

組合預測模型的普遍形式為各個單項預測模型的加權平均, 因此組合預測模型的重點在於加權系數的確定。如果對各個單項預測模型的加權系數賦值合理, 那么整個組合預測模型的預測精度也會相應提高。
目前常用的方法有算術平均法、 最優權數法、 方差倒數法等
方差倒數法是 Bates 和 Granger 曾提出的, 其基本原理是: 首先計算各個單項預測模型的誤差平方和ej, 然后通過整體誤差平方和最小的原則對各單項預
測模型的權數進行賦值
示例:

c=c(1:20)  真實值
b=c-0.1  預測模型1預測的值
a=c-0.3  預測模型2預測的值

方差倒數法
e1=sum((c-b)^2)
e2=sum((c-a)^2)

w1=(1/e1)/(1/e1+1/e2)
w2=(1/e2)/(1/e1+1/e2)

最后的預測值x=w1*a+w2*b

 

構造損失函數-求最優



示例:

 

[plain]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. 構造損失函數  
  2. e1t=sum(c-b)  
  3. e2t=sum(c-a)  
  4. ------------------推導  
  5. ft=w1*a+w2*b  
  6. et=c-w1*b-w2*a=w1*e1t+w2*e2t  
  7. j=et^2=(w1*e1t+w2*e2t)*(w1*e1t+w2*e2t)=w1^2*e1t^2+2*w1*w2*e1t*e2t+w2^2*e2t  
  8. =WT*En*W  
  9. WT=(w1,w2)--1xn矩陣  
  10. En=[ei*ej]---nxn矩陣  
  11.   e1t^2     e1t*e2t  
  12.   e1t*e2t   e2t^2  
  13. W=[w1  ---nx1矩陣  
  14.    w2]    
  15. Rn=t(t(rep(1,2)))  nx1的全是1的矩陣     
  16. 拉格朗日乘數法  
  17. W*=(En^-1)*Rn/Rn^T*(En^-1)*Rn  En的逆矩陣*Rn/Rn的轉置*En的逆矩陣*Rn  
  18. J*=1/Rn^T*(En^-1)*Rn   1//Rn的轉置*En的逆矩陣*Rn  
  19. ---------------------  
  20. En=matrix(rep(0,4),nrow=2,ncol=2)  
  21. En[1,1]=e1t^2  
  22. En[1,2]=e1t*e2t  
  23. En[2,1]=e1t*e2t  
  24. En[2,2]=e2t^2  
  25. Rn=t(t(rep(1,2)))  
  26. #solve(En) #矩陣的逆  
  27. library("MASS")  
  28. #ginv(En)  #矩陣的廣義逆  
  29. #En%*%Rn等效crossprod(En,Rn) #矩陣的乘法  
  30. w=(ginv(En)%*%Rn)/(t(Rn)%*%ginv(En)%*%Rn)[1,1]  
 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM