You are on page 1of 2

Adjusting Betas: Blumes and Vasiceks technique

YIK LUN, KEI


#Period 1: February 1980 - December 1984
www<-"http://www.stat.ucla.edu/~nchristo/statistics_c183_c283/stocks5_period1.txt"
a1 <- read.table(www, header=TRUE)[,-1]
#Period 2: February 1985 - December 1989
www<-"http://www.stat.ucla.edu/~nchristo/statistics_c183_c283/stocks5_period2.txt"
a2 <- read.table(www, header=TRUE)[,-1]
beta1 <- rep(0,4)
var_beta1 <- rep(0,4)
beta_adj1 <- rep(0,4)
beta2 <- rep(0,4)
beta_adj2 <- rep(0,4)
var_beta2 <- rep(0,4)
for(i in 1:4){
q <- lm(data=a1, formula=a1[,i] ~ a1[,5])
beta1[i] <- q$coefficients[2]
var_beta1[i] <- vcov(q)[2,2]
}
for(i in 1:4){
beta_adj1[i] <- mean(beta1) * (var_beta1[i]/(var(beta1)+var_beta1[i])) +
beta1[i] * (var(beta1)/(var(beta1)+var_beta1[i]))
}
for(i in 1:4){
q <- lm(data=a2, formula=a2[,i] ~ a2[,5])
beta2[i] <- q$coefficients[2]
}
betas <- as.data.frame(cbind(beta1, beta2, beta_adj1))

Blumes method: Forecast of betas in period 3 from February 1990


to December 1994:
blume <- lm(betas$beta2 ~ betas$beta1)
summary(blume)
##
## Call:
## lm(formula = betas$beta2 ~ betas$beta1)
##
## Residuals:
1

##
##
##
##
##
##
##
##
##
##
##
##
##

1
2
3
-0.018119 -0.044657 -0.008566

4
0.071341

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept)
0.5262
0.1159
4.541
0.0452 *
betas$beta1
0.4084
0.1061
3.848
0.0614 .
--Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.06118 on 2 degrees of freedom
Multiple R-squared: 0.881, Adjusted R-squared: 0.8215
F-statistic: 14.81 on 1 and 2 DF, p-value: 0.06139

beta3 <- blume$coefficients[1]+blume$coefficients[2]*beta2


as.data.frame(beta3)
##
##
##
##
##

beta3
0.8588805
0.9652936
0.8725881
0.9699849

1
2
3
4

Use Vasiceks method to forecast betas in period February 1990 to


December 1994.
for(i in 1:4){
q2 <- lm(data=a2, formula=a2[,i] ~ a2[,5])
beta2[i] <- q2$coefficients[2]
var_beta2[i] <- vcov(q2)[2,2]
}
for(i in 1:4){
beta_adj2[i] <- mean(beta2) * (var_beta2[i]/(var(beta2)+var_beta2[i])) +
beta2[i] * (var(beta2)/(var(beta2)+var_beta2[i]))
}

Compare the forecast betas using the two methods for period 3:
beta3

#Blumes method.

## [1] 0.8588805 0.9652936 0.8725881 0.9699849


beta_adj2

#Vasiceks method.

## [1] 0.8737402 0.9903623 0.9216130 1.0060186

You might also like