如何使用 returns 和 returns 的平方计算对数 return 序列的协方差矩阵
How to calculate the covariance matrix for the log return series, using both the returns and returns squared
下面提供了示例数据。
data <- data.frame(normal_return = c(0.02012, 0.03488, 0.00418, 0.01780, 0.00563, -0.00187),
log_return = c(0.01992, 0.03429, 0.00418, 0.01764, 0.00562, -0.00187))
如何使用 returns 和 returns 平方
计算对数 return 序列的协方差矩阵
这只是简单地使用 cov() 函数吗?
调用cov()
是获取方差-协方差矩阵的合适方法。方差在对角线上,协方差由非对角线元素表示。
my_cov <- cov(data)
> my_cov
normal_return log_return
normal_return 0.0001808887 0.0001779709
log_return 0.0001779709 0.0001751051
如果你想得到sd
,你应该使用这个矩阵对角线的平方根。
> sqrt(diag(my_cov))
normal_return log_return
0.01344949 0.01323273
编辑
如果您还想在协方差矩阵中包含 normal_return
的平方,最简单的方法是创建一个包含这些值的新列。
# new column: square of normal_return
data$sq_return <- data$normal_return^2
my_cov <- cov(data)
> my_cov
normal_return log_return sq_return
normal_return 1.808887e-04 0.0001779709 5.934746e-06
log_return 1.779709e-04 0.0001751051 5.828500e-06
sq_return 5.934746e-06 0.0000058285 2.170196e-07
如果您希望输出固定而不是 exponential/scientific 表示法,您可以 运行 options(scipen = 999)
.
最后一点,如果您想将协方差矩阵转换为相关矩阵,您可以调用 cov2cor()
函数并使用协方差矩阵作为其参数。
my_corr <- cov2cor(my_cov)
> my_corr
normal_return log_return sq_return
normal_return 1.0000000 0.9999858 0.9472112
log_return 0.9999858 1.0000000 0.9454920
sq_return 0.9472112 0.9454920 1.0000000
## cov2cor() scales a covariance matrix by its diagonal
## to become the correlation matrix.
下面提供了示例数据。
data <- data.frame(normal_return = c(0.02012, 0.03488, 0.00418, 0.01780, 0.00563, -0.00187),
log_return = c(0.01992, 0.03429, 0.00418, 0.01764, 0.00562, -0.00187))
如何使用 returns 和 returns 平方
计算对数 return 序列的协方差矩阵这只是简单地使用 cov() 函数吗?
调用cov()
是获取方差-协方差矩阵的合适方法。方差在对角线上,协方差由非对角线元素表示。
my_cov <- cov(data)
> my_cov
normal_return log_return
normal_return 0.0001808887 0.0001779709
log_return 0.0001779709 0.0001751051
如果你想得到sd
,你应该使用这个矩阵对角线的平方根。
> sqrt(diag(my_cov))
normal_return log_return
0.01344949 0.01323273
编辑
如果您还想在协方差矩阵中包含 normal_return
的平方,最简单的方法是创建一个包含这些值的新列。
# new column: square of normal_return
data$sq_return <- data$normal_return^2
my_cov <- cov(data)
> my_cov
normal_return log_return sq_return
normal_return 1.808887e-04 0.0001779709 5.934746e-06
log_return 1.779709e-04 0.0001751051 5.828500e-06
sq_return 5.934746e-06 0.0000058285 2.170196e-07
如果您希望输出固定而不是 exponential/scientific 表示法,您可以 运行 options(scipen = 999)
.
最后一点,如果您想将协方差矩阵转换为相关矩阵,您可以调用 cov2cor()
函数并使用协方差矩阵作为其参数。
my_corr <- cov2cor(my_cov)
> my_corr
normal_return log_return sq_return
normal_return 1.0000000 0.9999858 0.9472112
log_return 0.9999858 1.0000000 0.9454920
sq_return 0.9472112 0.9454920 1.0000000
## cov2cor() scales a covariance matrix by its diagonal
## to become the correlation matrix.