绘图函数

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

该模块具有允许我们创建图表的函数,帮助我们快速分析我们最佳投资组合的特性。

以下示例构建投资组合和有效前沿,这将使用该模块的函数进行绘制。

示例

import numpy as np
import pandas as pd
import yfinance as yf
import riskfolio as rp

# Date range
start = '2016-01-01'
end = '2019-12-30'

# Tickers of assets
assets = ['JCI', 'TGT', 'CMCSA', 'CPB', 'MO', 'APA', 'MMC', 'JPM',
          'ZION', 'PSA', 'BAX', 'BMY', 'LUV', 'PCAR', 'TXT', 'TMO',
          'DE', 'MSFT', 'HPQ', 'SEE', 'VZ', 'CNP', 'NI', 'T', 'BA']
assets.sort()

# Tickers of factors
factors = ['MTUM', 'QUAL', 'VLUE', 'SIZE', 'USMV']
factors.sort()

tickers = assets + factors
tickers.sort()

# Downloading the data
data = yf.download(tickers, start = start, end = end)
data = data.loc[:,('Adj Close', slice(None))]
data.columns = tickers
returns = data.pct_change().dropna()

Y = returns[assets]
X = returns[factors]

# Creating the Portfolio Object
port = rp.Portfolio(returns=Y)

# To display dataframes values in percentage format
pd.options.display.float_format = '{:.4%}'.format

# Choose the risk measure
rm = 'MSV'  # Semi Standard Deviation

# Estimate inputs of the model (historical estimates)
method_mu='hist' # Method to estimate expected returns based on historical data.
method_cov='hist' # Method to estimate covariance matrix based on historical data.

port.assets_stats(method_mu=method_mu, method_cov=method_cov)

mu = port.mu
cov = port.cov

# Estimate the portfolio that maximizes the risk adjusted return ratio
w1 = port.optimization(model='Classic', rm=rm, obj='Sharpe', rf=0.0, l=0, hist=True)

# Estimate points in the efficient frontier mean - semi standard deviation
ws = port.efficient_frontier(model='Classic', rm=rm, points=20, rf=0, hist=True)

# Estimate the risk parity portfolio for semi standard deviation
w2 = port.rp_optimization(model='Classic', rm=rm, rf=0, b=None, hist=True)

# Estimate the risk parity portfolio for semi standard deviation
w2 = port.rp_optimization(model='Classic', rm=rm, rf=0, b=None, hist=True)

# Estimate the risk parity portfolio for risk factors
port.factors = X
port.factors_stats(method_mu=method_mu,
                   method_cov=method_cov,
                   feature_selection='stepwise',
                   stepwise='Forward')
w3 = port.rp_optimization(model='FC', rm='MV', rf=0, b_f=None)

# Estimate the risk parity portfolio for principal components
port.factors = X
port.factors_stats(method_mu=method_mu,
                   method_cov=method_cov,
                   feature_selection='PCR',
                   n_components=0.95)
w4 = port.rp_optimization(model='FC', rm='MV', rf=0, b_f=None)

模块函数

PlotFunctions.plot_series(返回, w, 色彩图='tab20', 颜色数量=20, 高度=6, 宽度=10, ax=None)[来源]

创建一个包含投资组合的复合累积图表。

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

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

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

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

cmap : cmap, optional

用于绘制每个投资组合复合累计回报的颜色比例尺。 默认值为‘tab20’。

n_colors : int, optional

每个颜色循环的不同颜色数量。如果资产数量超过 n_colors,图表将开始重复颜色循环。默认值为 20。

height : float, optional

图像的高度(以英寸为单位)。默认值为6。

width : float, optional

图像的宽度,以英寸为单位。默认值为10。

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴

示例

ax = rp.plot_series(returns=Y,
                    w=ws,
                    cmap='tab20',
                    height=6,
                    width=10,
                    ax=None)
_images/Port_Series.png
PlotFunctions.plot_frontier(w_frontier, 返回, mu=None, 协方差=None, rm='MV', 凯莉=False, rf=0, 阿尔法=0.05, a_sim=100, 贝塔=None, b_sim=None, kappa=0.3, 求解器='CLARABEL', 色彩图='viridis', w=None, 标签='Portfolio', 标记='*', s=16, c='r', 高度=6, 宽度=10, t_factor=252, ax=None)[来源]

创建一个针对用户指定的风险度量的有效前沿图。

Parameters:
w_frontier : DataFrame

有效边界上一些点的投资组合权重。

mu : DataFrame of shape (1, n_assets)

预期回报的向量,其中 n_assets 是资产的数量。

cov : DataFrame of shape (n_assets, n_assets)

协方差矩阵,其中 n_assets 是资产的数量。

returns : DataFrame of shape (n_samples, n_assets)

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

rm : str, optional

用于估计边界的风险度量。 默认值为‘MV’。可能的值包括:

  • ’MV’: 标准差。

  • ’KT’: 平方根峰度。

  • ’MAD’: 平均绝对偏差。

  • ’MSV’: 半标准差。

  • ’SKT’: 平方根半峰度。

  • ’FLPM’: 第一个下部分矩(奥米加比率)。

  • ’SLPM’: 第二个下部分矩(索提诺比率)。

  • ’CVaR’: 有条件的风险价值。

  • ’TG’: 尾部基尼。

  • ’EVaR’: 熵值风险。

  • ’RLVaR’: 相对风险价值。

  • ’WR’: 最差实现(最小最大)。

  • ’CVRG’: CVaR 回报范围。

  • ’TGRG’: 尾部基尼回报范围。

  • ’RG’: 回报范围。

  • ’MDD’: 非复利回报的最大回撤(卡尔玛比率)。

  • ’ADD’: 非复利累计回报的平均回撤。

  • ’DaR’: 非复利累计回报的回撤风险。

  • ’CDaR’: 非复利累计回报的条件回撤风险。

  • ’EDaR’: 非复利累计回报的熵回撤风险。

  • ’RLDaR’: 非复利累计回报的相对回撤风险。

  • ’UCI’: 非复利累计回报的溃疡指数。

kelly : bool, optional

用于计算平均回报的方法。可能的值是 False 表示算术平均回报,True 表示平均对数回报。默认值为 False。

rf : float, optional

无风险利率或最低可接受收益率。默认值为0。

alpha : float, optional

VaR、CVaR、EVaR、RLVaR、DaR、CDaR、EDaR、RLDaR 和尾部基尼损失的显著性水平。 默认值是 0.05。

a_sim : float, optional

用于近似损失尾基尼的CVaR数量。默认为100。

beta : float, optional

CVaR和尾部Gini的显著性水平。如果为None,则重复alpha值。默认值为None。

b_sim : float, optional

用于逼近收益的尾部基尼的CVaR数量。如果为None,则复制a_sim值。 默认值为None。

kappa : float, optional

RLVaR和RLDaR的变形参数,必须在0和1之间。默认值为0.30。

solver : str, optional

