参数估计

https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86
Buy Me a Coffee at ko-fi.com

该模块具有一些功能,使我们能够使用几种方法来估计均值向量、协方差矩阵和协方差平方矩阵:

  • 历史估计。

  • 使用指数加权移动平均法(EWMA)进行估计。

  • 鲁棒的协方差矩阵估计,如Ledoit和Wolf、Oracle、收缩和图形Lasso、j-LoGo [B1]、Gerber统计量 [B2] 和去噪 [B3] 估计量。

  • 因素模型用于估计均值向量和协方差矩阵。

  • 黑利特曼模型允许在均值向量和协方差矩阵的估计中纳入分析师对收益的观点 [B4] [B5].

  • 增强型黑利特曼模型允许将分析师对风险因素的看法纳入均值向量和协方差矩阵的估计中[B6].

  • 黑利特曼贝叶斯模型允许在均值向量和协方差矩阵的估计中融入分析师对风险因素的看法 [B7]

  • 引导法估计最坏情况优化模型中均值向量和协方差矩阵的不确定性集合的输入参数。

模块函数

ParamsEstimation.mean_vector(X, 方法='hist', d=0.94, 目标='b1')[来源]

使用所选方法计算预期收益向量。

Parameters:
X : DataFrame of shape (n_samples, n_assets)

资产返回一个数据框,其中 n_samples 是观测值的数量,n_assets 是资产的数量。

method : str, optional

用于估计预期收益的方法。 默认值为‘hist’。 可选值包括:

  • ’hist’:使用历史估计器。

  • ’ewma1’:使用ewma,adjust=True。有关更多信息,请参见 EWM

  • ’ewma2’:使用ewma,adjust=False。有关更多信息,请参见 EWM

  • ’JS’:James-Stein 估计器。有关更多信息,请参见 [B8][B9]

  • ’BS’:Bayes-Stein 估计器。有关更多信息,请参见 [B10]

  • ’BOP’:BOP 估计器。有关更多信息,请参见 [B11]

d : scalar

ewma方法的平滑因子。
默认值为0.94。

target : str, optional

目标均值向量。默认值为‘b1’。可能的值包括:

  • ’b1’: 总均值。

  • ’b2’: 按波动率加权的总均值。

  • ’b3’: 样本均值的均方误差。

Returns:

mu – 预期收益的估计。

Return type:

一维数组

Raises:

ValueError – 当无法计算该值时。

ParamsEstimation.covar_matrix(X, 方法='hist', d=0.94, 阿尔法=0.1, bWidth=0.01, 去音=False, mkt_comp=1, 阈值=0.5)[来源]

使用所选方法计算协方差矩阵。

Parameters:
X : DataFrame of shape (n_samples, n_assets)

资产返回一个数据框,其中 n_samples 是观测值的数量,n_assets 是资产的数量。

method : str, optional

用于估计协方差矩阵的方法: 默认值为 ‘hist’。可能的值有:

  • ’hist’: 使用历史估计。

  • ’semi’: 使用半下协方差矩阵。

  • ’ewma1’: 使用调整为 True 的 ewma。有关更多信息,请参见 EWM

  • ’ewma2’: 使用调整为 False 的 ewma。有关更多信息,请参见 EWM

  • ’ledoit’: 使用 Ledoit 和 Wolf 收缩方法。

  • ’oas’: 使用 Oracle 近似收缩方法。

  • ’shrunk’: 使用基本收缩协方差方法。

  • ’gl’: 使用基本图形套索协方差方法。

  • ’jlogo’: 使用 j-LoGo 协方差方法。有关更多信息,请参阅:[B1]

  • ’fixed’: 使用固定方法去噪。有关更多信息,请参见 [B3] 的第 2 章。

  • ’spectral’: 使用谱方法去噪。有关更多信息,请参见 [B3] 的第 2 章。

  • ’shrink’: 使用收缩方法去噪。有关更多信息,请参见 [B3] 的第 2 章。

  • ’gerber1’: 使用 Gerber 统计量 1。有关更多信息,请参见:[B2]

  • ’gerber2’: 使用 Gerber 统计量 2。有关更多信息,请参见:[B2]

d : scalar

ewma 方法的平滑因子。默认值为 0.94。

alpha : scalar

收缩和缩小方法的shrfactor。默认值为0.1。

bWidth : float

用于‘fixed’,‘spectral’和‘s shrink’方法的核的带宽。

detone : bool, optional

如果删除‘固定’、‘光谱’和‘收缩’方法的相关矩阵中的第一个 mkt_comp。去调相关矩阵是奇异的,因此无法进行反演。

mkt_comp : int, optional

将使用去音方法移除的第一个组件的数量。

threshold : float

‘gerber1’和‘gerber2’方法的阈值介于0和1之间。

Returns:

cov – 协方差矩阵的估计。

Return type:

nd-数组

Raises:

ValueError – 当无法计算该值时。

ParamsEstimation.cokurt_matrix(X, 方法='hist', 阿尔法=0.1, bWidth=0.01, 去音=False, mkt_comp=1)[来源]

使用所选方法计算四阶矩阵。

