R 对数协方差到算术协方差矩阵函数?

R 对数协方差到算术协方差矩阵函数?,r,matrix,covariance,R,Matrix,Covariance,是否有一个函数可以将使用日志返回构建的协方差矩阵转换为基于简单算术返回的协方差矩阵 动机:我们想使用均值-方差效用函数,其中预期收益和方差是用算术术语指定的。然而,由于对数收益的可加性,估计收益和协方差通常使用对数收益,我们假设资产价格遵循对数正态随机过程 Meucci描述了一个为对数正态收益的一般/任意分布生成基于算术收益的协方差矩阵的过程。以下是我对公式的翻译: linreturn <- function(mu,Sigma) { m <- exp(mu+diag(Sigma)

是否有一个函数可以将使用日志返回构建的协方差矩阵转换为基于简单算术返回的协方差矩阵

动机:我们想使用均值-方差效用函数,其中预期收益和方差是用算术术语指定的。然而,由于对数收益的可加性,估计收益和协方差通常使用对数收益,我们假设资产价格遵循对数正态随机过程


Meucci描述了一个为对数正态收益的一般/任意分布生成基于算术收益的协方差矩阵的过程。

以下是我对公式的翻译:

linreturn <- function(mu,Sigma) {
  m <- exp(mu+diag(Sigma)/2)-1
  x1 <- outer(mu,mu,"+")
  x2 <- outer(diag(Sigma),diag(Sigma),"+")/2
  S <- exp(x1+x2)*(exp(Sigma)-1)
  list(mean=m,vcov=S)
}
linreturn(m1,S1)

## $mean
## [1]  3.481689 11.182494

## $vcov
##          [,1]      [,2]
## [1,] 34.51261  12.08818
## [2,] 12.08818 255.01563
生成多元对数正态回报:

set.seed(1001)
r1 <- exp(MASS::mvrnorm(200000,mu=m1,Sigma=S1))-1
colMeans(r1)
## [1]  3.485976 11.214211
var(r1)
##         [,1]     [,2]
## [1,] 34.4021  12.4062
## [2,] 12.4062 263.7382

现在没有时间这么做,但基于链接引用中的方程式似乎很容易实现(您甚至可以使用
for
循环,但是
外部
会更好),我认为函数需要将预期回报和地平线上的协方差矩阵作为输入。函数还需要假设一个分布(正态分布、柯西分布等)。我感到惊讶的是,目前还没有这样的库——大多数协方差都是通过日志返回来估计的,这应该是一个相当常见的问题。对分布情况不太确定。除此之外,如果分布真的是柯西分布,那么理论二阶矩就不存在,样本二阶矩也没有什么意义……公式7中的“-1”不是一个打字错误。对于较小的'r'值,其中'r'是算术返回,定义为log(1+'r')的日志返回应大致等于'r'。如果我用m1测试上面的函数,我相信你的模拟实验中你的意思是:r1好的,我不理解上下文。谢谢。我不清楚(基于我对该主题的有限理解)如何将对数正态性假设放松到对数t分布——对不起。(事实上,t分布具有无界方差)。这是一个非常优雅的解决问题的方法,谢谢!
linreturn(m1,S1)

## $mean
## [1]  3.481689 11.182494

## $vcov
##          [,1]      [,2]
## [1,] 34.51261  12.08818
## [2,] 12.08818 255.01563