可用于CVXPY的求解器,支持功率锥编程。用于计算RLVaR和RLDaR。 默认值为‘CLARABEL’。

cmap : cmap, optional

表示风险调整后收益比例的颜色标度。 默认值为‘viridis’。

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

用户指定的投资组合。默认为 None。

label : str or list, optional

在绘图图例中出现的投资组合名称或名称列表。 默认值为‘投资组合’。

marker : str, optional

w的标记。默认值是“*”。

s : float, optional

标记的大小。默认值为16。

c : str, optional

标记的颜色。默认值为'r'。

height : float, optional

图像的高度(以英寸为单位)。默认值为6。

width : float, optional

图像的宽度,以英寸为单位。默认值为10。

t_factor : float, optional

用于将预期收益和预期风险年化的因子,适用于基于收益的风险度量(不包括回撤)。默认值为252。

\[\begin{split}\begin{align} \text{Annualized Return} & = \text{Return} \, \times \, \text{t_factor} \\ \text{Annualized Risk} & = \text{Risk} \, \times \, \sqrt{\text{t_factor}} \end{align}\end{split}\]

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴

示例

label = 'Max Risk Adjusted Return Portfolio'
mu = port.mu
cov = port.cov
returns = port.returns

ax = rp.plot_frontier(w_frontier=ws,
                      mu=mu,
                      cov=cov,
                      returns=Y,
                      rm=rm,
                      rf=0,
                      alpha=0.05,
                      cmap='viridis',
                      w=w1,
                      label=label,
                      marker='*',
                      s=16,
                      c='r',
                      height=6,
                      width=10,
                      t_factor=252,
                      ax=None)
_images/MSV_Frontier.png
PlotFunctions.plot_pie(w, 标题='', 其他=0.05, 行数=25, 色彩图='tab20', 颜色数量=20, 高度=6, 宽度=8, ax=None)[来源]

创建一个饼图,显示投资组合权重。

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

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

title : str, optional

图表的标题。默认值为“”。

others : float, optional

其他部分的百分比。默认值为0.05。

nrow : int, optional

图例的行数。默认值为25。

cmap : cmap, optional

用于绘制每个资产权重的颜色比例。默认值为‘tab20’。

n_colors : int, optional

每个颜色循环的不同颜色数量。如果资产数量超过 n_colors,图表将开始重复颜色循环。默认值为 20。

height : float, optional

图像的高度(以英寸为单位)。默认值为10。

width : float, optional

图像的宽度,以英寸为单位。默认值为10。

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴。

示例

ax = rp.plot_pie(w=w1,
                 title='Portfolio',
                 height=6,
                 width=10,
                 cmap="tab20",
                 ax=None)
_images/Pie_Chart.png
PlotFunctions.plot_bar(w, 标题='', 种类='v', 其他=0.05, nrow=25, cpos='tab:green', cneg='darkorange', 其他='dodgerblue', 高度=6, 宽度=10, ax=None)[来源]

创建一个包含投资组合权重的条形图。

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

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

title : str, optional

图表的标题。默认值为“”。

kind : str, optional

条形图的种类,“v”表示垂直条形,“h”表示水平条形。默认是“v”。

others : float, optional

其他部分的百分比。默认值为0.05。

nrow : int, optional

可以绘制的最大条形数。默认值为25。

cpos : str, optional

正权重的颜色。默认为‘tab:green’。

cneg : str, optional

负权重的颜色。默认值是‘darkorange’。

cothers : str, optional

其它条的颜色。 默认为‘dodgerblue’。

height : float, optional

图像的高度(以英寸为单位)。默认值为10。

width : float, optional

图像的宽度,以英寸为单位。默认值为10。

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴。

示例

ax = rp.plot_bar(w1,
                 title='Portfolio',
                 kind="v",
                 others=0.05,
                 nrow=25,
                 height=6,
                 width=10,
                 ax=None)
_images/Bar_Chart.png
PlotFunctions.plot_frontier_area(w_frontier, nrow=25, 色彩图='tab20', 颜色数量=20, 高度=6, 宽度=10, ax=None)[来源]

创建一个图表,显示有效前沿的资产组合。

Parameters:
w_frontier : DataFrame

有效前沿中的投资组合权重。

nrow : int, optional

图例的行数。默认值为25。

cmap : cmap, optional

用于绘制每个资产权重的颜色比例。默认值为‘tab20’。

n_colors : int, optional

每个颜色循环的不同颜色数量。如果资产数量超过 n_colors,图表将开始重复颜色循环。默认值为 20。

height : float, optional

图像的高度(以英寸为单位)。默认值为6。

width : float, optional

图像的宽度,以英寸为单位。默认值为10。

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴。

示例

ax = rp.plot_frontier_area(w_frontier=ws,
                           cmap="tab20",
                           height=6,
                           width=10,
                           ax=None)
_images/Area_Frontier.png
PlotFunctions.plot_risk_con(w, 返回, 协方差=None, rm='MV', rf=0, 阿尔法=0.05, a_sim=100, 贝塔=None, b_sim=None, kappa=0.3, 求解器='CLARABEL', 百分比=False, erc_line=True, 颜色='tab:blue', erc_linecolor='r', 高度=6, 宽度=10, t_factor=252, ax=None)[来源]

创建一个显示投资组合中每个资产风险贡献的图表。

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

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

cov : DataFrame of shape (n_assets, n_assets)

协方差矩阵,其中 n_assets 是资产的数量。

returns : DataFrame of shape (n_samples, n_assets)

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

rm : str, optional

用于估计风险贡献的风险度量。 默认值为‘MV’。可能的值有:

  • ’MV’: 标准差。

  • ’KT’: 平方根峰度。

  • ’MAD’: 平均绝对偏差。

  • ’GMD’: 基尼均值差。

  • ’MSV’: 半标准差。

  • ’SKT’: 平方根半峰度。

  • ’FLPM’: 第一个下偏部分矩(欧米伽比率)。

  • ’SLPM’: 第二个下偏部分矩(索提诺比率)。

  • ’CVaR’: 风险条件值。

  • ’TG’: 尾部分基尼。

  • ’EVaR’: 熵值风险。

  • ’RLVaR’: 相对值风险。

  • ’WR’: 最坏实现(最小最大)。

  • ’CVRG’: 收益的CVaR范围。

  • ’TGRG’: 收益的尾基尼范围。

  • ’RG’: 收益的范围。

  • ’MDD’: 非复合累积收益的最大回撤(卡尔马比率)。

  • ’ADD’: 非复合累积收益的平均回撤。

  • ’CDaR’: 非复合累积收益的条件回撤风险。

  • ’EDaR’: 非复合累积收益的熵回撤风险。

  • ’RLDaR’: 非复合累积收益的相对回撤风险。

  • ’UCI’:非复合累积收益的溃疡指数。

rf : float, optional

无风险利率或最低可接受收益率。默认值为0。

alpha : float, optional

VaR、CVaR、尾部Gini、EVaR、RLVaR、CDaR、EDaR和RLDaR的显著性水平。默认值为0.05。

