Source code for kaxanuk.attribution_analysis.interfaces.factor_model_interface

import abc
import pandas as pd

[docs] class FactorModelAttributionInterface(metaclass=abc.ABCMeta): def __init__( self, portfolio_returns: pd.DataFrame, benchmark_returns: pd.DataFrame, daily_portfolio_weights: pd.DataFrame, by_factor_factor_returns: pd.DataFrame, # factor_returns: pd.DataFrame, asset_returns: pd.DataFrame, ): self.portfolio_returns = portfolio_returns self.benchmark_returns = benchmark_returns self.daily_portfolio_weights = daily_portfolio_weights self.by_factor_factor_returns = by_factor_factor_returns # self.factor_returns = factor_returns self.asset_returns = asset_returns
[docs] @abc.abstractmethod def multifactor_attribution(self, date: str): """ Calculate the CAPM attribution model for a given date. :param date: The date for which to calculate the attribution. :return: A tuple containing the detailed attribution DataFrame and a totals DataFrame. """ ...