Parameters:
X : DataFrame of shape (n_samples, n_assets)

资产返回一个数据框,其中 n_samples 是观测值的数量,n_assets 是资产的数量。

method : str, optional

用于估计 cokurtosis 方阵的方法: 默认值为‘hist’。可能的值有:

  • ’hist’: 使用历史估计。

  • ’semi’: 使用半下 cokurtosis 方阵。

  • ’fixed’: 使用固定方法去噪。有关更多信息,请参见 [B3] 的第 2 章。

  • ’spectral’: 使用谱方法去噪。有关更多信息,请参见 [B3] 的第 2 章。

  • ’shrink’: 使用收缩方法去噪。有关更多信息,请参见 [B3] 的第 2 章。

bWidth : float

‘固定’,‘光谱’和‘收缩’方法的核带宽。

detone : bool, optional

如果移除“固定”、“谱”和“收缩”方法的相关性矩阵中的第一个 mkt_comp。去除相关性矩阵是奇异的,因此无法反转。

mkt_comp : int, optional

将使用去音方法移除的第一个组件的数量。

Returns:

kurt – cokurtosis平方矩阵的估计。

Return type:

nd-数组

Raises:

ValueError – 当无法计算该值时。

ParamsEstimation.forward_regression(X, y, 标准='pvalue', 阈值=0.05, 详细信息=False)[来源]

选择使用逐步向前回归估计最佳模型的变量。如果没有变量的p值低于阈值,则算法将选择具有最低p值的变量。

Parameters:
X : DataFrame of shape (n_samples, n_factors)

风险因素返回矩阵,其中 n_samples 是样本数量,n_factors 是风险因素的数量。

y : Series of shape (n_samples, 1)

资产收益列 数据框或 序列,其中 n_samples 是样本数量。

criterion : str, optional

默认值为‘pvalue’。用于选择最佳特征的标准的可能值有:

  • ’pvalue’: 基于p值选择特征。

  • ’AIC’: 基于最低的赤池信息量准则选择特征。

  • ’SIC’: 基于最低的施瓦兹信息量准则选择特征。

  • ’R2’: 基于最高的R平方选择特征。

  • ’R2_A’: 基于最高的调整后R平方选择特征。

thresholdt : scalar, optional

这是模型中将被接受的每个变量的最大p值。默认值为0.05。

verbose : bool, optional

启用详细输出。默认值为 False。

Returns:

value – 生成最佳模型的变量列表。

Return type:

list

Raises:

ValueError – 当无法计算该值时。

ParamsEstimation.backward_regression(X, y, 标准='pvalue', 阈值=0.05, 详细信息=False)[来源]

选择使用逐步回归估计最佳模型的变量。如果没有任何变量的p值低于阈值,算法将选择p值最低的变量。

Parameters:
X : DataFrame of shape (n_samples, n_factors)

风险因素收益矩阵,其中 n_samples 是样本数, n_factors 是风险因素的数量。

y : Series of shape (n_samples, 1)

资产回报列 数据框或序列,其中 n_samples 是样本的数量。

criterion : str, optional

默认值为‘pvalue’。用于选择最佳特征的标准的可能值有:

  • ’pvalue’: 基于p值选择特征。

  • ’AIC’: 基于最低的赤池信息量准则选择特征。

  • ’SIC’: 基于最低的施瓦兹信息量准则选择特征。

  • ’R2’: 基于最高的R平方选择特征。

  • ’R2_A’: 基于最高的调整后R平方选择特征。

threshold : scalar, optional

这是模型中将被接受的每个变量的最大p值。默认值为0.05。

verbose : bool, optional

启用详细输出。默认值为 False。

Returns:

value – 一系列生成最佳模型的变量。

Return type:

list

Raises:

ValueError – 当无法计算该值时。

ParamsEstimation.PCR(X, y, 主成分数量=0.95)[来源]

使用主成分回归(PCR)估计系数。

Parameters:
X : DataFrame of shape (n_samples, n_factors)

风险因素返回矩阵,其中 n_samples 是样本数量,n_factors 是风险因素的数量。

y : DataFrame or Series of shape (n_samples, 1)

资产收益列 数据框或 序列,其中 n_samples 是样本数量。

n_components : int, float, None or str, optional

如果 1 < n_components (int),则表示要保留的组件数量。如果 0 < n_components < 1 (float),则表示由保留的组件解释的方差百分比。有关更多详细信息,请参见 PCA。默认值为 0.95。

Returns:

value – 一个包含使用PCR计算的模型系数的数组。

Return type:

nd-数组

Raises:

ValueError – 当无法计算该值时。

ParamsEstimation.loadings_matrix(X, Y, 特征选择='stepwise', 逐步='Forward', 标准='pvalue', 阈值=0.05, 主成分数量=0.95, 详细信息=False)[来源]

使用逐步回归估计加载矩阵。

Parameters:
X : DataFrame of shape (n_samples, n_factors)

风险因素返回矩阵,其中 n_samples 是样本数量,n_factors 是风险因素的数量。

Y : DataFrame of shape (n_samples, n_assets)

资产返回一个数据框,其中 n_samples 是观测值的数量,n_assets 是资产的数量。