a_sim : float, optional

用于近似损失尾基尼的CVaR数量。默认为100。

beta : float, optional

CVaR和尾部Gini的显著性水平。如果为None,则重复alpha值。默认值为None。

b_sim : float, optional

用于逼近收益的尾部基尼的CVaR数量。如果为None,则复制a_sim值。 默认值为None。

kappa : float, optional

RLVaR和RLDaR的变形参数,必须在0和1之间。默认值为0.30。

solver : str, optional

可用于CVXPY的求解器,支持功率锥编程。用于计算RLVaR和RLDaR。 默认值为‘CLARABEL’。

percentage : bool, optional

如果每个资产的风险贡献以百分比或值的形式表达。默认值为 False。

erc_line : bool, optional

如果绘制等风险贡献线。 默认值为 False。

color : str, optional

用于绘制每个资产风险贡献的颜色。 默认值是‘tab:blue’。

erc_linecolor : str, optional

用于绘制相等风险贡献线的颜色。 默认值为‘r’。

height : float, optional

图像的高度(以英寸为单位)。默认值为6。

width : float, optional

图像的宽度,以英寸为单位。默认值为10。

t_factor : float, optional

用于将预期收益和预期风险年化的因子,适用于基于收益的风险度量(不包括回撤)。默认值为252。

\[\begin{split}\begin{align} \text{Annualized Return} & = \text{Return} \, \times \, \text{t_factor} \\ \text{Annualized Risk} & = \text{Risk} \, \times \, \sqrt{\text{t_factor}} \end{align}\end{split}\]

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴。

示例

ax = rp.plot_risk_con(w=w2,
                      cov=cov,
                      returns=Y,
                      rm=rm,
                      rf=0,
                      alpha=0.05,
                      color="tab:blue",
                      height=6,
                      width=10,
                      t_factor=252,
                      ax=None)
_images/Risk_Con.png
PlotFunctions.plot_factor_risk_con(w, 返回, 因子, 协方差=None, B=None, 常量=True, rm='MV', rf=0, 阿尔法=0.05, a_sim=100, 贝塔=None, b_sim=None, kappa=0.3, 求解器='CLARABEL', 特征选择='stepwise', 逐步='Forward', 标准='pvalue', 阈值=0.05, 主成分数量=0.95, 百分比=False, erc_line=True, 颜色='tab:orange', erc_linecolor='r', 高度=6, 宽度=10, t_factor=252, ax=None)[来源]

创建一个图表,显示投资组合每个风险因素的风险贡献。

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

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

cov : DataFrame of shape (n_assets, n_assets)

协方差矩阵,其中 n_assets 是资产的数量。

returns : DataFrame of shape (n_samples, n_assets)

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

factors : DataFrame or nd-array of shape (n_samples, n_factors)

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

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

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

const : bool, optional

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

rm : str, optional

用于估计风险贡献的风险度量。 默认值为 ‘MV’。可能的值包括:

  • ’MV’: 标准差。

  • ’KT’: 平方根峰态。

  • ’MAD’: 平均绝对偏差。

  • ’GMD’: 基尼均差。

  • ’MSV’: 半标准差。

  • ’SKT’: 平方根半峰态。

  • ’FLPM’: 第一低部分矩(欧米伽比率)。

  • ’SLPM’: 第二低部分矩(索提诺比率)。

  • ’CVaR’: 条件风险价值。

  • ’TG’: 尾部基尼。

  • ’EVaR’: 熵值风险。

  • ’RLVaR’: 相对风险价值。

  • ’WR’: 最坏实现(极小化)。

  • ’CVRG’: 风险价值收益范围。

  • ’TGRG’: 尾部基尼收益范围。

  • ’RG’: 收益范围。

  • ’MDD’: 非复合累积收益的最大回撤(卡尔马比率)。

  • ’ADD’: 非复合累积收益的平均回撤。

  • ’CDaR’: 非复合累积收益的条件回撤风险。

  • ’EDaR’: 非复合累积收益的熵回撤风险。

  • ’RLDaR’: 非复合累积收益的相对回撤风险。

  • ’UCI’: 非复合累积收益的溃疡指数。

rf : float, optional

无风险利率或最低可接受收益率。默认值为0。

alpha : float, optional

VaR、CVaR、尾部吉尼、EVaR、RLVaR、CDaR、EDaR 和 RLDaR 的显著性水平。默认值为 0.05。

a_sim : float, optional

用于近似损失尾基尼的CVaR数量。默认为100。

beta : float, optional

CVaR和尾部Gini的显著性水平。如果为None,则重复alpha值。默认值为None。

b_sim : float, optional

用于逼近收益的尾部基尼的CVaR数量。如果为None,则复制a_sim值。 默认值为None。

kappa : float, optional

RLVaR和RLDaR的变形参数,必须在0和1之间。默认值为0.30。

solver : str, optional

可用于CVXPY的求解器,支持功率锥编程。用于计算RLVaR和RLDaR。 默认值为‘CLARABEL’。

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

指明用于估计负载矩阵的方法。 默认值为“逐步”。

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。

percentage : bool, optional

如果每个资产的风险贡献以百分比或值的形式表达。默认值为 False。

erc_line : bool, optional

如果绘制等风险贡献线。 默认值为 False。

color : str, optional

用于绘制每个资产风险贡献的颜色。 默认值是‘tab:orange’。

erc_linecolor : str, optional

用于绘制等风险贡献线的颜色。 默认值为‘r’。

height : float, optional

图像的高度(以英寸为单位)。默认值为6。

width : float, optional

图像的宽度,以英寸为单位。默认值为10。

t_factor : float, optional

用于将预期收益和预期风险年化的因子,适用于基于收益的风险度量(不包括回撤)。默认值为252。

\[\begin{split}\begin{align} \text{Annualized Return} & = \text{Return} \, \times \, \text{t_factor} \\ \text{Annualized Risk} & = \text{Risk} \, \times \, \sqrt{\text{t_factor}} \end{align}\end{split}\]

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴。

示例

ax = rp.plot_factor_risk_con(w=w3,
                             cov=cov,
                             returns=Y,
                             factors=X,
                             B=None,
                             const=True,
                             rm=rm,
                             rf=0,
                             feature_selection="stepwise",
                             stepwise="Forward",
                             criterion="pvalue",
                             threshold=0.05,
                             height=6,
                             width=10,
                             t_factor=252,
                             ax=None)
_images/Risk_Con_RF.png
ax = rp.plot_factor_risk_con(w=w4,
                             cov=cov,
                             returns=Y,
                             factors=X,
                             B=None,
                             const=True,
                             rm=rm,
                             rf=0,
                             feature_selection="PCR",
                             n_components=0.95,
                             height=6,
                             width=10,
                             t_factor=252,
                             ax=None)
_images/Risk_Con_PC.png
PlotFunctions.plot_hist(返回, w, 阿尔法=0.05, a_sim=100, kappa=0.3, 求解器='CLARABEL', 箱子=50, 高度=6, 宽度=10, ax=None)[来源]

