Date: 27/11/2016

Loading the data

library(quantmod)
getSymbols(c("^FTSE","BLT.L"),src="yahoo",from="1984-01-01")
## [1] "FTSE"  "BLT.L"
namesOld <- names(FTSE); namesOld[5:6]<- c("FTSE.Vol","FTSE.Adj")
names(FTSE)<- namesOld
namesOld <- names(BLT.L); namesOld[5:6]<- c("BLT.L.Vol","BLT.L.Adj")
names(BLT.L)<- namesOld
rFtse<-monthlyReturn(FTSE)
rBlt <- monthlyReturn(BLT.L)

As can be seen from the code above the data for BHP Billiton and the Index FTSE are downloaded, using the Quantmod package in R. Afterwards the monthly returns are calculated using the function of Quantmod package ‘monthlyReturn’.

A sample of the data

A sample of the data has been displayed below:

tail(FTSE); tail(BLT.L)
##            FTSE.Open FTSE.High FTSE.Low FTSE.Close  FTSE.Vol FTSE.Adj
## 2016-11-18    6794.7    6811.6   6740.3     6775.8         0   6775.8
## 2016-11-21    6775.8    6820.9   6754.2     6778.0         0   6778.0
## 2016-11-22    6778.0    6851.4   6778.0     6819.7         0   6819.7
## 2016-11-23    6819.7    6880.7   6779.5     6817.7 773975400   6817.7
## 2016-11-24    6817.7    6831.2   6790.7     6829.2         0   6829.2
## 2016-11-25    6829.2    6852.1   6818.1     6840.8         0   6840.8
##            BLT.L.Open BLT.L.High BLT.L.Low BLT.L.Close BLT.L.Vol BLT.L.Adj
## 2016-11-18     1265.5     1269.5    1241.0      1263.5   9095500    1263.5
## 2016-11-21     1280.5     1295.8    1265.0      1271.5   9412100    1271.5
## 2016-11-22     1327.5     1339.0    1313.5      1334.0  10272700    1334.0
## 2016-11-23     1360.0     1369.0    1328.5      1363.0  13129000    1363.0
## 2016-11-24     1363.0     1367.0    1340.5      1361.0   4925000    1361.0
## 2016-11-25     1378.0     1380.0    1348.0      1356.0   5569700    1356.0
names(rFtse)<- "monthlyReturnFTSE" ; names(rBlt)<- "monthlyRetBHPBilliton"
cbind(tail(rFtse),tail(rBlt))
##            monthlyReturnFTSE monthlyRetBHPBilliton
## 2016-06-30       0.043894846           0.145565006
## 2016-07-29       0.033839168           0.002015274
## 2016-08-31       0.008491479           0.047845877
## 2016-09-30       0.017370759           0.174361047
## 2016-10-31       0.007957386           0.061935484
## 2016-11-25      -0.016306748           0.098420413

The price and return data could be seen for the last 5 observation. Note that the returns are monthly, and the prices daily. The ‘adjusted closed’ price has been used for computing the returns.

Plotting the time series

An overview of the company and the index price dynamic is illustarted graphically below:

plot(FTSE$FTSE.Adj, main="FTSE")

plot(BLT.L$BLT.L.Adj, main ="BHP Billiton")

I. Running regressions for the calculation of the beta for BHP Billiton

There could be different periods for calculation of the beta coefficient, here three regressions can be seen for 2, 5 and 10 years of monthly returns. The last 24, 60 and 120 of the observations have been used.

regBeta2year <- summary(lm(rBlt[(length(rBlt)-24):length(rBlt)]
                           ~rFtse[(length(rFtse)-24):length(rFtse)]))
regBeta5year<- summary(lm(rBlt[(length(rBlt)-60):length(rBlt)]
                          ~rFtse[(length(rFtse)-60):length(rFtse)]))
regBeta10year <- summary(lm(rBlt[(length(rBlt)-120):length(rBlt)]
                            ~rFtse[(length(rFtse)-120):length(rFtse)]))

The regression output :can be seen here:

coefficients(regBeta2year); coefficients(regBeta5year); coefficients(regBeta10year)
##                                              Estimate Std. Error
## (Intercept)                               -0.02225128 0.02801405
## rFtse[(length(rFtse) - 24):length(rFtse)]  1.08022134 0.93857193
##                                              t value  Pr(>|t|)
## (Intercept)                               -0.7942903 0.4351459
## rFtse[(length(rFtse) - 24):length(rFtse)]  1.1509201 0.2615903
##                                              Estimate Std. Error   t value
## (Intercept)                               -0.01523947  0.0123153 -1.237442
## rFtse[(length(rFtse) - 60):length(rFtse)]  1.29595428  0.4122237  3.143813
##                                              Pr(>|t|)
## (Intercept)                               0.220825231
## rFtse[(length(rFtse) - 60):length(rFtse)] 0.002610025
##                                               Estimate  Std. Error
## (Intercept)                                0.000374944 0.007623196
## rFtse[(length(rFtse) - 120):length(rFtse)] 1.436294616 0.189362748
##                                               t value     Pr(>|t|)
## (Intercept)                                0.04918462 9.608546e-01
## rFtse[(length(rFtse) - 120):length(rFtse)] 7.58488474 8.106842e-12

