0% found this document useful (0 votes)
86 views10 pages

CRT 2 Assignment

The document presents results from regressing stock returns on factors from the CAPM and Fama-French three-factor models. The CAPM performed slightly better, with higher F-statistics and adjusted R-squared, and one factor in the Fama-French model was statistically insignificant. R code is provided to run the regressions on AAPL stock returns from 2019 against the S&P 500 for CAPM and Fama-French factors.

Uploaded by

Kunal Gupta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
86 views10 pages

CRT 2 Assignment

The document presents results from regressing stock returns on factors from the CAPM and Fama-French three-factor models. The CAPM performed slightly better, with higher F-statistics and adjusted R-squared, and one factor in the Fama-French model was statistically insignificant. R code is provided to run the regressions on AAPL stock returns from 2019 against the S&P 500 for CAPM and Fama-French factors.

Uploaded by

Kunal Gupta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Question 1

The p-values of the F-statistics of all models are <0.0001 showing that all models are statistically
significant and the dependent variable is explained by independent variables in the model, with
model 2 and model 5 having the highest F-statistics, followed by models 4, 6, 1, and 3
respectively. The R squared values of models 5 and 6 show that 46% of variations in Y is explained
by independent variables in both models, this explains that the models 5 and 6 have better
explanatory variables to the independent variable and are a better fit than the other models with
the independent variables explaining only 37%, 41%, 37% of changes in the dependent variable.
All explanatory variables in models 2 and 5 are statistically significant at a 1% confidence level
with p-values <0.0001, while for other models we cannot say there is no autocorrelation based
on the p-value of coefficients. Variable X1 has a negative coefficience for in all models meaning a
reduction in the explained variable Y for every unit of increase in the explanatory variable X1. For
every other independent variable, a one-unit increase would lead to a positive change in the
dependent variable.
From the above analysis, I would say model 5 is the most preferred model as it has the highest R
squared value showing the explanatory variables better explain the explained variable, it has one
of the highest F-statistics value, with p-values of all coefficients showing the independent
variables and equation in general are statistically significant. This is followed closely by models 2
and 6.
Using VIF to test for multicollinearity in preferred model 5, we have
VIF = 1/(1-R2) = 1.86
With a Variance Inflation Factor (VIF) < 5, the likelihood of correlation among explanatory
variables in model 5 is low.

Question 3
The Fama-French 3 factor model equation is
Rit −Rft = αit+β1(RMt −Rft)+β2SMBt+β3HMLt+ϵi t
Rit = total return of a stock or portfolio i at time t
Rft= risk free rate of return at time t
RMt= total market portfolio returns at time t
Rit−Rft= expected excess return
RMt−Rft= excess return on the market portfolio
SMBt= size premium (small minus big)
HMLt= value premium (high minus low)
β1,2,3=factor coefficients
αit = Alpha of the investment which is the return on investment that isn’t a result of the general
movement of the greater market.
ϵit = The error term for portfolio p at time t.

Question 4
The Fama French Model above improves upon CAPM by including the value risk and size risk
factors to the market risk factor contained in CAPM. It is a better tool for evaluating
management performance than the CAPM due to its value as some value and low capitalization
stocks tend to outperform others in the market

Question 5
 The Stock Returns for BTI from 3rd January 2019 to 31st December 2019 was used
(Excel Data attached)
 Data was imported from fama_factors_2019.csv and the BTI portfolio adjusted prices and
S&P 500 adjusted prices gotten from https://finance.yahoo.com/ and the following
calculations done in excel
 The S&P 500 Market Returns is calculated by the following formula:
( LN Current day S&P 500 adjusted price/LN previous day S&P 500 adjusted price)*100
 BTI Returns is gotten by:
( LN Current day adjusted price/LN previous day adjusted price)*100
 BTI Excess Returns = BTI Returns – Risk Free Rate (RF)
The Regression is done in R for the CAPM and FFM Model below.

2021-09-20
library(tidyquant)

## Warning: package 'tidyquant' was built under R version 3.6.3

## Loading required package: lubridate

## Warning: package 'lubridate' was built under R version 3.6.3

##
## Attaching package: 'lubridate'

## The following objects are masked from 'package:base':


##
## date, intersect, setdiff, union

## Loading required package: PerformanceAnalytics

## Warning: package 'PerformanceAnalytics' was built under R version 3.6.3

## Loading required package: xts

## Warning: package 'xts' was built under R version 3.6.3

## Loading required package: zoo

## Warning: package 'zoo' was built under R version 3.6.3

##
## Attaching package: 'zoo'

## The following objects are masked from 'package:base':


##
## as.Date, as.Date.numeric

##
## Attaching package: 'PerformanceAnalytics'

## The following object is masked from 'package:graphics':


##
## legend

## Loading required package: quantmod

