One of the most famous models in finance (Capital Asset Pricing Model or CAPM) r
ID: 3835727 • Letter: O
Question
One of the most famous models in finance (Capital Asset Pricing Model or CAPM) relates the return of the individual equity with the return of a Market portfolio. The relationship is: R^4 - RF_4 = beta_1(R_1^M - RF_4) + epsi_4, or a simple linear regression without a y-intercept between the return on asset t and the return on the market portfolio R^M. We next investigate this famous model (9 people won the Nobel price on work related to this model). Next, make sure of three things: Your stock return data has the same length as the Market factors return data Your factor returns are numbers not percentages The function lm performs regression and the function reside extracts residuals from a regression We want to analyze how good is the CAPM for the selected equity. To this end, perform a simple regression with y variable Stock_t - RF_4, where RF is the risk free interest from the last column of the factor data. For return on the market portfolio use the factor "Mkt.Rf" from the factors data-set (this factor already has subtracted RF). A simple test of the validity of the CAPM is chocking if the y-intercept is equal to zero. What is your conclusion about such a test. Plot the residuals. Do they look independent/normal/equal variance? Perform a formal Jarque-Bera test for normality of the residuals. State your conclusion. According to the CAPM you just did what is the percent of variability in stock excess return explained by the linear relationship with the market?Explanation / Answer
library(tseries)
startmonth <- 1
endmonth <- 12
start <- (startyear-1926.5)*12+startmonth
stop <- (endyear - 1926.5)*12+endmonth
ff_returns <- read.table("F-F_Factors_monthly.txt")
rmrf <- ff_returns[start:stop,2]/100
rf <- ff_returns[start:stop,5]/100
prices1 <- get.hist.quote("VBINX", quote="Adj", start="2005-12-25", retclass="zoo")
prices1 <- na.locf(prices1)
monthly.prices <- aggregate(prices1, as.yearmon, tail, 1)
r <- diff(log(monthly.prices))
r1 <- exp(r)-1
rj <- coredata(r1)
rj <- rj[1:60]
rjrf <- rj - rf
d <- lm(rjrf ~ rmrf)
print(summary(d))
rM <- 100 * rmrf
rj <- 100*rjrf
dev.new(width=9,height=6.5)
big <- max(abs(c(rj, rM)))
range <- c(-big, big)
plot(rM, rj, xlim=range, ylim=range,xlab="", ylab="",col="blue",lwd=2,cex.axis=1.5)
title("VBINX vs. Total Stock Market",xlab="Monthly Market Excess Return (%)",ylab="Monthly Security Excess Return (%)",cex.main="2.25",cex.lab="1.75")
grid()
abline(h=0, v=0)
abline(coefficients(d),lwd=3,col="red")
a <- round(d$coef[1]*100,3)
b <- round(d$coef[2],3)
alpha <- paste("Alpha=",a,"%")
beta <- paste("Beta=",b)
text(-15,14,alpha,adj=c(0,0),cex=1.5)
text(-15,12,beta,adj=c(0,0),cex=1.5)
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.