famafrench.FamaFrench.comparePortfolios

FamaFrench.comparePortfolios(self, kfType, kfFreq, dt_start, dt_end, *args)[source]

Generalized routine used to compare datasets constructed from wrds-cloud queries to their equivalents made publicly available on Ken French’s online library at a given frequency and for a given sample period.

Parameters
  • kfType (str) –

    Dataset type to query. Possible choices are:

    • Returns

    • Factors

    • NumFirms

    • Characs

  • kfFreq (str) –

    Observation frequency of the portfolios. Possible choices are:

    • D : daily

    • W : weekly

    • M : monthly

    • Q : quarterly (3-months)

    • A : annual

  • dt_start (datetime.date) – Starting date for the dataset queried or locally retrieved.

  • dt_end (datetime.date) – Ending date for the dataset queried or locally retrieved.

  • kfDim (list, int, [optional]) – Dimensions for sorting on each element in the list self.sortCharacsId.

  • kfRetType (str, [optional]) –

    Weighting-scheme for portfolios. Possible choices are:

    • vw : value-weights

    • ew : equal-weights

Returns

  • dfcorrTable (pandas.DataFrame or list, pandas.DataFrame if len(kfDim) == 3) – Table w/ Pearson correlations between wrds-cloud constructed and Ken French online library portfolio variables at a given frequency and over a given sample period.

  • dfmeanTable (` pandas.DataFrame` or list, pandas.DataFrame if len(kfDim) == 3) – Table w/ mean statistics for wrds-cloud constructed and Ken French online library portfolio variables at a given frequency and over a given sample period.

  • dfstdevTable (pandas.DataFrame or list, pandas.DataFrame if len(kfDim) == 3) – Table w/ standard deviation statistics for wrds-cloud constructed and Ken French online library portfolio variables at a given frequency and over a given sample period.

Note

The routine is “wrapped” w/ the user-defined function timing() from module famafrench.utils.py. This wrapper times (in seconds) how long the routine takes to complete.

Note

Portfolios require anomaly characteristics from the last fiscal year. To get non-missing observations starting on date dt_start, we construct portfolios using a startdate that is two/three years prior to dt_start. We then slice the resulting pandas.DataFrames starting w/ dt_start.