绘制包含风险测量的投资组合收益直方图。

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

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

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

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

alpha : float, optional

VaR、CVaR、EVaR、RLVaR 和尾部 Gini 的显著性水平。默认值为 0.05。

a_sim : float, optional

用于近似损失尾基尼的CVaR数量。默认为100。

kappa : float, optional

RLVaR和RLDaR的变形参数,必须在0和1之间。默认值为0.30。

solver : str, optional

可用于CVXPY的求解器,支持功率锥编程。用于计算RLVaR和RLDaR。 默认值为‘CLARABEL’。

bins : float, optional

直方图的箱数。默认值为50。

height : float, optional

图像的高度(以英寸为单位)。默认值为6。

width : float, optional

图像的宽度,以英寸为单位。默认值为10。

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴。

示例

ax = rp.plot_hist(returns=Y,
                  w=w1,
                  alpha=0.05,
                  bins=50,
                  height=6,
                  width=10,
                  ax=None)
_images/Histogram.png
PlotFunctions.plot_range(返回, w, 阿尔法=0.05, a_sim=100, 贝塔=None, b_sim=None, 分箱=50, 高度=6, 宽度=10, ax=None)[来源]

创建一个包含范围风险度量的投资组合收益直方图。

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

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

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

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

alpha : float, optional

CVaR和尾部Gini损失的显著性水平。默认值为0.05。

a_sim : float, optional

用于近似损失尾基尼的CVaR数量。默认为100。

beta : float, optional

CVaR和尾部Gini的显著性水平。如果为None,则重复alpha值。默认值为None。

b_sim : float, optional

用于逼近收益的尾部基尼的CVaR数量。如果为None,则复制a_sim值。 默认值为None。

bins : float, optional

直方图的箱数。默认值是50。

height : float, optional

图像的高度(以英寸为单位)。默认值为6。

width : float, optional

图像的宽度,以英寸为单位。默认值为10。

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴。

示例

ax = rp.plot_range(returns=Y,
                   w=w1,
                   alpha=0.05,
                   a_sim=100,
                   beta=None,
                   b_sim=None,
                   bins=50,
                   height=6,
                   width=10,
                   ax=None)
_images/Range.png
PlotFunctions.plot_drawdown(返回, w, 阿尔法=0.05, kappa=0.3, 求解器='CLARABEL', 高度=8, 宽度=10, 高度比=[2, 3], ax=None)[来源]

创建一个包含投资组合价格和回撤演变的图表。

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

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

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

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

alpha : float, optional

DaR、CDaR、EDaR和RLDaR的显著性水平。默认值为0.05。

kappa : float, optional

RLVaR和RLDaR的变形参数,必须在0和1之间。默认值为0.30。

solver : str, optional

可用于CVXPY的求解器,支持功率锥编程。用于计算RLVaR和RLDaR。 默认值为‘CLARABEL’。

height : float, optional

图像的高度(以英寸为单位)。默认为8。

width : float, optional

图像的宽度,以英寸为单位。默认值为10。

height_ratios : list or ndarray

定义行的相对高度。每行的相对高度为 height_ratios[i] / sum(height_ratios)。默认值为 [2,3]。

ax : matplotlib axis of size (2,1), optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回一个包含可供进一步调整的图表的 Axes 对象的 np.array。

Return type:

np.array

示例

ax = rp.plot_drawdown(returns=Y,
                      w=w1,
                      alpha=0.05,
                      height=8,
                      width=10,
                      ax=None)
_images/Drawdown.png
PlotFunctions.plot_table(返回, w, 三月=0, 阿尔法=0.05, a_sim=100, kappa=0.3, 求解器='CLARABEL', 高度=9, 宽度=12, t_factor=252, 初始天数=1, 每年天数=252, ax=None)[来源]

创建一个包含风险度量和风险调整收益比率的信息表。

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

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

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

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

MAR : float, optional

最低可接受回报。

alpha : float, optional

VaR、CVaR、尾部吉尼、EVaR、RLVaR、CDaR、EDaR 和 RLDaR 的显著性水平。 默认值为 0.05。

a_sim : float, optional

用于近似损失尾基尼的CVaR数量。默认为100。

beta : float, optional

CVaR和尾部Gini的显著性水平。如果为None,则重复alpha值。默认值为None。

b_sim : float, optional

用于逼近收益的尾部基尼的CVaR数量。如果为None,则复制a_sim值。 默认值为None。

kappa : float, optional

RLVaR和RLDaR的变形参数,必须在0和1之间。默认值为0.30。

solver : str, optional

可用于CVXPY的求解器,支持功率锥编程。用于计算RLVaR和RLDaR。 默认值为‘CLARABEL’。

height : float, optional

图像的高度以英寸为单位。默认为9。

width : float, optional

图像的宽度,以英寸为单位。默认值为12。

t_factor : float, optional

用于将预期收益和预期风险年化的因子,适用于基于收益的风险度量(不包括回撤)。默认值为252。

\[\begin{split}\begin{align} \text{Annualized Return} & = \text{Return} \, \times \, \text{t_factor} \\ \text{Annualized Risk} & = \text{Risk} \, \times \, \sqrt{\text{t_factor}} \end{align}\end{split}\]

ini_days : float, optional

如果提供,则为首次回报的复利天数。 它用于计算复合年增长率(CAGR)。此值依赖于在t_factor中使用的假设,例如,如果数据是按月的,可以使用21(每年252天)或30(每年360天)。默认值为1,表示每日回报。

days_per_year : float, optional

每年的天数假设。用于计算复合年增长率(CAGR)。默认值为每年252个交易日。

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴

示例

ax = rp.plot_table(returns=Y,
                   w=w1,
                   MAR=0,
                   alpha=0.05,
                   ax=None)
_images/Port_Table.png
PlotFunctions.plot_clusters(返回, 自定义协方差=None, 相互依赖='pearson', 链接='ward', opt_k_method='twodiff', k=None, max_k=10, bins_info='KN', 阿尔法尾部=0.05, gs_threshold=0.5, 叶序=True, 显示聚类=True, 树状图=True, 色彩图='RdYlBu', 线颜色='fuchsia', 标题='', 高度=11, 宽度=12, ax=None)[来源]

根据所选的共依赖测量创建聚类图。

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

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

custom_cov : DataFrame or None, optional

自定义协方差矩阵,用于当共依赖参数的值为‘custom_cov’时。默认值为None。

codependence : str, can be {'pearson', 'spearman', 'abs_pearson', 'abs_spearman', 'distance', 'mutual_info', 'tail' or 'custom_cov'}

