我正在使用{ center: '[page] of [topage]' }
包来进行小波一致性分析。我在设置lag1值(应该是包含每个时间序列的AR(1)系数的向量)时遇到问题。以下给出了可重复的示例。非常感谢。
biwavelet
当我这样做时,会发生如下错误:
t1 <- cbind(1:100, rnorm(100))
t2 <- cbind(1:100, rnorm(100))
lag.t1=acf(t1,plot=F)$acf[2]
lag.t2=acf(t2,plot=F)$acf[2]
wtc.t1t2 <- wtc(t1, t2, max.scale = 32,lag1=c(lag.t1,lag.t2))
答案 0 :(得分:1)
wtc
似乎有一个错误。它将lag1
传递给wt
函数以分别计算每个系列的小波变换,但是没有对lag1
进行子集化,这是警告来自的地方 - 基本上是错误的延迟在第二个系列中使用,因为代码需要lag1
的长度为1的向量。
奇怪的是,代码在内部计算每个系列的AR(1)系数,但是如果你想测试重要性,这些只会在代码中使用。这些永远不会传递;如果维护者只是在wtc
顶层传递这些系数,如果用户没有提供它们,那么它将为每个系列节省两次AR模型的计算,如果用户没有提供lag1
向量的子集供应他们。
我建议您联系维护人员以提及问题。
与此同时,最初不要打扰计算lag1
;内部wt.sig
,由wtc
调用 - &gt; wt
,如果lag1
为NULL
,则会通过arima()
估算AR(1)系数,这与wtc
计算其重要性的方式相同测试该功能。如果您忽略lag1
并让它在内部为您计算coefs,代码将执行您想要的操作。
答案 1 :(得分:0)
在调用wtc
函数之前,您不必估计AR(1)系数,因为这是在内部完成的。但是,如果您坚持计算系数并将其提供给wtc
,GitHub上提供的最新版本的biwavelet(0.20.9)可以解决警告问题并实施Gavin提高效率的建议(即,如果系统已经由用户提供,则不计算系数)。多谢你们两个指出这个问题......