watch            
Professor David Allen
               euromoney          
Introduction
Research
R Modelling
Consultancy
Hobbies
Courses
Resources
Contact

Thanks to page visitors

Hit Counter by Digits

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.

Dave allen