'question 1'
## [1] "question 1"
library(plyr)
library(quantmod)
## Loading required package: xts
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: TTR
## Version 0.4-0 included new data defaults. See ?getSymbols.
tickers<-c("SPY", "QQQ", "EEM", "IWM", "EFA", "TLT", "IYR", "GLD")
data.env<-new.env()
l_ply(tickers, function(sym) try(getSymbols(sym, from="2010-01-01", env=data.env), silent=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.
stocks<- tickers[tickers %in% ls(data.env)]
data<- xts()
for(i in seq_along(stocks)){
  symbol<-stocks[i]
  data <- merge(data, Ad(get(symbol, envir=data.env)))
 }
data<- xts(coredata(data), order.by = as.Date(index(data), tz=""))
head(data)
##            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
'question 2'
## [1] "question 2"
library(fBasics)
## Loading required package: timeDate
## Loading required package: timeSeries
## 
## Attaching package: 'timeSeries'
## The following object is masked from 'package:zoo':
## 
##     time<-
## 
## Attaching package: 'fBasics'
## The following object is masked from 'package:TTR':
## 
##     volatility
sigma=cov(data)
std=sqrt(diag(sigma))
ones=rep(1,8)
one.vec=matrix(ones, ncol=1)
a=inv(sigma)%*%one.vec
b=t(one.vec)%*%a
mvp.w=a/as.numeric(b)
mvp.w
##                     [,1]
## SPY.Adjusted -0.49371905
## QQQ.Adjusted  0.37573497
## EEM.Adjusted  0.13361155
## IWM.Adjusted  0.06340693
## EFA.Adjusted  0.48794386
## TLT.Adjusted  0.07288760
## IYR.Adjusted  0.41012486
## GLD.Adjusted -0.04999072
mvp.ret<-sum((mvp.w)*colMeans(data))
mvp.ret
## [1] 12.65134
print(cov(data))
##              SPY.Adjusted QQQ.Adjusted EEM.Adjusted IWM.Adjusted
## SPY.Adjusted    3401.8926   2410.33475   125.942580   1846.05711
## QQQ.Adjusted    2410.3347   1731.70895    93.643142   1302.09670
## EEM.Adjusted     125.9426     93.64314    17.678257     73.43056
## IWM.Adjusted    1846.0571   1302.09670    73.430564   1019.96660
## EFA.Adjusted     473.8619    329.10445    23.997672    265.45829
## TLT.Adjusted     773.1779    537.76152    10.908745    403.03137
## IYR.Adjusted     797.9245    556.76620    24.078669    429.45478
## GLD.Adjusted    -551.9669   -370.66045     0.792119   -300.74451
##              EFA.Adjusted TLT.Adjusted IYR.Adjusted GLD.Adjusted
## SPY.Adjusted    473.86193    773.17793    797.92447  -551.966916
## QQQ.Adjusted    329.10445    537.76152    556.76620  -370.660454
## EEM.Adjusted     23.99767     10.90874     24.07867     0.792119
## IWM.Adjusted    265.45829    403.03137    429.45478  -300.744511
## EFA.Adjusted     76.31504     93.83577    108.23969   -83.109688
## TLT.Adjusted     93.83577    268.21760    209.17469   -78.081570
## IYR.Adjusted    108.23969    209.17469    201.51089  -119.296035
## GLD.Adjusted    -83.10969    -78.08157   -119.29604   335.055396
print(std)
## SPY.Adjusted QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted 
##    58.325745    41.613807     4.204552    31.936916     8.735848 
## TLT.Adjusted IYR.Adjusted GLD.Adjusted 
##    16.377350    14.195453    18.304518
'question 3'
## [1] "question 3"
data.weekly<-data[endpoints(data, on="weeks", k=1),]
library(fBasics)
sigma=cov(data.weekly)
std=sqrt(diag(sigma))
ones=rep(1,8)
one.vec=matrix(ones, ncol=1)
a=inv(sigma)%*%one.vec
b=t(one.vec)%*%a
mvp.w=a/as.numeric(b)
mvp.w
##                     [,1]
## SPY.Adjusted -0.49237335
## QQQ.Adjusted  0.37049779
## EEM.Adjusted  0.14678672
## IWM.Adjusted  0.06909011
## EFA.Adjusted  0.47167656
## TLT.Adjusted  0.07559435
## IYR.Adjusted  0.41061688
## GLD.Adjusted -0.05188906
mvp.ret<-sum((mvp.w)*colMeans(data.weekly))
mvp.ret
## [1] 12.65396
print(cov(data.weekly))
##              SPY.Adjusted QQQ.Adjusted EEM.Adjusted IWM.Adjusted
## SPY.Adjusted    3417.0088   2421.70264    127.46711   1852.71568
## QQQ.Adjusted    2421.7026   1740.31457     94.78025   1306.99096
## EEM.Adjusted     127.4671     94.78025     17.97815     74.16916
## IWM.Adjusted    1852.7157   1306.99096     74.16916   1022.84958
## EFA.Adjusted     475.4664    330.34008     24.35280    266.19307
## TLT.Adjusted     775.6326    539.56888     11.16196    404.06460
## IYR.Adjusted     801.7817    559.78527     24.47288    431.23153
## GLD.Adjusted    -555.3025   -373.34353      1.00087   -302.70342
##              EFA.Adjusted TLT.Adjusted IYR.Adjusted GLD.Adjusted
## SPY.Adjusted    475.46638    775.63261    801.78169   -555.30253
## QQQ.Adjusted    330.34008    539.56888    559.78527   -373.34353
## EEM.Adjusted     24.35280     11.16196     24.47288      1.00087
## IWM.Adjusted    266.19307    404.06460    431.23153   -302.70342
## EFA.Adjusted     76.61208     94.21768    108.67338    -83.14663
## TLT.Adjusted     94.21768    267.84553    209.66999    -79.01053
## IYR.Adjusted    108.67338    209.66999    202.39557   -119.87612
## GLD.Adjusted    -83.14663    -79.01053   -119.87612    336.61902
print(std)
## SPY.Adjusted QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted 
##    58.455186    41.717078     4.240065    31.982020     8.752833 
## TLT.Adjusted IYR.Adjusted GLD.Adjusted 
##    16.365987    14.226580    18.347180
'question 4'
## [1] "question 4"
data.monthly<- data[endpoints(data, on="months", k=1),]
library(fBasics)
sigma=cov(data.monthly)
std=sqrt(diag(sigma))
ones=rep(1,8)
one.vec=matrix(ones, ncol=1)
a=inv(sigma)%*%one.vec
b=t(one.vec)%*%a
mvp.w=a/as.numeric(b)
mvp.w
##                     [,1]
## SPY.Adjusted -0.48934914
## QQQ.Adjusted  0.36662497
## EEM.Adjusted  0.17000927
## IWM.Adjusted  0.06653477
## EFA.Adjusted  0.45576386
## TLT.Adjusted  0.07708740
## IYR.Adjusted  0.41304768
## GLD.Adjusted -0.05971881
mvp.ret<-sum((mvp.w)*colMeans(data.monthly))
mvp.ret
## [1] 11.99433
print(cov(data.monthly))
##              SPY.Adjusted QQQ.Adjusted EEM.Adjusted IWM.Adjusted
## SPY.Adjusted    3502.2075   2492.08504   133.688104   1883.24318
## QQQ.Adjusted    2492.0850   1797.33514    99.670951   1333.01922
## EEM.Adjusted     133.6881     99.67095    18.309770     76.58382
## IWM.Adjusted    1883.2432   1333.01922    76.583824   1031.44500
## EFA.Adjusted     485.9953    339.04825    25.023709    269.83824
## TLT.Adjusted     781.3176    545.27807    12.056095    404.84961
## IYR.Adjusted     820.5909    575.83181    26.037710    438.22649
## GLD.Adjusted    -564.2669   -381.21491     2.713118   -305.69449
##              EFA.Adjusted TLT.Adjusted IYR.Adjusted GLD.Adjusted
## SPY.Adjusted    485.99532    781.31764    820.59085  -564.266873
## QQQ.Adjusted    339.04825    545.27807    575.83181  -381.214908
## EEM.Adjusted     25.02371     12.05610     26.03771     2.713118
## IWM.Adjusted    269.83824    404.84961    438.22649  -305.694491
## EFA.Adjusted     77.85999     95.12721    110.91904   -82.608933
## TLT.Adjusted     95.12721    266.66468    210.33454   -82.138261
## IYR.Adjusted    110.91904    210.33454    206.12464  -120.697396
## GLD.Adjusted    -82.60893    -82.13826   -120.69740   341.428281
print(std)
## SPY.Adjusted QQQ.Adjusted EEM.Adjusted IWM.Adjusted EFA.Adjusted 
##    59.179452    42.394990     4.278992    32.116117     8.823831 
## TLT.Adjusted IYR.Adjusted GLD.Adjusted 
##    16.329871    14.357042    18.477778
'question 5'
## [1] "question 5"
options(digits=5)
firm_data1 = read.csv("~/F-F_Research_Data_Factors.CSV")
head(firm_data1)
##        X Mkt.RF   SMB   HML   RF
## 1 192607   2.96 -2.30 -2.87 0.22
## 2 192608   2.64 -1.40  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.20 -0.35 0.31
## 6 192612   2.62 -0.04 -0.02 0.28
names(firm_data1)
## [1] "X"      "Mkt.RF" "SMB"    "HML"    "RF"
attach(firm_data1)
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
stocks5=cbind(N=Mkt.RF,SMB,HML)
fit = lm(cbind(Mkt.RF,SMB,HML)~RF)
options(digits=3)
SMB
##    [1]  -2.30  -1.40  -1.32   0.04  -0.20  -0.04  -0.56  -0.10  -1.60
##   [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.50  -1.35  -2.07   2.18
##   [28]   2.27  -1.81  -0.85  -3.54  -0.39  -4.78  -0.99  -5.46  -2.17
##   [37]  -3.88  -9.52   1.17  -4.08  -1.91  -4.20   3.58   0.12   3.44
##   [46]  -0.17  -2.04  -3.22  -0.37  -2.22  -2.22  -0.10   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.30  -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.90
##   [82]   4.56  36.70   8.67  -1.01  -5.45  -0.32  -0.08  -6.48   0.66
##   [91]  12.53   5.19   2.51   2.80  -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.30   0.22   5.10   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.80  -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.00  -1.57   0.10  -1.69  -0.66   1.32
##  [181]   5.70  -0.41  -0.99  -2.02  -1.21  -2.98   7.52   1.72   1.78
##  [190]  -0.60  -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.10   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.10  -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.40   0.06   2.18   0.68  -1.61  -3.97  -3.26  -0.31
##  [253]   1.43   0.30   1.64   0.51  -1.74  -2.48   2.49  -1.71   0.13
##  [262]  -1.66   0.93  -1.86  -0.32  -1.10  -1.23  -1.50  -0.62  -2.80
##  [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.90  -0.22  -0.29  -2.25
##  [307]  -0.61   0.79  -2.99   0.48  -1.01  -1.61  -0.40   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.30
##  [352]   1.50  -2.46   2.08   0.44  -1.04  -2.42   0.07   1.50  -1.46
##  [361]  -1.68   1.90   1.56  -0.09  -0.22  -0.03   3.40  -0.72   0.27
##  [370]  -1.60  -1.07   0.55  -0.76   0.06   0.08  -2.52   0.40  -0.93
##  [379]   4.36   0.70   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.60   2.09   0.51  -0.51
##  [406]   0.31   1.21  -0.22  -0.52   0.90  -1.11  -3.95   0.35  -1.56
##  [415]   0.66   3.98   3.27   0.10   1.95  -2.47  -1.88  -1.75  -1.05
##  [424]  -1.61   1.24  -0.83   1.78  -1.16   0.53  -0.68  -3.33  -0.57
##  [433]   1.49   1.23  -2.43  -3.97   2.61  -3.80   3.06   0.50  -2.62
##  [442]  -1.31   1.12  -0.25  -0.56  -0.94  -0.31  -0.54  -1.13  -1.97
##  [451]  -0.19   0.10   0.99  -1.37  -0.90  -0.26   0.28   0.09  -0.51
##  [460]   0.43   0.61  -0.26   2.70   3.48   1.79   1.20   0.04  -4.35
##  [469]   0.87   2.81   0.61   2.48   4.68   2.08   3.89   4.54   0.94
##  [478]   3.45  -4.70   1.02  -0.44  -3.23  -1.07  -6.64   4.22   1.86
##  [487]   8.32   3.34   1.63   0.62   1.98   5.96   3.08   0.47   3.10
##  [496]   1.42   0.20   5.73   3.91  -2.95  -1.28   5.73   6.43  -0.17
##  [505]  -1.30   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.20   3.81  -2.53  -3.67
##  [523]   2.90  -2.40  -2.32  -6.11  -4.52  -2.16  -0.54   1.52   8.62
##  [532]  -4.28  -4.07   2.97   7.37   1.88   2.54  -0.49  -1.10  -1.42
##  [541]  -1.50  -0.16   0.41  -1.80  -2.85   3.32   6.12   1.37  -0.27
##  [550]   0.01  -2.79   0.33  -2.89  -4.09  -2.67  -2.74  -1.11  -1.86
##  [559]  -3.48  -3.99  -2.82  -3.99  -6.12  -2.95   7.91  -2.03   2.94
##  [568]  -0.23  -7.70  -5.29   9.76   0.05   2.51  -0.71  -3.01  -0.20
##  [577]   0.92  -0.68   0.27  -3.51  -1.17  -4.84  11.01   0.16   3.75
##  [586]  -0.54   3.83   0.76   2.69  -3.20  -0.13  -4.02  -1.19  -0.76
##  [595]   4.80   7.03  -1.17  -0.03  -1.24  -1.35   0.31  -2.01  -0.01
##  [604]   0.25   2.32   3.01   4.78   1.08   0.99  -0.12   1.18   2.13
##  [613]   2.12   1.52   1.45   1.27   3.72   1.35   2.22   3.59   3.48
##  [622]   0.40   4.56   1.69   0.26   5.06  -0.39  -9.88   3.01   1.24
##  [631]   3.66   0.45   3.19   2.18   0.57   1.17   1.26   2.08  -0.25
##  [640]  -3.34   2.74   4.17   1.65  -1.82  -6.64   0.97   2.16   1.67
##  [649]   4.25   3.92   0.89   2.47  -3.45  -0.28   3.00  -0.31   3.58
##  [658]   4.42   2.00  -0.85  -2.18  -1.95  -2.66   2.13  -0.96   1.17
##  [667]  -1.29   0.49  -0.19   1.51   0.47  -0.40   0.84  -4.11   2.88
##  [676]   2.35   4.77  -0.18   2.70   3.23   1.77   0.53   6.16   0.91
##  [685]   1.46  -4.30   0.56  -3.60   2.04  -0.29  -0.43  -1.71   0.07
##  [694]  -1.20   0.03  -0.32  -2.21  -0.25   0.20  -1.20  -0.62  -0.60
##  [703]   3.27   0.76  -1.15   0.14  -2.25   0.65   2.85  -0.34  -1.58
##  [712]  -1.57   0.23  -0.49   1.22  -0.65  -0.52   2.84  -1.32  -0.91
##  [721]  -3.38  -4.17   2.28  -2.48  -1.92   0.08  -1.81   3.49   0.37
##  [730]  -1.69  -0.53  -2.18  -0.67  -0.72   0.52  -8.43   2.77   0.13
##  [739]  -0.77   3.36   6.16   0.96  -2.64   2.16  -0.21   0.04  -1.25
##  [748]  -2.90  -1.74   1.95  -2.14   2.76   0.74  -0.59  -0.04  -1.01
##  [757]  -4.02   0.50   0.28  -3.30  -1.24  -2.41  -1.29   1.03   1.52
##  [766]  -0.50  -2.57   1.43  -3.21  -3.58  -3.67  -5.51   0.33   0.79
##  [775]   3.79   3.95   3.89   0.50  -0.34   0.07  -0.93   1.59   1.63
##  [784]   0.90  -0.48  -2.24   8.47   0.88  -1.03  -6.12   0.39  -3.09
##  [793]  -0.44  -0.12   0.56   2.05   3.70   1.64   2.03  -3.43   0.23
##  [802]  -0.70   1.96  -0.31   0.93   0.32   3.11   1.45  -1.43   1.22
##  [811]   0.14   2.73  -0.98  -0.93  -2.02  -0.45  -1.73   1.34   2.82
##  [820]  -2.34   0.27   0.04  -2.65  -0.67  -0.70  -0.62  -2.20   2.93
##  [829]   2.09   1.60  -2.10  -3.74  -1.17   0.57  -2.62   1.88   1.30
##  [838]   4.92   3.04  -3.58  -3.83   2.30  -0.88  -4.44  -3.89   3.20
##  [847]  -1.84  -2.90  -0.38  -5.66   4.89   1.32  -2.80   7.31   2.61
##  [856]  -0.68  -4.94  -2.35  -1.15   0.00  -0.94   0.21  -3.75  -3.16
##  [865]  -5.12  -5.30  -0.12  -3.32   1.07  -0.33   0.39  -5.68  -3.94
##  [874]   3.99   3.42   3.06   2.66  -1.27   3.33  -6.94   7.38   7.15
##  [883]   4.95  21.71 -16.87  -7.75  -5.11  13.86  -2.79  -1.13  -1.39
##  [892]  -3.76  -2.79   0.97   6.57  -0.74   0.34   0.52   2.60   6.05
##  [901]  -4.35   2.49  -6.13   7.63  -0.41   4.57   1.19  -1.10   4.23
##  [910]   5.94  -3.21   4.26  -5.30  -2.44   2.57  -2.90   2.84   0.00
##  [919]   1.39  -0.34   0.89   0.57   4.70   1.67   5.25   2.60   0.79
##  [928]   2.68   2.01  -3.01   2.80  -1.43   1.75  -2.06  -0.21   2.26
##  [937]  -3.80  -1.63   3.03   0.31   3.91   0.12  -1.51  -0.51  -1.39
##  [946]  -3.99   2.89   2.62   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.90  -1.37
##  [964]   1.73   0.86  -1.10   0.10   1.32  -0.06  -2.06   0.03   0.77
##  [973]  -2.51  -0.13  -2.29   0.22  -2.63   0.20  -0.89  -0.23   0.94
##  [982]  -1.64   3.22   1.27   2.47   3.61  -1.13  -2.34  -2.99   3.59
##  [991]  -0.01   0.16  -0.08   4.83  -2.33   2.61   2.07  -0.90   2.45
## [1000]  -4.23  -2.49   6.11   0.38   1.21   1.43   4.98   0.05  -1.98
## [1009]   0.17  -3.00   3.92   1.14   3.71   0.69  -2.46   1.52   2.60
## [1018]  -0.35  -0.71  -0.17  -1.30  -3.06  -3.49   3.41  -0.17  -0.71
## [1027]   2.15  -1.75  -0.60  -0.51   0.02   0.77  -2.59   0.42   0.51
## [1036]  -1.14   0.58   1.47   0.39  -0.45   0.78  -2.42   1.67   1.22
## [1045]   1.86   0.30   2.93  -1.49   1.24  -0.50   0.86   0.32  -1.89
## [1054]  -4.25  -1.85   3.07  -4.24   0.36  -3.83   4.23  -2.09   2.54
## [1063]  -0.56   0.48   3.02  -2.97   0.87   2.83  -4.14   0.48  -2.64
## [1072]  -1.97   3.64  -2.82  -3.36   0.78   0.87   0.68  -0.26   0.65
## [1081]   2.65   1.14   2.01  -4.36   5.51   0.05  -1.01  -2.00   1.19
## [1090]   0.73  -2.54   2.15  -1.40  -1.69   4.52  -1.94  -0.66  -1.26
## [1099]  -3.03   0.28   3.93   1.10   5.24   1.17  -2.17   1.27  -2.35
## [1108]  -4.69  -0.78  -2.58   3.02   2.03
pairs(cbind(Mkt.RF,SMB,HML))

cor(fit$residuals)
##        Mkt.RF   SMB   HML
## Mkt.RF  1.000 0.318 0.237
## SMB     0.318 1.000 0.125
## HML     0.237 0.125 1.000
covRob(fit$residuals,cor=F)
## Call:
## covRob(data = fit$residuals, corr = F)
## 
## Robust Estimate of Covariance: 
##        Mkt.RF    SMB    HML
## Mkt.RF 14.732  2.147 -0.155
## SMB     2.147  5.976 -0.188
## HML    -0.155 -0.188  5.052
## 
## Robust Estimate of Location: 
##  Mkt.RF     SMB     HML 
##  0.3022 -0.0613 -0.2316
cor.test(fit$residuals[,1], fit$residuals[,2])
## 
##  Pearson's product-moment correlation
## 
## data:  fit$residuals[, 1] and fit$residuals[, 2]
## t = 10, df = 1000, p-value <2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.264 0.370
## sample estimates:
##   cor 
## 0.318
cor.test(fit$residuals[,1], fit$residuals[,3])
## 
##  Pearson's product-moment correlation
## 
## data:  fit$residuals[, 1] and fit$residuals[, 3]
## t = 8, df = 1000, p-value = 1e-15
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.181 0.292
## sample estimates:
##   cor 
## 0.237
cor.test(fit$residuals[,2], fit$residuals[,3])
## 
##  Pearson's product-moment correlation
## 
## data:  fit$residuals[, 2] and fit$residuals[, 3]
## t = 4, df = 1000, p-value = 3e-05
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.0672 0.1829
## sample estimates:
##   cor 
## 0.125
pairs(fit$residuals)

n=dim(firm_data1)[1]
sigF = as.matrix(var(cbind(Mkt.RF,SMB,HML)))
sigF
##        Mkt.RF   SMB   HML
## Mkt.RF  28.46  5.45  4.36
## SMB      5.45 10.17  1.38
## HML      4.36  1.38 12.11
bbeta = as.matrix(fit$coef)
bbeta = t( bbeta[-1,])
bbeta
##      Mkt.RF    SMB   HML
## [1,]  -1.38 -0.641 0.353
resig2 = apply((fit$resid)^2, 2, sum)/(n-3-1)
resig2 = diag(resig2)
cov_ff3 = sigF
cov_ff3
##        Mkt.RF   SMB   HML
## Mkt.RF  28.46  5.45  4.36
## SMB      5.45 10.17  1.38
## HML      4.36  1.38 12.11
cov2cor(cov_ff3)
##        Mkt.RF   SMB   HML
## Mkt.RF  1.000 0.320 0.235
## SMB     0.320 1.000 0.124
## HML     0.235 0.124 1.000
cov_hist = cov(stocks5)
cov2cor(cov_hist)
##         N   SMB   HML
## N   1.000 0.320 0.235
## SMB 0.320 1.000 0.124
## HML 0.235 0.124 1.000
one.vec=rep(1,3)
a = solve(cov_ff3)%*%one.vec
b = t(one.vec)%*%a
mvp.w =a / as.numeric(b)
mvp.w
##          [,1]
## Mkt.RF 0.0507
## SMB    0.5188
## HML    0.4305
a1 = solve(cov_hist)%*%one.vec
b1 = t(one.vec)%*%a1
mvp.w1 =a1 / as.numeric(b1)
mvp.w1
##       [,1]
## N   0.0507
## SMB 0.5188
## HML 0.4305