У меня есть один кусок и одна матрица. Таблица содержит большой набор случайных весов от 0 до 1. Здесь только небольшая часть исходного набора данных (исходный набор данных имеет 15.000 строк) со случайными числами:
library(tidyquant)
library(tidyverse)
weights_ptf <- tibble(a = runif(10, min=0, max=1), b = runif(10, min=0, max=1),
c = runif(10, min=0, max=1), d = runif(10, min=0, max=1), e = runif(10, min=0, max=1))
Матрица является ковариационной матрицей. Для упрощения матрица в этом случае выглядит следующим образом:
CovMat <- matrix(
c(runif(5, min=0.0001, max=0.0002), runif(5, min=0.0001, max=0.0002), runif(5, min=0.0001, max=0.0002),
runif(5, min=0.0001, max=0.0002), runif(5, min=0.0001, max=0.0002), runif(5, min=0.0001, max=0.0002)),
nrow=5,
ncol=5)
colnames(CovMat) <- (c("a", "b", "c", "d", "e"))
rownames(CovMat) <- (c("a", "b", "c", "d", "e"))
Я хотел бы рассчитать для каждой отдельной строки в weights_ptf
стандартное отклонение по формуле: sqrt(t(wts) %*% (CovMat %*% wts))
. wts
в этом случае будет каждая строка в weights_ptf
.
Я надеюсь, что моя проблема ясна. Любая помощь будет высоко ценится.
Заранее спасибо!