skfolio.prior.FactorModel#
- class skfolio.prior.FactorModel(loading_matrix_estimator=None, factor_prior_estimator=None, residual_variance=True, higham=False, max_iteration=100)[来源]#
因子模型估计器。
因子模型的目的是通过少数共通因子对金融变量及其协方差矩阵施加结构。这可以通过减少参数数量,即估计问题的维度,帮助克服估计误差,使得投资组合优化更能抗衡数据中的噪音。因子模型还提供了将金融风险分解为系统性风险和特定证券风险的方式。
- Parameters:
- loading_matrix_estimatorLoadingMatrixEstimator, optional
因子的加载矩阵(betas)的估计器。 默认值(
None)是使用LoadingMatrixRegression,该方法使用LassoCV单独拟合每个资产的因子。- factor_prior_estimatorBasePrior, optional
- residual_variancebool, default=True
如果将其设置为 True,则残差协方差的对角项(残差方差)将被添加到因子模型协方差中。
- highambool, default=False
如果将此设置为 True,我们将使用 Higham & Nick (2002) 算法来找到最近的正半定协方差矩阵。它更准确但比默认的剪切方法慢。有关更多信息,请参见
cov_nearest。- max_iterationint, default=100
仅在
higham设置为 True 时使用。Higham & Nick (2002) 算法的最大迭代次数。
- Attributes:
- prior_model_PriorModel
该
PriorModel。- factor_prior_estimator_BasePrior
拟合
factor_prior_estimator。- loading_matrix_estimator_BaseLoadingMatrix
拟合
loading_matrix_estimator。- n_features_in_int
在
fit期间看到的资产数量。- feature_names_in_ndarray of shape (
n_features_in_,) 在
fit过程中看到的特征名称。只有在X具有全部为字符串的特征名称时才会定义。
方法
fit(X, y, **fit_params)拟合因子模型估计器。
获取此对象的元数据路由。
get_params([deep])获取此估计器的参数。
set_params(**params)设置此估计器的参数。
- fit(X, y, **fit_params)[来源]#
拟合因子模型估计量。
- Parameters:
- Xarray-like of shape (n_observations, n_assets)
资产的价格收益。
- yarray-like of shape (n_observations, n_factors)
因素的回报。
- **fit_paramsdict
传递给基础估计器的参数。只有在
enable_metadata_routing=True的情况下可用,您可以通过使用sklearn.set_config(enable_metadata_routing=True)来设置。详情请参见 元数据路由用户指南。
- Returns:
- selfFactorModel
拟合的估计器。
- get_metadata_routing()[来源]#
获取这个对象的元数据路由。
请查看 用户指南 了解路由机制是如何工作的。
- Returns:
- routingMetadataRequest
一个
MetadataRequest封装路由信息。
- get_params(deep=True)#
获取此估计器的参数。
- Parameters:
- deepbool, default=True
如果为真,将返回此估计器及其包含的子对象的参数,这些子对象也是估计器。
- Returns:
- paramsdict
参数名称映射到它们的值。
- set_params(**params)#
设置该估计器的参数。
该方法适用于简单估计器以及嵌套对象(如
Pipeline)。后者具有<component>__<parameter>形式的参数,因此可以更新嵌套对象的每个组件。- Parameters:
- **paramsdict
估计器参数。
- Returns:
- selfestimator instance
估计器实例。