fitTsfmMT: Fit a market timing time series factor model

View source: R/fitTsfmMT.R

fitTsfmMTR Documentation

Fit a market timing time series factor model

Description

This is a wrapper function to fit a market timing time series factor model for one or more asset returns or excess returns using time series regression. Users can choose between ordinary least squares-LS, discounted least squares-DLS (or) robust regression. An object of class "tsfm" is returned.

Usage

fitTsfmMT(
  asset.names,
  mkt.name,
  rf.name = NULL,
  data = data,
  fit.method = c("LS", "DLS", "Robust"),
  control = fitTsfm.control(...),
  ...
)

Arguments

asset.names

vector containing syntactically valid names of assets, whose returns or excess returns are the dependent variable.

mkt.name

syntactically valid name of the column for market returns (required).

rf.name

syntactically valid name of the column of risk free rate variable to calculate excess returns for all assets (in asset.names) and the market factor (in mkt.name). Default is NULL, and no action is taken.

data

vector, matrix, data.frame, xts, timeSeries or zoo object containing column(s) named in asset.names, factor.names and optionally, mkt.name and rf.name.

fit.method

the estimation method, one of "LS", "DLS" or "Robust". See details. Default is "LS".

control

list of control parameters passed to fitTsfm. Refer to fitTsfm.control for details.

...

arguments passed to fitTsfm.control

Details

Market timing accounts for the price movement of the general stock market relative to fixed income securities. A market-timing factor is added to the time series regression, following Henriksson & Merton (1981). Here, we use down.market = max(0, R_f-R_m), where Rm is the (excess) return on the market. The coefficient of this down-market factor can be interpreted as the number of "free" put options on the market provided by the manager's market-timings skills.

Value

Similar to fitTsfm, fitTsfmMT also returns an object of class "tsfm", for which print, plot, predict and summary methods exist. The generic accessor functions coef, fitted, residuals and fmCov can be applied as well.

An object of class "tsfm" is a list containing the following components:

asset.fit

list of fitted objects for each asset. Each object is of class lm if fit.method="LS" or "DLS", class lmRob if the fit.method="Robust".

alpha

length-N vector of estimated alphas.

beta

N x 2 matrix of estimated betas.

r2

length-N vector of R-squared values.

resid.sd

length-N vector of residual standard deviations.

call

the matched function call.

data

xts data object containing the asset(s) and factor(s) returns.

asset.names

asset.names as input.

factor.names

vector containing the names of the market-timing factor and the market factor

mkt.name

mkt.name as input

fit.method

fit.method as input.

Where N is the number of assets and T is the number of time periods.

Author(s)

Yi-An Chen, Sangeetha Srinivasan.

References

Christopherson, J. A., Carino, D. R., & Ferson, W. E. (2009). Portfolio performance measurement and benchmarking. McGraw Hill Professional. pp.127-133

Henriksson, R. D., & Merton, R. C. (1981). On market timing and investment performance. II. Statistical procedures for evaluating forecasting skills. Journal of business, 513-533.

Treynor, J., & Mazuy, K. (1966). Can mutual funds outguess the market. Harvard business review, 44(4), 131-136.

See Also

The original time series factor model fitting function fitTsfm and related methods.

Examples

 # load data
data(managers, package = 'PerformanceAnalytics')

# example: Market-timing time series factor model with LS fit
fit <- fitTsfmMT(asset.names=colnames(managers[,(1:6)]), 
                 mkt.name="SP500 TR", rf.name="US 3m TR", 
                 data=managers)
summary(fit)


braverock/factorAnalytics documentation built on Dec. 16, 2024, 1:05 p.m.