9.4 Coefficient tests between model coefficients for two assets

In this section we consider hypothesis tests for coefficients in the bivariate GWN model for asset returns.

9.4.1 Test for equal means between two assets

Often it is of interest to test if the expected returns on two assets are the same:

H0:μ1=μ2vs. H1:μ1μ2.

Notice that this hypothesis is not of the form that the two coefficients equal a specific value (e.g. μ1=μ2=0.05). However, we can transform the hypothesis into one in which a coefficient equals a specific value by considering the differences in the expected returns. In particular, the relation μ1=μ2 is equivalent to the relation δ=μ1μ2=0. Hence, we can reformulate the hypothesis of equal expected returns to the hypothesis that the difference in expected returns is equal to zero:

H0:δ=μ1μ2=0vs. H1:δ=μ1μ20.

Now, we have test in the form of the coefficient tests we considered earlier.

The parameter δ=μ1μ2 can be estimated with the plug-in estimator:

ˆδ=ˆμ1ˆμ2.

To form a z-score, we require an estimate of se(ˆδ). Now,

var(ˆδ)=var(ˆμ1ˆμ2)=var(ˆμ1)+var(ˆμ2)2cov(ˆμ1,ˆμ2).

To evaluate (9.24), we use the result from Chapter 7 that the joint distribution of the vector (ˆμ1,ˆμ2) is multivariate normal: (ˆμ1ˆμ2)=N((μ1μ2), 1T(ˆσ21ˆσ12ˆσ12ˆσ22)),

for large enough T. Then

^var(ˆδ)=1T(ˆσ21+ˆσ222ˆσ12),

and

^se(ˆδ)=1T(ˆσ21+ˆσ222ˆσ12).

We can test (9.23) using the z-score:

zδ=0=ˆδ^se(ˆδ)=ˆμ1+ˆμ21T(ˆσ21+ˆσ222ˆσ12),

with the test statistic S=|zδ=0|.

The estimate ^var(ˆδ) can also be computed using the delta method. Define θ=(μ1,μ2) and f(θ)=δ=μ1μ2. The gradient of f(θ) is:

g(θ)=(11),

and ^var(ˆδ) can be computed as:

^var(ˆδ)=g(ˆθ)^var(ˆθ)g(ˆθ)=(1,1)(ˆσ21Tˆσ12Tˆσ12Tˆσ22T)(11)=1T(ˆσ21+ˆσ222ˆσ12).

Example 2.19 (Testing that Microsoft and Starbucks have the same expected return.)

Let’s use the z-score (9.25) to test the hypothesis that the expected returns on Microsoft and Starbucks are the same using a 5% significance level. The R code to compute the z-score and test statistic is:

delta.hat = muhat.vals["MSFT"] - muhat.vals["SBUX"]
sig2hat.vals = sigmahat.vals^2
covhat = cov(gwnMonthlyRetC[, c("MSFT", "SBUX")])[1,2]
sehat.deltahat = sqrt((sig2hat.vals["MSFT"]+sig2hat.vals["SBUX"]-2*covhat)/n.obs)
z.score.delta = delta.hat/sehat.deltahat
S= abs(z.score.delta)
ans = c(delta.hat, sehat.deltahat, S)
names(ans) = c("Estimate", "Std Error", "Test Statistic")
ans
##       Estimate      Std Error Test Statistic 
##        -0.0105         0.0093         1.1323

Here, ˆδ=0.0105, ^se(ˆδ)=0.0093 and S=1.1323. Since S<2 we do not reject H0:δ=μmsftμsbux=0 at the 5% level.

9.4.2 Test for equal Sharpe ratios between two assets

In the previous section, we considered testing if two assets have the same expected return. It is important to recognize that even if two assets have the same mean return they may have different standard deviations (volatilities) and, hence, different risks. Often, it is more interesting to test the hypothesis that two assets have the same reward-to-risk (i.e., Sharpe) ratios:

H0:SR1=μ1rfσ1=SR2=μ2rfσ2vs. H1:SR1SR2.

where rf denotes the risk-free rate over the investment horizon. As with testing the equality between two means, it is convenient to re-formulate the hypothesis of equal Sharpe ratio to the hypothesis that the difference in the Sharpe ratios is equal to zero:

H0:δ=SR1SR2=0vs. H1:δ=SR1SR20.

The plug-in estimator for δ is:

ˆδ=^SR1^SR2=ˆμ1rfˆσ1ˆμ2rfˆσ2

To determine ^se(ˆδ) from (9.24), we utilize the result from Chapter 8 that the joint distribution of the vector (^SR1,^SR2) is multivariate normal:

(^SR1^SR2)N((SR1SR1), (1T(1+12^SR21)ˆρ12T(1+12ˆρ12^SR1^SR2)ˆρ12T(1+12ˆρ12^SR1^SR2)1T(1+12^SR22))),

for large enough T. Then,

^var(ˆδ)=^var(^SR1)+^var(^SR2)2^cov(^SR1,^SR2)=1T(1+12^SR21)+1T(1+12^SR22)2ˆρ12T(1+12ˆρ12^SR1^SR2)=1T(2+12(^SR21+^SR22)2ˆρ12(1+12ˆρ12^SR1^SR2)),

and,

^se(ˆδ)=1T(2+12(^SR21+^SR22)2ˆρ12(1+12ˆρ12^SR1^SR2)).

We can test (9.26) using the z-score:

zδ=0=ˆδ^se(ˆδ)=^SR1^SR21T(2+12(^SR21+^SR22)2ˆρ12(1+12ˆρ12^SR1^SR2)),

with the test statistic S=|zδ=0|.

Example 2.21 (Testing equal Sharpe ratios between Microsoft and Starbucks)

Let’s use the z-score (9.27) to test the hypothesis of equal Sharpe ratios between Microsoft and Starbucks using a 5% significance level. The R code to compute the z-score and test statistic is:

r.f = 0.03/12
SR.msft = (muhat.vals["MSFT"]-r.f)/sigmahat.vals["MSFT"]
SR.sbux = (muhat.vals["SBUX"]-r.f)/sigmahat.vals["SBUX"]
corhat = cor(gwnMonthlyRetC[, c("MSFT", "SBUX")])[1,2]
delta.hat = SR.msft - SR.sbux
var.deltahat = (2 + 0.5*(SR.msft^2 + SR.sbux^2)
                -2*corhat*(1+0.5*SR.msft*SR.sbux))
se.deltahat = sqrt(var.deltahat)
z.score.delta = delta.hat/se.deltahat
S = abs(z.score.delta)
ans = c(SR.msft, SR.sbux, delta.hat, se.deltahat, S)
names(ans) = c("SR.msft", "S.sbux", "deltahat", "se.deltahat", "S")
ans
##     SR.msft      S.sbux    deltahat se.deltahat           S 
##      0.0162      0.1089     -0.0927      1.1505      0.0805

Although the Sharpe ratio for Starbucks is much larger than the Sharpe ratio for Microsoft, there is substantial estimation error in ˆδ=SRmsftSRsbux which produces a small test statistic S=0.0805. Since S<2 we do not reject the null hypothesis of equal Sharpe ratios at the 5% level of significance.