我正在使用六年的每小时多元时间序列数据,我的目标是通过功能数据分析对一年进行每小时预测,我将前五年用作测试,将剩余的一年用作验证集。因此,首先,我通过傅立叶基函数将多元时间序列数据转换为功能形式,然后将功能原理分量用作维数约简,选择前四个解释给定变化量的功能分量,然后使用相应的功能分数和应用向量自回归模型进行分析,然后使用预测功能进行人头一天的预测。知道我想预测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
}