linearmodels.asset_pricing.model.LinearFactorModel¶
-
class linearmodels.asset_pricing.model.LinearFactorModel(portfolios: IVData | ndarray | DataArray | DataFrame | Series, factors: IVData | ndarray | DataArray | DataFrame | Series, *, risk_free: bool =
False
, sigma: ndarray | DataArray | DataFrame | Series | None =None
)[source]¶ Linear factor model estimator
- Parameters:¶
- portfolios: IVData | ndarray | DataArray | DataFrame | Series¶
Test portfolio returns (nobs by nportfolio)
- factors: IVData | ndarray | DataArray | DataFrame | Series¶
Priced factor returns (nobs by nfactor)
- risk_free: bool =
False
¶ Flag indicating whether the risk-free rate should be estimated from returns along other risk premia. If False, the returns are assumed to be excess returns using the correct risk-free rate.
- sigma: ndarray | DataArray | DataFrame | Series | None =
None
¶ Positive definite residual covariance (nportfolio by nportfolio)
Notes
Suitable for traded or non-traded factors.
Implements a 2-step estimator of risk premia, factor loadings and model tests.
The first stage model estimated is
\[r_{it} = c_i + f_t \beta_i + \epsilon_{it}\]where \(r_{it}\) is the return on test portfolio i and \(f_t\) are the traded factor returns. The parameters \(c_i\) are required to allow non-traded to be tested, but are not economically interesting. These are not reported.
The second stage model uses the estimated factor loadings from the first and is
\[\bar{r}_i = \lambda_0 + \hat{\beta}_i^\prime \lambda + \eta_i\]where \(\bar{r}_i\) is the average excess return to portfolio i and \(\lambda_0\) is only included if estimating the risk-free rate. GLS is used in the second stage if
sigma
is provided.The model is tested using the estimated values \(\hat{\alpha}_i=\hat{\eta}_i\).
Methods
fit
([cov_type, debiased])Estimate model parameters
from_formula
(formula, data, *[, portfolios, ...])Properties