用于构建距离度量和聚类的共依赖性或相似性矩阵。默认值为‘pearson’。可能的值有:

  • ’pearson’: pearson 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho_{i,j})}\).

  • ’spearman’: spearman 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho_{i,j})}\).

  • ’kendall’: kendall 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{kendall}_{i,j})}\).

  • ’gerber1’: Gerber 统计量 1 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{gerber1}_{i,j})}\).

  • ’gerber2’: Gerber 统计量 2 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{gerber2}_{i,j})}\).

  • ’abs_pearson’: 绝对值 pearson 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho_{i,j}|)}\).

  • ’abs_spearman’: 绝对值 spearman 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho_{i,j}|)}\).

  • ’abs_kendall’: 绝对值 kendall 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho^{kendall}_{i,j}|)}\).

  • ’distance’: 距离相关矩阵。距离公式 \(D_{i,j} = \sqrt{(1-|\rho_{i,j}|)}\).

  • ’mutual_info’: 互信息矩阵。使用的距离是变异信息矩阵。

  • ’tail’: 下尾依赖指数矩阵。差异性公式 \(D_{i,j} = -\log{\lambda_{i,j}}\).

  • ’custom_cov’: 使用基于 custom_cov 参数的自定义相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{pearson}_{i,j})}\).

linkage : string, optional

层次聚类的连接方法,请参见linkage以获取更多详细信息。 默认值为‘ward’。 可能的值包括:

  • ’single’。

  • ’complete’。

  • ’average’。

  • ’weighted’。

  • ’centroid’。

  • ’median’。

  • ’ward’。

  • ’DBHT’:直接气泡层次树。

opt_k_method : str

用于计算最佳聚类数量的方法。 默认值为‘twodiff’。可能的值包括:

  • ’twodiff’: 两个差异间隙统计量。

  • ’stdsil’: 标准化轮廓得分。

k : int, optional

聚类的数量。此值取代了通过两种不同的间隙统计量计算的最优聚类数量。默认值为 None。

max_k : int, optional

两种差异间隙统计量用于找出最佳聚类数的最大聚类数。默认值为10。

bins_info : int or str

用于计算信息变异的箱子数量。默认值为‘KN’。可能的值包括:

  • ’KN’: Knuth的选择方法。详见 knuth_bin_width

  • ’FD’: Freedman–Diaconis的选择方法。详见 freedman_bin_width

  • ’SC’: Scotts的选择方法。详见 scott_bin_width

  • ’HGR’: Hacine-Gharbi 和 Ravier的选择方法。

  • int: 用户选择的整数值。

alpha_tail : float, optional

下尾依赖指数的显著性水平。默认值为 0.05。

gs_threshold : float, optional

Gerber统计阈值。默认值为0.5。

leaf_order : bool, optional

指示集群是否按顺序排列,以使连续叶子之间的距离最小。默认为 True。

show_clusters : bool, optional

指示是否绘制集群。 默认值为 True。

dendrogram : bool, optional

指示图表是否具有树状图。默认值为 True。

cmap : str or cmap, optional

用于绘制pcolormesh图的颜色图。默认值是‘viridis’。

linecolor : str, optional

用于在pcolormesh图中识别簇的颜色。 默认值是fuchsia。

title : str, optional

图表的标题。默认值为“”。

height : float, optional

图像的高度(以英寸为单位)。默认值为12。

width : float, optional

图像的宽度,以英寸为单位。默认值为12。

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴

示例

ax = rp.plot_clusters(returns=Y,
                      codependence='spearman',
                      linkage='ward',
                      k=None,
                      max_k=10,
                      leaf_order=True,
                      dendrogram=True,
                      ax=None)
_images/Assets_Clusters.png
PlotFunctions.plot_dendrogram(返回, 自定义协方差=None, 相互依赖='pearson', 链接='ward', opt_k_method='twodiff', k=None, max_k=10, bins_info='KN', 阿尔法尾部=0.05, gs_threshold=0.5, 叶序=True, 显示聚类=True, 标题='', 高度=5, 宽度=12, ax=None)[来源]

根据选择的共依赖测量创建一个树状图。

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

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

custom_cov : DataFrame or None, optional

自定义协方差矩阵,用于当共依赖参数的值为‘custom_cov’时。默认值为None。

codependence : str, can be {'pearson', 'spearman', 'abs_pearson', 'abs_spearman', 'distance', 'mutual_info', 'tail' or 'custom_cov'}

用于构建距离度量和聚类的共依赖或相似度矩阵。默认值为‘pearson’。可能的值有:

  • ’pearson’: pearson 相关矩阵。距离公式:\(D_{i,j} = \sqrt{0.5(1-\rho_{i,j})}\)

  • ’spearman’: spearman 相关矩阵。距离公式:\(D_{i,j} = \sqrt{0.5(1-\rho_{i,j})}\)

  • ’kendall’: kendall 相关矩阵。距离公式:\(D_{i,j} = \sqrt{0.5(1-\rho^{kendall}_{i,j})}\)

  • ’gerber1’: Gerber 统计量 1 相关矩阵。距离公式:\(D_{i,j} = \sqrt{0.5(1-\rho^{gerber1}_{i,j})}\)

  • ’gerber2’: Gerber 统计量 2 相关矩阵。距离公式:\(D_{i,j} = \sqrt{0.5(1-\rho^{gerber2}_{i,j})}\)

  • ’abs_pearson’: 绝对值 pearson 相关矩阵。距离公式:\(D_{i,j} = \sqrt{(1-|\rho_{i,j}|)}\)

  • ’abs_spearman’: 绝对值 spearman 相关矩阵。距离公式:\(D_{i,j} = \sqrt{(1-|\rho_{i,j}|)}\)

  • ’abs_kendall’: 绝对值 kendall 相关矩阵。距离公式:\(D_{i,j} = \sqrt{(1-|\rho^{kendall}_{i,j}|)}\)

  • ’distance’: 距离相关矩阵。距离公式 \(D_{i,j} = \sqrt{(1-|\rho_{i,j}|)}\)

  • ’mutual_info’: 互信息矩阵。使用的距离是变异信息矩阵。

  • ’tail’: 下尾依赖指数矩阵。差异性公式 \(D_{i,j} = -\log{\lambda_{i,j}}\)

  • ’custom_cov’: 使用基于 custom_cov 参数的自定义相关矩阵。距离公式:\(D_{i,j} = \sqrt{0.5(1-\rho^{pearson}_{i,j})}\)

linkage : string, optional

层次聚类的连接方法,更多详细信息请参见 linkage。 默认值为‘ward’。可能的值有:

  • ’single’。

  • ’complete’。

  • ’average’。

  • ’weighted’。

  • ’centroid’。

  • ’median’。

  • ’ward’。

  • ’DBHT’: 直接气泡层次树。

opt_k_method : str

用于计算最佳聚类数量的方法。 默认值为‘twodiff’。可能的值包括:

  • ’twodiff’: 两个差异间隙统计量。

  • ’stdsil’: 标准化轮廓得分。

k : int, optional

聚类的数量。此值取代了通过两种不同的间隙统计量计算的最优聚类数量。默认值为 None。

max_k : int, optional

两种差异间隙统计量用于找出最佳聚类数的最大聚类数。默认值为10。

