R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.

library(fPortfolio)
## Loading required package: timeDate
## Loading required package: timeSeries
## Loading required package: fBasics
## Loading required package: fAssets
library(quantmod)
## Loading required package: xts
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following object is masked from 'package:timeSeries':
## 
##     time<-
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: TTR
## 
## Attaching package: 'TTR'
## The following object is masked from 'package:fBasics':
## 
##     volatility
## Version 0.4-0 included new data defaults. See ?getSymbols.
# 1. Download ETF daily data from yahoo with ticker names of SPY, QQQ, EEM, IWM, EFA, TLT, IYR, GLD from 2010 to current date. 
tickers = c("SPY", "QQQ", "EEM", "IWM", "EFA", "TLT", "IYR", "GLD")
data <- new.env()
getSymbols(tickers, src = "yahoo", from = "2010-01-01", env = data, auto.assign = T)
## 'getSymbols' currently uses auto.assign=TRUE by default, but will
## use auto.assign=FALSE in 0.5-0. You will still be able to use
## 'loadSymbols' to automatically load data. getOption("getSymbols.env")
## and getOption("getSymbols.auto.assign") will still be checked for
## alternate defaults.
## 
## This message is shown once per session and may be disabled by setting 
## options("getSymbols.warning4.0"=FALSE). See ?getSymbols for details.
## 
## WARNING: There have been significant changes to Yahoo Finance data.
## Please see the Warning section of '?getSymbols.yahoo' for details.
## 
## This message is shown once per session and may be disabled by setting
## options("getSymbols.yahoo.warning"=FALSE).
## pausing 1 second between requests for more than 5 symbols
## pausing 1 second between requests for more than 5 symbols
## pausing 1 second between requests for more than 5 symbols
## pausing 1 second between requests for more than 5 symbols
## [1] "SPY" "QQQ" "EEM" "IWM" "EFA" "TLT" "IYR" "GLD"
names(data)
## [1] "GLD"         "IWM"         "IYR"         "TLT"         "QQQ"        
## [6] ".getSymbols" "EEM"         "SPY"         "EFA"
head(data$SPY)
##            SPY.Open SPY.High SPY.Low SPY.Close SPY.Volume SPY.Adjusted
## 2010-01-04   112.37   113.39  111.51    113.33  118944600     94.13087
## 2010-01-05   113.26   113.68  112.85    113.63  111579900     94.38007
## 2010-01-06   113.52   113.99  113.43    113.71  116074400     94.44649
## 2010-01-07   113.50   114.33  113.18    114.19  131091100     94.84521
## 2010-01-08   113.89   114.62  113.66    114.57  126402800     95.16080
## 2010-01-11   115.08   115.13  114.24    114.73  106375700     95.29370
multi<-data$SPY[,6]
multi<-merge(multi, data$QQQ[,6])
multi<-merge(multi, data$EEM[,6])
multi<-merge(multi, data$IWM[,6])
multi<-merge(multi, data$EFA[,6])
multi<-merge(multi, data$TLT[,6])
multi<-merge(multi, data$IYR[,6])
multi<-merge(multi, data$GLD[,6])
head(multi)
##            SPY.Adjusted QQQ.Adjusted EEM.Adjusted IWM.Adjusted
## 2010-01-04     94.13087     42.07555     35.67281     56.09659
## 2010-01-05     94.38007     42.07555     35.93174     55.90370
## 2010-01-06     94.44649     41.82175     36.00691     55.85109
## 2010-01-07     94.84521     41.84896     35.79811     56.26318
## 2010-01-08     95.16080     42.19340     36.08208     56.57005
## 2010-01-11     95.29370     42.02117     36.00691     56.34210
##            EFA.Adjusted TLT.Adjusted IYR.Adjusted GLD.Adjusted
## 2010-01-04     43.40944     68.49980     32.26275       109.80
## 2010-01-05     43.44770     68.94214     32.34021       109.70
## 2010-01-06     43.63134     68.01926     32.32613       111.51
## 2010-01-07     43.46300     68.13365     32.61488       110.82
## 2010-01-08     43.80734     68.10319     32.39655       111.37
## 2010-01-11     44.16698     67.72945     32.55150       112.85
multi<-multi[,-1]
head(multi)
##            QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted
## 2010-01-04     42.07555     35.67281     56.09659     43.40944
## 2010-01-05     42.07555     35.93174     55.90370     43.44770
## 2010-01-06     41.82175     36.00691     55.85109     43.63134
## 2010-01-07     41.84896     35.79811     56.26318     43.46300
## 2010-01-08     42.19340     36.08208     56.57005     43.80734
## 2010-01-11     42.02117     36.00691     56.34210     44.16698
##            TLT.Adjusted IYR.Adjusted GLD.Adjusted
## 2010-01-04     68.49980     32.26275       109.80
## 2010-01-05     68.94214     32.34021       109.70
## 2010-01-06     68.01926     32.32613       111.51
## 2010-01-07     68.13365     32.61488       110.82
## 2010-01-08     68.10319     32.39655       111.37
## 2010-01-11     67.72945     32.55150       112.85
tail(multi)
##            QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted
## 2019-04-10       185.47        44.52       157.31        66.12
## 2019-04-11       185.03        44.04       157.11        65.98
## 2019-04-12       185.83        44.36       157.68        66.44
## 2019-04-15       185.86        44.13       157.17        66.47
## 2019-04-16       186.50        44.46       157.54        66.52
## 2019-04-17       187.15        44.59       156.10        66.71
##            TLT.Adjusted IYR.Adjusted GLD.Adjusted
## 2019-04-10       124.28        87.80       123.53
## 2019-04-11       123.55        87.71       121.95
## 2019-04-12       122.67        88.17       121.83
## 2019-04-15       122.98        87.72       121.60
## 2019-04-16       122.21        85.84       120.51
## 2019-04-17       122.26        85.06       120.28
#2. Use year 2010 data to calculate daily returns and their covariance matrix, and compute weights of minimum variance portfolio (MVP).  
multi.ret<-multi/lag(multi)-1
head(multi.ret)
##            QQQ.Adjusted EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## 2010-01-04           NA           NA            NA            NA
## 2010-01-05  0.000000000  0.007258357 -0.0034386046  0.0008812368
## 2010-01-06 -0.006032006  0.002092078 -0.0009411184  0.0042268523
## 2010-01-07  0.000650451 -0.005798915  0.0073783704 -0.0038583043
## 2010-01-08  0.008230575  0.007932542  0.0054542424  0.0079225546
## 2010-01-11 -0.004081823 -0.002083278 -0.0040294644  0.0082096290
##             TLT.Adjusted  IYR.Adjusted  GLD.Adjusted
## 2010-01-04            NA            NA            NA
## 2010-01-05  0.0064574931  0.0024008181 -0.0009108014
## 2010-01-06 -0.0133863268 -0.0004352476  0.0164995902
## 2010-01-07  0.0016818031  0.0089323703 -0.0061878037
## 2010-01-08 -0.0004471212 -0.0066941831  0.0049630301
## 2010-01-11 -0.0054877607  0.0047827619  0.0132889913
multi.ret<-multi.ret[-1,]
head(multi.ret)
##            QQQ.Adjusted EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## 2010-01-05  0.000000000  0.007258357 -0.0034386046  0.0008812368
## 2010-01-06 -0.006032006  0.002092078 -0.0009411184  0.0042268523
## 2010-01-07  0.000650451 -0.005798915  0.0073783704 -0.0038583043
## 2010-01-08  0.008230575  0.007932542  0.0054542424  0.0079225546
## 2010-01-11 -0.004081823 -0.002083278 -0.0040294644  0.0082096290
## 2010-01-12 -0.012511003 -0.016005818 -0.0108934168 -0.0117811086
##             TLT.Adjusted  IYR.Adjusted  GLD.Adjusted
## 2010-01-05  0.0064574931  0.0024008181 -0.0009108014
## 2010-01-06 -0.0133863268 -0.0004352476  0.0164995902
## 2010-01-07  0.0016818031  0.0089323703 -0.0061878037
## 2010-01-08 -0.0004471212 -0.0066941831  0.0049630301
## 2010-01-11 -0.0054877607  0.0047827619  0.0132889913
## 2010-01-12  0.0171167628 -0.0168758747 -0.0209127164
class(multi.ret)
## [1] "xts" "zoo"
lppAssets <- as.timeSeries(multi.ret)
class(lppAssets)
## [1] "timeSeries"
## attr(,"package")
## [1] "timeSeries"
lppData <- portfolioData(data = lppAssets, spec = portfolioSpec())
print(lppData) 
## 
## Head/Tail Series Data:
## 
## GMT 
##            QQQ.Adjusted EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## 2010-01-05  0.000000000  0.007258357 -0.0034386046  0.0008812368
## 2010-01-06 -0.006032006  0.002092078 -0.0009411184  0.0042268523
## 2010-01-07  0.000650451 -0.005798915  0.0073783704 -0.0038583043
##            TLT.Adjusted  IYR.Adjusted  GLD.Adjusted
## 2010-01-05  0.006457493  0.0024008181 -0.0009108014
## 2010-01-06 -0.013386327 -0.0004352476  0.0164995902
## 2010-01-07  0.001681803  0.0089323703 -0.0061878037
## GMT 
##            QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted
## 2019-04-15 0.0001614325 -0.005184851 -0.003234367 0.0004515202
## 2019-04-16 0.0034434467  0.007477861  0.002354107 0.0007521589
## 2019-04-17 0.0034852225  0.002923999 -0.009140454 0.0028563140
##             TLT.Adjusted IYR.Adjusted GLD.Adjusted
## 2019-04-15  0.0025271460 -0.005103743 -0.001887909
## 2019-04-16 -0.0062612131 -0.021431885 -0.008963783
## 2019-04-17  0.0004091564 -0.009086650 -0.001908580
## 
## Statistics:
## 
## $mean
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
## 6.986036e-04 1.871143e-04 5.132239e-04 2.494141e-04 2.857340e-04 
## IYR.Adjusted GLD.Adjusted 
## 4.752958e-04 8.805332e-05 
## 
## $Cov
##               QQQ.Adjusted  EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## QQQ.Adjusted  1.194103e-04  1.120204e-04  1.125805e-04  9.783943e-05
## EEM.Adjusted  1.120204e-04  1.830069e-04  1.252606e-04  1.334673e-04
## IWM.Adjusted  1.125805e-04  1.252606e-04  1.501961e-04  1.126059e-04
## EFA.Adjusted  9.783943e-05  1.334673e-04  1.126059e-04  1.306461e-04
## TLT.Adjusted -3.882484e-05 -4.520776e-05 -4.921096e-05 -4.649214e-05
## IYR.Adjusted  7.709859e-05  9.694076e-05  9.850002e-05  8.573104e-05
## GLD.Adjusted -1.548174e-06  1.856168e-05  1.581751e-06  9.050407e-06
##               TLT.Adjusted  IYR.Adjusted  GLD.Adjusted
## QQQ.Adjusted -3.882484e-05  7.709859e-05 -1.548174e-06
## EEM.Adjusted -4.520776e-05  9.694076e-05  1.856168e-05
## IWM.Adjusted -4.921096e-05  9.850002e-05  1.581751e-06
## EFA.Adjusted -4.649214e-05  8.573104e-05  9.050407e-06
## TLT.Adjusted  7.563093e-05 -2.135395e-05  1.627228e-05
## IYR.Adjusted -2.135395e-05  1.207100e-04  8.027814e-06
## GLD.Adjusted  1.627228e-05  8.027814e-06  9.778999e-05
## 
## $estimator
## [1] "covEstimator"
## 
## $mu
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
## 6.986036e-04 1.871143e-04 5.132239e-04 2.494141e-04 2.857340e-04 
## IYR.Adjusted GLD.Adjusted 
## 4.752958e-04 8.805332e-05 
## 
## $Sigma
##               QQQ.Adjusted  EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## QQQ.Adjusted  1.194103e-04  1.120204e-04  1.125805e-04  9.783943e-05
## EEM.Adjusted  1.120204e-04  1.830069e-04  1.252606e-04  1.334673e-04
## IWM.Adjusted  1.125805e-04  1.252606e-04  1.501961e-04  1.126059e-04
## EFA.Adjusted  9.783943e-05  1.334673e-04  1.126059e-04  1.306461e-04
## TLT.Adjusted -3.882484e-05 -4.520776e-05 -4.921096e-05 -4.649214e-05
## IYR.Adjusted  7.709859e-05  9.694076e-05  9.850002e-05  8.573104e-05
## GLD.Adjusted -1.548174e-06  1.856168e-05  1.581751e-06  9.050407e-06
##               TLT.Adjusted  IYR.Adjusted  GLD.Adjusted
## QQQ.Adjusted -3.882484e-05  7.709859e-05 -1.548174e-06
## EEM.Adjusted -4.520776e-05  9.694076e-05  1.856168e-05
## IWM.Adjusted -4.921096e-05  9.850002e-05  1.581751e-06
## EFA.Adjusted -4.649214e-05  8.573104e-05  9.050407e-06
## TLT.Adjusted  7.563093e-05 -2.135395e-05  1.627228e-05
## IYR.Adjusted -2.135395e-05  1.207100e-04  8.027814e-06
## GLD.Adjusted  1.627228e-05  8.027814e-06  9.778999e-05
Data <- portfolioData(lppData)
getStatistics(Data)
## $mean
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
## 6.986036e-04 1.871143e-04 5.132239e-04 2.494141e-04 2.857340e-04 
## IYR.Adjusted GLD.Adjusted 
## 4.752958e-04 8.805332e-05 
## 
## $Cov
##               QQQ.Adjusted  EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## QQQ.Adjusted  1.194103e-04  1.120204e-04  1.125805e-04  9.783943e-05
## EEM.Adjusted  1.120204e-04  1.830069e-04  1.252606e-04  1.334673e-04
## IWM.Adjusted  1.125805e-04  1.252606e-04  1.501961e-04  1.126059e-04
## EFA.Adjusted  9.783943e-05  1.334673e-04  1.126059e-04  1.306461e-04
## TLT.Adjusted -3.882484e-05 -4.520776e-05 -4.921096e-05 -4.649214e-05
## IYR.Adjusted  7.709859e-05  9.694076e-05  9.850002e-05  8.573104e-05
## GLD.Adjusted -1.548174e-06  1.856168e-05  1.581751e-06  9.050407e-06
##               TLT.Adjusted  IYR.Adjusted  GLD.Adjusted
## QQQ.Adjusted -3.882484e-05  7.709859e-05 -1.548174e-06
## EEM.Adjusted -4.520776e-05  9.694076e-05  1.856168e-05
## IWM.Adjusted -4.921096e-05  9.850002e-05  1.581751e-06
## EFA.Adjusted -4.649214e-05  8.573104e-05  9.050407e-06
## TLT.Adjusted  7.563093e-05 -2.135395e-05  1.627228e-05
## IYR.Adjusted -2.135395e-05  1.207100e-04  8.027814e-06
## GLD.Adjusted  1.627228e-05  8.027814e-06  9.778999e-05
## 
## $estimator
## [1] "covEstimator"
## 
## $mu
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
## 6.986036e-04 1.871143e-04 5.132239e-04 2.494141e-04 2.857340e-04 
## IYR.Adjusted GLD.Adjusted 
## 4.752958e-04 8.805332e-05 
## 
## $Sigma
##               QQQ.Adjusted  EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## QQQ.Adjusted  1.194103e-04  1.120204e-04  1.125805e-04  9.783943e-05
## EEM.Adjusted  1.120204e-04  1.830069e-04  1.252606e-04  1.334673e-04
## IWM.Adjusted  1.125805e-04  1.252606e-04  1.501961e-04  1.126059e-04
## EFA.Adjusted  9.783943e-05  1.334673e-04  1.126059e-04  1.306461e-04
## TLT.Adjusted -3.882484e-05 -4.520776e-05 -4.921096e-05 -4.649214e-05
## IYR.Adjusted  7.709859e-05  9.694076e-05  9.850002e-05  8.573104e-05
## GLD.Adjusted -1.548174e-06  1.856168e-05  1.581751e-06  9.050407e-06
##               TLT.Adjusted  IYR.Adjusted  GLD.Adjusted
## QQQ.Adjusted -3.882484e-05  7.709859e-05 -1.548174e-06
## EEM.Adjusted -4.520776e-05  9.694076e-05  1.856168e-05
## IWM.Adjusted -4.921096e-05  9.850002e-05  1.581751e-06
## EFA.Adjusted -4.649214e-05  8.573104e-05  9.050407e-06
## TLT.Adjusted  7.563093e-05 -2.135395e-05  1.627228e-05
## IYR.Adjusted -2.135395e-05  1.207100e-04  8.027814e-06
## GLD.Adjusted  1.627228e-05  8.027814e-06  9.778999e-05
tgPortfolio <- tangencyPortfolio(lppAssets)
str(tgPortfolio)
## Formal class 'fPORTFOLIO' [package "fPortfolio"] with 7 slots
##   ..@ call       : language maxratioPortfolio(data = data, spec = spec, constraints = constraints)
##   ..@ data       :Formal class 'fPFOLIODATA' [package "fPortfolio"] with 3 slots
##   .. .. ..@ data      :List of 3
##   .. .. .. ..$ series :Time Series:          
##  Name:               object
## Data Matrix:        
##  Dimension:          2337 7
##  Column Names:       QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted IYR.Adjusted GLD.Adjusted
##  Row Names:          2010-01-05  ...  2019-04-17
## Positions:          
##  Start:              2010-01-05
##  End:                2019-04-17
## With:               
##  Format:             %Y-%m-%d
##  FinCenter:          GMT
##  Units:              QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted IYR.Adjusted GLD.Adjusted
##  Title:              Time Series Object
##  Documentation:      Thu Apr 18 11:55:44 2019
##   .. .. .. ..$ nAssets: int 7
##   .. .. .. ..$ names  : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ statistics:List of 5
##   .. .. .. ..$ mean     : Named num [1:7] 0.000699 0.000187 0.000513 0.000249 0.000286 ...
##   .. .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ Cov      : num [1:7, 1:7] 1.19e-04 1.12e-04 1.13e-04 9.78e-05 -3.88e-05 ...
##   .. .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. .. ..$ : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. .. .. ..$ : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ estimator: chr "covEstimator"
##   .. .. .. ..$ mu       : Named num [1:7] 0.000699 0.000187 0.000513 0.000249 0.000286 ...
##   .. .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ Sigma    : num [1:7, 1:7] 1.19e-04 1.12e-04 1.13e-04 9.78e-05 -3.88e-05 ...
##   .. .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. .. ..$ : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. .. .. ..$ : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ tailRisk  : list()
##   ..@ spec       :Formal class 'fPFOLIOSPEC' [package "fPortfolio"] with 5 slots
##   .. .. ..@ model    :List of 5
##   .. .. .. ..$ type     : chr "MV"
##   .. .. .. ..$ optimize : chr "minRisk"
##   .. .. .. ..$ estimator: chr "covEstimator"
##   .. .. .. ..$ tailRisk : list()
##   .. .. .. ..$ params   :List of 1
##   .. .. .. .. ..$ alpha: num 0.05
##   .. .. ..@ portfolio:List of 6
##   .. .. .. ..$ weights        : num [1:7] 0.511 0 0 0 0.489 ...
##   .. .. .. .. ..- attr(*, "invest")= num 1
##   .. .. .. ..$ targetReturn   : logi NA
##   .. .. .. ..$ targetRisk     : logi NA
##   .. .. .. ..$ riskFreeRate   : num 0
##   .. .. .. ..$ nFrontierPoints: num 50
##   .. .. .. ..$ status         : num 0
##   .. .. ..@ optim    :List of 5
##   .. .. .. ..$ solver   : chr "solveRquadprog"
##   .. .. .. ..$ objective: chr [1:3] "portfolioObjective" "portfolioReturn" "portfolioRisk"
##   .. .. .. ..$ options  :List of 1
##   .. .. .. .. ..$ meq: num 2
##   .. .. .. ..$ control  : list()
##   .. .. .. ..$ trace    : logi FALSE
##   .. .. ..@ messages :List of 2
##   .. .. .. ..$ messages: logi FALSE
##   .. .. .. ..$ note    : chr ""
##   .. .. ..@ ampl     :List of 5
##   .. .. .. ..$ ampl    : logi FALSE
##   .. .. .. ..$ project : chr "ampl"
##   .. .. .. ..$ solver  : chr "ipopt"
##   .. .. .. ..$ protocol: logi FALSE
##   .. .. .. ..$ trace   : logi FALSE
##   ..@ constraints:Formal class 'fPFOLIOCON' [package "fPortfolio"] with 16 slots
##   .. .. ..@ stringConstraints  : chr "LongOnly"
##   .. .. ..@ minWConstraints    : Named num [1:7] 0 0 0 0 0 0 0
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ maxWConstraints    : Named num [1:7] 1 1 1 1 1 1 1
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ eqsumWConstraints  : num [1, 1:8] -1 -1 -1 -1 -1 -1 -1 -1
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : chr "Budget"
##   .. .. .. .. ..$ : chr [1:8] "ceq" "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" ...
##   .. .. .. ..- attr(*, "na.action")= 'omit' Named num 1
##   .. .. .. .. ..- attr(*, "names")= chr "Return"
##   .. .. ..@ minsumWConstraints : logi [1, 1] NA
##   .. .. ..@ maxsumWConstraints : logi [1, 1] NA
##   .. .. ..@ minBConstraints    : Named num [1:7] -Inf -Inf -Inf -Inf -Inf ...
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ maxBConstraints    : Named num [1:7] 1 1 1 1 1 1 1
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ listFConstraints   : list()
##   .. .. ..@ minFConstraints    : num(0) 
##   .. .. ..@ maxFConstraints    : num(0) 
##   .. .. ..@ minBuyinConstraints: Named num [1:7] 0 0 0 0 0 0 0
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ maxBuyinConstraints: Named num [1:7] 1 1 1 1 1 1 1
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ nCardConstraints   : int 7
##   .. .. ..@ minCardConstraints : Named num [1:7] 0 0 0 0 0 0 0
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ maxCardConstraints : Named num [1:7] 1 1 1 1 1 1 1
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   ..@ portfolio  :Formal class 'fPFOLIOVAL' [package "fPortfolio"] with 2 slots
##   .. .. ..@ portfolio:List of 6
##   .. .. .. ..$ weights       : Named num [1:7] 0.511 0 0 0 0.489 ...
##   .. .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ covRiskBudgets: Named num [1:7] 0.718 0 0 0 0.282 ...
##   .. .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ targetReturn  : Named num [1:2] 0.000497 0.000497
##   .. .. .. .. ..- attr(*, "names")= chr [1:2] "mean" "mu"
##   .. .. .. ..$ targetRisk    : Named num [1:4] 0.00546 0.00546 0.01258 0.00892
##   .. .. .. .. ..- attr(*, "names")= chr [1:4] "Cov" "Sigma" "CVaR" "VaR"
##   .. .. .. ..$ targetAlpha   : num 0.05
##   .. .. .. ..$ status        : num 0
##   .. .. ..@ messages : list()
##   ..@ title      : chr "Tangency Portfolio"
##   ..@ description: chr "Thu Apr 18 11:55:44 2019 by user: Setsnee"
print(tgPortfolio)
## 
## Title:
##  MV Tangency Portfolio 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       LongOnly 
## 
## Portfolio Weights:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.5107       0.0000       0.0000       0.0000       0.4893 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.0000 
## 
## Covariance Risk Budgets:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.7185       0.0000       0.0000       0.0000       0.2815 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.0000 
## 
## Target Returns and Risks:
##   mean    Cov   CVaR    VaR 
## 0.0005 0.0055 0.0126 0.0089 
## 
## Description:
##  Thu Apr 18 11:55:44 2019 by user: Setsnee
mvPortfolio <- minvariancePortfolio(lppAssets)
print(mvPortfolio)
## 
## Title:
##  MV Minimum Variance Portfolio 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       LongOnly 
## 
## Portfolio Weights:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.1346       0.0000       0.0855       0.1600       0.4882 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.1317 
## 
## Covariance Risk Budgets:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.1346       0.0000       0.0855       0.1600       0.4882 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.1317 
## 
## Target Returns and Risks:
##   mean    Cov   CVaR    VaR 
## 0.0003 0.0047 0.0106 0.0077 
## 
## Description:
##  Thu Apr 18 11:55:44 2019 by user: Setsnee
globminSpec <- portfolioSpec()
shortConstraints <- c("minW[1:3]=-999", "maxW[1:3]=+999")
mvPortfolio.short <- minvariancePortfolio(lppAssets, spec = globminSpec, constraints = shortConstraints )
print(mvPortfolio.short)
## 
## Title:
##  MV Minimum Variance Portfolio 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       minW maxW 
## 
## Portfolio Weights:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.1591      -0.1235       0.0938       0.2510       0.4775 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.1420 
## 
## Covariance Risk Budgets:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.1591      -0.1235       0.0938       0.2510       0.4775 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.1420 
## 
## Target Returns and Risks:
##   mean    Cov   CVaR    VaR 
## 0.0003 0.0046 0.0103 0.0075 
## 
## Description:
##  Thu Apr 18 11:55:44 2019 by user: Setsnee
weightsPie(mvPortfolio.short, radius = 0.7)
text <- "Global Minimum Risk Portfolio"
mtext(text, side = 3, line = 1.5, font = 2, cex = 0.7, adj = 0)

