FRP {intrinsicFRP} | R Documentation |
Factor risk premia.
Description
Computes the Fama-MachBeth (1973) doi:10.1086/260061 factor
risk premia:
FMFRP = (beta' * beta)^{-1} * beta' * E[R]
where
beta = Cov[R, F] * V[F]^{-1}
or the misspecification-robust factor risk premia of Kan-Robotti-Shanken (2013)
doi:10.1111/jofi.12035:
KRSFRP = (beta' * V[R]^{-1} * beta)^{-1} * beta' * V[R]^{-1} * E[R]
,
from data on factors F
and test
asset excess returns R
.
These notions of factor risk premia are by construction the negative
covariance of factors F
with candidate SDF
M = 1 - d' * (F - E[F])
,
where SDF coefficients d
are obtained by minimizing pricing errors:
argmin_{d} (E[R] - Cov[R,F] * d)' * (E[R] - Cov[R,F] * d)
and
argmin_{d} (E[R] - Cov[R,F] * d)' * V[R]^{-1} * (E[R] - Cov[R,F] * d)
,
respectively.
Optionally computes the corresponding
heteroskedasticity and autocorrelation robust standard errors (accounting
for a potential model misspecification) using the
Newey-West (1994) doi:10.2307/2297912 plug-in procedure to select the
number of relevant lags, i.e., n_lags = 4 * (n_observations/100)^(2/9)
.
For the standard error computations, the function allows to internally
pre-whiten the series by fitting a VAR(1),
i.e., a vector autoregressive model of order 1.
All the details can be found in Kan-Robotti-Shanken (2013)
doi:10.1111/jofi.12035.
Usage
FRP(
returns,
factors,
misspecification_robust = TRUE,
include_standard_errors = FALSE,
hac_prewhite = FALSE,
target_level_gkr2014_screening = 0,
check_arguments = TRUE
)
Arguments
returns |
A |
factors |
A |
misspecification_robust |
A boolean: |
include_standard_errors |
A boolean: |
hac_prewhite |
A boolean indicating if the series needs pre-whitening by
fitting an AR(1) in the internal heteroskedasticity and autocorrelation
robust covariance (HAC) estimation. Default is |
target_level_gkr2014_screening |
A number indicating the target level of
the tests underlying the factor screening procedure in Gospodinov-Kan-Robotti
(2014). If it is zero, then no factor screening procedure is
implemented. Otherwise, it implements an iterative screening procedure
based on the sequential removal of factors associated with the smallest insignificant
t-test of a nonzero SDF coefficient. The threshold for the absolute t-test is
|
check_arguments |
A boolean: |
Value
A list containing n_factors
-dimensional vector of factor
risk premia in "risk_premia"
; if include_standard_errors = TRUE
, then
it further includes n_factors
-dimensional vector of factor risk
premia standard errors in "standard_errors"
;
if target_level_gkr2014_screening >= 0
, it further includes the indices of
the selected factors in selected_factor_indices
.
Examples
# import package data on 6 risk factors and 42 test asset excess returns
factors = intrinsicFRP::factors[,-1]
returns = intrinsicFRP::returns[,-1]
# compute KRS factor risk premia and their standard errors
frp = FRP(returns, factors, include_standard_errors = TRUE)