r中时间序列矩阵的求和

时间:2014-03-26 04:43:42

标签: r

Xt =矩阵(1:30,ncol = 3)其中t是时间段。 我试图从t = 1到10求解和(t(Xt)%*%Xt)/ n)。 我使用下面的代码。'

B_hat_T=matrix(NA,p,n)
for (j in 1:n) { if (j>=p) B_hat_T[,j]<-solve((t(xt[1:j,])%*%xt[1:j,])/n)}

但它不起作用。 你知道怎么解决它吗? 感谢

1 个答案:

答案 0 :(得分:0)

你的代码并不是很清楚你想要做什么(什么是n?p?)但是有两件事情在我身上跳出来。首先,在您的代码中使用xt,但在文本中使用Xt。这些是不同的东西。此外,您在简介中定义的xt完全是单数 - 您无法使用solve将其反转。关于主题的潜在问题,使用%*%solve可能不是数字上最稳定的评估方式,如果这确实是你想要做的。

其次,如果你使xt非单数

xt <- matrix(rnorm(30), ncol = 3)

然后运行

solve((t(xt[1:5, ]) %*% xt[1:5, ]) / 30)

结果是一个大小为3x3的矩阵。在尝试使用B_hat_T[l j]时,您无法将其分配给矩阵的单行。

最后,如果你想获得行1到k的矩阵x的列式和,就像这样:

xt <- matrix(1:30, ncol = 3)
k <- 5
apply(xt[1:k, ], 2, sum)
对于第1行到第k行,

将返回xt列的总和向量(在本例中为5)。这是&#34; R方式&#34;这样做。 forif将花费更长的时间和更多的内存来执行。