CAPM.utils {PerformanceAnalytics}R Documentation

utility functions for CAPM CML, SML, and RiskPremium


The Capital Asset Pricing Model, from which the popular SharpeRatio is derived, is a theory of market equilibrium. These utility functions provide values for various measures proposed in the CAPM.


CAPM.CML.slope(Rb, Rf = 0 )
CAPM.CML(Ra, Rb, Rf = 0)
CAPM.RiskPremium(Ra, Rf = 0)
CAPM.SML.slope(Rb, Rf = 0)


Ra an xts, vector, matrix, data frame, timeSeries or zoo object of asset returns
Rb return vector of the benchmark asset
Rf risk free rate, in same period as your returns


The CAPM provides a justification for passive or index investing by positing that assets that are not on the efficient frontier will either rise or lower in price until they are on the efficient frontier of the market portfolio.

The CAPM Risk Premium on an investment is the measure of how much the asset's performance differs from the risk free rate. Negative Risk Premium generally indicates that the investment is a bad investment, and the money should be allocated to the risk free asset or to a different asset with a higher risk premium.

The Capital Market Line relates the excess expected return on an efficient market portfolio to it's Risk. The slope of the CML is the Sharpe Ratio for the market portfolio. The Security Market line is constructed by calculating the line of Risk Premium over CAPM.beta. For the benchmark asset this will be 1 over the risk premium of the benchmark asset. The CML also describes the only path allowed by the CAPM to a portfolio that outperforms the efficient frontier: it describes the line of reward/risk that a leveraged portfolio will occupy. So, according to CAPM, no portfolio constructed of the same assets can lie above the CML.

Probably the most complete criticism of CAPM in actual practice (as opposed to structural or theory critiques) is that it posits a market equilibrium, but is most often used only in a partial equilibrium setting, for example by using the S&P 500 as the benchmark asset. A better method of using and testing the CAPM would be to use a general equilibrium model that took global assets from all asset classes into consideration.

Chapter 7 of Ruppert(2004) gives an extensive overview of CAPM, its assumptions and deficiencies.

CAPM.RiskPremium is the premium returned to the investor over the risk free asset


CAPM.CML calculates the expected return of the asset against the benchmark Capital Market Line

CAPM.CML.slope calculates the slope of the Capital Market Line for looking at how a particular asset compares to the CML

CAPM.SML.slope calculates the slope of the Security Market Line for looking at how a particular asset compares to the SML created by the benchmark


CAPM value for function called


Brian G. Peterson


Sharpe, W.F. The Sharpe Ratio,Journal of Portfolio Management,Fall 1994, 49-58.
Sharpe, W.F. Capital Asset Prices: A theory of market equilibrium under conditions of risk. Journal of finance, vol 19, 1964, 425-442.
Ruppert, David. Statistics and Finance, an Introduction. Springer. 2004.

See Also

CAPM.beta CAPM.alpha SharpeRatio InformationRatio TrackingError ActivePremium


CAPM.CML.slope(managers[,"SP500 TR",drop=FALSE], managers[,10,drop=FALSE])
CAPM.CML(managers[,"HAM1",drop=FALSE], managers[,"SP500 TR",drop=FALSE], Rf=0)
CAPM.RiskPremium(managers[,"SP500 TR",drop=FALSE], Rf=0)
CAPM.RiskPremium(managers[,"HAM1",drop=FALSE], Rf=0)
CAPM.SML.slope(managers[,"SP500 TR",drop=FALSE], Rf=0)
# should create plots like in Ruppert 7.1 7.2

[Package PerformanceAnalytics version 0.9.9-5 Index]