This CRAN Task View contains a list of packages useful for
empirical work in Finance, grouped by topic.
Besides these packages, a very wide variety of functions suitable for
empirical work in Finance is provided by both the basic R
system (and its set of recommended core packages), and a number of
other packages on the Comprehensive R Archive Network (CRAN).
Consequently, several of the other CRAN Task Views may contain suitable
packages, in particular the
Econometrics,
Multivariate,
Optimization,
Robust,
SocialSciences
and
TimeSeries
Task Views.
Please send suggestions for additions and extensions for this task
view to the
task view maintainer
.
Standard regression models
-
A detailed overview of the available regression methodologies is
provided by the
Econometrics
task view. This is
complemented by the
Robust
which focuses on more robust
and resistant methods.
-
Linear models such as ordinary least squares (OLS) can be estimated
by
lm()
(from by the stats package contained in the basic R
distribution). Maximum Likelihood (ML) estimation can be undertaken
with the standard
optim()
function. Many other suitable methods
are listed in the
Optimization
view. Non-linear least squares can
be estimated with the
nls()
function, as well as with
nlme()
from the
nlme
package.
-
For the linear model, a variety of regression diagnostic tests
are provided by the
car,
lmtest,
strucchange,
urca, and
sandwich
packages.
The
Rcmdr
and
Zelig
packages provide user
interfaces that may be of interest as well.
Time series
-
A detailed overview of tools for time series analysis can be found in
the
TimeSeries
task view. Below a brief overview of the
most important methods in finance is given.
-
Classical time series functionality is provided
by the
arima()
and
KalmanLike()
commands in the
basic R distribution.
-
The
dse
and
timsac
packages provides a variety of more
advanced estimation methods;
fracdiff
can
estimate fractionally integrated series;
longmemo
covers
related material;
FracSim
simulates fractional Levy
series. The
fractal
provide fractal time series modeling
functionality.
-
For volatility modeling, the standard GARCH(1,1) model can
be estimated with the
garch()
function in the
tseries
package. Rmetrics (see below) contains the
fGarch
package which has additional models. The
rugarch
package can be used to model a variety of
univariate GARCH models with extensions such as ARFIMA, in-mean,
external regressors and various other specifications; with
methods for fit, forecast, simulation, inference and plotting
are provided too. The
betategarch
package can estimate
and simulate the Beta-t-EGARCH model by Harvey.
The
bayesGARCH
package can perform
Bayesian estimation of a GARCH(1,1) model with Student's t
innovations. For multivariate models, the
ccgarch
package can estimate (multivariate) Conditional Correlation
GARCH models whereas the
gogarch
package provides
functions for generalized orthogonal GARCH models.
-
Unit root and cointegration tests are provided by
tseries,
and
urca.
The Rmetrics packages
timeSeries
and
fMultivar
contain a number of estimation functions for
ARMA, GARCH, long memory models, unit roots and more.
The
CADFtest
package implements the Hansen unit root test.
-
MSBVAR
provides
Bayesian estimation of vector autoregressive models. The
dlm
package provides
Bayesian and likelihood analysis of dynamic linear models (ie
linear Gaussian state space models).
-
The
vars
package offer estimation, diagnostics,
forecasting and error decomposition of VAR and SVAR model in a
classical framework.
-
The
dyn
and
dynlm
are suitable for dynamic (linear) regression
models.
The
dynamo
package can estimate dynamic model such as
ARMA, ARMA-GARCH, ACD and MEM.
-
Several packages provide wavelet analysis
functionality:
rwt,
wavelets,
waveslim,
wavethresh. Some methods from chaos
theory are provided by the package
tseriesChaos, and
tsDyn
adds time series analysis based on dynamical
systems therory.
-
The
forecast
package adds functions for
forecasting problems.
-
The
tsfa
package provides functions for time series factor analysis.
Finance
-
The Rmetrics suite of packages comprises
fAsianOptions,
fAssets,
fBasics,
fBonds,
timeDate
(formerly: fCalendar),
fCopulae,
fEcofin,
fExoticOptions,
fExtremes,
fGarch,
fImport,
fMultivar,
fNonlinear,
fOptions,
fPortfolio,
fRegression,
timeSeries
(formerly: fSeries),
fTrading,
fUnitRoots
and contains a very large number of relevant functions for different aspect of empirical
and computational finance.
-
The
RQuantLib
package provides several option-pricing
functions as well as some fixed-income functionality from the
QuantLib project to R.
-
The
quantmod
package offers a number of functions for
quantitative modelling in finance as well as data acqusition, plotting
and other utilities.
-
The
portfolio
package contains
classes for equity portfolio management; the
portfolioSim
builds a related simulation framework.
The
backtest
offers tools to
explore portfolio-based hypotheses about financial instruments.
The
stockPortfolio
packages provides functions for
single index, constant correlation and multigroup models.
-
The
PerformanceAnalytics
package contains a large number
of functions for portfolio performance calculations and risk management.
-
The
TTR
contains functions to construct technical
trading rules in R. The
ttrTests
package contains
several test statistics for assessing the efficacy
of such rules.
-
The
financial
package can compute present values, cash
flows and other simple finance calculations.
-
The
sde
package provides simulation and inference functionality
for stochastic differential equations.
-
The
termstrc
and
YieldCurve
packages contain methods for the estimation
of zero-coupon yield curves and spread curves based the parametric
Nelson and Siegel (1987) method with the Svensson (1994)
extension. The former package adds the McCulloch (1975) cubic
splines approach, the latter package adds the Diebold and Li approach.
-
The
vrtest
package contains a number of variance ratio
tests for the weak-form of the efficient markets hypothesis.
-
The
gmm
package provides generalized method of moments
(GMM) estimations function that are often used when estimating the
parameters of the moment conditions implied by an asset pricing
model.
-
The
tawny
package contains estimator based on random
matrix theory as well as shrinkage methods to remove sampling noise
when estimating sample covariance matrices.
-
The
SV
package uses indirect inference to estimate
non-Gaussian stochastic volatility models.
-
The
schwartz97
package can be used to model the
Schwartz (1997) two-factor model for commodities markets.
-
The
rrv
package provides functions for
modelling portfolio returns as random variables, partly
based on the work of Markowitz (1952, 1959), with an emphasis on:
modelling portfolios as functions of weight; modelling returns with
empirical cumulative distribution functions; and considering quantile
returns.
-
The
opefimor
package by contains material to
accompany the Iacus (2011) book entitled "Option Pricing and
Estimation of Financial Models in R".
-
The
maRketSim
package provides a market simulator,
initially designed around the bond market.
-
The
PairTrading
package provides an implementation of the
classical "Pair(s) trading" trading strategy using
cointegration.
-
The
BurStFin
package has a collection of
function for Finance including the estimation of covariance
matrices. classical "Pair(s) trading" trading strategy using
cointegration.
Risk management
-
Several packages provide functionality for
Extreme Value Theory models:
evd,
evdbayes,
evir,
extRremes,
ismev,
POT.
-
The
CreditMetrics
package provides
functions for Credit Risk modeling.
-
The
mvtnorm
package provides code for multivariate Normal and t-distributions.
-
The Rmetrics packages
fPortfolio
and
fExtremes
also contain a number of relevant functions.
-
The
copula
and
fgac
packages cover
multivariate dependency structures using copula methods.
-
The
actuar
package provides an actuarial
perspective to risk management.
-
The
ghyp
package provides generalized hyberbolic distribution
functions as well as procedures for VaR, CVaR or target-return
portfolio optimizations.
-
The
ChainLadder
package provides functions for modeling
insurance claim reserves; and the
lifecontingencies
package
provides functions for financial and actuarial evaluations of life contingencies.
Books
-
The
FinTS
package provides an R companion to Tsay (2005),
Analysis of Financial Time Series
, 2nd ed. Wiley,
and includes data sets, functions and script files to work some
of the examples.
-
The
NMOF
package provides functions, examples and data
from
Numerical Methods in Finance
by Manfred Gilli, Dietmar Maringer and
Enrico Schumann (2011), including the different optimization heuristics such as
Differential Evolution, Genetic Algorithms, Particle Swarms, and Threshold Accepting.
Data and date management
-
The
its,
zoo
and
timeDate
(part of Rmetrics) packages provide support for
irregularly-spaced time series. The
xts
package extends
zoo
specifically for financial time series. See the
TimeSeries
task view for more details.
-
timeDate
also addresses
calendar issues such as recurring holidays for a large number of
financial centers, and provides code for high-frequency data sets.
-
The
fame
package can access Fame time series databases (but
also requires a Fame backend). The
tis
package provides
time indices and time-indexed series compatible with Fame
frequencies.
-
The
TSdbi
package provides a unifying interface for
several time series data base backends, and its SQL implementations
provide a database table design.
-
The
IBrokers
package provides access to the Interactive Brokers
API for data access (but requires an account to access the service).
-
The
data.table
package provides very efficient and fast
access to in-memory data sets such as asset prices.
-
The
RTAQ
package can be used to analyse trades and
quotes data supplied in the TAQ format of the New York Stock
Exchange in order to implement intraday trading strategies, measure
liquidity and volatility, and investigate market microstructure
aspects.