SlideShare a Scribd company logo
1 of 7
######################## 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"))
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)
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)
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
###############################################
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-
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
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

More Related Content

Viewers also liked

A estrutura da matéria segundo os espíritos primeira parte (psicografia p. ...
A estrutura da matéria segundo os espíritos   primeira parte (psicografia p. ...A estrutura da matéria segundo os espíritos   primeira parte (psicografia p. ...
A estrutura da matéria segundo os espíritos primeira parte (psicografia p. ...Ricardo Akerman
 
Chavin cultura
Chavin culturaChavin cultura
Chavin culturaKAtiRojChu
 
Pl an lector las rocas
Pl an lector las rocasPl an lector las rocas
Pl an lector las rocasKAtiRojChu
 
Brite Ideas, Better Events: Webinar Series - Event Ninja Tips
Brite Ideas, Better Events: Webinar Series - Event Ninja TipsBrite Ideas, Better Events: Webinar Series - Event Ninja Tips
Brite Ideas, Better Events: Webinar Series - Event Ninja TipsVenues2Events4379
 
Catalogue chau inox cao cap 2016
Catalogue chau inox cao cap 2016Catalogue chau inox cao cap 2016
Catalogue chau inox cao cap 2016Picenza VN
 
Relieve andino
Relieve andinoRelieve andino
Relieve andinoKAtiRojChu
 
eL Absolutismo
eL AbsolutismoeL Absolutismo
eL AbsolutismoKAtiRojChu
 
ESTRATEGIAS DE LECTURA EN PREESCOLAR CON PADRES DE FAMILIA A TRAVES DE MEDIOS...
ESTRATEGIAS DE LECTURA EN PREESCOLAR CON PADRES DE FAMILIA A TRAVES DE MEDIOS...ESTRATEGIAS DE LECTURA EN PREESCOLAR CON PADRES DE FAMILIA A TRAVES DE MEDIOS...
ESTRATEGIAS DE LECTURA EN PREESCOLAR CON PADRES DE FAMILIA A TRAVES DE MEDIOS...Andrea Perez Nava
 

Viewers also liked (12)

El suelo
El sueloEl suelo
El suelo
 
A estrutura da matéria segundo os espíritos primeira parte (psicografia p. ...
A estrutura da matéria segundo os espíritos   primeira parte (psicografia p. ...A estrutura da matéria segundo os espíritos   primeira parte (psicografia p. ...
A estrutura da matéria segundo os espíritos primeira parte (psicografia p. ...
 
Transistor bipolar
Transistor bipolarTransistor bipolar
Transistor bipolar
 
Chavin cultura
Chavin culturaChavin cultura
Chavin cultura
 
Pl an lector las rocas
Pl an lector las rocasPl an lector las rocas
Pl an lector las rocas
 
Brite Ideas, Better Events: Webinar Series - Event Ninja Tips
Brite Ideas, Better Events: Webinar Series - Event Ninja TipsBrite Ideas, Better Events: Webinar Series - Event Ninja Tips
Brite Ideas, Better Events: Webinar Series - Event Ninja Tips
 
Institucion educativa particular
Institucion educativa particularInstitucion educativa particular
Institucion educativa particular
 
Catalogue chau inox cao cap 2016
Catalogue chau inox cao cap 2016Catalogue chau inox cao cap 2016
Catalogue chau inox cao cap 2016
 
Relieve andino
Relieve andinoRelieve andino
Relieve andino
 
eL Absolutismo
eL AbsolutismoeL Absolutismo
eL Absolutismo
 
ESTRATEGIAS DE LECTURA EN PREESCOLAR CON PADRES DE FAMILIA A TRAVES DE MEDIOS...
ESTRATEGIAS DE LECTURA EN PREESCOLAR CON PADRES DE FAMILIA A TRAVES DE MEDIOS...ESTRATEGIAS DE LECTURA EN PREESCOLAR CON PADRES DE FAMILIA A TRAVES DE MEDIOS...
ESTRATEGIAS DE LECTURA EN PREESCOLAR CON PADRES DE FAMILIA A TRAVES DE MEDIOS...
 
El universo
El universoEl universo
El universo
 

Similar to WORD_FINAL_STOCK_ANALYSIS_PROJECT

Наибольшая общая мера: 2500 лет
Наибольшая общая мера: 2500 летНаибольшая общая мера: 2500 лет
Наибольшая общая мера: 2500 летsixtyone
 
Cuecos! Capítulo Uno
Cuecos! Capítulo Uno Cuecos! Capítulo Uno
Cuecos! Capítulo Uno Revulú
 
R (Shiny Package) - Server Side Code for Decision Support System
R (Shiny Package) - Server Side Code for Decision Support SystemR (Shiny Package) - Server Side Code for Decision Support System
R (Shiny Package) - Server Side Code for Decision Support SystemMaithreya Chakravarthula
 
Work in TDW
Work in TDWWork in TDW
Work in TDWsaso70
 
Introduction To PostGIS
Introduction To PostGISIntroduction To PostGIS
Introduction To PostGISmleslie
 
Peebles-3D Symposium-03 Mar 2016
Peebles-3D Symposium-03 Mar 2016Peebles-3D Symposium-03 Mar 2016
Peebles-3D Symposium-03 Mar 2016Ross Peebles
 
Efficient equity portfolios using mean variance optimisation in R
Efficient equity portfolios using mean variance optimisation in REfficient equity portfolios using mean variance optimisation in R
Efficient equity portfolios using mean variance optimisation in RGregg Barrett
 
Танки_в_Лунапарке: нагрузочное_тестирование_в_Яндексе
Танки_в_Лунапарке: нагрузочное_тестирование_в_ЯндексеТанки_в_Лунапарке: нагрузочное_тестирование_в_Яндексе
Танки_в_Лунапарке: нагрузочное_тестирование_в_ЯндексеYandex
 
you need to complete the r code and a singlepage document c.pdf
you need to complete the r code and a singlepage document c.pdfyou need to complete the r code and a singlepage document c.pdf
you need to complete the r code and a singlepage document c.pdfadnankhan605720
 
MongoDB Analytics
MongoDB AnalyticsMongoDB Analytics
MongoDB Analyticsdatablend
 
Functional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network PerceptionFunctional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network PerceptionAtsushi Nitanda
 
Ifgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdf
Ifgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdfIfgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdf
Ifgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdffazilfootsteps
 
Alphabet free-worksheets
Alphabet free-worksheetsAlphabet free-worksheets
Alphabet free-worksheetshaleypeterson
 
Yolygambas
YolygambasYolygambas
Yolygambasrosyp
 
MH prediction modeling and validation in r (1) regression 190709
MH prediction modeling and validation in r (1) regression 190709MH prediction modeling and validation in r (1) regression 190709
MH prediction modeling and validation in r (1) regression 190709Min-hyung Kim
 

Similar to WORD_FINAL_STOCK_ANALYSIS_PROJECT (20)

CLIM Undergraduate Workshop: (Attachment) Performing Extreme Value Analysis (...
CLIM Undergraduate Workshop: (Attachment) Performing Extreme Value Analysis (...CLIM Undergraduate Workshop: (Attachment) Performing Extreme Value Analysis (...
CLIM Undergraduate Workshop: (Attachment) Performing Extreme Value Analysis (...
 
Наибольшая общая мера: 2500 лет
Наибольшая общая мера: 2500 летНаибольшая общая мера: 2500 лет
Наибольшая общая мера: 2500 лет
 
Cuecos! Capítulo Uno
Cuecos! Capítulo Uno Cuecos! Capítulo Uno
Cuecos! Capítulo Uno
 
R (Shiny Package) - Server Side Code for Decision Support System
R (Shiny Package) - Server Side Code for Decision Support SystemR (Shiny Package) - Server Side Code for Decision Support System
R (Shiny Package) - Server Side Code for Decision Support System
 
Trading on SPY
Trading on SPYTrading on SPY
Trading on SPY
 
Work in TDW
Work in TDWWork in TDW
Work in TDW
 
Introduction To PostGIS
Introduction To PostGISIntroduction To PostGIS
Introduction To PostGIS
 
Peebles-3D Symposium-03 Mar 2016
Peebles-3D Symposium-03 Mar 2016Peebles-3D Symposium-03 Mar 2016
Peebles-3D Symposium-03 Mar 2016
 
A Shiny Example-- R
A Shiny Example-- RA Shiny Example-- R
A Shiny Example-- R
 
Efficient equity portfolios using mean variance optimisation in R
Efficient equity portfolios using mean variance optimisation in REfficient equity portfolios using mean variance optimisation in R
Efficient equity portfolios using mean variance optimisation in R
 
Танки_в_Лунапарке: нагрузочное_тестирование_в_Яндексе
Танки_в_Лунапарке: нагрузочное_тестирование_в_ЯндексеТанки_в_Лунапарке: нагрузочное_тестирование_в_Яндексе
Танки_в_Лунапарке: нагрузочное_тестирование_в_Яндексе
 
you need to complete the r code and a singlepage document c.pdf
you need to complete the r code and a singlepage document c.pdfyou need to complete the r code and a singlepage document c.pdf
you need to complete the r code and a singlepage document c.pdf
 
MongoDB Analytics
MongoDB AnalyticsMongoDB Analytics
MongoDB Analytics
 
Functional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network PerceptionFunctional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network Perception
 
Ifgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdf
Ifgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdfIfgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdf
Ifgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdf
 
Alphabet free-worksheets
Alphabet free-worksheetsAlphabet free-worksheets
Alphabet free-worksheets
 
Yolygambas
YolygambasYolygambas
Yolygambas
 
Yolygambas
YolygambasYolygambas
Yolygambas
 
Yolygambas
YolygambasYolygambas
Yolygambas
 
MH prediction modeling and validation in r (1) regression 190709
MH prediction modeling and validation in r (1) regression 190709MH prediction modeling and validation in r (1) regression 190709
MH prediction modeling and validation in r (1) regression 190709
 

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