feature_selection : str, 'stepwise' or 'PCR', optional

指明用于估计载荷矩阵的方法。 默认值为‘stepwise’。可能的值有:

  • ’stepwise’: 使用逐步回归选择最佳因素并估计系数。

  • ’PCR’: 使用主成分回归估计系数。

stepwise : str 'Forward' or 'Backward', optional

指明用于逐步回归的方法。 默认值为“前向”。

criterion : str, optional

默认值为‘pvalue’。用于选择最佳特征的标准的可能值有:

  • ’pvalue’: 基于p值选择特征。

  • ’AIC’: 基于最低的赤池信息量准则选择特征。

  • ’SIC’: 基于最低的施瓦兹信息量准则选择特征。

  • ’R2’: 基于最高的R平方选择特征。

  • ’R2_A’: 基于最高的调整后R平方选择特征。

threshold : scalar, optional

这是模型中将被接受的每个变量的最大p值。默认值为0.05。

n_components : int, float, None or str, optional

如果 1 < n_components (int),它表示将保留的组件数量。如果 0 < n_components < 1 (float),它表示保留的组件所解释的方差百分比。详见 PCA。默认值为 0.95。

verbose : bool, optional

启用详细输出。默认值为 False。

Returns:

loadings – 载荷矩阵。

Return type:

数据框

Raises:

ValueError – 当无法计算该值时。

ParamsEstimation.risk_factors(X, Y, B=None, 常量=True, method_mu='hist', 方法覆盖='hist', 特征选择='stepwise', 逐步='Forward', 标准='pvalue', 阈值=0.05, 主成分数量=0.95, dict_mu={}, dict_cov={})[来源]

根据风险因素模型估计期望收益向量和协方差矩阵 [B12] [B13]

\[\begin{split}\begin{aligned} R & = \alpha + B F + \epsilon \\ \mu_{f} & = \alpha +BE(F) \\ \Sigma_{f} & = B \Sigma_{F} B^{T} + \Sigma_{\epsilon} \\ \end{aligned}\end{split}\]

哪里:

\(R\) 是系列收益。

\(\alpha\) 是截距。

\(B\) 是加载矩阵。

\(F\) 是风险因子的预期回报向量。

\(\Sigma_{F}\) 是风险因素的协方差矩阵。

\(\Sigma_{\epsilon}\) 是误差项的协方差矩阵。

\(\mu_{f}\) 是通过风险因子模型获得的预期收益向量。

\(\Sigma_{f}\) 是使用风险因子模型获得的协方差矩阵。

Parameters:
X : DataFrame of shape (n_samples, n_factors)

风险因素收益矩阵,其中 n_samples 是样本数, n_factors 是风险因素的数量。

Y : DataFrame of shape (n_samples, n_assets)

资产返回一个数据框,其中 n_samples 是观测值的数量,n_assets 是资产的数量。

B : DataFrame of shape (n_assets, n_factors), optional

加载矩阵,其中 n_assets 是资产数量,n_factors 是风险因素数量。如果未指定,则使用逐步回归进行估计。默认值为 None。

const : bool, optional

指示载荷矩阵是否具有常数。 默认值为 False。

method_mu : str, optional

用于估计因子预期回报的方法。
默认值是‘hist’。可能的值有:

  • ’hist’: 使用历史估计。

  • ’ewma1’’: 使用ewma,参数adjust=True,详情见 EWM

  • ’ewma2’: 使用ewma,参数adjust=False,详情见 EWM

  • ’JS’: James-Stein估计量。有关更多信息,请参见 [B8][B9]

  • ’BS’: Bayes-Stein估计量。有关更多信息,请参见 [B10]

  • ’BOP’: BOP估计量。有关更多信息,请参见 [B11]

method_cov : str, optional

用于估计因子协方差矩阵的方法。 默认值为‘hist’。可能的值有:

  • ’hist’: 使用历史估计。

  • ’ewma1’’: 使用 ewma,adjust=True,更多细节请参见 EWM

  • ’ewma2’: 使用 ewma,adjust=False,更多细节请参见 EWM

  • ’ledoit’: 使用 Ledoit 和 Wolf 收缩方法。

  • ’oas’: 使用 Oracle 近似收缩方法。

  • ’shrunk’: 使用基本的收缩协方差方法。

  • ’gl’: 使用基本的图形套索协方差方法。

  • ’jlogo’: 使用 j-LoGo 协方差方法。更多信息请参见: [B1]

  • ’fixed’: 使用固定方法去噪。更多信息请参见 [B3] 的第二章。

  • ’spectral’: 使用光谱方法去噪。更多信息请参见 [B3] 的第二章。

  • ’shrink’: 使用收缩方法去噪。更多信息请参见 [B3] 的第二章。

  • ’gerber1’: 使用 Gerber 统计量 1。更多信息请参见: [B2]

  • ’gerber2’: 使用 Gerber 统计量 2。更多信息请参见: [B2]

feature_selection : str, 'stepwise' or 'PCR', optional