bins_info : int or str

用于计算信息变异的箱数。默认值为‘KN’。可能的值有:

  • ’KN’: Knuth的选择方法。详情请见 knuth_bin_width

  • ’FD’: Freedman–Diaconis的选择方法。详情请见 freedman_bin_width

  • ’SC’: Scotts的选择方法。详情请见 scott_bin_width

  • ’HGR’: Hacine-Gharbi和Ravier的选择方法。

  • int: 用户选择的整数值。

alpha_tail : float, optional

下尾依赖指数的显著性水平。默认值为 0.05。

gs_threshold : float, optional

Gerber统计阈值。默认值为0.5。

leaf_order : bool, optional

指示集群是否按顺序排列,以使连续叶子之间的距离最小。默认为 True。

show_clusters : bool, optional

指示是否绘制集群。 默认值为 True。

title : str, optional

图表的标题。默认值为“”。

height : float, optional

图像的高度,以英寸为单位。默认值为5。

width : float, optional

图像的宽度,以英寸为单位。默认值为12。

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴

示例

ax = rp.plot_dendrogram(returns=Y,
                        codependence='spearman',
                        linkage='ward',
                        k=None,
                        max_k=10,
                        leaf_order=True,
                        ax=None)
_images/Assets_Dendrogram.png
PlotFunctions.plot_network(返回, 自定义协方差=None, 相互依赖='pearson', 链接='ward', opt_k_method='twodiff', k=None, max_k=10, bins_info='KN', 阿尔法尾部=0.05, gs_threshold=0.5, 叶序=True, 种类='spring', 种子=0, 节点标签=True, 节点大小=1400, node_alpha=0.7, 字体大小=10, 标题='', 高度=8, 宽度=10, ax=None)[来源]

创建网络图。平面最大滤波图(PMFG)用于DBHT连接,最小生成树(MST)用于其他连接方法。

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

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

custom_cov : DataFrame or None, optional

自定义协方差矩阵,用于当共依赖参数的值为‘custom_cov’时。默认值为None。

codependence : str, can be {'pearson', 'spearman', 'abs_pearson', 'abs_spearman', 'distance', 'mutual_info', 'tail' or 'custom_cov'}

用于构建距离度量和聚类的共依赖性或相似性矩阵。默认值为“pearson”。可能的值有:

  • ’pearson’: Pearson 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{pearson}_{i,j})}\)

  • ’spearman’: Spearman 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{spearman}_{i,j})}\)

  • ’kendall’: Kendall 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{kendall}_{i,j})}\)

  • ’gerber1’: Gerber 统计量 1 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{gerber1}_{i,j})}\)

  • ’gerber2’: Gerber 统计量 2 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{gerber2}_{i,j})}\)

  • ’abs_pearson’: 绝对值 Pearson 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho_{i,j}|)}\)

  • ’abs_spearman’: 绝对值 Spearman 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho_{i,j}|)}\)

  • ’abs_kendall’: 绝对值 Kendall 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho^{kendall}_{i,j}|)}\)

  • ’distance’: 距离相关矩阵。距离公式 \(D_{i,j} = \sqrt{(1-\rho^{distance}_{i,j})}\)

  • ’mutual_info’: 互信息矩阵。使用的距离是变化信息矩阵。

  • ’tail’: 下尾依赖指数矩阵。非相似性公式 \(D_{i,j} = -\log{\lambda_{i,j}}\)

  • ’custom_cov’: 使用基于 custom_cov 参数的自定义相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{pearson}_{i,j})}\)

linkage : string, optional

层次聚类的连接方法,请参见linkage以获取更多详细信息。 默认值为‘ward’。 可能的值包括:

  • ’single’。

  • ’complete’。

  • ’average’。

  • ’weighted’。

  • ’centroid’。

  • ’median’。

  • ’ward’。

  • ’DBHT’:直接气泡层次树。

opt_k_method : str

用于计算最佳聚类数量的方法。 默认值为‘twodiff’。可能的值包括:

  • ’twodiff’: 两个差异间隙统计量。

  • ’stdsil’: 标准化轮廓得分。

k : int, optional

聚类的数量。此值取代了通过两种不同的间隙统计量计算的最优聚类数量。默认值为 None。

max_k : int, optional

两种差异间隙统计量用于找出最佳聚类数的最大聚类数。默认值为10。

bins_info : int or str

用于计算信息变异的箱子数量。默认值为‘KN’。可能的值包括:

  • ’KN’: Knuth的选择方法。详见 knuth_bin_width

  • ’FD’: Freedman–Diaconis的选择方法。详见 freedman_bin_width

  • ’SC’: Scotts的选择方法。详见 scott_bin_width

  • ’HGR’: Hacine-Gharbi 和 Ravier的选择方法。

  • int: 用户选择的整数值。

alpha_tail : float, optional

下尾依赖指数的显著性水平。默认值为 0.05。

gs_threshold : float, optional

Gerber统计阈值。默认值为0.5。

leaf_order : bool, optional

指示集群是否按顺序排列,以使连续叶子之间的距离最小。默认为 True。

kind : str, optional

networkx 布局的类型。 默认值是 'spring'。 可能的值有:

  • ’spring’: networkx spring_layout.

  • ’planar’. networkx planar_layout.

  • ’circular’. networkx circular_layout.

  • ’kamada’. networkx kamada_kawai_layout.

seed : int, optional

用于 networkx spring layout 的种子。默认值为 0。

node_labels : bool, optional

指定节点标签是否可见。默认值为 True。

node_size : float, optional

节点的大小。默认值为1600。

node_alpha : float, optional

节点的Alpha参数或透明度。默认值为0.7。

font_size : float, optional

节点标签的字体大小。默认值为 12。

title : str, optional

图表的标题。默认值为“”。

height : float, optional

图像的高度(以英寸为单位)。默认为8。

width : float, optional

图像的宽度,以英寸为单位。默认值为10。

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴

示例

ax = rp.plot_network(returns=Y,
                     codependence="pearson",
                     linkage="ward",
                     k=None,
                     max_k=10,
                     alpha_tail=0.05,
                     leaf_order=True,
                     kind='kamada',
                     ax=None)
_images/Assets_Network.png
PlotFunctions.plot_network_allocation(返回, w, 自定义协方差=None, 相互依赖='pearson', 链接='ward', bins_info='KN', 阿尔法尾部=0.05, gs_threshold=0.5, 叶序=True, 种类='spring', 种子=0, 节点标签=True, 最大节点大小=2000, 颜色语言='tab:blue', color_sht='tab:red', 标签_v=0.08, 标签_h=0, 字体大小=10, 标题='', 高度=8, 宽度=10, ax=None)[来源]

创建一个网络图,节点的大小和颜色分别表示投资金额和方向(多头-空头)。平面最大过滤图(PMFG)用于DBHT链接,最小生成树(MST)用于其他链接方法。

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

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

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

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

custom_cov : DataFrame or None, optional

