fitTsfmLagLeadBeta: Fit a lagged and lead Betas factor model using time series...

View source: R/fitTsfmLagLeadBeta.r

fitTsfmLagLeadBetaR Documentation

Fit a lagged and lead Betas factor model using time series regression

Description

This is a wrapper function to fits a time series lagged Betas 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 like fitTsfm.An object of class "tsfm" is returned.

Usage

fitTsfmLagLeadBeta(
  asset.names,
  mkt.name,
  rf.name = NULL,
  data = data,
  fit.method = c("LS", "DLS", "Robust"),
  LagLeadBeta = 1,
  LagOnly = FALSE,
  control = fitTsfm.control(),
  ...
)

Arguments

asset.names

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

mkt.name

name of the column for market returns. It is required for a lagged Betas factor model.

rf.name

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".

LagLeadBeta

A integer number to specify numbers of lags (and leads when LagOnly is FALSE) of Betas to include in the model. The Default is 1.

LagOnly

Flag variable to only include the lags (or have both lags and leads). The Default is FALSE (both lags and leads).

control

list of control parameters. The default is constructed by the function fitTsfm.control. See the documentation for fitTsfm.control for details.

...

arguments passed to fitTsfm.control

Details

The lagged and lead returns model estimates lagged and lead market Beta. Specifically,

r_t = \alpha + \beta_0 MKT_t + \beta^-_1 MKT_t-1 + \ldots + \beta^-_K+1 MKT_t-K + \beta^+_1 MKT_t+1 + \ldots + \beta^+_K MKT_t+K \epsilon_t, t=1 \ldots T

where r_t is the asset returns, and MKT is the market factor. It is usually needed for illiquid securities with stale prices. One can also report the sum of the lagged and lead Betas:

\beta = \beta_0 + \beta^+_1 + \beta^+_1 + \ldots + \beta^+_K + \beta^-_1 + \ldots + \beta^-_K

Value

fitTsfmLagLeadBeta also returns an object of class "tsfm" like fitTsfm. The generic function such as print, plot, predict and summary methods exist. Also, 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 (L+1) 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 assets and factors.

asset.names

asset.names as input.

fit.method

fit.method as input.

Where N is the number of assets, L is the number of lagged and lead market Betas and T is the number of time periods.

Author(s)

Yi-An Chen.

References

Scholes, M. and Williams, J. T. (1977). Estimating betas from non-synchronous data, Journal of Financial Economics, vol. 5, 1977, pp. 309-327

See Also

The original time series function fitTsfm and its generic functions application.

Examples

## A lagged Betas model with LS fit
 
 # load data
data(managers, package = 'PerformanceAnalytics')

fit <- fitTsfmLagLeadBeta(asset.names = names(managers[,(1:6)]),
                          mkt.name = "SP500 TR", rf.name = "US 3m TR", 
                          data = managers, LagLeadBeta = 2, LagOnly = TRUE)
summary(fit)
fitted(fit)


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