指明用于估计载荷矩阵的方法。 默认值为‘stepwise’。可能的值有:

  • ’stepwise’: 使用逐步回归选择最佳因素并估计系数。

  • ’PCR’: 使用主成分回归估计系数。

stepwise : str, 'Forward' or 'Backward'

指明用于逐步回归的方法。 默认值为“前向”。

criterion : str, optional

默认值为‘pvalue’。用于选择最佳特征的标准的可能值有:

  • ’pvalue’: 基于p值选择特征。

  • ’AIC’: 基于最低的赤池信息量准则选择特征。

  • ’SIC’: 基于最低的施瓦兹信息量准则选择特征。

  • ’R2’: 基于最高的R平方选择特征。

  • ’R2_A’: 基于最高的调整后R平方选择特征。

threshold : scalar, optional

这是模型中将被接受的每个变量的最大p值。默认值为0.05。

n_components : int, float, None or str, optional

如果 1 < n_components (int),它表示将保留的组件数量。如果 0 < n_components < 1 (float),它表示保留的组件所解释的方差百分比。详见 PCA。默认值为 0.95。

dict_mu : dict

与预期回报相关的其他变量。

dict_cov : dict

与协方差估计相关的其他变量。

Returns:

  • mu (DataFrame) – 风险因素模型的均值向量。

  • cov (DataFrame) – 风险因素模型的协方差矩阵。

  • returns (DataFrame) – 基于风险因素模型的收益。

  • B (DataFrame) – 负载矩阵。

Raises:

ValueError – 当无法计算该值时。

ParamsEstimation.black_litterman(X, w, P, , 德尔塔=1, rf=0, 等于=True, method_mu='hist', 方法覆盖='hist', dict_mu={}, dict_cov={})[来源]

基于黑利特曼模型估算预期收益向量和协方差矩阵 [B4] [B5]

\[\begin{split}\begin{aligned} \Pi & = \delta \Sigma w \\ \Pi_{BL} & = \left [ (\tau\Sigma)^{-1}+ P^{T} \Omega^{-1}P \right]^{-1} \left[(\tau\Sigma)^{-1} \Pi + P^{T} \Omega^{-1} Q \right] \\ M & = \left((\tau\Sigma)^{-1} + P^{T}\Omega^{-1} P \right)^{-1} \\ \mu_{BL} & = \Pi_{BL} + r_{f} \\ \Sigma_{BL} & = \Sigma + M \\ \end{aligned}\end{split}\]

哪里:

\(r_{f}\) 是无风险利率。

\(\delta\) 是风险厌恶系数。

\(\Pi\) 是均衡超额收益。

\(\Sigma\) 是协方差矩阵。

\(P\) 是视图矩阵。

\(Q\) 是视图返回矩阵。

\(\Omega\) 是误差视图的协方差矩阵。

\(\mu_{BL}\) 是使用黑利特曼模型获得的均值向量。

\(\Sigma_{BL}\) 是通过黑利特曼模型获得的协方差矩阵。

Parameters:
X : DataFrame of shape (n_samples, n_assets)

资产返回一个数据框,其中 n_samples 是观测值的数量,n_assets 是资产的数量。

w : DataFrame or Series of shape (n_assets, 1)

投资组合权重,其中 n_assets 是资产数量。

P : DataFrame of shape (n_views, n_assets)

分析师视图矩阵,可以是相对的或绝对的。

Q : DataFrame of shape (n_views, 1)

分析师观点的预期回报。

delta : float, optional

风险厌恶因子。默认值为1。

rf : scalar, optional

无风险利率。默认值为0。

eq : bool, optional

指示是使用平衡还是历史超额收益。 默认值为 True。

method_mu : str, optional

用于估计预期收益的方法。 默认值为‘hist’。

  • ’hist’: 使用历史估计。

  • ’ewma1’: 使用ewma,参数adjust=True。有关更多信息,参见 EWM

  • ’ewma2’: 使用ewma,参数adjust=False。有关更多信息,参见 EWM

  • ’JS’: James-Stein估计量。有关更多信息,参见 [B8][B9]

  • ’BS’: Bayes-Stein估计量。有关更多信息,参见 [B10]

  • ’BOP’: BOP估计量。有关更多信息,参见 [B11]

method_cov : str, optional

用于估计协方差矩阵的方法。 默认值为‘hist’。可能的值有:

  • ’hist’: 使用历史估计。

  • ’ewma1’: 使用调整为True的ewma。有关更多信息,请参见 EWM

  • ’ewma2’: 使用调整为False的ewma。有关更多信息,请参见 EWM

  • ’ledoit’: 使用Ledoit和Wolf缩减方法。

  • ’oas’: 使用Oracle近似缩减方法。

  • ’shrunk’: 使用基本的缩减协方差方法。

  • ’gl’: 使用基本的图形lasso协方差方法。

  • ’jlogo’: 使用j-LoGo协方差方法。有关更多信息,请参见: [B1]

  • ’fixed’: 使用固定方法去噪。有关更多信息,请参见 [B3]的第2章。

  • ’spectral’: 使用光谱方法去噪。有关更多信息,请参见 [B3]的第2章。

  • ’shrink’: 使用缩减方法去噪。有关更多信息,请参见 [B3]的第2章。

  • ’gerber1’: 使用Gerber统计量1。有关更多信息,请参见: [B2]

  • ’gerber2’: 使用Gerber统计量2。有关更多信息,请参见: [B2]