自定义协方差矩阵,用于当共依赖参数的值为‘custom_cov’时。默认值为None。

codependence : str, can be {'pearson', 'spearman', 'abs_pearson', 'abs_spearman', 'distance', 'mutual_info', 'tail' or 'custom_cov'}

用于构建距离度量和聚类的共依赖性或相似性矩阵。默认值为“pearson”。可能的值有:

  • ’pearson’: Pearson 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{pearson}_{i,j})}\)

  • ’spearman’: Spearman 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{spearman}_{i,j})}\)

  • ’kendall’: Kendall 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{kendall}_{i,j})}\)

  • ’gerber1’: Gerber 统计量 1 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{gerber1}_{i,j})}\)

  • ’gerber2’: Gerber 统计量 2 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{gerber2}_{i,j})}\)

  • ’abs_pearson’: 绝对值 Pearson 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho_{i,j}|)}\)

  • ’abs_spearman’: 绝对值 Spearman 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho_{i,j}|)}\)

  • ’abs_kendall’: 绝对值 Kendall 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho^{kendall}_{i,j}|)}\)

  • ’distance’: 距离相关矩阵。距离公式 \(D_{i,j} = \sqrt{(1-\rho^{distance}_{i,j})}\)

  • ’mutual_info’: 互信息矩阵。使用的距离是变化信息矩阵。

  • ’tail’: 下尾依赖指数矩阵。非相似性公式 \(D_{i,j} = -\log{\lambda_{i,j}}\)

  • ’custom_cov’: 使用基于 custom_cov 参数的自定义相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{pearson}_{i,j})}\)

linkage : string, optional

层次聚类的连接方法,更多详细信息请参见 linkage。 默认值为‘ward’。可能的值有:

  • ’single’。

  • ’complete’。

  • ’average’。

  • ’weighted’。

  • ’centroid’。

  • ’median’。

  • ’ward’。

  • ’DBHT’: 直接气泡层次树。

bins_info : int or str

用于计算信息变异的箱数。默认值为‘KN’。可能的值有:

  • ’KN’: Knuth的选择方法。详情请见 knuth_bin_width

  • ’FD’: Freedman–Diaconis的选择方法。详情请见 freedman_bin_width

  • ’SC’: Scotts的选择方法。详情请见 scott_bin_width

  • ’HGR’: Hacine-Gharbi和Ravier的选择方法。

  • int: 用户选择的整数值。

alpha_tail : float, optional

下尾依赖指数的显著性水平。默认值为 0.05。

gs_threshold : float, optional

Gerber统计阈值。默认值为0.5。

leaf_order : bool, optional

指示集群是否按顺序排列,以使连续叶子之间的距离最小。默认为 True。

kind : str, optional

networkx 布局的类型。 默认值是 'spring'。 可能的值有:

  • ’spring’: networkx spring_layout.

  • ’planar’. networkx planar_layout.

  • ’circular’. networkx circular_layout.

  • ’kamada’. networkx kamada_kawai_layout.

seed : int, optional

用于 networkx spring layout 的种子。默认值为 0。

node_labels : bool, optional

指定节点标签是否可见。默认值为 True。

max_node_size : float, optional

权重绝对值最大的节点的大小。默认值是2000。

color_lng : str, optional

持有多头头寸的资产的颜色。默认值为‘tab:blue’。

color_sht : str, optional

持有空头头寸的资产颜色。默认值为‘tab:red’。

label_v : float, optional

标签相对于中心的垂直距离偏移。默认值为0.08。

label_h : float, optional

标签距离中心的水平距离。默认值为0。

font_size : float, optional

节点标签的字体大小。默认值为12。

title : str, optional

图表的标题。默认值为“”。

height : float, optional

图像的高度(以英寸为单位)。默认为8。

width : float, optional

图像的宽度,以英寸为单位。默认值为10。

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴

示例

ax = rp.plot_network_allocation(returns=Y,
                                w=w1,
                                codependence="pearson",
                                linkage="ward",
                                alpha_tail=0.05,
                                leaf_order=True,
                                kind='kamada',
                                ax=None)
_images/Assets_Network_Allocation.png
PlotFunctions.plot_clusters_network(返回, 自定义协方差=None, 相互依赖='pearson', 链接='ward', opt_k_method='twodiff', k=None, max_k=10, bins_info='KN', 阿尔法尾部=0.05, gs_threshold=0.5, 叶序=True, 种子=0, 节点标签=True, 节点大小=2000, node_alpha=0.7, 缩放=10, 子量表=5, 字体大小=10, 标题='', 高度=8, 宽度=10, ax=None)[来源]

创建一个网络图,显示从树状图获得的每个聚类作为一个独立图形。

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

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

custom_cov : DataFrame or None, optional

自定义协方差矩阵,用于当共依赖参数的值为‘custom_cov’时。默认值为None。

codependence : str, can be {'pearson', 'spearman', 'abs_pearson', 'abs_spearman', 'distance', 'mutual_info', 'tail' or 'custom_cov'}

用于构建距离度量和聚类的共依赖性或相似性矩阵。默认值为“pearson”。可能的值有:

  • ’pearson’: Pearson 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{pearson}_{i,j})}\)

  • ’spearman’: Spearman 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{spearman}_{i,j})}\)

  • ’kendall’: Kendall 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{kendall}_{i,j})}\)

  • ’gerber1’: Gerber 统计量 1 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{gerber1}_{i,j})}\)

  • ’gerber2’: Gerber 统计量 2 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{gerber2}_{i,j})}\)

  • ’abs_pearson’: 绝对值 Pearson 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho_{i,j}|)}\)

  • ’abs_spearman’: 绝对值 Spearman 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho_{i,j}|)}\)

  • ’abs_kendall’: 绝对值 Kendall 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho^{kendall}_{i,j}|)}\)

  • ’distance’: 距离相关矩阵。距离公式 \(D_{i,j} = \sqrt{(1-\rho^{distance}_{i,j})}\)

  • ’mutual_info’: 互信息矩阵。使用的距离是变化信息矩阵。

  • ’tail’: 下尾依赖指数矩阵。非相似性公式 \(D_{i,j} = -\log{\lambda_{i,j}}\)

  • ’custom_cov’: 使用基于 custom_cov 参数的自定义相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{pearson}_{i,j})}\)

linkage : string, optional

层次聚类的连接方法,更多详细信息请参见 linkage。 默认值为‘ward’。可能的值有:

  • ’single’。

  • ’complete’。

  • ’average’。

  • ’weighted’。

  • ’centroid’。

  • ’median’。

  • ’ward’。

  • ’DBHT’: 直接气泡层次树。

opt_k_method : str

用于计算最佳聚类数量的方法。 默认值为‘twodiff’。可能的值包括:

  • ’twodiff’: 两个差异间隙统计量。

  • ’stdsil’: 标准化轮廓得分。

k : int, optional

聚类的数量。此值取代了通过两种不同的间隙统计量计算的最优聚类数量。默认值为 None。