weightedReturnsPie(mvPortfolio.short, radius = 0.8, legend = FALSE)

covRiskBudgetsPie(mvPortfolio.short, radius = 0.9, legend = FALSE)

Spec<-portfolioSpec()
setTargetReturn(Spec)<- 0.007
efficientPortfolio.short <- efficientPortfolio(lppAssets, spec = Spec, constraints = shortConstraints )
print(efficientPortfolio.short)
## 
## Title:
##  MV Efficient Portfolio 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       minW maxW 
## 
## Portfolio Weights:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##      14.8600     -11.4566      -2.5105       0.0000       0.0000 
## IYR.Adjusted GLD.Adjusted 
##       0.1071       0.0000 
## 
## Covariance Risk Budgets:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.2693       0.7054       0.0270       0.0000       0.0000 
## IYR.Adjusted GLD.Adjusted 
##      -0.0018       0.0000 
## 
## Target Returns and Risks:
##   mean    Cov   CVaR    VaR 
## 0.0070 0.1093 0.2358 0.1725 
## 
## Description:
##  Thu Apr 18 11:55:44 2019 by user: Setsnee
#3. now use year 2010 data to calculate weekly returns and their covariance matrix, and compute weights of minimum variance portfolio (MVP).
weekly.end <- endpoints(multi, on = "weeks")
weekly <- period.apply(multi, INDEX = weekly.end, FUN = mean)
head(weekly)
##            QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted
## 2010-01-08     42.00304     35.89833     56.13692     43.55176
## 2010-01-15     41.82720     35.49240     56.20181     43.96650
## 2010-01-22     41.27792     34.38865     55.53325     42.57537
## 2010-01-29     39.82766     32.56074     53.61003     41.11233
## 2010-02-05     39.22943     32.26674     52.90510     40.49099
## 2010-02-12     39.19861     31.76559     52.50178     39.51154
##            TLT.Adjusted IYR.Adjusted GLD.Adjusted
## 2010-01-08     68.33961     32.38811      110.640
## 2010-01-15     68.64318     32.36698      111.554
## 2010-01-22     69.92607     31.93702      108.750
## 2010-01-29     69.95198     30.86828      106.802
## 2010-02-05     69.90826     30.97956      107.046
## 2010-02-12     69.43832     30.08654      105.748
weekly.ret<-weekly/lag(weekly)-1
head(weekly.ret)
##             QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted
## 2010-01-08            NA           NA           NA           NA
## 2010-01-15 -0.0041865443 -0.011307630  0.001155831  0.009522783
## 2010-01-22 -0.0131321032 -0.031098334 -0.011895548 -0.031640547
## 2010-01-29 -0.0351340296 -0.053154483 -0.034631854 -0.034363727
## 2010-02-05 -0.0150203462 -0.009029255 -0.013149344 -0.015113122
## 2010-02-12 -0.0007856091 -0.015531356 -0.007623417 -0.024189381
##             TLT.Adjusted  IYR.Adjusted GLD.Adjusted
## 2010-01-08            NA            NA           NA
## 2010-01-15  0.0044421268 -0.0006523444  0.008261012
## 2010-01-22  0.0186892337 -0.0132838056 -0.025135803
## 2010-01-29  0.0003705764 -0.0334639203 -0.017912640
## 2010-02-05 -0.0006250173  0.0036048198  0.002284588
## 2010-02-12 -0.0067222814 -0.0288260984 -0.012125608
weekly.ret<-weekly.ret[-1,]
head(weekly.ret)
##             QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted
## 2010-01-15 -0.0041865443 -0.011307630  0.001155831  0.009522783
## 2010-01-22 -0.0131321032 -0.031098334 -0.011895548 -0.031640547
## 2010-01-29 -0.0351340296 -0.053154483 -0.034631854 -0.034363727
## 2010-02-05 -0.0150203462 -0.009029255 -0.013149344 -0.015113122
## 2010-02-12 -0.0007856091 -0.015531356 -0.007623417 -0.024189381
## 2010-02-19  0.0322919780  0.039256563  0.046092222  0.026803124
##             TLT.Adjusted  IYR.Adjusted GLD.Adjusted
## 2010-01-15  0.0044421268 -0.0006523444  0.008261012
## 2010-01-22  0.0186892337 -0.0132838056 -0.025135803
## 2010-01-29  0.0003705764 -0.0334639203 -0.017912640
## 2010-02-05 -0.0006250173  0.0036048198  0.002284588
## 2010-02-12 -0.0067222814 -0.0288260984 -0.012125608
## 2010-02-19 -0.0131450333  0.0536634065  0.036237097
class(weekly.ret)
## [1] "xts" "zoo"
lppAssets1 <- as.timeSeries(weekly.ret)
class(lppAssets1)
## [1] "timeSeries"
## attr(,"package")
## [1] "timeSeries"
lppData1 <- portfolioData(data = lppAssets1, spec = portfolioSpec())
print(lppData1) 
## 
## Head/Tail Series Data:
## 
## GMT 
##            QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted
## 2010-01-15 -0.004186544  -0.01130763  0.001155831  0.009522783
## 2010-01-22 -0.013132103  -0.03109833 -0.011895548 -0.031640547
## 2010-01-29 -0.035134030  -0.05315448 -0.034631854 -0.034363727
##            TLT.Adjusted  IYR.Adjusted GLD.Adjusted
## 2010-01-15 0.0044421268 -0.0006523444  0.008261012
## 2010-01-22 0.0186892337 -0.0132838056 -0.025135803
## 2010-01-29 0.0003705764 -0.0334639203 -0.017912640
## GMT 
##            QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted
## 2019-04-05  0.026625164  0.030922548 0.0243176416  0.020506013
## 2019-04-12  0.009837286  0.010302220 0.0087964981  0.002273096
## 2019-04-17  0.007102680  0.001519026 0.0003357185  0.006450911
##            TLT.Adjusted IYR.Adjusted GLD.Adjusted
## 2019-04-05 -0.011750695  0.010185920  -0.01196537
## 2019-04-12 -0.003739585  0.001737703   0.00585821
## 2019-04-17 -0.009146740 -0.016175196  -0.01466086
## 
## Statistics:
## 
## $mean
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
## 0.0032553074 0.0006902782 0.0023445845 0.0010560521 0.0013060977 
## IYR.Adjusted GLD.Adjusted 
## 0.0021896923 0.0003379037 
## 
## $Cov
##               QQQ.Adjusted  EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## QQQ.Adjusted  3.403374e-04  2.907946e-04  3.213355e-04  2.765410e-04
## EEM.Adjusted  2.907946e-04  5.014938e-04  3.272298e-04  3.614053e-04
## IWM.Adjusted  3.213355e-04  3.272298e-04  4.355003e-04  3.106169e-04
## EFA.Adjusted  2.765410e-04  3.614053e-04  3.106169e-04  3.572563e-04
## TLT.Adjusted -1.022507e-04 -1.084027e-04 -1.354768e-04 -1.244654e-04
## IYR.Adjusted  2.054827e-04  2.485564e-04  2.564645e-04  2.125934e-04
## GLD.Adjusted  1.994303e-05  9.617686e-05  2.330087e-05  3.877576e-05
##               TLT.Adjusted  IYR.Adjusted GLD.Adjusted
## QQQ.Adjusted -1.022507e-04  2.054827e-04 1.994303e-05
## EEM.Adjusted -1.084027e-04  2.485564e-04 9.617686e-05
## IWM.Adjusted -1.354768e-04  2.564645e-04 2.330087e-05
## EFA.Adjusted -1.244654e-04  2.125934e-04 3.877576e-05
## TLT.Adjusted  2.007918e-04 -2.534695e-05 4.702835e-05
## IYR.Adjusted -2.534695e-05  3.290357e-04 6.013819e-05
## GLD.Adjusted  4.702835e-05  6.013819e-05 3.103747e-04
## 
## $estimator
## [1] "covEstimator"
## 
## $mu
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
## 0.0032553074 0.0006902782 0.0023445845 0.0010560521 0.0013060977 
## IYR.Adjusted GLD.Adjusted 
## 0.0021896923 0.0003379037 
## 
## $Sigma
##               QQQ.Adjusted  EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## QQQ.Adjusted  3.403374e-04  2.907946e-04  3.213355e-04  2.765410e-04
## EEM.Adjusted  2.907946e-04  5.014938e-04  3.272298e-04  3.614053e-04
## IWM.Adjusted  3.213355e-04  3.272298e-04  4.355003e-04  3.106169e-04
## EFA.Adjusted  2.765410e-04  3.614053e-04  3.106169e-04  3.572563e-04
## TLT.Adjusted -1.022507e-04 -1.084027e-04 -1.354768e-04 -1.244654e-04
## IYR.Adjusted  2.054827e-04  2.485564e-04  2.564645e-04  2.125934e-04
## GLD.Adjusted  1.994303e-05  9.617686e-05  2.330087e-05  3.877576e-05
##               TLT.Adjusted  IYR.Adjusted GLD.Adjusted
## QQQ.Adjusted -1.022507e-04  2.054827e-04 1.994303e-05
## EEM.Adjusted -1.084027e-04  2.485564e-04 9.617686e-05
## IWM.Adjusted -1.354768e-04  2.564645e-04 2.330087e-05
## EFA.Adjusted -1.244654e-04  2.125934e-04 3.877576e-05
## TLT.Adjusted  2.007918e-04 -2.534695e-05 4.702835e-05
## IYR.Adjusted -2.534695e-05  3.290357e-04 6.013819e-05
## GLD.Adjusted  4.702835e-05  6.013819e-05 3.103747e-04
Data2 <- portfolioData(lppData1)
getStatistics(Data)
## $mean
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
## 6.986036e-04 1.871143e-04 5.132239e-04 2.494141e-04 2.857340e-04 
## IYR.Adjusted GLD.Adjusted 
## 4.752958e-04 8.805332e-05 
## 
## $Cov
##               QQQ.Adjusted  EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## QQQ.Adjusted  1.194103e-04  1.120204e-04  1.125805e-04  9.783943e-05
## EEM.Adjusted  1.120204e-04  1.830069e-04  1.252606e-04  1.334673e-04
## IWM.Adjusted  1.125805e-04  1.252606e-04  1.501961e-04  1.126059e-04
## EFA.Adjusted  9.783943e-05  1.334673e-04  1.126059e-04  1.306461e-04
## TLT.Adjusted -3.882484e-05 -4.520776e-05 -4.921096e-05 -4.649214e-05
## IYR.Adjusted  7.709859e-05  9.694076e-05  9.850002e-05  8.573104e-05
## GLD.Adjusted -1.548174e-06  1.856168e-05  1.581751e-06  9.050407e-06
##               TLT.Adjusted  IYR.Adjusted  GLD.Adjusted
## QQQ.Adjusted -3.882484e-05  7.709859e-05 -1.548174e-06
## EEM.Adjusted -4.520776e-05  9.694076e-05  1.856168e-05
## IWM.Adjusted -4.921096e-05  9.850002e-05  1.581751e-06
## EFA.Adjusted -4.649214e-05  8.573104e-05  9.050407e-06
## TLT.Adjusted  7.563093e-05 -2.135395e-05  1.627228e-05
## IYR.Adjusted -2.135395e-05  1.207100e-04  8.027814e-06
## GLD.Adjusted  1.627228e-05  8.027814e-06  9.778999e-05
## 
## $estimator
## [1] "covEstimator"
## 
## $mu
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
## 6.986036e-04 1.871143e-04 5.132239e-04 2.494141e-04 2.857340e-04 
## IYR.Adjusted GLD.Adjusted 
## 4.752958e-04 8.805332e-05 
## 
## $Sigma
##               QQQ.Adjusted  EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## QQQ.Adjusted  1.194103e-04  1.120204e-04  1.125805e-04  9.783943e-05
## EEM.Adjusted  1.120204e-04  1.830069e-04  1.252606e-04  1.334673e-04
## IWM.Adjusted  1.125805e-04  1.252606e-04  1.501961e-04  1.126059e-04
## EFA.Adjusted  9.783943e-05  1.334673e-04  1.126059e-04  1.306461e-04
## TLT.Adjusted -3.882484e-05 -4.520776e-05 -4.921096e-05 -4.649214e-05
## IYR.Adjusted  7.709859e-05  9.694076e-05  9.850002e-05  8.573104e-05
## GLD.Adjusted -1.548174e-06  1.856168e-05  1.581751e-06  9.050407e-06
##               TLT.Adjusted  IYR.Adjusted  GLD.Adjusted
## QQQ.Adjusted -3.882484e-05  7.709859e-05 -1.548174e-06
## EEM.Adjusted -4.520776e-05  9.694076e-05  1.856168e-05
## IWM.Adjusted -4.921096e-05  9.850002e-05  1.581751e-06
## EFA.Adjusted -4.649214e-05  8.573104e-05  9.050407e-06
## TLT.Adjusted  7.563093e-05 -2.135395e-05  1.627228e-05
## IYR.Adjusted -2.135395e-05  1.207100e-04  8.027814e-06
## GLD.Adjusted  1.627228e-05  8.027814e-06  9.778999e-05
tgPortfolio1 <- tangencyPortfolio(lppAssets1)
str(tgPortfolio1)
## Formal class 'fPORTFOLIO' [package "fPortfolio"] with 7 slots
##   ..@ call       : language maxratioPortfolio(data = data, spec = spec, constraints = constraints)
##   ..@ data       :Formal class 'fPFOLIODATA' [package "fPortfolio"] with 3 slots
##   .. .. ..@ data      :List of 3
##   .. .. .. ..$ series :Time Series:          
##  Name:               object
## Data Matrix:        
##  Dimension:          484 7
##  Column Names:       QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted IYR.Adjusted GLD.Adjusted
##  Row Names:          2010-01-15  ...  2019-04-17
## Positions:          
##  Start:              2010-01-15
##  End:                2019-04-17
## With:               
##  Format:             %Y-%m-%d
##  FinCenter:          GMT
##  Units:              QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted IYR.Adjusted GLD.Adjusted
##  Title:              Time Series Object
##  Documentation:      Thu Apr 18 11:55:45 2019
##   .. .. .. ..$ nAssets: int 7
##   .. .. .. ..$ names  : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ statistics:List of 5
##   .. .. .. ..$ mean     : Named num [1:7] 0.00326 0.00069 0.00234 0.00106 0.00131 ...
##   .. .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ Cov      : num [1:7, 1:7] 0.00034 0.000291 0.000321 0.000277 -0.000102 ...
##   .. .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. .. ..$ : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. .. .. ..$ : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ estimator: chr "covEstimator"
##   .. .. .. ..$ mu       : Named num [1:7] 0.00326 0.00069 0.00234 0.00106 0.00131 ...
##   .. .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ Sigma    : num [1:7, 1:7] 0.00034 0.000291 0.000321 0.000277 -0.000102 ...
##   .. .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. .. ..$ : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. .. .. ..$ : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ tailRisk  : list()
##   ..@ spec       :Formal class 'fPFOLIOSPEC' [package "fPortfolio"] with 5 slots
##   .. .. ..@ model    :List of 5
##   .. .. .. ..$ type     : chr "MV"
##   .. .. .. ..$ optimize : chr "minRisk"
##   .. .. .. ..$ estimator: chr "covEstimator"
##   .. .. .. ..$ tailRisk : list()
##   .. .. .. ..$ params   :List of 1
##   .. .. .. .. ..$ alpha: num 0.05
##   .. .. ..@ portfolio:List of 6
##   .. .. .. ..$ weights        : num [1:7] 0.503 0 0 0 0.497 ...
##   .. .. .. .. ..- attr(*, "invest")= num 1
##   .. .. .. ..$ targetReturn   : logi NA
##   .. .. .. ..$ targetRisk     : logi NA
##   .. .. .. ..$ riskFreeRate   : num 0
##   .. .. .. ..$ nFrontierPoints: num 50
##   .. .. .. ..$ status         : num 0
##   .. .. ..@ optim    :List of 5
##   .. .. .. ..$ solver   : chr "solveRquadprog"
##   .. .. .. ..$ objective: chr [1:3] "portfolioObjective" "portfolioReturn" "portfolioRisk"
##   .. .. .. ..$ options  :List of 1
##   .. .. .. .. ..$ meq: num 2
##   .. .. .. ..$ control  : list()
##   .. .. .. ..$ trace    : logi FALSE
##   .. .. ..@ messages :List of 2
##   .. .. .. ..$ messages: logi FALSE
##   .. .. .. ..$ note    : chr ""
##   .. .. ..@ ampl     :List of 5
##   .. .. .. ..$ ampl    : logi FALSE
##   .. .. .. ..$ project : chr "ampl"
##   .. .. .. ..$ solver  : chr "ipopt"
##   .. .. .. ..$ protocol: logi FALSE
##   .. .. .. ..$ trace   : logi FALSE
##   ..@ constraints:Formal class 'fPFOLIOCON' [package "fPortfolio"] with 16 slots
##   .. .. ..@ stringConstraints  : chr "LongOnly"
##   .. .. ..@ minWConstraints    : Named num [1:7] 0 0 0 0 0 0 0
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ maxWConstraints    : Named num [1:7] 1 1 1 1 1 1 1
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ eqsumWConstraints  : num [1, 1:8] -1 -1 -1 -1 -1 -1 -1 -1
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : chr "Budget"
##   .. .. .. .. ..$ : chr [1:8] "ceq" "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" ...
##   .. .. .. ..- attr(*, "na.action")= 'omit' Named num 1
##   .. .. .. .. ..- attr(*, "names")= chr "Return"
##   .. .. ..@ minsumWConstraints : logi [1, 1] NA
##   .. .. ..@ maxsumWConstraints : logi [1, 1] NA
##   .. .. ..@ minBConstraints    : Named num [1:7] -Inf -Inf -Inf -Inf -Inf ...
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ maxBConstraints    : Named num [1:7] 1 1 1 1 1 1 1
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ listFConstraints   : list()
##   .. .. ..@ minFConstraints    : num(0) 
##   .. .. ..@ maxFConstraints    : num(0) 
##   .. .. ..@ minBuyinConstraints: Named num [1:7] 0 0 0 0 0 0 0
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ maxBuyinConstraints: Named num [1:7] 1 1 1 1 1 1 1
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ nCardConstraints   : int 7
##   .. .. ..@ minCardConstraints : Named num [1:7] 0 0 0 0 0 0 0
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ maxCardConstraints : Named num [1:7] 1 1 1 1 1 1 1
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   ..@ portfolio  :Formal class 'fPFOLIOVAL' [package "fPortfolio"] with 2 slots
##   .. .. ..@ portfolio:List of 6
##   .. .. .. ..$ weights       : Named num [1:7] 0.503 0 0 0 0.497 ...
##   .. .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ covRiskBudgets: Named num [1:7] 0.716 0 0 0 0.284 ...
##   .. .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ targetReturn  : Named num [1:2] 0.00229 0.00229
##   .. .. .. .. ..- attr(*, "names")= chr [1:2] "mean" "mu"
##   .. .. .. ..$ targetRisk    : Named num [1:4] 0.0092 0.0092 0.0195 0.0136
##   .. .. .. .. ..- attr(*, "names")= chr [1:4] "Cov" "Sigma" "CVaR" "VaR"
##   .. .. .. ..$ targetAlpha   : num 0.05
##   .. .. .. ..$ status        : num 0
##   .. .. ..@ messages : list()
##   ..@ title      : chr "Tangency Portfolio"
##   ..@ description: chr "Thu Apr 18 11:55:45 2019 by user: Setsnee"
print(tgPortfolio1)
## 
## Title:
##  MV Tangency Portfolio 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       LongOnly 
## 
## Portfolio Weights:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.5031       0.0000       0.0000       0.0000       0.4969 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.0000 
## 
## Covariance Risk Budgets:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.7162       0.0000       0.0000       0.0000       0.2838 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.0000 
## 
## Target Returns and Risks:
##   mean    Cov   CVaR    VaR 
## 0.0023 0.0092 0.0195 0.0136 
## 
## Description:
##  Thu Apr 18 11:55:45 2019 by user: Setsnee
mvPortfolio1 <- minvariancePortfolio(lppAssets1)
print(mvPortfolio1)
## 
## Title:
##  MV Minimum Variance Portfolio 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       LongOnly 
## 
## Portfolio Weights:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.0779       0.0000       0.1047       0.2014       0.5304 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.0856 
## 
## Covariance Risk Budgets:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.0779       0.0000       0.1047       0.2014       0.5304 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.0856 
## 
## Target Returns and Risks:
##   mean    Cov   CVaR    VaR 
## 0.0014 0.0080 0.0177 0.0130 
## 
## Description:
##  Thu Apr 18 11:55:45 2019 by user: Setsnee
globminSpec1 <- portfolioSpec()
shortConstraints1 <- c("minW[1:3]=-999", "maxW[1:3]=+999")
mvPortfolio.short1 <- minvariancePortfolio(lppAssets1, spec = globminSpec, constraints = shortConstraints1 )
print(mvPortfolio.short1)
## 
## Title:
##  MV Minimum Variance Portfolio 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       minW maxW 
## 
## Portfolio Weights:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.0830      -0.1340       0.1103       0.3154       0.5188 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.1065 
## 
## Covariance Risk Budgets:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.0830      -0.1340       0.1103       0.3154       0.5188 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.1065 
## 
## Target Returns and Risks:
##   mean    Cov   CVaR    VaR 
## 0.0015 0.0078 0.0165 0.0121 
## 
## Description:
##  Thu Apr 18 11:55:45 2019 by user: Setsnee
weightsPie(mvPortfolio.short1, radius = 0.7)
text1 <- "Global Minimum Risk Portfolio"
mtext(text1, side = 3, line = 1.5, font = 2, cex = 0.7, adj = 0)

