У меня есть простая проблема, и я был бы признателен за чей-либо совет.
Я работаю над проблемой анализа инвестиционного портфеля и создал объект временного ряда, который включает данные ежедневной доходности 100 акций. Я пытаюсь создать 100 портфелей, каждый из которых содержит k акций (т.е. портфель 1 включает только акции 1, портфель 2 включает акции 1 и 2, портфель 3 включает акции 1, 2 и 3 и т. Д.). Моя идея состоит в том, чтобы написать цикл for с использованием cbind для определения каждого портфеля (поскольку каждый столбец представляет одну акцию, мы можем сгруппировать столбцы, чтобы создать новый объект, который включает данные о возвратах для каждой акции в этом портфеле). К сожалению, мой код не работает, и я был бы признателен за помощь в исправлении моего кода или предложении лучшего способа достижения того же результата.
Это код, который я пробовал:
port1 <- returns$X1 #defines the first portfolio, which only includes data from the first column (stock 1)
for(i in 2:100)
{port[i] <- cbind(port[i-1],returns$Xi)}
Пожалуйста, найдите ниже мой начальный код:
prices <- read.csv("ass2data.csv") #import data
prices$Date <- as.Date(prices$Date, format("%d/%m/%Y"))
prices <- prices[order(prices$Date), ]
prices <- as.xts(prices[, 2:101], order.by = prices$Date) #transform data table into time series in order to conduct returns analysis
returns <- Return.calculate(prices) #create variable returns
returns <- returns[-1, ] #remove the first row of returns (which are NA)
colnames(returns) <- paste0("X", 1:100) #update column names
Это снимок данных о доходах для первых пяти акций:
> head(returns)
X1 X2 X3 X4 X5
2014-01-02 0.003270007 0.003266847 0.002258356 0.002421568 0.003186671
2014-01-03 -0.018734046 -0.019517029 -0.021293375 -0.016185312 -0.018242174
2014-01-06 -0.001660788 -0.002475299 -0.003453436 -0.014787330 -0.002424078
2014-01-07 0.009156889 -0.001674973 -0.006930807 -0.013347733 -0.002429969
2014-01-08 0.002465390 0.006669705 -0.002210073 0.004210054 0.004871776
2014-01-09 -0.013155214 -0.006625514 -0.003497319 -0.004192403 -0.008884820
И это образецкаким должен быть результат для третьего портфеля:
X1 X2 X3
2014-01-02 0.003270007 0.003266847 0.002258356
2014-01-03 -0.018734046 -0.019517029 -0.021293375
2014-01-06 -0.001660788 -0.002475299 -0.003453436
2014-01-07 0.009156889 -0.001674973 -0.006930807
2014-01-08 0.002465390 0.006669705 -0.002210073
2014-01-09 -0.013155214 -0.006625514 -0.003497319
Спасибо !!