## ## okular ../../EBook/Investment_Science.djvu -p 241 & ## SR = data.frame(year=1:10, stock_1=c(11.91, 18.37, 3.64, 24.37, 30.42, -1.45, 20.11, 9.28, 17.63, 15.71), stock_2=c(29.59, 15.25, 3.53, 17.67, 12.74, -2.56, 25.46, 6.92, 9.73, 25.09), stock_3=c(23.27, 19.47, -6.58, 15.08, 16.24, -15.05, 17.80, 18.82, 3.05, 16.94), stock_4=c(27.24, 17.05, 10.20, 20.26, 19.84, 1.51, 12.24, 16.12, 22.93, 3.49), market=c(23.00, 17.54, 2.70, 19.34, 19.81, -4.39, 18.90, 12.78, 13.34, 15.31), riskless=c(6.20, 6.70, 6.40, 5.70, 5.90, 5.20, 4.90, 5.50, 6.10, 5.80)) print(SR) ## check that things look like the table in the book print(round(colMeans(SR),2)) print(round(apply(SR, 2, var), 2)) C = cov(SR[, 2:5]) ## the covariance matrix print(C) e = eigen(C) pv = e$vectors[, 1] pv = abs(pv) pv = pv/sum(pv) ## normalize print(pv) ## What would the return of a porfolio with these weight look like: pv_return = as.matrix(SR[, 2:5]) %*% pv print(pv_return) print(SR$market-pv_return)