def get_universe_factor_exposure( self, start_date: dt.date, end_date: dt.date = None, assets: DataAssetsRequest = DataAssetsRequest(UniverseIdentifier.gsid, []), format: ReturnFormat = ReturnFormat.DATA_FRAME ) -> Union[List[Dict], pd.DataFrame]: """ Retrieve universe factor exposure data for existing risk model :param start_date: start date for data request :param end_date: end date for data request :param assets: DataAssetsRequest object with identifier and list of assets to retrieve for request :param format: which format to return the results in :return: factor exposure for assets requested """ results = GsFactorRiskModelApi.get_risk_model_data( model_id=self.id, start_date=start_date, end_date=end_date, assets=assets, measures=[ Measure.Universe_Factor_Exposure, Measure.Asset_Universe ], limit_factors=False).get('results') universe = assets.universe if assets.universe else results[0].get( 'assetData').get('universe') factor_exposure = build_asset_data_map(results, universe, 'factorExposure') if format == ReturnFormat.DATA_FRAME: factor_exposure = pd.DataFrame.from_dict( {(i, j): factor_exposure[i][j] for i in factor_exposure.keys() for j in factor_exposure[i].keys()}, orient='index') return factor_exposure
def get_residual_variance( self, start_date: dt.date, end_date: dt.date = None, assets: DataAssetsRequest = DataAssetsRequest(UniverseIdentifier.gsid, []), format: ReturnFormat = ReturnFormat.DATA_FRAME ) -> Union[List[Dict], pd.DataFrame]: """ Retrieve residual variance data for existing risk model :param start_date: start date for data request :param end_date: end date for data request :param assets: DataAssetsRequest object with identifier and list of assets to retrieve for request :param format: which format to return the results in :return: residual variance for assets requested """ results = GsFactorRiskModelApi.get_risk_model_data( model_id=self.id, start_date=start_date, end_date=end_date, assets=assets, measures=[Measure.Residual_Variance, Measure.Asset_Universe], limit_factors=False).get('results') universe = assets.universe if assets.universe else results[0].get( 'assetData').get('universe') residual_variance = build_asset_data_map(results, universe, 'residualVariance') if format == ReturnFormat.DATA_FRAME: residual_variance = pd.DataFrame(residual_variance) return residual_variance