weightedReturnsPie(mvPortfolio.short1, radius = 0.8, legend = FALSE)

covRiskBudgetsPie(mvPortfolio.short1, radius = 0.9, legend = FALSE)

Spec1<-portfolioSpec()
setTargetReturn(Spec)<- 0.007
efficientPortfolio.short1 <- efficientPortfolio(lppAssets1, spec = Spec, constraints = shortConstraints1 )
print(efficientPortfolio.short1)
## 
## Title:
##  MV Efficient Portfolio 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       minW maxW 
## 
## Portfolio Weights:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       2.5592      -1.5126      -0.6001       0.0000       0.1039 
## IYR.Adjusted GLD.Adjusted 
##       0.4495       0.0000 
## 
## Covariance Risk Budgets:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.8638       0.1759      -0.1059       0.0000      -0.0008 
## IYR.Adjusted GLD.Adjusted 
##       0.0670       0.0000 
## 
## Target Returns and Risks:
##   mean    Cov   CVaR    VaR 
## 0.0070 0.0308 0.0623 0.0449 
## 
## Description:
##  Thu Apr 18 11:55:45 2019 by user: Setsnee
#4.  By 3, now use year 2010 data to calculate monthly returns and their covariance matrix, and compute weights of minimum variance portfolio (MVP).
month.end <- endpoints(weekly, on = "months")
monthly <- period.apply(weekly, INDEX = month.end, FUN = mean)
head(monthly)
##            QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted
## 2010-01-29     41.23395     34.58503     55.37050     42.80149
## 2010-02-26     39.82370     32.37845     53.87658     40.20060
## 2010-03-26     42.69949     34.28048     58.94166     42.12582
## 2010-04-30     44.70087     35.78490     62.41193     43.14215
## 2010-05-28     42.24750     32.41457     59.69505     38.19923
## 2010-06-25     41.51868     32.41172     56.99738     37.52401
##            TLT.Adjusted IYR.Adjusted GLD.Adjusted
## 2010-01-29     69.21521     31.89010     109.4365
## 2010-02-26     69.30886     31.22861     107.6965
## 2010-03-26     69.46865     34.47091     109.1525
## 2010-04-30     69.02617     36.77341     112.0205
## 2010-05-28     73.86319     36.14825     117.9895
## 2010-06-25     75.63452     35.50740     120.5290
monthly.ret<-monthly/lag(monthly)-1
head(monthly.ret)
##            QQQ.Adjusted  EEM.Adjusted IWM.Adjusted EFA.Adjusted
## 2010-01-29           NA            NA           NA           NA
## 2010-02-26  -0.03420135 -6.380161e-02  -0.02698056  -0.06076643
## 2010-03-26   0.07221302  5.874383e-02   0.09401280   0.04789049
## 2010-04-30   0.04687134  4.388566e-02   0.05887635   0.02412609
## 2010-05-28  -0.05488405 -9.418308e-02  -0.04353154  -0.11457288
## 2010-06-25  -0.01725123 -8.787869e-05  -0.04519071  -0.01767637
##            TLT.Adjusted IYR.Adjusted GLD.Adjusted
## 2010-01-29           NA           NA           NA
## 2010-02-26  0.001352959  -0.02074288  -0.01589963
## 2010-03-26  0.002305498   0.10382496   0.01351946
## 2010-04-30 -0.006369374   0.06679530   0.02627517
## 2010-05-28  0.070075059  -0.01700025   0.05328489
## 2010-06-25  0.023981252  -0.01772841   0.02152311
monthly.ret<-monthly.ret[-1,]
head(monthly.ret)
##            QQQ.Adjusted  EEM.Adjusted IWM.Adjusted EFA.Adjusted
## 2010-02-26  -0.03420135 -6.380161e-02  -0.02698056  -0.06076643
## 2010-03-26   0.07221302  5.874383e-02   0.09401280   0.04789049
## 2010-04-30   0.04687134  4.388566e-02   0.05887635   0.02412609
## 2010-05-28  -0.05488405 -9.418308e-02  -0.04353154  -0.11457288
## 2010-06-25  -0.01725123 -8.787869e-05  -0.04519071  -0.01767637
## 2010-07-30  -0.01893788  2.892251e-02  -0.02883859   0.03535766
##            TLT.Adjusted IYR.Adjusted GLD.Adjusted
## 2010-02-26  0.001352959  -0.02074288  -0.01589963
## 2010-03-26  0.002305498   0.10382496   0.01351946
## 2010-04-30 -0.006369374   0.06679530   0.02627517
## 2010-05-28  0.070075059  -0.01700025   0.05328489
## 2010-06-25  0.023981252  -0.01772841   0.02152311
## 2010-07-30  0.030514445  -0.00933387  -0.02778502
class(monthly.ret)
## [1] "xts" "zoo"
lppAssets2 <- as.timeSeries(monthly.ret)
class(lppAssets2)
## [1] "timeSeries"
## attr(,"package")
## [1] "timeSeries"
lppData2 <- portfolioData(data = lppAssets2, spec = portfolioSpec())
print(lppData2) 
## 
## Head/Tail Series Data:
## 
## GMT 
##            QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted
## 2010-02-26  -0.03420135  -0.06380161  -0.02698056  -0.06076643
## 2010-03-26   0.07221302   0.05874383   0.09401280   0.04789049
## 2010-04-30   0.04687134   0.04388566   0.05887635   0.02412609
##            TLT.Adjusted IYR.Adjusted GLD.Adjusted
## 2010-02-26  0.001352959  -0.02074288  -0.01589963
## 2010-03-26  0.002305498   0.10382496   0.01351946
## 2010-04-30 -0.006369374   0.06679530   0.02627517
## GMT 
##            QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted
## 2019-02-22   0.05966021  0.049246767   0.07393317   0.03785831
## 2019-03-29   0.04132692  0.006866158   0.01431922   0.02583418
## 2019-04-17   0.05061341  0.032986620   0.01572982   0.02569849
##            TLT.Adjusted IYR.Adjusted GLD.Adjusted
## 2019-02-22  0.005000788   0.08372629   0.02271989
## 2019-03-29  0.008624522   0.01898072  -0.01044759
## 2019-04-17  0.012315422   0.02623524  -0.01178415
## 
## Statistics:
## 
## $mean
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##  0.014133681  0.003059835  0.010153368  0.004480647  0.005625932 
## IYR.Adjusted GLD.Adjusted 
##  0.009619608  0.001523347 
## 
## $Cov
##               QQQ.Adjusted  EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## QQQ.Adjusted  0.0010422344  0.0008283752  0.0009959759  8.071929e-04
## EEM.Adjusted  0.0008283752  0.0016946976  0.0009409471  1.085878e-03
## IWM.Adjusted  0.0009959759  0.0009409471  0.0014946143  9.070356e-04
## EFA.Adjusted  0.0008071929  0.0010858778  0.0009070356  1.068404e-03
## TLT.Adjusted -0.0003689707 -0.0002580383 -0.0005406233 -3.932136e-04
## IYR.Adjusted  0.0005556875  0.0006927789  0.0007530784  5.557701e-04
## GLD.Adjusted -0.0001358086  0.0002691102 -0.0002097763 -8.983823e-05
##               TLT.Adjusted IYR.Adjusted  GLD.Adjusted
## QQQ.Adjusted -3.689707e-04 5.556875e-04 -1.358086e-04
## EEM.Adjusted -2.580383e-04 6.927789e-04  2.691102e-04
## IWM.Adjusted -5.406233e-04 7.530784e-04 -2.097763e-04
## EFA.Adjusted -3.932136e-04 5.557701e-04 -8.983823e-05
## TLT.Adjusted  8.257865e-04 8.653119e-05  3.526863e-04
## IYR.Adjusted  8.653119e-05 1.063552e-03  2.574033e-05
## GLD.Adjusted  3.526863e-04 2.574033e-05  1.143711e-03
## 
## $estimator
## [1] "covEstimator"
## 
## $mu
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##  0.014133681  0.003059835  0.010153368  0.004480647  0.005625932 
## IYR.Adjusted GLD.Adjusted 
##  0.009619608  0.001523347 
## 
## $Sigma
##               QQQ.Adjusted  EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## QQQ.Adjusted  0.0010422344  0.0008283752  0.0009959759  8.071929e-04
## EEM.Adjusted  0.0008283752  0.0016946976  0.0009409471  1.085878e-03
## IWM.Adjusted  0.0009959759  0.0009409471  0.0014946143  9.070356e-04
## EFA.Adjusted  0.0008071929  0.0010858778  0.0009070356  1.068404e-03
## TLT.Adjusted -0.0003689707 -0.0002580383 -0.0005406233 -3.932136e-04
## IYR.Adjusted  0.0005556875  0.0006927789  0.0007530784  5.557701e-04
## GLD.Adjusted -0.0001358086  0.0002691102 -0.0002097763 -8.983823e-05
##               TLT.Adjusted IYR.Adjusted  GLD.Adjusted
## QQQ.Adjusted -3.689707e-04 5.556875e-04 -1.358086e-04
## EEM.Adjusted -2.580383e-04 6.927789e-04  2.691102e-04
## IWM.Adjusted -5.406233e-04 7.530784e-04 -2.097763e-04
## EFA.Adjusted -3.932136e-04 5.557701e-04 -8.983823e-05
## TLT.Adjusted  8.257865e-04 8.653119e-05  3.526863e-04
## IYR.Adjusted  8.653119e-05 1.063552e-03  2.574033e-05
## GLD.Adjusted  3.526863e-04 2.574033e-05  1.143711e-03
Data2 <- portfolioData(lppData2)
getStatistics(Data2)
## $mean
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##  0.014133681  0.003059835  0.010153368  0.004480647  0.005625932 
## IYR.Adjusted GLD.Adjusted 
##  0.009619608  0.001523347 
## 
## $Cov
##               QQQ.Adjusted  EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## QQQ.Adjusted  0.0010422344  0.0008283752  0.0009959759  8.071929e-04
## EEM.Adjusted  0.0008283752  0.0016946976  0.0009409471  1.085878e-03
## IWM.Adjusted  0.0009959759  0.0009409471  0.0014946143  9.070356e-04
## EFA.Adjusted  0.0008071929  0.0010858778  0.0009070356  1.068404e-03
## TLT.Adjusted -0.0003689707 -0.0002580383 -0.0005406233 -3.932136e-04
## IYR.Adjusted  0.0005556875  0.0006927789  0.0007530784  5.557701e-04
## GLD.Adjusted -0.0001358086  0.0002691102 -0.0002097763 -8.983823e-05
##               TLT.Adjusted IYR.Adjusted  GLD.Adjusted
## QQQ.Adjusted -3.689707e-04 5.556875e-04 -1.358086e-04
## EEM.Adjusted -2.580383e-04 6.927789e-04  2.691102e-04
## IWM.Adjusted -5.406233e-04 7.530784e-04 -2.097763e-04
## EFA.Adjusted -3.932136e-04 5.557701e-04 -8.983823e-05
## TLT.Adjusted  8.257865e-04 8.653119e-05  3.526863e-04
## IYR.Adjusted  8.653119e-05 1.063552e-03  2.574033e-05
## GLD.Adjusted  3.526863e-04 2.574033e-05  1.143711e-03
## 
## $estimator
## [1] "covEstimator"
## 
## $mu
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##  0.014133681  0.003059835  0.010153368  0.004480647  0.005625932 
## IYR.Adjusted GLD.Adjusted 
##  0.009619608  0.001523347 
## 
## $Sigma
##               QQQ.Adjusted  EEM.Adjusted  IWM.Adjusted  EFA.Adjusted
## QQQ.Adjusted  0.0010422344  0.0008283752  0.0009959759  8.071929e-04
## EEM.Adjusted  0.0008283752  0.0016946976  0.0009409471  1.085878e-03
## IWM.Adjusted  0.0009959759  0.0009409471  0.0014946143  9.070356e-04
## EFA.Adjusted  0.0008071929  0.0010858778  0.0009070356  1.068404e-03
## TLT.Adjusted -0.0003689707 -0.0002580383 -0.0005406233 -3.932136e-04
## IYR.Adjusted  0.0005556875  0.0006927789  0.0007530784  5.557701e-04
## GLD.Adjusted -0.0001358086  0.0002691102 -0.0002097763 -8.983823e-05
##               TLT.Adjusted IYR.Adjusted  GLD.Adjusted
## QQQ.Adjusted -3.689707e-04 5.556875e-04 -1.358086e-04
## EEM.Adjusted -2.580383e-04 6.927789e-04  2.691102e-04
## IWM.Adjusted -5.406233e-04 7.530784e-04 -2.097763e-04
## EFA.Adjusted -3.932136e-04 5.557701e-04 -8.983823e-05
## TLT.Adjusted  8.257865e-04 8.653119e-05  3.526863e-04
## IYR.Adjusted  8.653119e-05 1.063552e-03  2.574033e-05
## GLD.Adjusted  3.526863e-04 2.574033e-05  1.143711e-03
tgPortfolio2 <- tangencyPortfolio(lppAssets2)
str(tgPortfolio2)
## Formal class 'fPORTFOLIO' [package "fPortfolio"] with 7 slots
##   ..@ call       : language maxratioPortfolio(data = data, spec = spec, constraints = constraints)
##   ..@ data       :Formal class 'fPFOLIODATA' [package "fPortfolio"] with 3 slots
##   .. .. ..@ data      :List of 3
##   .. .. .. ..$ series :Time Series:          
##  Name:               object
## Data Matrix:        
##  Dimension:          111 7
##  Column Names:       QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted IYR.Adjusted GLD.Adjusted
##  Row Names:          2010-02-26  ...  2019-04-17
## Positions:          
##  Start:              2010-02-26
##  End:                2019-04-17
## With:               
##  Format:             %Y-%m-%d
##  FinCenter:          GMT
##  Units:              QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted IYR.Adjusted GLD.Adjusted
##  Title:              Time Series Object
##  Documentation:      Thu Apr 18 11:55:46 2019
##   .. .. .. ..$ nAssets: int 7
##   .. .. .. ..$ names  : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ statistics:List of 5
##   .. .. .. ..$ mean     : Named num [1:7] 0.01413 0.00306 0.01015 0.00448 0.00563 ...
##   .. .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ Cov      : num [1:7, 1:7] 0.001042 0.000828 0.000996 0.000807 -0.000369 ...
##   .. .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. .. ..$ : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. .. .. ..$ : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ estimator: chr "covEstimator"
##   .. .. .. ..$ mu       : Named num [1:7] 0.01413 0.00306 0.01015 0.00448 0.00563 ...
##   .. .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ Sigma    : num [1:7, 1:7] 0.001042 0.000828 0.000996 0.000807 -0.000369 ...
##   .. .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. .. ..$ : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. .. .. ..$ : chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ tailRisk  : list()
##   ..@ spec       :Formal class 'fPFOLIOSPEC' [package "fPortfolio"] with 5 slots
##   .. .. ..@ model    :List of 5
##   .. .. .. ..$ type     : chr "MV"
##   .. .. .. ..$ optimize : chr "minRisk"
##   .. .. .. ..$ estimator: chr "covEstimator"
##   .. .. .. ..$ tailRisk : list()
##   .. .. .. ..$ params   :List of 1
##   .. .. .. .. ..$ alpha: num 0.05
##   .. .. ..@ portfolio:List of 6
##   .. .. .. ..$ weights        : num [1:7] 0.554 0 0 0 0.446 ...
##   .. .. .. .. ..- attr(*, "invest")= num 1
##   .. .. .. ..$ targetReturn   : logi NA
##   .. .. .. ..$ targetRisk     : logi NA
##   .. .. .. ..$ riskFreeRate   : num 0
##   .. .. .. ..$ nFrontierPoints: num 50
##   .. .. .. ..$ status         : num 0
##   .. .. ..@ optim    :List of 5
##   .. .. .. ..$ solver   : chr "solveRquadprog"
##   .. .. .. ..$ objective: chr [1:3] "portfolioObjective" "portfolioReturn" "portfolioRisk"
##   .. .. .. ..$ options  :List of 1
##   .. .. .. .. ..$ meq: num 2
##   .. .. .. ..$ control  : list()
##   .. .. .. ..$ trace    : logi FALSE
##   .. .. ..@ messages :List of 2
##   .. .. .. ..$ messages: logi FALSE
##   .. .. .. ..$ note    : chr ""
##   .. .. ..@ ampl     :List of 5
##   .. .. .. ..$ ampl    : logi FALSE
##   .. .. .. ..$ project : chr "ampl"
##   .. .. .. ..$ solver  : chr "ipopt"
##   .. .. .. ..$ protocol: logi FALSE
##   .. .. .. ..$ trace   : logi FALSE
##   ..@ constraints:Formal class 'fPFOLIOCON' [package "fPortfolio"] with 16 slots
##   .. .. ..@ stringConstraints  : chr "LongOnly"
##   .. .. ..@ minWConstraints    : Named num [1:7] 0 0 0 0 0 0 0
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ maxWConstraints    : Named num [1:7] 1 1 1 1 1 1 1
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ eqsumWConstraints  : num [1, 1:8] -1 -1 -1 -1 -1 -1 -1 -1
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : chr "Budget"
##   .. .. .. .. ..$ : chr [1:8] "ceq" "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" ...
##   .. .. .. ..- attr(*, "na.action")= 'omit' Named num 1
##   .. .. .. .. ..- attr(*, "names")= chr "Return"
##   .. .. ..@ minsumWConstraints : logi [1, 1] NA
##   .. .. ..@ maxsumWConstraints : logi [1, 1] NA
##   .. .. ..@ minBConstraints    : Named num [1:7] -Inf -Inf -Inf -Inf -Inf ...
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ maxBConstraints    : Named num [1:7] 1 1 1 1 1 1 1
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ listFConstraints   : list()
##   .. .. ..@ minFConstraints    : num(0) 
##   .. .. ..@ maxFConstraints    : num(0) 
##   .. .. ..@ minBuyinConstraints: Named num [1:7] 0 0 0 0 0 0 0
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ maxBuyinConstraints: Named num [1:7] 1 1 1 1 1 1 1
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ nCardConstraints   : int 7
##   .. .. ..@ minCardConstraints : Named num [1:7] 0 0 0 0 0 0 0
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. ..@ maxCardConstraints : Named num [1:7] 1 1 1 1 1 1 1
##   .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   ..@ portfolio  :Formal class 'fPFOLIOVAL' [package "fPortfolio"] with 2 slots
##   .. .. ..@ portfolio:List of 6
##   .. .. .. ..$ weights       : Named num [1:7] 0.554 0 0 0 0.446 ...
##   .. .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ covRiskBudgets: Named num [1:7] 0.757 0 0 0 0.243 ...
##   .. .. .. .. ..- attr(*, "names")= chr [1:7] "QQQ.Adjusted" "EEM.Adjusted" "IWM.Adjusted" "EFA.Adjusted" ...
##   .. .. .. ..$ targetReturn  : Named num [1:2] 0.0103 0.0103
##   .. .. .. .. ..- attr(*, "names")= chr [1:2] "mean" "mu"
##   .. .. .. ..$ targetRisk    : Named num [1:4] 0.0174 0.0174 0.0314 0.0263
##   .. .. .. .. ..- attr(*, "names")= chr [1:4] "Cov" "Sigma" "CVaR" "VaR"
##   .. .. .. ..$ targetAlpha   : num 0.05
##   .. .. .. ..$ status        : num 0
##   .. .. ..@ messages : list()
##   ..@ title      : chr "Tangency Portfolio"
##   ..@ description: chr "Thu Apr 18 11:55:46 2019 by user: Setsnee"
print(tgPortfolio2)
## 
## Title:
##  MV Tangency Portfolio 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       LongOnly 
## 
## Portfolio Weights:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.5537       0.0000       0.0000       0.0000       0.4463 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.0000 
## 
## Covariance Risk Budgets:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.7571       0.0000       0.0000       0.0000       0.2429 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.0000 
## 
## Target Returns and Risks:
##   mean    Cov   CVaR    VaR 
## 0.0103 0.0174 0.0314 0.0263 
## 
## Description:
##  Thu Apr 18 11:55:46 2019 by user: Setsnee
mvPortfolio2 <- minvariancePortfolio(lppAssets2)
print(mvPortfolio2)
## 
## Title:
##  MV Minimum Variance Portfolio 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       LongOnly 
## 
## Portfolio Weights:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.1127       0.0000       0.1482       0.1748       0.4546 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.1096 
## 
## Covariance Risk Budgets:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.1127       0.0000       0.1482       0.1748       0.4546 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.1096 
## 
## Target Returns and Risks:
##   mean    Cov   CVaR    VaR 
## 0.0066 0.0150 0.0309 0.0237 
## 
## Description:
##  Thu Apr 18 11:55:46 2019 by user: Setsnee
globminSpec2 <- portfolioSpec()
shortConstraints2 <- c("minW[1:3]=-999", "maxW[1:3]=+999")
mvPortfolio.short2 <- minvariancePortfolio(lppAssets2, spec = globminSpec, constraints = shortConstraints2 )
print(mvPortfolio.short2)
## 
## Title:
##  MV Minimum Variance Portfolio 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       minW maxW 
## 
## Portfolio Weights:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.1017      -0.2134       0.1556       0.3660       0.4276 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.1625 
## 
## Covariance Risk Budgets:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.1017      -0.2134       0.1556       0.3660       0.4276 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.1625 
## 
## Target Returns and Risks:
##   mean    Cov   CVaR    VaR 
## 0.0067 0.0141 0.0282 0.0219 
## 
## Description:
##  Thu Apr 18 11:55:46 2019 by user: Setsnee
weightsPie(mvPortfolio.short2, radius = 0.7)
text2 <- "Global Minimum Risk Portfolio"
mtext(text2, side = 3, line = 1.5, font = 2, cex = 0.7, adj = 0)

