library("zoo")
precios_CAPM<-read.zoo("Precios-CAPM.csv",sep = ";",header = TRUE,format = "%Y-%m-%d")
head(precios_CAPM)
AMZN IBM YHOO
2010-12-31 180.00 146.76 16.63
2011-01-03 184.22 147.48 16.75
2011-01-04 185.01 147.64 16.59
2011-01-05 187.42 147.05 16.91
2011-01-06 185.86 148.66 17.06
2011-01-07 185.49 147.93 16.90
library("PerformanceAnalytics")
Package PerformanceAnalytics (1.4.3541) loaded.
Copyright (c) 2004-2014 Peter Carl and Brian G. Peterson, GPL-2 | GPL-3
http://r-forge.r-project.org/projects/returnanalytics/
Attaching package: ‘PerformanceAnalytics’
The following objects are masked from ‘package:timeDate’:
kurtosis, skewness
The following object is masked from ‘package:graphics’:
legend
retornos_CAPM<-Return.calculate(precios_CAPM)
head(retornos_CAPM)
AMZN IBM YHOO
2010-12-31 NA NA NA
2011-01-03 0.023444450 0.004905976 0.007215935
2011-01-04 0.004288318 0.001084913 -0.009552239
2011-01-05 0.013026339 -0.003996180 0.019288728
2011-01-06 -0.008323535 0.010948663 0.008870432
2011-01-07 -0.001990724 -0.004910608 -0.009378605
retornos_CAPM<-retornos_CAPM[-1,]
head(retornos_CAPM)
AMZN IBM YHOO
2011-01-03 0.023444450 0.004905976 0.007215935
2011-01-04 0.004288318 0.001084913 -0.009552239
2011-01-05 0.013026339 -0.003996180 0.019288728
2011-01-06 -0.008323535 0.010948663 0.008870432
2011-01-07 -0.001990724 -0.004910608 -0.009378605
2011-01-10 -0.004366877 -0.001960346 -0.017751479
plot(retornos_CAPM)

covarianza<-cov(retornos_CAPM)
covarianza
AMZN IBM YHOO
AMZN 4.250951e-04 9.282669e-05 1.452526e-04
IBM 9.282669e-05 1.474029e-04 7.564836e-05
YHOO 1.452526e-04 7.564836e-05 3.683740e-04
covarianza2<-covarianza*2
covarianza2
AMZN IBM YHOO
AMZN 0.0008501902 0.0001856534 0.0002905052
IBM 0.0001856534 0.0002948057 0.0001512967
YHOO 0.0002905052 0.0001512967 0.0007367479
c3<-matrix(c(-1,-1,-1),nrow = 3)
f3<-matrix(c(-1,-1,-1,0),nrow = 1)
A<-cbind(covarianza2,c3)
A
AMZN IBM YHOO
AMZN 0.0008501902 0.0001856534 0.0002905052 -1
IBM 0.0001856534 0.0002948057 0.0001512967 -1
YHOO 0.0002905052 0.0001512967 0.0007367479 -1
A<-rbind(A,f3)
A
AMZN IBM YHOO
AMZN 0.0008501902 0.0001856534 0.0002905052 -1
IBM 0.0001856534 0.0002948057 0.0001512967 -1
YHOO 0.0002905052 0.0001512967 0.0007367479 -1
-1.0000000000 -1.0000000000 -1.0000000000 0
A_inv<-inv(A)
A_inv
AMZN IBM YHOO
AMZN 1451.22886374 -956.7870303 -494.441833 -0.0874481647
IBM -956.78703035 2002.6212769 -1045.834247 -0.7454778493
YHOO -494.44183340 -1045.8342465 1540.276080 -0.1670739861
-0.08744816 -0.7454778 -0.167074 -0.0002612839
B<-matrix(c(0,0,0,-1),nrow=4)
B
[,1]
[1,] 0
[2,] 0
[3,] 0
[4,] -1
W<-A_inv%*%B
W
[,1]
AMZN 0.0874481647
IBM 0.7454778493
YHOO 0.1670739861
0.0002612839
w<-W[-4,]
w
AMZN IBM YHOO
0.08744816 0.74547785 0.16707399
Promedio<-colMeans(retornos_CAPM)
Promedio
AMZN IBM YHOO
0.0012666793 0.0003994437 0.0013619331
Promedio_portafolio<-Promedio%*%w
Promedio_portafolio
[,1]
[1,] 0.0006360888
varianza_portafolio<-(t(w)%*%covarianza)%*%w
varianza_portafolio
[,1]
[1,] 0.000130642
datos_CAPM<-read.zoo("Datos-CAPM.csv",sep = ";",header = TRUE,format = "%Y-%m-%d")
head(datos_CAPM)
AMZN IBM YHOO GSPC DGS3MO
2011-01-01 -0.057555561 0.103843047 -0.03066735 0.022645590 0.000124914
2011-02-01 0.021516117 -0.000740710 0.01736966 0.031956583 0.000124914
2011-03-01 0.039471477 0.007351136 0.01707317 -0.001047302 0.000075000
2011-04-01 0.087048202 0.046053809 0.06115114 0.028495358 0.000033300
2011-05-01 0.004494173 -0.009672933 -0.06497186 -0.013500928 0.000050000
2011-06-01 0.039656327 0.015509442 -0.09123862 -0.018257508 0.000025000
plot(datos_CAPM)

