Thanks to page visitors
|
Modelling using R
R is an extremely powerful research tool. On this
page I have combined some of the financial risk
modelling techniques available in R with free data
sources and some web-based tools.
Dr A.K. Singh and I have a book on the use of R for research in Economics and Finance
which was published by World Scientific in 2017.
A.K. Singh and D.E. Allen, R in Finance and Economics-A Beginners Guide.
The preface and contents of this book can be
downloaded here: preface and
contents
The book cover can be seen here:cover
The book can can be accessed on the publisher's website here:book World Scientific
The book can can be accessed on the Amazon website here:book Amazon
Empirical Finance Packages available in R See: (http://cran.r-project.org/web/views/Finance.html)
On the above-mentioned webpage the 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.
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 withnlme() 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. 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 theory.
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 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 tockPortfolio 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 schwartz97 package can be used to model the
Schwartz (1997) two-factor model for commodities
markets.
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.
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. Risk management
Several packages provide functionality for Extreme
Value Theory models: evd, evdbayes, evir, extRremes,
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.
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.
Risk management
Several packages provide functionality for Extreme
Value Theory models:
evd, evdbayes, evir, extRremes, 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.
|
|