weightedReturnsPie(mvPortfolio.short2, radius = 0.8, legend = FALSE)

covRiskBudgetsPie(mvPortfolio.short2, radius = 0.9, legend = FALSE)

Spec2<-portfolioSpec()
setTargetReturn(Spec)<- 0.007
efficientPortfolio.short2 <- efficientPortfolio(lppAssets2, spec = Spec, constraints = shortConstraints2 )
print(efficientPortfolio.short2)
## 
## Title:
##  MV Efficient Portfolio 
##  Estimator:         covEstimator 
##  Solver:            solveRquadprog 
##  Optimize:          minRisk 
##  Constraints:       minW maxW 
## 
## Portfolio Weights:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.1378      -0.2142       0.1511       0.3400       0.4286 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.1566 
## 
## Covariance Risk Budgets:
## QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted TLT.Adjusted 
##       0.1456      -0.2075       0.1549       0.3332       0.4240 
## IYR.Adjusted GLD.Adjusted 
##       0.0000       0.1498 
## 
## Target Returns and Risks:
##   mean    Cov   CVaR    VaR 
## 0.0070 0.0142 0.0276 0.0218 
## 
## Description:
##  Thu Apr 18 11:55:46 2019 by user: Setsnee
#5. Download Fama/French 3 factors models monthly data and redo question 
options(digits=5)
FF_data = read.csv("~/F-F_Research_Data_Factors.CSV")
head(FF_data)
##        X Mkt.RF   SMB   HML   RF
## 1 192607   2.96  -2.3 -2.87 0.22
## 2 192608   2.64  -1.4  4.19 0.25
## 3 192609   0.36 -1.32  0.01 0.23
## 4 192610  -3.24  0.04  0.51 0.32
## 5 192611   2.53  -0.2 -0.35 0.31
## 6 192612   2.62 -0.04 -0.02 0.28
names(FF_data)
## [1] "X"      "Mkt.RF" "SMB"    "HML"    "RF"
attach(FF_data)
library("Ecdat")
## Loading required package: Ecfun
## 
## Attaching package: 'Ecfun'
## The following object is masked from 'package:base':
## 
##     sign
## 
## Attaching package: 'Ecdat'
## The following object is masked from 'package:datasets':
## 
##     Orange
library("robust")
## Loading required package: fit.models
stocks=cbind(N=Mkt.RF,SMB,HML)
fit = lm(cbind(Mkt.RF,SMB,HML)~RF)
options(digits=3)
SMB
##    [1] -2.3   -1.4   -1.32  0.04   -0.2   -0.04  -0.56  -0.1   -1.6  
##   [10] 0.43   1.41   0.47   -3.23  -0.72  -3.57  2.13   2.76   0.93  
##   [19] 4.25   -2.03  -0.26  3.82   2.98   -3.5   -1.35  -2.07  2.18  
##   [28] 2.27   -1.81  -0.85  -3.55  -0.39  -4.78  -0.99  -5.46  -2.17 
##   [37] -3.88  -9.52  1.17   -4.08  -1.91  -4.2   3.58   0.12   3.44  
##   [46] -0.17  -2.04  -3.22  -0.37  -2.22  -2.22  -0.1   2.21   -4.68 
##   [55] 3.81   3.39   3.07   -4.61  5.16   -5.38  1.43   -1.97  0.56  
##   [64] -1.87  4.3    -0.56  3.94   -2.77  2.27   1.44   3.72   0.35  
##   [73] -4.44  14.29  -2.43  -2.76  2.08   -8.27  0.69   -2.75  3.9   
##   [82] 4.56   36.7   8.67   -1.01  -5.45  -0.32  -0.08  -6.48  0.66  
##   [91] 12.53  5.19   2.51   2.8    -0.26  -2.14  -6.94  5.42   -1.52 
##  [100] 1.24   6.49   3.08   1.07   0.42   -3.54  -1.56  -3.34  -2.51 
##  [109] 1.47   6.28   1.57   2.65   4.3    0.22   5.1    1.14   0.66  
##  [118] -6.03  0.81   -3.25  1.14   0.72   3.07   -2.39  9.01   3.61  
##  [127] 4.31   1.23   -1.78  -3.77  -0.66  -3.65  0.85   0.42   -6.89 
##  [136] 0.45   -3.65  -7.76  4.97   0.35   -4.24  6.37   -2.47  4.05  
##  [145] 6.66   -2.44  -2.72  5.83   -2.56  -1.8   -1.56  0.63   -4.76 
##  [154] 1.66   2.81   -1.02  4.32   -4.61  20.23  -0.01  -5.07  0.79  
##  [163] 0.24   2.51   1.25   3.92   -6.66  -2.13  1.01   -0.11  3.22  
##  [172] 0.28   1.94   -2.15  1      -1.57  0.1    -1.69  -0.66  1.32  
##  [181] 5.7    -0.41  -0.99  -2.02  -1.21  -2.98  7.52   1.72   1.78  
##  [190] -0.6   -3.05  -1.22  -0.16  -0.09  0.66   1.82   -1.54  -2.49 
##  [199] 8.78   4.84   5.03   2.06   4.41   -1.06  -2.41  -0.62  1.28  
##  [208] 0.58   -1.64  3.34   2.56   -0.1   1.71   -1.35  1.67   4.04  
##  [217] 0.55   2.41   0.47   -0.14  0.37   2.24   2.44   1.56   -1.61 
##  [226] 0.32   1.51   3.1    -1.46  1.61   1.71   2.46   4.16   2.12  
##  [235] 4.02   -0.73  0.31   2.37   1.46   -1.53  -2.06  -1.78  -4.41 
##  [244] 0.09   -0.4   0.06   2.18   0.68   -1.61  -3.97  -3.26  -0.31 
##  [253] 1.43   0.3    1.64   0.51   -1.74  -2.48  2.49   -1.71  0.13  
##  [262] -1.66  0.93   -1.86  -0.32  -1.1   -1.23  -1.5   -0.62  -2.8  
##  [271] 1.81   -1.89  2.48   -0.89  -0.77  -0.88  0.57   0.13   1.05  
##  [280] 1.03   -0.93  2.07   3.36   0.04   -1.41  1.99   -2.12  -2.38 
##  [289] 0.51   0.73   0.57   -0.58  -0.84  1.49   1.73   0.09   -0.64 
##  [298] -1.49  -0.01  -1.95  -1.99  0.99   1.9    -0.22  -0.29  -2.25 
##  [307] -0.61  0.79   -2.99  0.48   -1.01  -1.61  -0.4   1.18   1.15  
##  [316] -1.06  -0.71  -1.48  3.58   2.15   -0.19  0.28   -0.07  -1.86 
##  [325] -1.05  0.36   -0.85  -1.37  -1.29  -0.84  0.46   -0.17  -0.49 
##  [334] -3.48  0.39   0.41   1.07   2.66   -2.54  0.59   -2.62  2.14  
##  [343] 0.25   1.54   -0.66  -1.79  -0.29  -4.65  -1.36  -0.38  0.3   
##  [352] 1.5    -2.46  2.08   0.44   -1.04  -2.42  0.07   1.5    -1.46 
##  [361] -1.68  1.9    1.56   -0.09  -0.22  -0.03  3.4    -0.72  0.27  
##  [370] -1.6   -1.07  0.55   -0.76  0.06   0.08   -2.52  0.4    -0.93 
##  [379] 4.36   0.7    0.63   -0.59  2.24   -0.24  0.47   1.19   0.15  
##  [388] 1.13   2.06   -2.07  3.02   1.49   1.48   -0.58  -2.15  0.68  
##  [397] -0.32  -0.78  -0.09  1.43   1.24   -0.6   2.09   0.51   -0.51 
##  [406] 0.31   1.21   -0.22  -0.52  0.9    -1.12  -3.97  0.34   -1.56 
##  [415] 0.65   3.97   3.23   0.13   1.95   -2.48  -1.88  -1.81  -1.13 
##  [424] -1.96  1.03   -1.12  1.86   -1.18  0.23   -0.99  -3.02  -0.76 
##  [433] 1.61   1.25   -2.49  -4.01  2.58   -3.8   3.09   0.48   -2.51 
##  [442] -1.32  1.07   -0.26  -0.55  -0.95  -0.3   -0.54  -1.13  -1.96 
##  [451] -0.19  0.09   0.99   -1.36  -0.9   -0.26  0.23   0.09   -0.51 
##  [460] 0.45   0.61   -0.25  2.68   3.48   1.78   1.19   0.03   -4.35 
##  [469] 0.87   2.84   0.63   2.48   4.69   2.09   3.86   4.46   0.94  
##  [478] 3.43   -4.67  1.05   -0.38  -3.33  -1.1   -6.63  4.37   1.89  
##  [487] 8.47   3.36   1.74   0.6    2      6.01   3.08   0.47   3.1   
##  [496] 1.42   0.2    5.73   3.91   -2.95  -1.28  5.73   6.43   -0.17 
##  [505] -1.3   2.34   2.76   -0.47  2.36   3.44   -0.78  -3.89  -0.25 
##  [514] -0.88  -0.27  -5.39  -3.21  0.94   1.2    3.81   -2.53  -3.67 
##  [523] 2.9    -2.4   -2.32  -6.11  -4.52  -2.16  -0.53  1.53   8.59  
##  [532] -4.29  -4.07  2.96   7.36   1.85   2.54   -0.47  -1.08  -1.43 
##  [541] -1.51  -0.16  0.41   -1.8   -2.85  3.32   6.12   1.37   -0.26 
##  [550] 0.02   -2.79  0.34   -2.89  -4.09  -2.66  -2.74  -1.1   -1.86 
##  [559] -3.49  -4     -2.82  -4     -6.13  -2.95  7.94   -2.01  2.92  
##  [568] -0.23  -7.74  -5.26  9.77   0.08   2.49   -0.65  -2.98  -0.2  
##  [577] 0.92   -0.68  0.27   -3.52  -1.17  -4.84  11.01  0.16   3.76  
##  [586] -0.53  3.83   0.77   2.68   -3.24  -0.13  -4.03  -1.18  -0.75 
##  [595] 4.81   7.04   -1.19  -0.04  -1.24  -1.35  0.3    -2.02  0     
##  [604] 0.23   2.31   3      4.77   1.08   0.99   -0.12  1.17   2.13  
##  [613] 2.12   1.51   1.45   1.27   3.74   1.36   2.22   3.59   3.49  
##  [622] 0.4    4.56   1.72   0.28   5.06   -0.4   -9.91  3.02   1.25  
##  [631] 3.65   0.44   3.2    2.18   0.56   1.16   1.31   2.07   -0.28 
##  [640] -3.33  2.73   4.22   1.68   -1.81  -6.62  0.94   2.16   1.67  
##  [649] 4.25   3.92   0.85   2.43   -3.43  -0.26  3.01   -0.28  3.65  
##  [658] 4.41   1.98   -0.84  -2.21  -1.94  -2.7   2.14   -0.99  1.15  
##  [667] -1.44  0.48   -0.22  1.5    0.46   -0.4   0.85   -4.09  2.86  
##  [676] 2.38   4.8    -0.18  2.72   3.27   1.78   0.52   6.13   0.9   
##  [685] 1.47   -4.29  0.59   -3.6   2.04   -0.29  -0.44  -1.7   0.07  
##  [694] -1.2   0.04   -0.32  -2.22  -0.24  0.2    -1.22  -0.6   -0.6  
##  [703] 3.27   0.76   -1.17  0.15   -2.24  0.62   2.85   -0.35  -1.59 
##  [712] -1.56  0.23   -0.51  1.23   -0.64  -0.53  2.84   -1.32  -0.9  
##  [721] -3.33  -4.2   2.28   -2.41  -1.93  0.09   -1.8   3.48   0.37  
##  [730] -1.69  -0.52  -2.21  -0.7   -0.74  0.52   -8.38  2.78   0.14  
##  [739] -0.76  3.33   6.13   0.96   -2.63  2.16   -0.21  0.12   -1.33 
##  [748] -2.89  -1.77  1.89   -2.12  2.78   0.74   -0.55  0.04   -1.01 
##  [757] -4.02  0.47   0.3    -3.26  -1.28  -2.38  -1.3   1.02   1.52  
##  [766] -0.51  -2.54  1.4    -3.21  -3.59  -3.64  -5.53  0.34   0.78  
##  [775] 3.81   3.94   3.91   0.49   -0.33  0.07   -0.94  1.61   1.65  
##  [784] 0.91   -0.48  -2.22  8.48   0.88   -1.04  -6.12  0.39   -3.1  
##  [793] -0.43  -0.1   0.56   2.04   3.68   1.65   2.03   -3.43  0.24  
##  [802] -0.69  1.95   -0.29  0.94   0.3    3.11   1.45   -1.41  1.22  
##  [811] 0.11   2.7    -0.98  -0.92  -2.01  -0.48  -1.73  1.35   2.83  
##  [820] -2.35  0.27   0.04   -2.65  -0.67  -0.71  -0.62  -2.2   2.93  
##  [829] 2.09   1.58   -2.06  -3.74  -1.17  0.56   -2.68  1.9    1.29  
##  [838] 4.93   3.06   -3.6   -3.84  2.31   -0.9   -4.45  -3.91  3.21  
##  [847] -1.83  -2.9   -0.38  -5.66  4.91   1.31   -2.8   7.3    2.61  
##  [856] -0.7   -4.95  -2.36  -1.15  0.01   -0.93  0.22   -3.73  -3.16 
##  [865] -5.13  -5.3   -0.14  -3.3   1.08   -0.34  0.38   -5.67  -3.92 
##  [874] 3.97   3.43   3.06   2.7    -1.21  3.35   -6.89  7.43   7.2   
##  [883] 5.05   22.14  -17.28 -7.71  -5.01  14.03  -2.79  -1.13  -1.39 
##  [892] -3.76  -2.79  0.97   6.57   -0.74  0.34   0.52   2.6    6.05  
##  [901] -4.36  2.49   -6.11  7.61   -0.43  4.57   1.19   -1.1   4.24  
##  [910] 5.94   -3.22  4.26   -5.3   -2.43  2.57   -2.91  2.84   0     
##  [919] 1.39   -0.36  0.9    0.55   4.7    1.66   5.35   2.69   0.77  
##  [928] 2.84   2.16   -3.07  2.76   -1.43  1.76   -2.1   -0.18  2.23  
##  [937] -3.79  -1.58  3.04   0.31   3.9    0.13   -1.52  -0.5   -1.41 
##  [946] -4     2.87   2.59   2.93   -0.92  -0.58  -1.21  0.91   -0.46 
##  [955] 5.42   -0.38  3.55   -1.34  -3.04  -0.35  -4.08  0.9    -1.37 
##  [964] 1.73   0.86   -1.1   0.1    1.32   -0.06  -2.06  0.03   0.77  
##  [973] -2.51  -0.13  -2.29  0.22   -2.63  0.2    -0.89  -0.23  0.94  
##  [982] -1.64  3.21   1.27   2.47   3.61   -1.13  -2.33  -2.99  3.59  
##  [991] -0.01  0.17   -0.09  4.83   -2.33  2.61   2.07   -0.9   2.45  
## [1000] -4.22  -2.49  6.11   0.38   1.2    1.42   4.98   0.05   -1.97 
## [1009] 0.16   -3     3.92   1.15   3.7    0.7    -2.47  1.52   2.6   
## [1018] -0.34  -0.7   -0.18  -1.31  -3.06  -3.48  3.41   -0.17  -0.71 
## [1027] 2.15   -1.75  -0.61  -0.52  0.02   0.77   -2.58  0.41   0.5   
## [1036] -1.14  0.59   1.47   0.39   -0.45  0.79   -2.44  1.67   1.22  
## [1045] 1.86   0.3    2.94   -1.49  1.24   -0.5   0.87   0.33   -1.89 
## [1054] -4.25  -1.83  3.06   -4.23  0.37   -3.82  4.23   -2.06  2.54  
## [1063] -0.57  0.53   3.05   -2.97  0.94   2.81   -4.15  0.49   -2.64 
## [1072] -1.98  3.64   -2.81  -3.39  0.78   0.89   0.67   -0.26  0.65  
## [1081] 2.64   1.17   2.01   -4.36  5.48   0.08   -1.05  -1.99  1.2   
## [1090] 0.73   -2.54  2.15   -1.42  -1.71  4.53   -1.95  -0.63  -1.27 
## [1099] -3.06  0.28                 SMB    -2.46  4.2    -30.8  -5.13 
## [1108] 3.53   4.67   49.07  25.44  10.05  17.87  -14    9.35   5.85  
## [1117] 0.79   -4.04  5.05   33.35  17.98  25.56  -3.79  -7.08  -9.14 
## [1126] 3.93   0.93   -4.93  -6.66  -1.16  -2.18  -6.71  -1.17  -2.72 
## [1135] 14.81  5.43   -2.78  0.16   -8.59  -5.82  -1.02  21.8   2.61  
## [1144] 51.24  24.5   -13.98 -11.82 5.62   -11.94 -23.46 -0.52  15.24 
## [1153] 14.59  22.93  14.43  21.71  5.58   7.21   8.7    13.8   -8.31 
## [1162] 0.29   -9.5   -10.99 5.77   -12.53 -14.22 16.25  7.6    5.81  
## [1171] -1.13  -9.1   -3.8   -6.82  -25.97 15.26  -1.36  18.05  4.7   
## [1180] 26.71  4.87   -2.04  0.24   -7.19  3.21   9.22   13.8   -6    
## [1189] -1.15  7.27   -8     -3.94  6.6    -4.84               
## 742 Levels:  -0.01 -0.03 -0.04 -0.06 -0.07 -0.08 -0.09 -0.1 -0.11 ... SMB
pairs(cbind(Mkt.RF,SMB,HML))