portafolio_CAPM<-datos_CAPM[,1:3]
head(portafolio_CAPM)
AMZN IBM YHOO
2011-01-01 -0.057555561 0.103843047 -0.03066735
2011-02-01 0.021516117 -0.000740710 0.01736966
2011-03-01 0.039471477 0.007351136 0.01707317
2011-04-01 0.087048202 0.046053809 0.06115114
2011-05-01 0.004494173 -0.009672933 -0.06497186
2011-06-01 0.039656327 0.015509442 -0.09123862
Rp<-portafolio_CAPM%*%w
head(Rp)
[,1]
[1,] 0.0672558468
[2,] 0.0042313810
[3,] 0.0117843000
[4,] 0.0521610645
[5,] -0.0176730579
[6,] -0.0002137808
capm<-cbind(datos_CAPM[,4:5],Rp)
head(capm)
GSPC DGS3MO 1.Rp
2011-01-01 0.022645590 0.000124914 0.0672558468
2011-02-01 0.031956583 0.000124914 0.0042313810
2011-03-01 -0.001047302 0.000075000 0.0117843000
2011-04-01 0.028495358 0.000033300 0.0521610645
2011-05-01 -0.013500928 0.000050000 -0.0176730579
2011-06-01 -0.018257508 0.000025000 -0.0002137808
Rp_Rf<-capm[,3]-capm[,2]
head(Rp_Rf)
2011-01-01 2011-02-01 2011-03-01 2011-04-01 2011-05-01
0.0671309328 0.0041064670 0.0117093000 0.0521277645 -0.0177230579
2011-06-01
-0.0002387808
Rm_Rf<-capm[,1]-capm[,2]
head(Rm_Rf)
2011-01-01 2011-02-01 2011-03-01 2011-04-01 2011-05-01
0.022520676 0.031831669 -0.001122302 0.028462058 -0.013550928
2011-06-01
-0.018282508
regresion<-lm(Rp~Rm_Rf)
summary(regresion)
Call:
lm(formula = Rp ~ Rm_Rf)
Residuals:
Min 1Q Median 3Q Max
-0.059100 -0.021711 0.003215 0.019414 0.054453
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.004537 0.005217 0.870 0.391
Rm_Rf 0.712592 0.143489 4.966 1.9e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.02976 on 34 degrees of freedom
Multiple R-squared: 0.4204, Adjusted R-squared: 0.4034
F-statistic: 24.66 on 1 and 34 DF, p-value: 1.9e-05
B<-cov(capm[,1],capm[,3])/var(capm[,1])
B
[1] 0.7126043
LS0tCnRpdGxlOiAiQ0FQTSIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKLS0tCgpgYGB7cn0KbGlicmFyeSgiem9vIikKYGBgCgoKYGBge3J9CnByZWNpb3NfQ0FQTTwtcmVhZC56b28oIlByZWNpb3MtQ0FQTS5jc3YiLHNlcCA9ICI7IixoZWFkZXIgPSBUUlVFLGZvcm1hdCA9ICIlWS0lbS0lZCIpCmhlYWQocHJlY2lvc19DQVBNKQpgYGAKCmBgYHtyfQpsaWJyYXJ5KCJQZXJmb3JtYW5jZUFuYWx5dGljcyIpCmBgYAoKYGBge3J9CnJldG9ybm9zX0NBUE08LVJldHVybi5jYWxjdWxhdGUocHJlY2lvc19DQVBNKQpoZWFkKHJldG9ybm9zX0NBUE0pCmBgYAoKYGBge3J9CnJldG9ybm9zX0NBUE08LXJldG9ybm9zX0NBUE1bLTEsXQpoZWFkKHJldG9ybm9zX0NBUE0pCmBgYAoKYGBge3J9CnBsb3QocmV0b3Jub3NfQ0FQTSkKYGBgCgpgYGB7cn0KY292YXJpYW56YTwtY292KHJldG9ybm9zX0NBUE0pCmNvdmFyaWFuemEKYGBgCgpgYGB7cn0KY292YXJpYW56YTI8LWNvdmFyaWFuemEqMgpjb3ZhcmlhbnphMgpgYGAKCgoKYGBge3J9CmMzPC1tYXRyaXgoYygtMSwtMSwtMSksbnJvdyA9IDMpCmYzPC1tYXRyaXgoYygtMSwtMSwtMSwwKSxucm93ID0gMSkKYGBgCgoKYGBge3J9CkE8LWNiaW5kKGNvdmFyaWFuemEyLGMzKQpBCmBgYAoKYGBge3J9CkE8LXJiaW5kKEEsZjMpCkEKYGBgCgpgYGB7cn0KQV9pbnY8LWludihBKQpBX2ludgpgYGAKCmBgYHtyfQpCPC1tYXRyaXgoYygwLDAsMCwtMSksbnJvdz00KQpCCmBgYAoKYGBge3J9Clc8LUFfaW52JSolQgpXCmBgYAoKYGBge3J9Cnc8LVdbLTQsXQp3CmBgYAoKYGBge3J9ClByb21lZGlvPC1jb2xNZWFucyhyZXRvcm5vc19DQVBNKQpQcm9tZWRpbwpgYGAKCmBgYHtyfQpQcm9tZWRpb19wb3J0YWZvbGlvPC1Qcm9tZWRpbyUqJXcKUHJvbWVkaW9fcG9ydGFmb2xpbwpgYGAKCmBgYHtyfQp2YXJpYW56YV9wb3J0YWZvbGlvPC0odCh3KSUqJWNvdmFyaWFuemEpJSoldwp2YXJpYW56YV9wb3J0YWZvbGlvCmBgYAoKCmBgYHtyfQpkYXRvc19DQVBNPC1yZWFkLnpvbygiRGF0b3MtQ0FQTS5jc3YiLHNlcCA9ICI7IixoZWFkZXIgPSBUUlVFLGZvcm1hdCA9ICIlWS0lbS0lZCIpCmhlYWQoZGF0b3NfQ0FQTSkKYGBgCgpgYGB7cn0KcGxvdChkYXRvc19DQVBNKQpgYGAKCmBgYHtyfQpwb3J0YWZvbGlvX0NBUE08LWRhdG9zX0NBUE1bLDE6M10KaGVhZChwb3J0YWZvbGlvX0NBUE0pCmBgYAoKCmBgYHtyfQpScDwtcG9ydGFmb2xpb19DQVBNJSoldwpoZWFkKFJwKQpgYGAKCmBgYHtyfQpjYXBtPC1jYmluZChkYXRvc19DQVBNWyw0OjVdLFJwKQpoZWFkKGNhcG0pCmBgYAoKYGBge3J9ClJwX1JmPC1jYXBtWywzXS1jYXBtWywyXQpoZWFkKFJwX1JmKQpgYGAKCmBgYHtyfQpSbV9SZjwtY2FwbVssMV0tY2FwbVssMl0KaGVhZChSbV9SZikKYGBgCgpgYGB7cn0KcmVncmVzaW9uPC1sbShScH5SbV9SZikKc3VtbWFyeShyZWdyZXNpb24pCmBgYAoKYGBge3J9CkI8LWNvdihjYXBtWywxXSxjYXBtWywzXSkvdmFyKGNhcG1bLDFdKQpCCmBgYAoK