关于算法:R语言集成模型提升树boosting随机森林约束最小二乘法加权平均模型融合分析时间序列数据

42次阅读

共计 3102 个字符,预计需要花费 8 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=24148

特地是在经济学 / 计量经济学中,建模者不置信他们的模型能反映事实。比方:收益率曲线并不遵循三因素的 Nelson-Siegel 模型,股票与其相干因素之间的关系并不是线性的,稳定率也不遵循 Garch(1,1) 过程,或者 Garch(?,?)。咱们只是试图为咱们看到的景象找到一个适合的形容。

模型的倒退往往不是由咱们的了解决定的,而是由新的数据的到来决定的,这些数据并不适宜现有的认识。有些人甚至能够说,事实没有根本的模型(或数据生成过程)。正如汉森在《计量经济学模型抉择的挑战》中写道。

“模型应该被视为近似值,计量经济学实践应该认真对待这一点”

所有的实践都自然而然地遵循 “ 如果这是一个过程,那么咱们就显示出对实在参数的收敛性 “ 的思路。收敛性很重要,但这是一个很大的假如。无论是否存在这样的过程,这样的实在模型,咱们都不晓得它是什么。同样,特地是在社会科学畛域,即便有一个真正的 GDP,你能够认为它是可变的。

这种探讨引起了模型的组合,或者预测将来的组合。如果咱们不晓得潜在的假相,联合不同的抉择,或不同的建模办法可能会产生更好的后果。

 

模型均匀

让咱们应用 3 种不同的模型对工夫序列数据进行预测。简略回归 (OLS)、晋升树和随机森林。一旦取得了三个预测,咱们就能够对它们进行均匀。

# 加载代码运行所需的软件包。如果你短少任何软件包,先装置。tem <- lappy(c("randomoest", "gb", "quanteg"), librry, charter.oly=T)


# 回归模型。moelm <- lm(y~x1+x2, data=f)


molrf <- ranmFrst(y~x1+x2, dta=df)

mogm <- gb(ata=df, g.x=1:2, b.y=4
faiy = "gssian", tre.comle = 5, eain.rate = 0.01, bg.fratn = 0.5)



# 当初咱们对样本外的预测。#-------------------------------

Tt_ofsamp <- 500


boosf <- pbot(df\_new$x1, df\_new$x2)

rfft <- pf(df\_new$x1, df\_new$x2)

lmt <- pm(df\_new$x1, df\_new$x2)

# 绑定预测

mtfht <- cbind(bo\_hat, f\_fat, lm_at)

# 命名这些列

c("Boosting", "Random Forest", "OLS")

# 定义一个预测组合计划。# 为后果留出空间。resls <- st()

# 最后的 30 个观测值作为初始窗口

# 从新预计新的观测值达到

it_inw = 30

for(i in 1:leth(A_shes)){A\_nw$y, mt\_fht,Aeng\_hee= A\_scmes\[i, n_wiow = intwdow)



}

# 该函数输入每个预测均匀计划的 MSE。# 让咱们检查一下各个办法的 MSE 是多少。atr <- apy(ma\_ht, 2, fucon(x) (df\_wy - x)^2 )

apy(ma\_er\[nitnow:Tou\_o_saple, \], 2, fncon(x) 100*(man(x) ) )

在这种状况下,最精确的办法是晋升。然而,在其余一些状况下,依据状况,随机森林会比晋升更好。如果咱们应用束缚最小二乘法,咱们能够取得简直最精确的后果,但这不须要当时抉择 Boosting、Random Forest 办法。持续介绍性探讨,咱们只是不晓得哪种模型会提供最佳后果以及何时会这样做。

加权均匀模型交融预测

  是你的预测变量, 是工夫预测 ,从办法 ,和  例如 OLS, 晋升树和  是随机森林。您能够只取预测的平均值:

  

通常,这个简略的平均值体现十分好。

在 OLS 均匀中,咱们简略地将预测投影到指标上,所得系数用作权重:

  

这是相当不稳固的。所有预测都有雷同的指标,因而它们很可能是相干的,这使得预计系数变得艰难。稳固系数的一个不错的办法是应用束缚优化,即您解决最小二乘问题,但在以下束缚下:

  

另一种办法是依据预测的精确水平对预测进行平均化,直到基于一些指标如根 MSE。咱们反转权重,使更精确的(低 RMSE)取得更多权重。

  

您能够绘制各个办法的权重:

这是预测均匀办法。

## 须要的子程序。er <- funcion(os, red){man( (os - ped)^2 ) }



## 不同的预测均匀计划

## 简略


  rd <- aply(a_at, 1, an)

  wehs <- trx(1/p, now = TT, ncl = p)

  ## OLS 权重


   wgs <- marx(nol=(p+1)T)  

for (i in in_wnow:TT) {wghs\[i,\] <- lm $oef

pd <- t(eigs\[i,\])%*%c(1, aht\[i,\] )

## 持重的权重



   for (i in iitnow:T) {whs\[i,\] <- q(bs\[1:(i-1)\]~ aft\[1:(i-1),\] )$cef

   prd\[i\] <- t(wihs\[i,\] )*c(1, atfha\[i,\])

   ## 基于误差的方差。MSE 的倒数


  for (i in n_no:TT) {mp =aply(aerr\[1:(i-1),\]^2,2,ean)/um(aply(mter\[1:(i-1),\]^2,2,man))

  wigs\[i,\] <- (1/tmp)/sum(1/tep)

  ped\[i\] <- t(wits\[i,\] )%*%c(maat\[i,\] )

  ## 应用束缚最小二乘法



for (i in itd:wTT) {weht\[i,\] <- s1(bs\[1:(i-1)\], a_fat\[1:(i-1),\] )$wigts

  red\[i\] <- t(wehs\[i,\])%*%c(aht\[i,\] )

  ## 依据损失的平方函数,挑选出迄今为止体现最好的模型


    tmp <- apy(mt\_fat\[-c(1:iit\_wdow),\], 2, ser, obs= obs\[-c(1:ntwiow)\] )

    for (i in it_idw:TT) {wghs\[i,\] <- rp(0,p)

    wihts\[i, min(tep)\] <- 1

    ped\[i\] <- t(wiht\[i,\] )*c(mht\[i,\] )

    } }

MSE <- sr(obs= os\[-c(1:intiow)\], red= red\[-c(1:itwiow)\])

最受欢迎的见解

1. 在 python 中应用 lstm 和 pytorch 进行工夫序列预测

2.python 中利用长短期记忆模型 lstm 进行工夫序列预测剖析

3. 应用 r 语言进行工夫序列(arima,指数平滑)剖析

4.r 语言多元 copula-garch- 模型工夫序列预测

5.r 语言 copulas 和金融工夫序列案例

6. 应用 r 语言随机稳定模型 sv 解决工夫序列中的随机稳定

7.r 语言工夫序列 tar 阈值自回归模型

8.r 语言 k -shape 工夫序列聚类办法对股票价格工夫序列聚类

9.python3 用 arima 模型进行工夫序列预测

正文完
 0