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.
-
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
rmgarch
builds on it to provide the ability to estimate several multivariate
GARCH models. 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. The
AutoSEARCH
package provides automated
general-to-specific model selection of the mean and
log-volatility of a log-ARCH-X model.
-
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.
-
Several packages provide wavelet analysis
functionality:
rwt,
wavelets,
waveslim,
wavethresh. Some methods from chaos
theory are provided by the package
tseriesChaos.
-
The
forecast
package adds functions for
forecasting problems.
-
The
tsfa
package provides functions for time series factor analysis.
-
The
stochvol
package implements Bayesian
estimation of stochastic volatility using Markov Chain Monte
Carlo.
Finance
-
The Rmetrics suite of packages comprises
fArma,
fAsianOptions,
fAssets,
fBasics,
fBonds,
timeDate
(formerly: fCalendar),
fCopulae,
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
package provides functions for
single index, constant correlation and multigroup models.
The
pa
package offers performance attribution
functionality for equity portfolios.
-
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
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
SmithWilsonYieldCurve
construct the yield curve using
the Smith-Wilson approach based on LIBOR and SWAP rates.
-
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
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
BurStFin
and
BurStMisc
package has a collection of
function for Finance including the estimation of covariance
matrices.
-
The
AmericanCallOpt
package contains a pricer for
different American call options.
-
The
VarSwapPrice
package can price a variance swap
via a portfolio of European options contracts.
-
The
FinAsym
package implements the Lee and Ready (1991)
and Easley and O'Hara (1987) tests for, respectively, trade direction,
and probability of informed trading.
-
The
parma
package provides support for portfolio
allocation and risk management applications.
-
The
GUIDE
package provides a
GUI
for
DE
rivatives and contains numerous pricer examples as
well as interactive 2d and 3d plots to study these pricing
functions.
-
The
PIN
package estimates the probability of
informed trading using microstructure data.
-
The
SharpeR
package contains a collection of tools
for analyzing significance of trading strategies, based on the
Sharpe ratio and overfit of the same.
-
The
RND
package implements various functions to extract risk-neutral densities
from option prices.
-
LSMonteCarlo
can price American Options via the Least Squares Monte Carlo
method
-
The
BenfordTests
package provides
seven statistical tests and support functions for determining if numerical data
could conform to Benford's law.
-
The
OptHedging
package values call and put option portfolio and implements an
optimal hedging strategy.
-
The
markovchain
package provides functionality to
easily handle and analyse discrete Markov chains.
-
The
ycinterextra
package models yield curve interpolation and extrapolation using
via the Nelson-Siegel, Svensson, or Smith-Wilson models, as well as Hermite cubic splines.
-
The
tvm
package models provides functions for time
value of money such as cashflows and yield curves.
-
The
MarkowitzR
package provides functions to test
the statistical signicance of Markowitz portfolios.
Risk management
-
Several packages provide functionality for
Extreme Value Theory models:
evd,
evdbayes,
evir,
extRemes,
ismev,
POT.
-
The packages
CreditMetrics
and
crp.CSFP
provide function for modelling credit risks.
-
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.
-
The
frmqa
package aims to collect functions for Financial Risk Management and Quantitative Analysis.
-
The
ESG
package can be used to model for asset projection, a scenario-based simulation approach.
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
TFX
package provides an interface to the TrueFX (TM)
service for free streaming real-time and historical
tick-by-tick market data for interbank foreign exchange
rates at the millisecond resolution.
-
The package
highfrequency
contains functionality
to manage, clean and match highfrequency trades and quotes
data and enables users to calculate various liquidity
measures, estimate and forecast volatility, and investigate
microstructure noise and intraday periodicity.
-
The
Rbitcoin
package offers access to Bitcoin
exchange APIs (mtgox, bitstamp, btce, kraken) via public and
private API calls and integration of data structures for all
markets.
-
The
TAQMNGR
package manages tick-by-tick (equity)
transaction data performing 'cleaning', 'aggregation' and
'import' where cleaning and aggregation are performed
according to Brownlees and Gallo (2006).