cor(fit$residuals)
##         Mkt.RF    SMB     HML
## Mkt.RF 1.00000 0.1934 0.00884
## SMB    0.19337 1.0000 0.08313
## HML    0.00884 0.0831 1.00000
covRob(fit$residuals,cor=F)
## Call:
## covRob(data = fit$residuals, corr = F)
## 
## Robust Estimate of Covariance: 
##        Mkt.RF   SMB   HML
## Mkt.RF  63495 14602 -1411
## SMB     14602 45913  3059
## HML     -1411  3059 44231
## 
## Robust Estimate of Location: 
## Mkt.RF    SMB    HML 
##  0.183 -2.329 -2.034
cor.test(fit$residuals[,1], fit$residuals[,2])
## 
##  Pearson's product-moment correlation
## 
## data:  fit$residuals[, 1] and fit$residuals[, 2]
## t = 7, df = 1000, p-value = 2e-11
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.138 0.247
## sample estimates:
##   cor 
## 0.193
cor.test(fit$residuals[,1], fit$residuals[,3])
## 
##  Pearson's product-moment correlation
## 
## data:  fit$residuals[, 1] and fit$residuals[, 3]
## t = 0.3, df = 1000, p-value = 0.8
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.0479  0.0655
## sample estimates:
##     cor 
## 0.00884
cor.test(fit$residuals[,2], fit$residuals[,3])
## 
##  Pearson's product-moment correlation
## 
## data:  fit$residuals[, 2] and fit$residuals[, 3]
## t = 3, df = 1000, p-value = 0.004
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.0266 0.1392
## sample estimates:
##    cor 
## 0.0831
pairs(fit$residuals)