dict_mu : dict

与均值向量估计方法相关的其他变量。

dict_cov : dict

与协方差估计方法相关的其他变量。

Returns:

  • mu (DataFrame) – Black Litterman模型的均值向量。

  • cov (DataFrame) – Black Litterman模型的协方差矩阵。

  • w (DataFrame) – Black Litterman模型的无约束均衡权重。

Raises:

ValueError – 当无法计算该值时。

ParamsEstimation.augmented_black_litterman(X, w, F, B, P=None, =None, P_f=None, Q_f=None, 德尔塔=1, rf=0, 等于=True, 常量=True, method_mu='hist', 方法覆盖='hist', dict_mu={}, dict_cov={})[来源]

根据扩展的Black Litterman模型估计预期回报向量和协方差矩阵[B6]

\[\begin{split}\begin{aligned} \Pi^{a} & = \delta \left [ \begin{array}{c} \Sigma \\ \Sigma_{F} B^{T} \\ \end{array} \right ] w \\ P^{a} & = \left [ \begin{array}{cc} P & 0 \\ 0 & P_{F} \\ \end{array} \right ] \\ Q^{a} & = \left [ \begin{array}{c} Q \\ Q_{F} \\ \end{array} \right ] \\ \Sigma^{a} & = \left [ \begin{array}{cc} \Sigma & B \Sigma_{F}\\ \Sigma_{F} B^{T} & \Sigma_{F} \\ \end{array} \right ] \\ \Omega^{a} & = \left [ \begin{array}{cc} \Omega & 0 \\ 0 & \Omega_{F} \\ \end{array} \right ] \\ \Pi^{a}_{BL} & = \left [ (\tau \Sigma^{a})^{-1} + (P^{a})^{T} (\Omega^{a})^{-1} P^{a} \right ]^{-1} \left [ (\tau\Sigma^{a})^{-1} \Pi^{a} + (P^{a})^{T} (\Omega^{a})^{-1} Q^{a} \right ] \\ M^{a} & = \left ( (\tau\Sigma^{a})^{-1} + (P^{a})^{T} (\Omega^{a})^{-1} P^{a} \right )^{-1} \\ \mu^{a}_{BL} & = \Pi^{a}_{BL} + r_{f} \\ \Sigma^{a}_{BL} & = \Sigma^{a} + M^{a} \\ \end{aligned}\end{split}\]

哪里:

\(r_{f}\) 是无风险利率。

\(\delta\) 是风险厌恶系数。

\(B\) 是加载矩阵。

\(\Sigma\) 是资产的协方差矩阵。

\(\Sigma_{F}\) 是因子的协方差矩阵。

\(\Sigma^{a}\) 是增强协方差矩阵。

\(P\) 是资产视图矩阵。

\(Q\) 是资产视图的收益矩阵。

\(P_{F}\) 是因素视图矩阵。

\(Q_{F}\) 是因素视图收益矩阵。

\(P^{a}\) 是增强视角矩阵。

\(Q^{a}\) 是增强视图返回矩阵。

\(\Pi^{a}\) 是增强型均衡超额收益。

\(\Omega\) 是资产观点错误的协方差矩阵。

\(\Omega_{F}\) 是因子视图错误的协方差矩阵。

\(\Omega^{a}\) 是增强视图误差的协方差矩阵。

\(\mu^{a}_{BL}\) 是通过增强型布莱克-利特曼模型获得的均值向量。

\(\Sigma^{a}_{BL}\) 是使用增强型布莱克-利特曼模型获得的协方差矩阵。

Parameters:
X : DataFrame of shape (n_samples, n_assets)

资产返回一个数据框,其中 n_samples 是观测值的数量,n_assets 是资产的数量。

w : DataFrame or Series of shape (n_assets, 1)

投资组合权重,其中 n_assets 是资产数量。

F : DataFrame of shape (n_samples, n_factors)

风险因素返回数据框,其中 n_samples 是样本数量,n_factors 是风险因素的数量。

B : DataFrame of shape (n_assets, n_factors), optional

加载矩阵,其中 n_assets 是资产数量,n_factors 是风险因子的数量。

P : DataFrame of shape (n_views, n_assets)

分析师视图矩阵,可以是相对的或绝对的。

Q : DataFrame of shape (n_views, 1)

分析师观点的预期回报。

P_f : DataFrame of shape (n_views, n_factors)

分析师的因素观点矩阵,可以是相对的或绝对的。

Q_f : DataFrame of shape (n_views, 1)

分析师因素观点的预期回报。

delta : float, optional

风险厌恶因子。默认值为1。

rf : scalar, optional

无风险利率。默认值为0。

eq : bool, optional

指示是使用平衡还是历史超额收益。 默认值为 True。

const : bool, optional

指示载荷矩阵是否具有常数。 默认值为True。

method_mu : str, optional

