将功能原理组件反向转换为原始数据?

时间:2020-10-20 10:24:45

标签: r statistics time-series

我正在使用六年的每小时多元时间序列数据,我的目标是通过功能数据分析对一年进行每小时预测,我将前五年用作测试,将剩余的一年用作验证集。因此,首先,我通过傅立叶基函数将多元时间序列数据转换为功能形式,然后将功能原理分量用作维数约简,选择前四个解释给定变化量的功能分量,然后使用相应的功能分数和应用向量自回归模型进行分析,然后使用预测功能进行人头一天的预测。知道我想预测24小时的预测值,但是我的代码仅给出四个预测值。我如何从这4个值中获得这24小时的预测,然后将全年平均365天的结果归纳为一个简单的词,我想对nrow = 24和ncol = 365矩阵进行预测?为了理解我的问题,我正在共享我的代码。 其中mat是nrow = 24,ncol = 1461观测值的矩阵

fdata<- function(mat){
  nb = 25 # number of basis functions for the data
  fbf = create.fourier.basis(rangeval=c(0,1), nbasis=nb) # basis for data
  args=seq(0,1,length=24)
  fdata1=Data2fd(args,y=t(mat),fbf) # functions generated from discretized y
  return(fdata1)
}
prediction.ffpe = function(fdata1){
  n = ncol(fdata1$coef)
  D = nrow(fdata1$coef)
  #center the data
  mu = mean.fd(fdata1)
  data = center.fd(fdata1)
  ffpe = fFPE(fdata1, Pmax=10)
  d.hat = ffpe[1] #order of the model
  p.hat = ffpe[2] #lag of the model
  #fPCA
  fpca = pca.fd(data,nharm=D)
  scores = fpca$scores[,1:d.hat]
  # to avoid warnings from vars predict function below
  colnames(scores) <- as.character(seq(1:d.hat))
  VAR.pre= predict(VAR(scores, p.hat), n.ahead=1, type="const")$fcst
  
}

0 个答案:

没有答案