max_k : int, optional

两种差异间隙统计量用于找出最佳聚类数的最大聚类数。默认值为10。

bins_info : int or str

用于计算信息变异的箱数。默认值为‘KN’。可能的值有:

  • ’KN’: Knuth的选择方法。详情请见 knuth_bin_width

  • ’FD’: Freedman–Diaconis的选择方法。详情请见 freedman_bin_width

  • ’SC’: Scotts的选择方法。详情请见 scott_bin_width

  • ’HGR’: Hacine-Gharbi和Ravier的选择方法。

  • int: 用户选择的整数值。

alpha_tail : float, optional

下尾依赖指数的显著性水平。默认值为 0.05。

gs_threshold : float, optional

Gerber统计阈值。默认值为0.5。

leaf_order : bool, optional

指示集群是否按顺序排列,以使连续叶子之间的距离最小。默认为 True。

seed : int, optional

用于 networkx spring layout 的种子。默认值为 0。

node_labels : bool, optional

指定节点标签是否可见。默认值为 True。

max_node_size : float, optional

权重绝对值最大的节点的大小。默认值是2000。

node_alpha : float, optional

节点的Alpha参数或透明度。默认值为0.7。

scale : float, optional

整个图的缩放比例。默认值为10。

subscale : float, optional

集群的规模。默认值是5。

font_size : float, optional

节点标签的字体大小。默认值为 12。

title : str, optional

图表的标题。默认值为“”。

height : float, optional

图像的高度(以英寸为单位)。默认为8。

width : float, optional

图像的宽度,以英寸为单位。默认值为10。

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴

示例

ax = rp.plot_clusters_network(returns=Y,
                              codependence="pearson",
                              linkage="ward",
                              k=None,
                              max_k=10,
                              ax=None)
_images/Assets_Clusters_Network.png
PlotFunctions.plot_clusters_network_allocation(返回, w, 自定义协方差=None, 相互依赖='pearson', 链接='ward', opt_k_method='twodiff', k=None, max_k=10, bins_info='KN', 阿尔法尾部=0.05, gs_threshold=0.5, 叶序=True, 种子=0, 节点标签=True, 最大节点大小=2000, 颜色语言='tab:blue', color_sht='tab:red', 缩放=10, 子量表=5, 标签_v=1.5, 标签_h=0, 字体大小=10, 标题='', 高度=8, 宽度=10, ax=None)[来源]

创建一个网络图,显示从树状图中获得的每个簇作为独立图形。节点的大小和颜色分别代表投资金额和方向(多头-空头)。

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

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

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

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

custom_cov : DataFrame or None, optional

自定义协方差矩阵,用于当共依赖参数的值为‘custom_cov’时。默认值为None。

codependence : str, can be {'pearson', 'spearman', 'abs_pearson', 'abs_spearman', 'distance', 'mutual_info', 'tail' or 'custom_cov'}

用于构建距离度量和聚类的共依赖性或相似性矩阵。默认值为“pearson”。可能的值有:

  • ’pearson’: Pearson 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{pearson}_{i,j})}\)

  • ’spearman’: Spearman 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{spearman}_{i,j})}\)

  • ’kendall’: Kendall 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{kendall}_{i,j})}\)

  • ’gerber1’: Gerber 统计量 1 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{gerber1}_{i,j})}\)

  • ’gerber2’: Gerber 统计量 2 相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{gerber2}_{i,j})}\)

  • ’abs_pearson’: 绝对值 Pearson 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho_{i,j}|)}\)

  • ’abs_spearman’: 绝对值 Spearman 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho_{i,j}|)}\)

  • ’abs_kendall’: 绝对值 Kendall 相关矩阵。距离公式: \(D_{i,j} = \sqrt{(1-|\rho^{kendall}_{i,j}|)}\)

  • ’distance’: 距离相关矩阵。距离公式 \(D_{i,j} = \sqrt{(1-\rho^{distance}_{i,j})}\)

  • ’mutual_info’: 互信息矩阵。使用的距离是变化信息矩阵。

  • ’tail’: 下尾依赖指数矩阵。非相似性公式 \(D_{i,j} = -\log{\lambda_{i,j}}\)

  • ’custom_cov’: 使用基于 custom_cov 参数的自定义相关矩阵。距离公式: \(D_{i,j} = \sqrt{0.5(1-\rho^{pearson}_{i,j})}\)

linkage : string, optional

层次聚类的连接方法,更多详细信息请参见 linkage。 默认值为‘ward’。可能的值有:

  • ’single’。

  • ’complete’。

  • ’average’。

  • ’weighted’。

  • ’centroid’。

  • ’median’。

  • ’ward’。

  • ’DBHT’: 直接气泡层次树。

bins_info : int or str

用于计算信息变异的箱数。默认值为‘KN’。可能的值有:

  • ’KN’: Knuth的选择方法。详情请见 knuth_bin_width

  • ’FD’: Freedman–Diaconis的选择方法。详情请见 freedman_bin_width

  • ’SC’: Scotts的选择方法。详情请见 scott_bin_width

  • ’HGR’: Hacine-Gharbi和Ravier的选择方法。

  • int: 用户选择的整数值。

alpha_tail : float, optional

下尾依赖指数的显著性水平。默认值为 0.05。

gs_threshold : float, optional

Gerber统计阈值。默认值为0.5。

leaf_order : bool, optional

指示集群是否按顺序排列,以使连续叶子之间的距离最小。默认为 True。

seed : int, optional

用于 networkx spring layout 的种子。默认值为 0。

node_labels : bool, optional

指定节点标签是否可见。默认值为 True。

max_node_size : float, optional

权重绝对值最大的节点的大小。默认值是2000。

color_lng : str, optional

持有多头头寸的资产的颜色。默认值为‘tab:blue’。

color_sht : str, optional

持有空头头寸的资产颜色。默认值为‘tab:red’。

scale : float, optional

整个图表的缩放比例。默认值为10。

subscale : float, optional

聚类的规模。默认值为5。

label_v : float, optional

标签从中心偏移的垂直距离。默认值为1.5。

label_h : float, optional

标签从中心偏移的水平距离。默认值为0。

font_size : float, optional

节点标签的字体大小。默认值为10。

title : str, optional

图表的标题。默认值为“”。

height : float, optional

图像的高度(以英寸为单位)。默认为8。

width : float, optional

图像的宽度,以英寸为单位。默认值为10。

ax : matplotlib axis, optional

如果提供,绘制在此轴上。默认值为无。

Raises:

ValueError – 当无法计算该值时。

Returns:

ax – 返回包含图形的坐标轴对象,以便进行进一步调整。

Return type:

matplotlib 轴

示例

ax = rp.plot_clusters_network_allocation(returns=Y,
                                         w=w1,
                                         codependence="pearson",
                                         linkage="ward",
                                         k=None,
                                         max_k=10,
                                         ax=None)
_images/Assets_Clusters_Network_Allocation.png