8.1 Functions of GWN Model Parameters

Consider the GWN model for returns (simple or continuously compounded):

Rit=μi+εit,{εit}Tt=1GWN(0,σ2),cov(εit,εjs)={σij0t=sts.

Let θ denote a k×1 vector of GWN model parameters from which we want to compute a function of interest (we drop the asset subscript i to simplify notation). Let f:RkR be a continuous and differentiable function of θ, and define η=f(θ) as the parameter of interest. To make things concrete, let θ=(μ,σ). Consider the following functions of θ:

f1(θ)=μ+σ×qZα=qRαf2(θ)=W0×(μ+σ×qZα)=W0×f1(θ)=VaRNαf3(θ)=W0×(exp(μ+σ×qZα)1)=W0×(exp(f1(θ))1)=VaRLNαf4(θ)=μrfσ=SR

The first function (8.1) is the α-quantile, qRα, of the N(μ,σ2) distribution for simple returns. The second function (8.2) is VaRα of an initial investment of W0 based on the normal distribution for simple returns. The third function (8.3) is VaRα based on the log-normal distribution for simple returns (normal distribution for continuously compounded returns). The fourth function (8.4) is the Sharpe ratio, SR, of an asset, where rf denotes the constant risk-free rate of interest. The first two functions are linear functions of the elements of θ, and second two functions are nonlinear linear functions of the elements of θ.

Given the plug-in estimate of θ, ˆθ=(ˆμ,ˆσ), we want to estimate each of the above functions of θ, and construct estimated standard errors and confidence intervals.

Example 2.3 (Data for examples)

For the examples in this chapter, we use data on monthly continuously compounded and simple returns for Microsoft over the period January 1998, through May 2012, from the IntroCompFinR package. The data is the same as that used in Chapter 5 and is constructed as follows:

data(msftDailyPrices)
msftPrices = to.monthly(msftDailyPrices, OHLC=FALSE) 
smpl = "1998-01::2012-05" 
msftPrices = msftPrices[smpl] 
msftRetS = na.omit(Return.calculate(msftPrices, method="discrete"))
msftRetC = log(1 + msftRetS)

The GWN model estimates for μmsft and σmsft, with estimated standard errors, are:

n.obs = nrow(msftRetC)
muhatC = mean(msftRetC) 
sigmahatC = sd(msftRetC) 
muhatS = mean(msftRetS)
sigmahatS = sd(msftRetS)
estimates = c(muhatC, sigmahatC, muhatS, sigmahatS)
se.muhatC = sigmahatC/sqrt(n.obs) 
se.muhatS = sigmahatS/sqrt(n.obs) 
se.sigmahatC = sigmahatC/sqrt(2*n.obs) 
se.sigmahatS = sigmahatS/sqrt(2*n.obs) 
stdErrors = c(se.muhatC, se.sigmahatC, se.muhatS, se.sigmahatS)
ans = rbind(estimates, stdErrors) 
colnames(ans) = c("mu.cc", "sigma.cc", "mu.simple", "sigma.simple") 
ans
##             mu.cc sigma.cc mu.simple sigma.simple
## estimates 0.00413   0.1002   0.00915      0.10150
## stdErrors 0.00764   0.0054   0.00774      0.00547