关闭

基于R语言的模型组合

标签: R语言的模型组合
846人阅读 评论(0) 收藏 举报
分类:
组合预测模型---基于R语言的模型组合 
算术平均法、 最优权数法、 方差倒数法

模型中各参数的 t 值均显著 ,且通过 F 检验
和拟合忧度检验

c=c(1:20)
b=c-0.1
a=c-0.3

方差倒数法
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]
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:165490次
    • 积分:2853
    • 等级:
    • 排名:第14171名
    • 原创:159篇
    • 转载:14篇
    • 译文:0篇
    • 评论:38条
    github地址
    https://github.com/lytforgood
    最新评论