组合预测模型

组合预测模型---基于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

 

构造损失函数-求最优

 



 

构造损失函数  
e1t=sum(c-b)  
e2t=sum(c-a)  
------------------推导  
ft=w1*a+w2*b  
et=c-w1*b-w2*a=w1*e1t+w2*e2t  
j=et^2=(w1*e1t+w2*e2t)*(w1*e1t+w2*e2t)=w1^2*e1t^2+2*w1*w2*e1t*e2t+w2^2*e2t  
=WT*En*W  
WT=(w1,w2)--1xn矩阵  
En=[ei*ej]---nxn矩阵  
  e1t^2     e1t*e2t  
  e1t*e2t   e2t^2  
W=[w1  ---nx1矩阵  
   w2]    
Rn=t(t(rep(1,2)))  nx1的全是1的矩阵     
拉格朗日乘数法  
W*=(En^-1)*Rn/Rn^T*(En^-1)*Rn  En的逆矩阵*Rn/Rn的转置*En的逆矩阵*Rn  
J*=1/Rn^T*(En^-1)*Rn   1//Rn的转置*En的逆矩阵*Rn  
---------------------  
En=matrix(rep(0,4),nrow=2,ncol=2)  
En[1,1]=e1t^2  
En[1,2]=e1t*e2t  
En[2,1]=e1t*e2t  
En[2,2]=e2t^2  
Rn=t(t(rep(1,2)))  
#solve(En) #矩阵的逆  
library("MASS")  
#ginv(En)  #矩阵的广义逆  
#En%*%Rn等效crossprod(En,Rn) #矩阵的乘法  
w=(ginv(En)%*%Rn)/(t(Rn)%*%ginv(En)%*%Rn)[1,1]  

 

posted @ 2020-07-08 16:50  銀色飞行船  阅读(742)  评论(1)    收藏  举报