More Related Content
Similar to WORD_FINAL_STOCK_ANALYSIS_PROJECT
Similar to WORD_FINAL_STOCK_ANALYSIS_PROJECT (20)
WORD_FINAL_STOCK_ANALYSIS_PROJECT
- 1. ######################## FINAL STOCK ANALYSIS SCRIPT
#######################################
### PRELIMINARIES ######################################################
install.packages("quantmod")
install.packages("tseries")
library(quantmod)
library(tseries)
### PLOTS ######################################################
GSPC <-get.hist.quote(instrument = "GSPC", quote = c("Cl", "Vol"))
head(GSPC)
cat <-get.hist.quote(instrument = "cat",start = "2005-1-1", quote = c("Cl",
"Vol"))
aon <-get.hist.quote(instrument = "aon",start = "2005-1-1", quote = c("Cl",
"Vol"))
bll <-get.hist.quote(instrument = "bll",start = "2005-1-1", quote = c("Cl",
"Vol"))
gis <-get.hist.quote(instrument = "gis",start = "2005-1-1", quote = c("Cl",
"Vol"))
mkc <-get.hist.quote(instrument = "mkc",start = "2005-1-1", quote = c("Cl",
"Vol"))
plot(aon$Close,maType="SMA", main = "S&P 500 Stocks",
ylim=c(0,150) ,col="red" ,type="l" ,lwd=0.5,
pch=19 ,cex=0.6 ,xlab="Date" ,ylab="Stock Price (USD)")
lines(bll$Close,col="blue",lwd=0.5)
lines(cat$Close,col="green",lwd=0.5)
lines(gis$Close,col="grey",lwd=0.5)
lines(mkc$Close,col="cyan",lwd=0.5)
legend("top",horiz=T,legend=c("AON","BLL","CAT","GIS","MKC"),col=c("red","blue",
"green","grey","cyan"),lty=1,bty="n")
chartSeries(GSPC,order=1,up.col='green', name='S&P 500',theme="white")
graphics.off()
### CORRELATION BETWEEN ADJUSTED PRICE AND VOLUME ##############
### S&P 500 -2007- CORRELATION COEFFICIENTS
###########################################
GSPC3 <- get.hist.quote(instrument = "GSPC",start = "2007-1-1",end = "2007-10-
30", quote = c("Ad", "Vol"))
bll3 <- get.hist.quote(instrument = "bll",start = "2007-1-1",end = "2007-12-30",
quote = c("Ad", "Vol"))
cat3<- get.hist.quote(instrument = "cat",start = "2007-1-1",end = "2007-12-30",
quote = c("Ad", "Vol"))
gis3 <- get.hist.quote(instrument = "gis",start = "2007-1-1",end = "2007-12-30",
quote = c("Ad", "Vol"))
aon3 <- get.hist.quote(instrument = "aon",start = "2007-1-1",end = "2007-12-30",
quote = c("Ad", "Vol"))
- 2. mkc3 <- get.hist.quote(instrument = "mkc",start = "2007-1-1",end = "2007-12-30",
quote = c("Ad", "Vol"))
fit <- lm(GSPC3$Ad ~ GSPC3$Volume, GSPC3)
summary(fit) ### Corrolation -0.24 weak neg
anova(fit)
cor(GSPC3$Ad, GSPC3$Volume)
plot(fit)
fit <- lm(aon3$Ad ~ aon3$Volume, aon3)
summary(fit) ### Corrolation 0.09 weak pos
anova(fit)
cor(aon3$Ad, aon3$Volume)
fit <- lm(bll3$Ad ~ bll3$Volume, bll3)
summary(fit) ### Corrolation 0.16 weak pos
anova(fit)
cor(bll3$Ad, bll3$Volume)
fit <- lm(cat3$Ad ~ cat3$Volume, cat3)
summary(fit) ### Corrolation 0.05 weak pos
anova(fit)
cor(cat3$Ad, cat3$Volume)
fit <- lm(gis3$Ad ~ gis3$Volume, gis3)
summary(fit) ### Corrolation -0.023 weak neg
anova(fit)
cor(gis3$Ad, gis3$Volume)
fit <- lm(mkc3$Ad ~ mkc3$Volume, mkc3)
summary(fit) ### Corrolation -0.20 weak neg
anova(fit)
cor(mkc3$Ad, mkc3$Volume)
############################### S&P 2009 CORRELATION COEFFICIENT FOR ADJUSTED
PRICE AND VOLUME #################################
GSPC4 <- get.hist.quote(instrument = "GSPC",start = "2009-1-1",end = "2009-10-
30", quote = c("Ad", "Vol"))
bll4 <- get.hist.quote(instrument = "bll",start = "2009-1-1",end = "2009-12-30",
quote = c("Ad", "Vol"))
cat4<- get.hist.quote(instrument = "cat",start = "2009-1-1",end = "2009-12-30",
quote = c("Ad", "Vol"))
gis4 <- get.hist.quote(instrument = "gis",start = "2009-1-1",end = "2009-12-30",
quote = c("Ad", "Vol"))
aon4 <- get.hist.quote(instrument = "aon",start = "2009-1-1",end = "2009-12-30",
quote = c("Ad", "Vol"))
mkc4 <- get.hist.quote(instrument = "mkc",start = "2009-1-1",end = "2009-12-30",
quote = c("Ad", "Vol"))
fit <- lm(GSPC4$Ad ~ GSPC4$Volume, GSPC4)
summary(fit) ### Corrolation -0.078 weak neg
anova(fit)
- 3. cor(GSPC4$Ad, GSPC4$Volume)
fit <- lm(aon4$Ad ~ aon4$Volume, aon4)
summary(fit) ### Corrolation -0.27 weak neg
anova(fit)
cor(aon4$Ad, aon4$Volume)
fit <- lm(bll4$Ad ~ bll4$Volume, bll4)
summary(fit) ### Corrolation -0.5 med neg
anova(fit)
cor(bll4$Ad, bll4$Volume)
fit <- lm(cat4$Ad ~ cat4$Volume, cat4)
summary(fit) ### Corrolation -0.50 med neg
anova(fit)
cor(cat4$Ad, cat4$Volume)
fit <- lm(gis4$Ad ~ gis4$Volume, gis4)
summary(fit) ### Corrolation -0.50 med neg
anova(fit)
cor(gis4$Ad, gis4$Volume)
fit <- lm(mkc4$Ad ~ mkc4$Volume, mkc4)
summary(fit) ### Corrolation -0.4 med neg
anova(fit)
################################# Beta 2009-2010
###############################################
prices2returns <- function(x) 100*diff(log(x))
s_p <- get.hist.quote(instrument = "GSPC", start = "2009-01-01", end = "2010-12-
31",
compression = "m", quote = "Ad")
s_p
s_preturns <- prices2returns(s_p)
s_preturns
bll <- get.hist.quote(instrument = "bll", start = "2009-01-01", end = "2010-12-
31",
compression = "m", quote = "Ad")
bll
bllreturns <- prices2returns(bll)
bllreturns
cov_bll <- cov(s_preturns,bllreturns) ### BETA FOR BLL IS 0.09
var_s_p <- var(s_preturns) ### POSITIVE BETA INDICATES
beta_bll <- cov_ibm/var_s_p ### THAT THIS STOCK IS MOVING WITH
THE S&P 500 INDEX
beta_bll
bll.lm = lm(s_preturns ~ bllreturns)
summary(bll.lm)$r.squared ### BLL R.SQ = 0.02
cat <- get.hist.quote(instrument = "cat", start = "2009-01-01", end = "2010-12-
31",
compression = "m", quote = "Ad")
catreturns <- prices2returns(cat)
- 4. cov_cat <- cov(s_preturns,catreturns) ### BETA FOR CAT IS 0.68
var_s_p <- var(s_preturns) ### POSITIVE BETA INDICATES
beta_cat <- cov_cat/var_s_p ### THAT THIS STOCK IS MOVING WITH
THE S&P 500
beta_cat
cat.lm = lm(s_preturns ~ catreturns)
summary(cat.lm)$r.squared ### CAT R.SQ = 0.16
gis <- get.hist.quote(instrument = "gis", start = "2009-01-01", end = "2010-12-
31",
compression = "m", quote = "Ad")
gisreturns <- prices2returns(gis)
cov_gis <- cov(s_preturns,gisreturns) ### BETA FOR GIS IS 0.41
var_s_p <- var(s_preturns) ### POSITIVE BETA INDICATES
beta_gis <- cov_gis/var_s_p ### THAT THIS STOCK IS MOVING WITH
THE S&P 500
beta_gis
gis.lm = lm(s_preturns ~ gisreturns)
summary(gis.lm)$r.squared ### GIS R.SQ = 0.09
aon <- get.hist.quote(instrument = "aon", start = "2009-01-01", end = "2010-12-
31",
compression = "m", quote = "Ad")
aonreturns <- prices2returns(aon)
cov_aon <- cov(s_preturns,aonreturns) ### BETA FOR AON IS -0.10
var_s_p <- var(s_preturns) ### NEGATIVE BETA INDICATES
beta_aon <- cov_aon/var_s_p ### THAT THIS STOCK IS NOT MOVING
WITH THE S&P 500
beta_aon
aon.lm = lm(s_preturns ~ aonreturns)
summary(aon.lm)$r.squared ### AON R.SQ = 0.01
mkc <- get.hist.quote(instrument = "mkc", start = "2009-01-01", end = "2010-12-
31",
compression = "m", quote = "Ad")
mkcreturns <- prices2returns(mkc)
cov_mkc <- cov(s_preturns,mkcreturns) ### BETA FOR MKC IS 0.300
var_s_p <- var(s_preturns) ### POSITIVE BETA INDICATES
beta_mkc <- cov_mkc/var_s_p ### THAT THIS STOCK IS MOVING WITH
THE S&P 500
beta_mkc
mkc.lm = lm(s_preturns ~ mkcreturns)
summary(mkc.lm)$r.squared ### MKC R.SQ = 0.05
################################# Beta 2013-2014
###############################################
- 5. prices2returns <- function(x) 100*diff(log(x))
s_p <- get.hist.quote(instrument = "GSPC", start = "2013-01-01", end = "2014-12-
31",
compression = "m", quote = "Ad")
s_p
s_preturns <- prices2returns(s_p)
s_preturns
bll <- get.hist.quote(instrument = "bll", start = "2013-01-01", end = "2014-12-
31",
compression = "m", quote = "Ad")
bll
bllreturns <- prices2returns(bll)
bllreturns
cov_bll <- cov(s_preturns,bllreturns) ### BETA FOR BLL IS 0.09
var_s_p <- var(s_preturns) ### POSITIVE BETA INDICATES
beta_bll <- cov_ibm/var_s_p ### THAT THIS STOCK IS MOVING WITH
THE S&P 500 INDEX
beta_bll
bll.lm = lm(s_preturns ~ bllreturns)
summary(bll.lm)$r.squared ### BLL R.SQ.= 0.02
cat <- get.hist.quote(instrument = "cat", start = "2013-01-01", end = "2014-12-
31",
compression = "m", quote = "Ad")
catreturns <- prices2returns(cat)
cov_cat <- cov(s_preturns,catreturns) ### BETA FOR CAT IS 0.68
var_s_p <- var(s_preturns) ### POSITIVE BETA INDICATES
beta_cat <- cov_cat/var_s_p ### THAT THIS STOCK IS MOVING WITH
THE S&P 500
beta_cat
cat.lm = lm(s_preturns ~ catreturns)
summary(cat.lm)$r.squared ### CAT R.SQ = 0.16
gis <- get.hist.quote(instrument = "gis", start = "2013-01-01", end = "2014-12-
31",
compression = "m", quote = "Ad")
gisreturns <- prices2returns(gis)
cov_gis <- cov(s_preturns,gisreturns) ### BETA FOR GIS IS 0.41
var_s_p <- var(s_preturns) ### POSITIVE BETA INDICATES
beta_gis <- cov_gis/var_s_p ### THAT THIS STOCK IS MOVING WITH
THE S&P 500
beta_gis
gis.lm = lm(s_preturns ~ gisreturns)
summary(gis.lm)$r.squared ### GIS R.SQ = 0.04
aon <- get.hist.quote(instrument = "aon", start = "2013-01-01", end = "2014-12-
- 6. 31",
compression = "m", quote = "Ad")
aonreturns <- prices2returns(aon)
cov_aon <- cov(s_preturns,aonreturns) ### BETA FOR AON IS -0.31
var_s_p <- var(s_preturns) ### NEGATIVE BETA INDICATES
beta_aon <- cov_aon/var_s_p ### THAT THIS STOCK IS NOT MOVING
WITH THE S&P 500
beta_aon
aon.lm = lm(s_preturns ~ aonreturns)
summary(aon.lm)$r.squared ### AON R.SQ = 0.01
mkc <- get.hist.quote(instrument = "mkc", start = "2013-01-01", end = "2014-12-
31",
compression = "m", quote = "Ad")
mkcreturns <- prices2returns(mkc)
cov_mkc <- cov(s_preturns,mkcreturns) ### BETA FOR MKC IS 0.300
var_s_p <- var(s_preturns) ### POSITIVE BETA INDICATES
beta_mkc <- cov_mkc/var_s_p ### THAT THIS STOCK IS MOVING WITH
THE S&P 500
beta_mkc
mkc.lm = lm(s_preturns ~ mkcreturns)
summary(mkc.lm)$r.squared ### MKC R.SQ = 0.05
- 7. 31",
compression = "m", quote = "Ad")
aonreturns <- prices2returns(aon)
cov_aon <- cov(s_preturns,aonreturns) ### BETA FOR AON IS -0.31
var_s_p <- var(s_preturns) ### NEGATIVE BETA INDICATES
beta_aon <- cov_aon/var_s_p ### THAT THIS STOCK IS NOT MOVING
WITH THE S&P 500
beta_aon
aon.lm = lm(s_preturns ~ aonreturns)
summary(aon.lm)$r.squared ### AON R.SQ = 0.01
mkc <- get.hist.quote(instrument = "mkc", start = "2013-01-01", end = "2014-12-
31",
compression = "m", quote = "Ad")
mkcreturns <- prices2returns(mkc)
cov_mkc <- cov(s_preturns,mkcreturns) ### BETA FOR MKC IS 0.300
var_s_p <- var(s_preturns) ### POSITIVE BETA INDICATES
beta_mkc <- cov_mkc/var_s_p ### THAT THIS STOCK IS MOVING WITH
THE S&P 500
beta_mkc
mkc.lm = lm(s_preturns ~ mkcreturns)
summary(mkc.lm)$r.squared ### MKC R.SQ = 0.05