Expected Return Estimator#

An expected return estimator estimates the expected returns (mu) of the assets.

It follows the same API as scikit-learn’s estimator: the fit method takes X as the assets returns and stores the expected returns in its mu_ attribute. X can be any array-like structure (numpy array, pandas DataFrame, etc.)

mu_ is expressed in the periodicity of X (daily returns give daily expected returns) and is consumed as is by the optimizers, without annualization (see Periodicity Convention).

Available estimators are:

For online learning and streaming workflows, EWMu supports incremental updates with partial_fit. It also supports NaN-aware updates with active_mask, which helps distinguish assets that belong to the universe but have missing returns (e.g. holidays), from assets outside the universe (e.g. pre-listing or post-delisting periods). See Online Learning for the full online workflow, including online portfolio optimization evaluation with incremental moments. See Missing Data and Changing Universes for the full convention on NaNs, universe membership, estimator warmup and investability.

Example:

from skfolio.datasets import load_sp500_dataset
from skfolio.moments import EmpiricalMu
from skfolio.preprocessing import prices_to_returns

prices = load_sp500_dataset()
X = prices_to_returns(prices)

model = EmpiricalMu()
model.fit(X)
print(model.mu_)