# conditional.sort: Conditional Portfolio Sort In portsort: Factor-Based Portfolio Sorts

## Description

Calculates out-of-sample mean sub-portfolio returns and the composition of each sub-portfolio using the conditional portfolio sorting method.

## Usage

 `1` ```conditional.sort(Fa,Fb=NULL,Fc=NULL,R.Forward,dimA,dimB=NULL,dimC=NULL,type = 7) ```

## Arguments

 `Fa` xts-object containing data for the first dimension of sort `Fb` xts-object containing data for the second dimension of sort (optional) `Fc` xts-object containing data for the third dimension of sort (optional) `R.Forward` xts-object containing forward returns `dimA` vector of break points between 0 and 1 `dimB` vector of break points between 0 and 1 (optional) `dimC` vector of break points between 0 and 1 (optional) `type` pass-through parameter to the `quantile` function

## Details

The conditional sort function sorts assets based on each factor (Fa to Fc) from low to high in a dependent fashion at each time t. Based on the sorted assets in each sub-portfolio at time t, mean out-of-sample sub-portfolio returns are computed for time t+1. After each dimension of sort, the subsequent sort is done only within each prior sorted sub-portfolio. Hence, the first factor that is sorted on yields greater influence on the overall sorting procedure. The function outputs out-of-sample returns for each sub-portfolio in columns and a list of the sub-portfolio constituents at each rebalancing point.

## Value

 `returns` Out-of-sample sub-portfolio returns `portfolio` List of the sub-portfolio constituents over time

## Note

The function implicitly handles NA/NaN or Inf values at each rebalancing point (at time t) by excluding them from the `quantile` function. Furthermore, if there are any NA, NaN or Inf values in the R.Forward object when computing out-of-sample returns, these are also excluded. The function outputs returns in columns. For example, if a double sort is conducted with both Fa and Fb including 3 breakpoints (a 3v3) sort, column 1 will contain out-of-sample returns for the 'Low-Low' sub-portfolio, column 4 will contain out-of-sample returns for the 'Mid-Low' sub-portfolio whilst column 9 will contain the 'High-High' sub-portfolio returns.

## Author(s)

Jonathan Spohnholtz and Alexander Dickerson

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24``` ```# Load the included data library(portsort) data(Factors) # Specifiy the sort dimension - in this case, a double sort on lagged returns and Bitcoin volumes # with 4 breakpoints (a 4v4 sort) dimA = c(0,0.25,0.5,0.75,1) dimB = c(0,0.25,0.5,0.75,1) # Specify the factors for the double sort # Lagged returns, lagged volumes are stored in the Factors list R.Forward = Factors[]; R.Lag = Factors[]; V.Lag = Factors[] # Subset the data from late 2017 R.Forward = R.Forward["2017-12-01/"] R.Lag = R.Lag["2017-11-30/2018-09-05"] V.Lag = V.Lag["2017-11-30/2018-09-05"] Fa = R.Lag Fb = V.Lag # Conduct a conditional sort sort.output <- conditional.sort(Fa,Fb,Fc=NULL,R.Forward = R.Forward,dimA = dimA,dimB = dimB) ```

portsort documentation built on May 2, 2019, 6:36 a.m.