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 volatily 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
bayesGARCH
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.
-
The
realized
package contains functions to model and
visualize 'realized' variance (from high-frequency sampling, as
opposed to historical volatility and variance from lower-frequency returns, or
implied volatility from option prices).
-
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.
-
The
ArDec
implements autoregressive time series
decomposition in a Bayesian framework;
MSBVAR
provides
Bayesian estimation of vector autoregressive models and
the
MSVAR
provides classic 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
forecasting
bundle adds functions and datasets for
forecasting problems.
-
The
tsfa
package provides functions for time series factor analysis.
Finance
-
The Rmetrics suite of packages comprises
fArma,
fAsianOptions,
fAssets,
fBasics,
fBonds,
timeDate
(formerly: fCalendar),
fCopulae,
fEcofin,
fExoticOptions,
fExtremes,
fGarch,
fImport,
fMultivar,
fNonlinear,
fOptions,
fPortfolio,
fRegression,
timeSeries
(formerly: fSeries),
fTrading,
fUnitRoots
and
fUtilities
packages contain 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 and
tradeCosts
estimates the potential impact of trades on
the prevalent market prices.
The
backtest
offers tools to
explore portfolio-based hypotheses about financial instruments.
-
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
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
package contains 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,
and the McCulloch (1975) cubic splines approach.
-
The
vrtest
package contains a number of variance ratio
tests for the weak-form of the efficient markets hypothesis.
-
The
BLCOP
package provides implementation of the
Black-Litterman portfolio model as well other copula-opinion
pooling frameworks.
-
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.
Risk management
-
The
VaR
package estimates
Value-at-Risk, and 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
QRMlib
covers quantitative risk modelling.
-
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.
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.
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
RBloomberg
package can access Bloomberg data (but
requires a Bloomberg installations on a Windows PC).
-
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, and the
opentick
package provides access to the OpenTick
data (but either one 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.