【问题标题】:(Python) MVHR Covariance and OLS Beta difference(Python) MVHR Covariance 和 OLS Beta 差异
【发布时间】:2014-07-16 12:58:38
【问题描述】:

我通过以下方式计算了两种证券收益的最小方差对冲比率 (MVHR):
1. 使用样本计算最优 h* = Cov(S,F) / Var(F)
2.运行OLS回归并获得beta值

两个值略有不同,例如我得到 h* = 0.9547 和 beta = 0.9537。但它们应该是相同的。为什么会这样?

下面是我的代码:

import numpy as np
import statsmodels.api as sm

var = np.var(secRets, ddof = 1)
cov_denom = len(secRets) - 1
for i in range (0, len(secRets)): 
   cov_num += (indexRets[i] - indexAvg) * (secRets[i] - secAvg)
cov = cov_num / cov_denom
h = cov / var

ols_res = sm.OLS(indexRets, secRets).fit()
beta = ols_res.params[0]

print h, beta

indexRets 和 secRets 分别是指数和证券(期货)的每日收益列表。

【问题讨论】:

    标签: python numpy statsmodels


    【解决方案1】:

    这也是OLS回归中缺少常数的情况。协方差和方差计算减去在线性回归中与包含常数相同的均值。 statsmodels 默认不包含常量,除非您使用公式。

    有关更多详细信息和示例,请参阅例如 OLS of statsmodels does not work with inversely proportional data?

    另外,您可以通过调用numpy.cov 来替换python 循环来计算协方差。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 2016-09-08
      • 2016-12-29
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      • 1970-01-01
      相关资源
      最近更新 更多