The Jensen's alpha is the intercept of the regression equation in the Capital Asset Pricing Model and is in effect the exess return adjusted for systematic risk.
CAPM.jensenAlpha(Ra, Rb, Rf = 0, ..., method = "LS", family = "mopt")an xts, vector, matrix, data frame, timeSeries or zoo object of asset returns
return vector of the benchmark asset
risk free rate, in same period as your returns
any other pass thru parameters
(Optional): string representing linear regression model, "LS" for Least Squares and "Rob" for robust
(Optional): If method == "Rob": This is a string specifying the name of the family of loss function to be used (current valid options are "bisquare", "opt" and "mopt"). Incomplete entries will be matched to the current valid options. Defaults to "mopt". Else: the parameter is ignored
$$\alpha = r_p - r_f - \beta_p * (b - r_f)$$
where \(r_f\) is the risk free rate, \(\beta_r\) is the regression beta, \(r_p\) is the portfolio return and b is the benchmark return
Carl Bacon, Practical portfolio performance measurement and attribution, second edition 2008 p.72
data(portfolio_bacon)
print(SFM.jensenAlpha(portfolio_bacon[,1], portfolio_bacon[,2])) #expected -0.014
#> [1] -0.01416944
data(managers)
print(SFM.jensenAlpha(managers['1996',1], managers['1996',8]))
#> [1] 0.08077871
print(SFM.jensenAlpha(managers['1996',1:5], managers['1996',8]))
#> HAM1 HAM2 HAM3 HAM4 HAM5
#> Jensen's Alpha (Risk free = 0) 0.08077871 NA 0.2196026 0.06063837 NA