用于估计预期收益的方法。 默认值为‘hist’。

  • ’hist’: 使用历史估计。

  • ’ewma1’: 使用ewma,参数adjust=True。有关更多信息,参见 EWM

  • ’ewma2’: 使用ewma,参数adjust=False。有关更多信息,参见 EWM

  • ’JS’: James-Stein估计量。有关更多信息,参见 [B8][B9]

  • ’BS’: Bayes-Stein估计量。有关更多信息,参见 [B10]

  • ’BOP’: BOP估计量。有关更多信息,参见 [B11]

method_cov : str, optional

用于估计协方差矩阵的方法。 默认值是‘hist’。 可选值包括:

  • ’hist’: 使用历史估计。

  • ’ewma1’: 使用ewma,参数调整为True。有关更多信息,请参见 EWM

  • ’ewma2’: 使用ewma,参数调整为False。有关更多信息,请参见 EWM

  • ’ledoit’: 使用Ledoit和Wolf收缩方法。

  • ’oas’: 使用Oracle近似收缩方法。

  • ’shrunk’: 使用基本的收缩协方差方法。

  • ’gl’: 使用基本的图形Lasso协方差方法。

  • ’jlogo’: 使用j-LoGo协方差方法。有关更多信息,请见: [B1]

  • ’fixed’: 使用固定方法去噪。有关更多信息,请参见 [B3]的第2章。

  • ’spectral’: 使用谱方法去噪。有关更多信息,请参见 [B3]的第2章。

  • ’shrink’: 使用收缩方法去噪。有关更多信息,请参见 [B3]的第2章。

  • ’gerber1’: 使用Gerber统计量1。有关更多信息,请见: [B2]

  • ’gerber2’: 使用Gerber统计量2。有关更多信息,请见: [B2]

dict_mu : dict

与均值向量估计方法相关的其他变量。

dict_cov : dict

与协方差估计方法相关的其他变量。

Returns:

  • mu (DataFrame) – 增强型黑利特曼模型的均值向量。

  • cov (DataFrame) – 增强型黑利特曼模型的协方差矩阵。

  • w (DataFrame) – 增强型黑利特曼模型的平衡权重,无约束。

Raises:

ValueError – 当无法计算该值时。

ParamsEstimation.black_litterman_bayesian(X, F, B, P_f, Q_f, 德尔塔=1, rf=0, 等于=True, 常量=True, method_mu='hist', 方法覆盖='hist', dict_mu={}, dict_cov={})[来源]

基于黑利特曼模型估计预期收益向量和协方差矩阵 [B7]

\[\begin{split}\begin{aligned} \Sigma_{F} & = B \Sigma_{F} B^{T} + D \\ \overline{\Pi}_{F} & = \left ( \Sigma_{F}^{-1} + P_{F}^{T}\Omega_{F}^{-1}P_{F} \right )^{-1} \left ( \Sigma_{F}^{-1}\Pi_{F} + P_{F}^{T}\Omega_{F}^{-1}Q_{F} \right) \\ \overline{\Sigma}_{F} & = \left ( \Sigma_{F}^{-1} + P_{F}^{T}\Omega_{F}^{-1}P_{F} \right )^{-1} \\ \Sigma_{BLB} & = \left( \Sigma^{-1} - \Sigma^{-1} B \left( \overline{\Sigma}_{F}^{-1} + B^{T}\Sigma^{-1}B \right)^{-1} B^{T}\Sigma^{-1} \right )^{-1} \\ \mu_{BLB} & = \Sigma_{BLB} \left ( \Sigma^{-1} B \left( \overline{\Sigma}_{F}^{-1} +B^{T}\Sigma^{-1}B \right)^{-1} \overline{\Sigma}_{F}^{-1} \overline{\Pi}_{F} \right ) + r_{f} \\ \end{aligned}\end{split}\]

哪里:

\(r_{f}\) 是无风险利率。

\(B\) 是加载矩阵。

\(D\) 是因子模型误差方差的对角矩阵。

\(\Sigma\) 是通过因子模型获得的协方差矩阵。

\(\Pi_{F}\) 是因素的均衡超额回报。

\(\overline{\Pi}_{F}\) 是因子的后验超额收益。

\(\Sigma_{F}\) 是因子的协方差矩阵。

\(\overline{\Sigma}_{F}\) 是因子的后验协方差矩阵。

\(P_{F}\) 是因素视图矩阵。

\(Q_{F}\) 是因素视图收益矩阵。

\(\Omega_{F}\) 是因子视图错误的协方差矩阵。

\(\mu_{BLB}\) 是通过黑利特曼贝叶斯模型或后验预测均值获得的均值向量。

\(\Sigma_{BLB}\) 是使用黑利特曼贝叶斯模型或后验预测协方差获得的协方差矩阵。

Parameters:
X : DataFrame of shape (n_samples, n_assets)

资产返回一个数据框,其中 n_samples 是观测值的数量,n_assets 是资产的数量。

F : DataFrame of shape (n_samples, n_factors)

风险因素返回数据框,其中 n_samples 是样本数量,n_factors 是风险因素的数量。

B : DataFrame of shape (n_assets, n_factors), optional

