adjustBeta: Adjust the beta parameters from a single index model

Description Usage Arguments Details Value Author(s) References See Also Examples

Description

Given a stockModel object that is based on the single index model, the beta parameters may be adjusted using either the Blume or Vasicek technique. This function outputs a new object of class "stockModel" based on the single index model.

Usage

1
adjustBeta(model, model2 = NULL, method = c("Blume", "Vasicek"))

Arguments

model

An object of class "stockModel" that is based on the single index model. If using Blume's method, then this model should be for the first period.

model2

An object of class "stockModel" that is based on the single index model. If using Blume's method, then this model should be for the second period. If using Vasicek's method, then this model is ignored.

method

The single index model adjustment method. The options are "Blume" (default) or "Vasicek". Setting it to any character string other than "B", "b", "Blume", "blume", or "1" will result in using the Vasicek method.

Details

The single index model results in a vector of parameter estimates, which is typically labeled using the Greek letter beta. Both the Blume and Vasicek methods adjust the beta parameter vector. Vasicek's method regresses all of the elements of beta towards the mean of those elements; the amount of this correction is based both on the variability of the elements of beta and also on the estimated standard error of each element of beta. Blume's method takes beta estimates from two time periods and creates a regression equation: beta2 = b0 + b1*beta1. Blume's method uses this regression equation to estimate beta for the time following the second period.

Value

adjustBeta returns an object of class "stockModel".

Author(s)

David Diez

References

Blume, Marshall E. "Portfolio Theory: A Step Toward Its Practical Application," Journal of Business, 43, No. 2 (April 1970), pp. 152-173.

See Also

getReturns, stockModel, optimalPort

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
25
26
27
28
29
30
#===> build two single index models <===#
data(stock94)
data(stock99)
data(stock94Info)
sim1 <- stockModel(stock94, model='SIM',
                   industry=stock94Info$industry, index=25)
sim2 <- stockModel(stock99, model='SIM',
                   industry=stock94Info$industry, index=25)

#===> adjust the betas <===#
# the output is a new stock model
simBlu <- adjustBeta(sim1, sim2)
simVas <- adjustBeta(sim2, method='Vasicek')

#===> build optimal portfolios <===#
opSim <- optimalPort(sim2)
opBlu <- optimalPort(simBlu)
opVas <- optimalPort(simVas)

#===> test portfolios on 2004-9 <===#
data(stock04)
tpSim <- testPort(stock04, opSim)
tpBlu <- testPort(stock04, opBlu)
tpVas <- testPort(stock04, opVas)

#===> compare performances <===#
plot(tpSim, ylim=c(1,2.2))
lines(tpBlu, col=2, lty=2)
lines(tpVas, col=3, lty=3)
legend('topleft', col=1:3, lty=1:3, legend=c('none', 'Blume', 'Vasicek'))

jankcorn/stockPortfolio documentation built on May 14, 2019, 9:35 a.m.