Я вычислял маржинальный VaR с помощью пакета Performance Analytics с использованием функции VaR, и он дает какой-то странный результат.
Общий маржинальный VaR портфеля должен быть равен общему портфелю VaR с использованием «одного» метод и метод "компонент", а также. Однако при использовании этого примера кода маржинальный VaR, по-видимому, отличается от «единственного» метода VaR в общей части VaR портфеля (-0,0342946 против -0,04817511):
cov.matrix<-covEstimation(as.matrix(edhec), control = list(type = 'ewma', lambda = 0.94))
m3<-PerformanceAnalytics::M3.MM(edhec)
m4<-PerformanceAnalytics::M4.MM(edhec)
mu<-colMeans(edhec)
var1<-VaR(edhec, p=0.99, method = ("modified"), portfolio_method = "marginal", weights=rep(1/ncol(edhec),ncol(edhec)), sigma = cov.matrix,
m3=m3, m4=m4, mu = array(0,ncol(edhec)))
var2<-VaR(edhec, p=0.99, method = ("modified"), portfolio_method = "component", weights=rep(1/ncol(edhec),ncol(edhec)), sigma = cov.matrix,
m3=m3, m4=m4, mu = array(0,ncol(edhec)))
var3<-VaR(edhec, p=0.99, method = ("modified"), portfolio_method = "single", weights=rep(1/ncol(edhec),ncol(edhec)), sigma = cov.matrix,
m3=m3, m4=m4, mu = array(0,ncol(edhec)))
Я не знаю, является ли он коррелировал, но поскольку я пытался понять источник проблемы, я также заметил, что когда я запускаю маржинальный VaR с помощью различных методов, таких как «модифицированный» или «гауссовский», общий портфель VaR также, похоже, не меняется. Пример кода для этой проблемы:
cov.matrix<-covEstimation(as.matrix(edhec), control = list(type = 'ewma', lambda = 0.94))
m3<-PerformanceAnalytics::M3.MM(edhec)
m4<-PerformanceAnalytics::M4.MM(edhec)
mu<-colMeans(edhec)
var1<-VaR(edhec, p=0.99, method = ("modified"), portfolio_method = "marginal", weights=rep(1/ncol(edhec),ncol(edhec)), sigma = cov.matrix,
m3=m3, m4=m4, mu = array(0,ncol(edhec)))
var2<-VaR(edhec, p=0.99, method = ("gaussian"), portfolio_method = "marginal", weights=rep(1/ncol(edhec),ncol(edhec)), sigma = cov.matrix,
m3=m3, m4=m4, mu = array(0,ncol(edhec)))
var3<-VaR(edhec, p=0.99, method = ("historical"), portfolio_method = "marginal", weights=rep(1/ncol(edhec),ncol(edhec)), sigma = cov.matrix,
m3=m3, m4=m4, mu = array(0,ncol(edhec)))
Я здесь ошибаюсь или это действительно ошибка?