加载矩阵,其中 n_assets 是资产数量,n_factors 是风险因素的数量。默认值为 None。

P_f : DataFrame of shape (n_views, n_factors)

分析师的因素观点矩阵,可以是相对的或绝对的。

Q_f : DataFrame of shape (n_views, 1)

分析师因素观点的预期回报。

delta : float, optional

风险厌恶因子。默认值为1。

rf : scalar, optional

无风险利率。默认值为0。

eq : bool, optional

指示是使用平衡还是历史超额收益。 默认值为 True。

const : bool, optional

指示载荷矩阵是否具有常数。 默认值为True。

method_mu : str, optional

用于估计预期收益的方法。 默认值为‘hist’。

  • ’hist’: 使用历史估计。

  • ’ewma1’: 使用ewma,adjust=True。详细信息请参见 EWM

  • ’ewma2’: 使用ewma,adjust=False,详细信息请参见 EWM

  • ’JS’: James-Stein估计量。更多信息请参见 [B8][B9]

  • ’BS’: Bayes-Stein估计量。更多信息请参见 [B10]

  • ’BOP’: BOP估计量。更多信息请参见 [B11]

method_cov : str, optional

用于估计协方差矩阵的方法: 默认值为‘hist’,可能的值有:

  • ’hist’: 使用历史估计。

  • ’ewma1’: 使用ewma,调整为True。更多信息请参见 EWM

  • ’ewma2’: 使用ewma,调整为False。更多信息请参见 EWM

  • ’ledoit’: 使用Ledoit和Wolf收缩方法。

  • ’oas’: 使用Oracle近似收缩方法。

  • ’shrunk’: 使用基本的收缩协方差方法。

  • ’gl’: 使用基本的图形lasso协方差方法。

  • ’jlogo’: 使用j-LoGo协方差方法。更多信息请参见:[B1]

  • ’fixed’: 使用固定方法去噪。更多信息请参见[B3]第2章。

  • ’spectral’: 使用谱方法去噪。更多信息请参见[B3]第2章。

  • ’shrink’: 使用收缩方法去噪。更多信息请参见[B3]第2章。

  • ’gerber1’: 使用Gerber统计量1。更多信息请参见[B2]

  • ’gerber2’: 使用Gerber统计量2。更多信息请参见[B2]

dict_mu : dict

与均值向量估计方法相关的其他变量。

dict_cov : dict

与协方差估计方法相关的其他变量。

Returns:

  • mu (DataFrame) – Black Litterman模型的均值向量。

  • cov (DataFrame) – Black Litterman模型的协方差矩阵。

  • w (DataFrame) – Black Litterman模型的无约束均衡权重。

Raises:

ValueError – 当无法计算该值时。

ParamsEstimation.bootstrapping(X, 种类='stationary', q=0.05, n_sim=6000, 窗口=3, 对角线=False, 阈值=1e-15, 种子=0)[来源]

通过选择的自助法估计均值和协方差矩阵的不确定性集。

Parameters:
X : DataFrame of shape (n_samples, n_assets)

资产返回一个数据框,其中 n_samples 是观测值的数量,n_assets 是资产的数量。

kind : str

自助法。默认值为‘stationary’。可能的值包括:

q : scalar

盒子和椭圆约束的显著性水平。 默认值为0.05。

n_sim : scalar

自举方法的模拟次数。 默认值为6000。

window : int

自助法的块大小。必须大于1并且小于n_samples - n_factors + 1。默认值为3。

diag : bool

如果仅考虑估计误差的协方差矩阵的主对角线,遵循[B14]。默认值为 False。

threshold : float

用于固定协方差矩阵的参数,以防它们不是半正定的。 默认值为 1e-15。

seed : int

用于生成自助法随机数的种子。 默认值为0。

Returns:

  • mu_l (DataFrame) – 通过所选自助法获得的均值向量的 q/2 分位数。

  • mu_u (DataFrame) – 通过所选自助法获得的均值向量的 1-q/2 分位数。

  • cov_l (DataFrame) – 通过所选自助法获得的协方差矩阵的 q/2 分位数。

  • cov_u (DataFrame) – 通过所选自助法获得的协方差矩阵的 1-q/2 分位数。

  • cov_mu (DataFrame) – 通过所选自助法获得的均值向量估计误差的协方差矩阵。

  • cov_sigma (DataFrame) – 通过所选自助法获得的协方差矩阵估计误差的协方差矩阵。

  • k_mu (DataFrame) – 基于 1-q 分位数的均值向量估计误差的椭圆约束的平方根大小。

  • k_sigma (DataFrame) – 基于 1-q 分位数的协方差矩阵估计误差的椭圆约束的平方根大小。

Raises:

ValueError – 当无法计算该值时。

ParamsEstimation.normal_simulation(X, q=0.05, n_sim=6000, 对角线=False, 阈值=1e-15, 种子=0)[来源]

估计均值和协方差矩阵的不确定性集合,假设资产收益遵循多元正态分布。

Parameters:
X : DataFrame of shape (n_samples, n_assets)

资产返回一个数据框,其中 n_samples 是观测值的数量,n_assets 是资产的数量。

q : scalar