n=dim(FF_data)[1]
sigF = as.matrix(var(cbind(Mkt.RF,SMB,HML)))
sigF
##        Mkt.RF   SMB   HML
## Mkt.RF  62961 11879   904
## SMB     11879 44788  4442
## HML       904  4442 46197
bbeta = as.matrix(fit$coef)
bbeta = t( bbeta[-1,])
bbeta
##        RF-0.01 RF-0.02 RF-0.03 RF-0.06 RF0 RF0.01 RF0.02 RF0.03 RF0.04
## Mkt.RF     325     406     132      91 424    491    444    483    493
## SMB        278     539     224     213 334    411    419    349    319
## HML        406     218     218     106 228    374    375    375    338
##        RF0.05 RF0.06 RF0.07 RF0.08 RF0.09 RF0.1 RF0.11 RF0.12 RF0.13
## Mkt.RF    500    355    471    499    485   524    488    307    506
## SMB       471    279    420    239    338   320    330    302    323
## HML       401    335    363    365    260   340    310    230    346
##        RF0.14 RF0.15 RF0.16 RF0.17 RF0.18 RF0.19 RF0.2 RF0.21 RF0.22
## Mkt.RF    361    481    333    433    430    419   465    350    460
## SMB       343    362    269    345    370    272   263    304    346
## HML       251    382    293    288    194    358   275    272    306
##        RF0.23 RF0.24 RF0.25 RF0.26 RF0.27 RF0.28 RF0.29 RF0.3 RF0.31
## Mkt.RF    428    352    422    356    327    475    456   496    417
## SMB       397    288    279    271    307    334    250   313    305
## HML       351    322    340    261    358    386    269   385    315
##        RF0.32 RF0.33 RF0.34 RF0.35 RF0.36 RF0.37 RF0.38 RF0.39 RF0.4
## Mkt.RF    476    480    271    325    332    354    352    475   385
## SMB       330    497    354    442    393    351    303    327   342
## HML       314    340    334    397    398    273    332    280   350
##        RF0.41 RF0.42 RF0.43 RF0.44 RF0.45 RF0.46 RF0.47 RF0.48 RF0.49
## Mkt.RF    484    422    527    492    497    441    488    323    510
## SMB       401    329    341    353    425    336    309    255    408
## HML       265    313    301    259    417    351    397    440    266
##        RF0.5 RF0.51 RF0.52 RF0.53 RF0.54 RF0.55 RF0.56 RF0.57 RF0.58
## Mkt.RF   526    253    470    441    523    433    443    359    321
## SMB      373    300    287    296    438    209    430    257    373
## HML      491    399    370    400    291    442    321    428    433
##        RF0.59 RF0.6 RF0.61 RF0.62 RF0.63 RF0.64 RF0.65 RF0.66 RF0.67
## Mkt.RF    359   413    495    332    371    465    461    436    554
## SMB       462   283    377    301    581    419    240    229    232
## HML       404   389    315    377    342    275    288    273    278
##        RF0.68 RF0.69 RF0.7 RF0.71 RF0.72 RF0.73 RF0.74 RF0.75 RF0.76
## Mkt.RF    357    427   459    385     47    203    352    395    254
## SMB       332    361   392    212    374    212    441    190    264
## HML       286    123   323    517    634    488    548    280    597
##        RF0.77 RF0.78 RF0.79 RF0.8 RF0.81 RF0.82 RF0.83 RF0.86 RF0.87
## Mkt.RF    637    362    651   400    469    166    270    398    280
## SMB       546    413    363   369    408    299     23    281    355
## HML       387    275     64   425    444    440    116    645    278
##        RF0.89 RF0.92 RF0.95 RF0.96 RF0.98 RF0.99 RF1 RF1.02 RF1.04 RF1.05
## Mkt.RF     60    296    458    476     98    769  42    688    275    205
## SMB       151    403    607    324     19    577 104    601    603    432
## HML       395    710    200    434    635    244 381    707    721    353
##        RF1.06 RF1.07 RF1.08 RF1.1 RF1.13 RF1.15 RF1.2 RF1.21 RF1.24 RF1.26
## Mkt.RF    234    441    146   535    647    369   562    512    203    686
## SMB       401    247    669   649    484    512   561    504    204    441
## HML       492    366    550   290    223     38   667    256    370    438
##        RF1.28 RF1.31 RF1.35 RF1.49 RF1.54 RF1.57 RF1.6 RF1.65 RF1.66
## Mkt.RF    325    259    158    536    755    612   238    192    513
## SMB       159     23     75    316    522    340   614    676    339
## HML       675    577    685    309    515    703   409    730    614
##        RF1.82 RF10.38 RF10.54 RF11.24 RF14.71 RF2.13 RF2.41 RF2.46 RF2.66
## Mkt.RF     50     521     502     611     139    615    235    795     74
## SMB        98     594     735     698     722    375    320     99    227
## HML       322     113     516     236     597    722    172    135    296
##        RF2.73 RF2.9 RF2.95 RF2.98 RF3.12 RF3.14 RF3.51 RF3.54 RF3.56
## Mkt.RF    123   856    871    633    579    124    809    518    694
## SMB       353   703    696    176    267    222    728     87    658
## HML       744   527    494    739    394    314    595    751    312
##        RF3.83 RF3.84 RF3.9 RF3.93 RF4.21 RF4.39 RF4.66 RF4.68 RF4.75
## Mkt.RF    131    520   244    500    614    512    433    606    140
## SMB       528    167    95    595    707    699    345    524    287
## HML       529    486    58    723    333    169    177    273    512
##        RF4.76 RF4.8 RF4.86 RF5.08 RF5.12 RF5.21 RF5.26 RF5.47 RF5.6 RF5.8
## Mkt.RF    127   501    537    610    345    695    617    228   656   691
## SMB       569   380    241    521    597    438    341    165   439   523
## HML        57   518    331    596    729    620    524    138   430   745
##        RF5.89 RF6.16 RF6.35 RF6.52 RF6.58 RF6.93 RF7.18 RF7.72 RF7.81 RF8
## Mkt.RF    137    496    510    316    136    195    432    616    130 237
## SMB       116    356    702    166    169    240    520    384    171  48
## HML       647    746    519    593    335    525    364    464    335 748
##        RF8.37 RF8.8 RF9.85 RFRF
## Mkt.RF    605   525    306  873
## SMB       168   517    351  741
## HML       275   591    530  752
resig2 = apply((fit$resid)^2, 2, sum)/(n-3-1)
resig2 = diag(resig2)