## Warning: package 'quantmod' was built under R version 3.6.3

## Loading required package: TTR

## Warning: package 'TTR' was built under R version 3.6.3


## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo

## == Need to Learn tidyquant? ==============================================


======
## Business Science offers a 1-hour course - Learning Lab #9: Performance Ana
lysis & Portfolio Optimization with tidyquant!
## </> Learn more at: https://university.business-science.io/p/learning-labs-
pro </>

library(quantmod)
# download apple price using quantmod
getSymbols.yahoo("AAPL",globalenv(),from ='2019-01-01',to = '2019-12-31', war
nings=FALSE, auto.assign = TRUE)

## [1] "AAPL"

AAPL = AAPL[,"AAPL.Adjusted"]
plot(AAPL)

aapl = Return.calculate(AAPL, method = c("log"))


plot(aapl)
# download S&P500 price using quantmod
getSymbols.yahoo("SPY",globalenv(),from ='2019-01-01',to = '2019-12-31', warn
ings=FALSE, auto.assign = TRUE)

## [1] "SPY"

SPY = SPY[,"SPY.Adjusted"]
plot(SPY)
spy = Return.calculate(SPY, method = c("log"))
plot(spy)
# Combine Returns into one data set; exclude first row which is not applicabl
e
xy=cbind(aapl,spy[,1])[-1,]
plot(xy)

# Relabel returns AAPL.ret and SPY.ret


names(xy) = c('AAPL.ret','SPY.ret')
#Get FFM data
library(readxl)
AAPL_ff1 <- read_excel("C:/Users/OEHIEMERE/OneDrive - Axxela Limited/Document
s/WQU documents/Econometrics/Module 2/CRT/AAPL_ff1.xlsx",
col_types = c("date", "numeric", "numeric",
"numeric", "numeric"))
View(AAPL_ff1)
Mktrf <- AAPL_ff1$`Mkt-RF`
SMB <- AAPL_ff1$SMB
HML <- AAPL_ff1$HML
rf <- AAPL_ff1$RF

#Excess Returns
AAPL_ExcessReturns <- aapl - rf
plot(AAPL_ExcessReturns)
#Reduce benchmark return by daily risk free rate
xy[,2] = xy[,2]-rf [-1]

# Run CAPM

regcapm <- lm(AAPL.ret~SPY.ret, data=xy)


print(summary(regcapm))

##
## Call:
## lm(formula = AAPL.ret ~ SPY.ret, data = xy)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.066103 -0.006395 -0.000130 0.005257 0.059529
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.0139588 0.0009668 14.44 <2e-16 ***
## SPY.ret 1.5454506 0.0889331 17.38 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01119 on 248 degrees of freedom
## Multiple R-squared: 0.5491, Adjusted R-squared: 0.5473
## F-statistic: 302 on 1 and 248 DF, p-value: < 2.2e-16
print(regcapm)

##
## Call:
## lm(formula = AAPL.ret ~ SPY.ret, data = xy)
##
## Coefficients:
## (Intercept) SPY.ret
## 0.01396 1.54545

#Run Fama-French Regression

ffregression <- lm(AAPL_ExcessReturns ~ Mktrf + SMB + HML)

# Print Summary of Regression Results


print(summary(ffregression))

##
## Call:
## lm(formula = AAPL_ExcessReturns ~ Mktrf + SMB + HML)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.066984 -0.006959 -0.000242 0.005588 0.058580
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.0075854 0.0007247 -10.467 <2e-16 ***
## Mktrf 0.0148534 0.0009135 16.259 <2e-16 ***
## SMB -0.0018068 0.0016139 -1.120 0.2640
## HML -0.0026786 0.0012433 -2.154 0.0322 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01133 on 246 degrees of freedom
## (1 observation deleted due to missingness)
## Multiple R-squared: 0.5456, Adjusted R-squared: 0.54
## F-statistic: 98.45 on 3 and 246 DF, p-value: < 2.2e-16

print(ffregression)

##
## Call:
## lm(formula = AAPL_ExcessReturns ~ Mktrf + SMB + HML)
##
## Coefficients:
## (Intercept) Mktrf SMB HML
## -0.007585 0.014853 -0.001807 -0.002679
Question 6
The greek letter used in front of each model is the Beta as Fama French Model has 3 beta
coefficients β1,2,3 (market beta, market capitalization beta and value beta).

Question 7

The CAPM performed better because:

 P-values were similar but CAPM had a higher F-Statistics value than FFM

 Both had similar adjusted square values with CAPM being just a fraction higher.

 One of FFM variables (SMB) was statistically insignificant as it had a p-value higher than
0.05 (0.2640)

References

https://finance.yahoo.com/
https://www.investopedia.com/terms/f/famaandfrenchthreefactormodel.asp

You might also like