这是我想做的事情:
我有一个时间序列数据框,让我们说 100 个长度为 600 的时间序列 - 每个都在数据框的一列中。
我想随机选取 10 个时间序列,然后为它们分配总和为 1 的随机权重。使用那些我想计算 10 个加权时间序列变量(例如凸组合)之和的方差。
df 的形式为
v1,v2,v2.....v100
1,5,6,.......9
2,4,6,.......10
3,5,8,.......6
2,2,8,.......2
etc
我可以在循环内计算它,但 r 是面向矢量的,效率不高。
ntrials = 10000
ts.sd = NULL
for (x in 1:ntrials))
{
temp = t(weights[,x]) %*% cov(df[, samples[, x]]) %*% weights[, x]
ts.sd = cbind(ts.sd, temp)
}