我有一个较大的XTS对象,它是在1343个数据点中使用横跨12 x 12变量的XTS ZOO对象的滑动窗口进行相关性计算的结果。将大型XTS对象转换为数组以计算Eignevalues和特征向量
我的大XTS对象的结构如下,行表示时间和列表示的相关性的组合。一个简单的例子如下所示:
AA BA CA AB BB CB AC BC CC
t1 1 .1 -.4 .1 1 .3 -.4 .3 1
t2 1 .4 .8 .4 1 .2 .8 .2 1
t3 1 .5 .5 .5 1 .3 .5 .3 1
t4 1 .6 .1 .6 1 .7 .1 .7 .1
纠正我,如果我错了,但相信在R中的eigen()
函数需要一个方阵计算矩阵拉姆达1,2和3的特征值?
我怎样才能平方上面的xts对象找到每个矩阵的特征值和向量跨时间?
我猜我会在上面的XTS对象中的每个时间段(1-4)都有一个矩阵,矩阵应该通过取前三个值(1.1.4)并将他们进入第一列,再接下来的三个值(.1 1 .3),然后进入第二列,最后一列(-.4.31)的最后三个值进入最后一列以弥补不需要计算本征值
矩阵T1
A B C
A 1 .1 -.4
B .1 1 .3
C -.4 .3 1
也许从XTS对象转变,但如果我通过在步骤:其中示出下面的3×3矩阵我的头这些是计算我的XTS对象的特征值所需的步骤。
在理想情况下,从每个矩阵的特征值将被存储在一个数据帧或基质,在上述情况下我将具有3个变量的12个观测一个数据帧或矩阵3×4
谁能告诉如果我以这种错误的方式进行讨论,并且eigen()
是否可以将XTS对象作为当前形式并计算特征值?
非常感谢您的快速回复,非常感谢。我从R的帮助中看到,对于不同的时间段,例如每周,每天,每月等,有许多应用函数,但我的数据实际上是15分钟的数据,是否有另一个函数可以处理这种粒度?顺便说一下,我将值[1]更改为值[1:12],以返回我需要的12个特征值。 – TheGoat
@PigWolf您可以使用'period.apply'指定任意的时间段。或者使用base [apply(dfx,1,...)',然后转换回xts。 – tonytonov
非常感谢,我在矩阵的行数部分卡住了一点。如果我错误地解释了这个,请让我知道。从左到右,对于dfx的每个日常值,由于x或dfx的长度为36(4 * 9),因此可以应用函数x计算nrows = 6的矩阵的特征值。虽然当我在dfx上运行你的代码时,只有4行数据,所以我对matix的设置感到困惑。顺便说一句,我的数据有144列和1343行,所以sqrt不适合我。我还添加了原始帖子,因为这很难传达。 – TheGoat