pbo: Probability of backtest overfitting

Description Usage Arguments Details Value References Examples

Description

Performs the probability of backtest overfitting computations.

Usage

1
2
pbo(m, s = 4, f = NA, threshold = 0, inf_sub = 6,
  allow_parallel = FALSE)

Arguments

m

a TxN data frame of returns, where T is the samples per study and N is the number of studies.

s

the number of subsets of m for CSCV combinations; must evenly divide m

f

the function to evaluate a study's performance; required

threshold

the performance metric threshold (e.g. 0 for Sharpe, 1 for Omega)

inf_sub

infinity substitution value for reasonable plotting

allow_parallel

whether to enable parallel processing, default FALSE

Details

This function performs the probability of backtest overfitting calculation using a combinatorially-symmetric cross validation (CSCV) approach.

Value

object of class pbo containing list of PBO calculation results and settings

References

Baily et al., "The Probability of Backtest Overfitting," http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2326253

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
## Not run: 
require(pbo)
require(PerformanceAnalytics)
n <- 100
t <- 1000
s <- 8
m <- data.frame(matrix(rnorm(n*t,mean=0,sd=1),
  nrow=t,ncol=n,byrow=TRUE,
  dimnames=list(1:t,1:n)),
  check.names=FALSE)
p <- pbo(m,s,f=Omega,threshold=1)

## End(Not run)

Example output

Loading required package: lattice
Loading required package: PerformanceAnalytics
Loading required package: xts
Loading required package: zoo

Attaching package: 'zoo'

The following objects are masked from 'package:base':

    as.Date, as.Date.numeric


Attaching package: 'PerformanceAnalytics'

The following object is masked from 'package:graphics':

    legend

pbo documentation built on May 2, 2019, 6:53 a.m.