盒子和椭圆约束的显著性水平。 默认值为0.05。

n_sim : scalar

自举方法的模拟次数。 默认值为6000。

diag : bool

如果仅考虑估计误差的协方差矩阵的主对角线,遵循[B14]。默认值为 False。

threshold : float

用于修正协方差矩阵的参数,以防它们不是半正定的。 默认值为 1e-10。

seed : int

用于生成随机数以进行模拟的种子。 默认值为 0。

Returns:

  • mu_l (DataFrame) – 通过正态模拟获得的均值向量的 q/2 分位数。

  • mu_u (DataFrame) – 通过正态模拟获得的均值向量的 1-q/2 分位数。

  • cov_l (DataFrame) – 通过正态模拟获得的协方差矩阵的 q/2 分位数。

  • cov_u (DataFrame) – 通过正态模拟获得的协方差矩阵的 1-q/2 分位数。

  • cov_mu (DataFrame) – 通过正态模拟获得的均值向量估计误差的协方差矩阵。

  • cov_sigma (DataFrame) – 通过正态模拟获得的协方差矩阵估计误差的协方差矩阵。

  • k_mu (DataFrame) – 基于 1-q 分位数的均值向量估计误差的椭圆约束的大小的平方根。

  • k_sigma (DataFrame) – 基于 1-q 分位数的协方差矩阵估计误差的椭圆约束的大小的平方根。

Raises:

ValueError – 当无法计算该值时。

参考文献

[B1] (1,2,3,4,5,6)

Wolfram Barfuss, Guido Previde Massara, T. Di Matteo, 和 Tomaso Aste. 使用信息过滤网络进行简约建模。 物理评论E, 12 2016. URL: http://dx.doi.org/10.1103/PhysRevE.94.062306, doi:10.1103/physreve.94.062306.

[B2] (1,2,3,4,5,6,7,8,9,10,11)

Sander Gerber, Harry Markowitz, Philip Ernst, Yinsen Miao, Babak Javid, 和 Paul Sargen. Gerber统计量:一种用于投资组合优化的稳健共动性度量。SSRN电子期刊, 2021. URL: https://doi.org/10.2139/ssrn.3880054, doi:10.2139/ssrn.3880054.

[B3] (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19)

Marcos M. López de Prado. 资产管理的机器学习. 定量金融中的元素. 剑桥大学出版社, 2020. doi:10.1017/9781108883658.

[B4] (1,2)

费舍尔·布莱克和罗伯特·利特曼。 全球投资组合优化。 金融分析师期刊,48(5):28–43,1992。网址:http://www.jstor.org/stable/4479577

[B5] (1,2)

杰伊·沃尔特斯。黑利特曼模型详解。SSRN电子期刊,页码,2011年7月。doi:10.2139/ssrn.1314585

[B6] (1,2)

Wing Cheung. 增强型黑利特曼模型:一种无排名的基于因子的投资组合构建方法及其扩展。 定量金融, 13:, 08 2007. doi:10.2139/ssrn.1347648.

[B7] (1,2)

Petter Kolm 和 Gordon Ritter. 关于黑利特曼的贝叶斯解释. 欧洲运营研究杂志, 258:, 10 2016. doi:10.1016/j.ejor.2016.10.027.

[B8] (1,2,3,4,5)

阿蒂里奥·梅乌奇。风险与资产配置。施普林格柏林海德堡,2005年。网址:https://doi.org/10.1007/978-3-540-27904-4doi:10.1007/978-3-540-27904-4

[B9] (1,2,3,4,5)

冯毅永和丹尼尔·P·帕洛马尔。金融工程的信号处理视角。 信号处理的基础与趋势®, 9(1-2):1–231, 2016. URL: https://doi.org/10.1561/2000000072, doi:10.1561/2000000072.

[B10] (1,2,3,4,5)

Philippe Jorion. 贝叶斯-斯坦投资组合分析估计。 金融与定量分析杂志, 21(3):279, 1986年9月。 URL: https://doi.org/10.2307/2331042, doi:10.2307/2331042.

[B11] (1,2,3,4,5)

Taras Bodnar, Ostap Okhrin, 和 Nestor Parolya. 高维均值向量的最优收缩估计量. 多元分析杂志, 170:63–79, 03 2019. URL: https://doi.org/10.1016\%2Fj.jmva.2018.07.004, doi:10.1016/j.jmva.2018.07.004.

[B12]

斯蒂芬·A·罗斯。资本资产定价的套利理论。经济理论杂志,13(3):341–360,1976年12月。网址:https://ideas.repec.org/a/eee/jetheo/v13y1976i3p341-360.htmldoi:

[B13]

阚金清, 樊盈盈, 和 吕金池. 使用因子模型的高维协方差矩阵估计. 计量经济学杂志, 147(1):186–197, 2008年11月. URL: https://ideas.repec.org/a/eee/econom/v147y2008i1p186-197.html, doi:.

[B14] (1,2)

弗兰克·法博齐. 稳健的投资组合优化与管理. 约翰·威利图书公司, 霍博肯, 新泽西州, 2007. ISBN 978-0-471-92122-6.