It could be observed that the coefficient for beta varies from 1.08 to 1.296 to 1.44 in the case for 10 years. I would use the number for 5 years: in my opinion it is the most reliable measure of risk for the mining industry, since maybe 2 years is too short for the cycles of the commodities, and on the other hand 10 years is maybe too long.

Nevertheless beta = 1.296 .

II. Computing equity risk premium(ERP).

Different ERPs cuold be used. Here computed the geometric returns of DJIA from the streadsheet:

library(psych)
djia<-read.delim("djia.txt",stringsAsFactors = F,header = T)
names(djia)<- c("Year","DJIA.Price","CumReturn","Return"); head(djia)
##   Year DJIA.Price    CumReturn    Return
## 1 1900    49.9096            .        NA
## 2 1901    51.6018  0.033905301 1.0339053
## 3 1902    47.1185 -0.055923109 0.9131174
## 4 1903    47.3237 -0.051811676 1.0043550
## 5 1904    34.7089 -0.304564653 0.7334359
## 6 1905    51.5652  0.033171975 1.4856478
geometric.mean(djia$Return)-1
## [1] 0.05177374

On the other hand ERP could be also computed as the geometric average of the FTSE itself, even though it is of a lesser length. I use the monthly return and then compound it to yield an annual return.

(1+((prod(rFtse+1))^(1/length(rFtse))-1))^12 - 1 #geom mean ERP
## [1] 0.06023799

I would use FTSE ERP even though the ERP of the DJIA could be used as well. Both are relevant. DJIA has a longer time horizon, but I would use here the data fo FTSE.

So ERP = 6%

III Obtaining the risk free rate

The 10 year Uk Gilt on 23 Nov 16 was 1.5066%. The data could be found at the website of the Bak of England below:

Source UK risk free rate

So riskFreeUK10 = 1.5066%.

IV Computing the country risk premium for the UK

According to all three major agencies Fitch, S&P and Moody’s, UK has negative AA rating. It should also be noted that from 1978 until 2015 UK had AAA rating.Info: here. Therefore an addition to the ERP is required to reflect the extra risk of default of the country. According to the website of A. Damdaran the rating based default spread is 0.45%.

Because this is a credit spread we need to scale it up for the fact that our measure is equity based.

Returns on bond index compiled by ThomsonReuters could be seen below:

uk10Bond<-read.delim("uk10yBondIndex.txt",stringsAsFactors = F,header = F)
names(uk10Bond)<- c("Date","Price","Open","High","Low","Vol","Return")
uk10Bond$Return<-as.numeric(sub("%","",uk10Bond$Return))/100
head(uk10Bond)
##     Date   Price    Open    High     Low Vol  Return
## 1 Nov 16 891.559 902.296 910.781 884.430   - -0.0119
## 2 Oct 16 902.296 902.296 902.296 902.296   - -0.0421
## 3 Sep 16 941.985 941.985 941.985 941.985   - -0.0100
## 4 Aug 16 951.516 951.516 951.516 951.516   -  0.0158
## 5 Jul 16 936.719 936.719 936.719 936.719   -  0.0211
## 6 Jun 16 917.399 917.399 917.399 917.399   -  0.0531
sdUKbond <-sd(uk10Bond$Return); sdUKbond
## [1] 0.01949127

Source for the UK 10 year bond returns can be seen at this link.

It can also be seen that the standard deviation of the monthly returns on UKbonds is 0.0195.

The standard deviation of monthly return of FTSE can be seen below:

sdFtse<- sd(rFtse[(length(rFtse)-dim(uk10Bond)[1]):length(rFtse)]); sdFtse
## [1] 0.03171305

The scaled measure for risk of the equity is computed in the end:

sdFtse/sdUKbond
## [1] 1.627039

Therefore the addition that has to be added to the ERP is equal to:

(sdFtse/sdUKbond)*.0045
## [1] 0.007321673

Admittedly not a lot!

V Finally calculating the expected return on BHP Billiton

\[EctectedReturn = riskFree + \beta (ERP -riskFree + CRP)\]

0.015066 + 1.296*(.06 - .015066 + 0.007325092)
## [1] 0.08279378

As can be seen from the above calculations the expected return of BHP Billiton is 8.28%