Функция VaR в пакете Performance Analytics, показывающая неожиданный результат - PullRequest
0 голосов
/ 21 марта 2020

Я вычислял маржинальный 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)))

Я здесь ошибаюсь или это действительно ошибка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...