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