我有3个,我可以将小波变换使用滚动窗口的时间序列。 滚动窗口接受一个时间序列长度200和适用waveslim::modwt
函数在第一30个样本到它。 此输出5只列出其中我只对感兴趣的(D1,D2,D3,D4),并且这些各自具有的30个简单的例子的长度在这里可以找到:
library(waveslim)
J <- 4 #no. of levels in decomposition
data(ar1)
ar1.modwt <- modwt(ar1, "la8", J)
@G。 格罗腾迪克慷慨提供一个整洁的一段代码为一个单一的时间序列滚动窗口方法在这里 。
1滚动窗口增量,我们又来了,生产另外5只列出了直到时间序列的全长已经滚过我只关心D1-> D4等等等等。
下一步是将应用waveslim::brick.wall
功能,滚动窗口列表的输出。 所述brick.wall
函数查看的输出modwt
用于跨4个级别的第一窗口和替换一些与所述值的NA
秒。
我相信我已经通过修改@G涵盖这一点。 格罗腾迪克回答使用以下方法,我希望我是对的:
modwt2 <- function(...) unlist(head(brick.wall(modwt(...)), 4))
rollr <- rollapplyr(ar1, 30, FUN = modwt2, wf = "la8", n.levels = 4, boundary = "periodic")
L <- lapply(1:nrow(rollr), function(i) matrix(rollr[i,], , 4))
最后一块是构造相关矩阵对的输出brick.wall
函数,它是L
以上在4个级别的兴趣。
有一个叫功能waveslim::wave.correlation
它有两个brick.wall
输出X和Y计算wave.correlation
在各个层次。
library(waveslim)
data(exchange)
returns <- diff(log(as.matrix(exchange)))
returns <- ts(returns, start=1970, freq=12)
wf <- "la8"
J <- 4
demusd.modwt <- modwt(returns[,"DEM.USD"], wf, J)
demusd.modwt.bw <- brick.wall(demusd.modwt, wf)
jpyusd.modwt <- modwt(returns[,"JPY.USD"], wf, J)
jpyusd.modwt.bw <- brick.wall(jpyusd.modwt, wf)
returns.modwt.cor <- wave.correlation(demusd.modwt.bw, jpyusd.modwt.bw,
N = dim(returns)[1])
我希望扩大就这个问题和计算的全部相关矩阵为我的3个时间序列。 请注意,因为它使用了,我想时间序列的全长现在要做的,它也产生了两个时间序列之间的相关性的单个值与汇率上面的例子中不使用滚动窗口的方法。 它不建立,我需要为我感兴趣的这些相关矩阵随时间的特征值全相关矩阵。
因此,在总结:
- 取3次系列
- 应用
modwt
使用滚动窗口功能 - 适用
brick.wall
功能在上面2中的滚动窗口的每个输出 - 创建完整的3×3的相关矩阵对使用上述随时间的3个输出端的4个级别的