## Loading required package: lubridate
## 
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
## Loading required package: PerformanceAnalytics
## Loading required package: xts
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## Attaching package: 'PerformanceAnalytics'
## The following object is masked from 'package:graphics':
## 
##     legend
## Loading required package: quantmod
## Loading required package: TTR
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## Loading required package: tidyverse
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr   1.1.4     ✔ stringr 1.5.1
## ✔ forcats 1.0.0     ✔ tibble  3.2.1
## ✔ ggplot2 3.5.0     ✔ tidyr   1.3.1
## ✔ readr   2.1.5     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::first()  masks xts::first()
## ✖ dplyr::lag()    masks stats::lag()
## ✖ dplyr::last()   masks xts::last()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
## Loading required package: magrittr
## 
## 
## Attaching package: 'magrittr'
## 
## 
## The following object is masked from 'package:tidyr':
## 
##     extract
## 
## 
## The following object is masked from 'package:purrr':
## 
##     set_names
## [[1]]
## [1] TRUE
## 
## [[2]]
## [1] TRUE
## 
## [[3]]
## [1] TRUE
## 
## [[4]]
## [1] TRUE
## 
## [[5]]
## [1] TRUE
## 
## [[6]]
## [1] TRUE
## 
## [[7]]
## [1] TRUE
## 
## [[8]]
## [1] TRUE
## 
## [[9]]
## [1] TRUE
## 
## [[10]]
## [1] TRUE
## 
## [[11]]
## [1] TRUE
## 
## [[12]]
## [1] TRUE

Q1

## [1] "SPY" "QQQ" "EEM" "IWM" "EFA" "TLT" "IYR" "GLD"
##                 SPY      QQQ      EEM      IWM      EFA      TLT      IYR
## 2010-01-04 86.86008 40.73326 31.82712 52.51539 37.52379 61.13188 28.10298
## 2010-01-05 87.08997 40.73326 32.05813 52.33482 37.55685 61.52663 28.17045
## 2010-01-06 87.15129 40.48757 32.12519 52.28558 37.71560 60.70299 28.15819
## 2010-01-07 87.51922 40.51391 31.93891 52.67136 37.57008 60.80513 28.40972
## 2010-01-08 87.81042 40.84734 32.19226 52.95864 37.86774 60.77791 28.21954
## 2010-01-11 87.93304 40.68065 32.12519 52.74522 38.17862 60.44436 28.35449
##               GLD
## 2010-01-04 109.80
## 2010-01-05 109.70
## 2010-01-06 111.51
## 2010-01-07 110.82
## 2010-01-08 111.37
## 2010-01-11 112.85

Q2

##                 SPY      QQQ      EEM      IWM      EFA      TLT      IYR
## 2010-01-04 86.86008 40.73326 31.82712 52.51539 37.52379 61.13188 28.10298
## 2010-01-05 87.08997 40.73326 32.05813 52.33482 37.55685 61.52663 28.17045
## 2010-01-06 87.15129 40.48757 32.12519 52.28558 37.71560 60.70299 28.15819
## 2010-01-07 87.51922 40.51391 31.93891 52.67136 37.57008 60.80513 28.40972
## 2010-01-08 87.81042 40.84734 32.19226 52.95864 37.86774 60.77791 28.21954
## 2010-01-11 87.93304 40.68065 32.12519 52.74522 38.17862 60.44436 28.35449
##               GLD
## 2010-01-04 109.80
## 2010-01-05 109.70
## 2010-01-06 111.51
## 2010-01-07 110.82
## 2010-01-08 111.37
## 2010-01-11 112.85
##                     SPY          QQQ         EEM         IWM          EFA
## 2010-01-15 -0.008116955 -0.015037610 -0.02893504 -0.01301907 -0.003493472
## 2010-01-22 -0.038982869 -0.036858918 -0.05578087 -0.03062177 -0.055740624
## 2010-01-29 -0.016664882 -0.031023660 -0.03357731 -0.02624362 -0.025802807
## 2010-02-05 -0.006797702  0.004440629 -0.02821287 -0.01397437 -0.019054891
## 2010-02-12  0.012937909  0.018147943  0.03333294  0.02952605  0.005244716
## 2010-02-19  0.028693517  0.024451059  0.02445362  0.03343155  0.022995090
##                      TLT          IYR          GLD
## 2010-01-15  2.004624e-02 -0.006304155 -0.004579349
## 2010-01-22  1.010100e-02 -0.041785571 -0.033285246
## 2010-01-29  3.370591e-03 -0.008446952 -0.011290465
## 2010-02-05 -5.488286e-05  0.003223308 -0.012080019
## 2010-02-12 -1.946038e-02 -0.007573860  0.022544905
## 2010-02-19 -8.205192e-03  0.050184876  0.022701796
##                    SPY         QQQ          EEM         IWM          EFA
## 2010-02-26  0.03119416  0.04603852  0.017763880  0.04475128  0.002667887
## 2010-03-31  0.06088002  0.07710915  0.081108849  0.08230734  0.063854095
## 2010-04-30  0.01546991  0.02242558 -0.001662001  0.05678422 -0.028045889
## 2010-05-28 -0.07945475 -0.07392335 -0.093936002 -0.07536657 -0.111928183
## 2010-06-30 -0.05174083 -0.05975719 -0.013985989 -0.07743376 -0.020619233
## 2010-07-30  0.06830054  0.07258295  0.109324540  0.06730934  0.116103994
##                     TLT         IYR          GLD
## 2010-02-26 -0.003425079  0.05457016  0.032748219
## 2010-03-31 -0.020572792  0.09748510 -0.004386396
## 2010-04-30  0.033217275  0.06388094  0.058834363
## 2010-05-28  0.051084281 -0.05683553  0.030513147
## 2010-06-30  0.057977937 -0.04670092  0.023553189
## 2010-07-30 -0.009463496  0.09404796 -0.050871157

Q3

## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
##   dat <- vroom(...)
##   problems(dat)
## Rows: 1274 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): date
## dbl (3): Mkt-RF, SMB, HML
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
## Warning in lapply(fama_french_data, as.numeric): NAs introduced by coercion
## List of 4
##  $ date  : num [1:1272] 201002 201003 201004 201005 201006 ...
##  $ Mkt-RF: num [1:1272] 3.4 6.31 2 -7.89 -5.57 6.93 -4.77 9.54 3.88 0.6 ...
##  $ SMB   : num [1:1272] 1.19 1.48 4.87 0.09 -1.82 0.2 -3 3.96 1.14 3.77 ...
##  $ HML   : num [1:1272] 3.23 2.21 2.89 -2.44 -4.7 -0.31 -1.9 -3.16 -2.43 -0.96 ...
## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
##   dat <- vroom(...)
##   problems(dat)
## Rows: 1274 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): date
## dbl (3): Mkt-RF, SMB, HML
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
## # A tibble: 6 × 4
##   date   `Mkt-RF`   SMB   HML
##   <chr>     <dbl> <dbl> <dbl>
## 1 201001    -3.36  0.4   0.43
## 2 201002     3.4   1.19  3.23
## 3 201003     6.31  1.48  2.21
## 4 201004     2     4.87  2.89
## 5 201005    -7.89  0.09 -2.44
## 6 201006    -5.57 -1.82 -4.7
## Warning: There was 1 warning in `mutate()`.
## ℹ In argument: `date = ymd(parse_date(date, format = "%Y%m"))`.
## Caused by warning:
## ! 99 parsing failures.
##  row col       expected                           actual
## 1174  -- date like %Y%m Annual Factors: January-December
## 1176  -- date like %Y%m 1927                            
## 1177  -- date like %Y%m 1928                            
## 1178  -- date like %Y%m 1929                            
## 1179  -- date like %Y%m 1930                            
## .... ... .............. ................................
## See problems(...) for more details.
## # A tibble: 6 × 4
##   date       `MKT-RF`   SMB   HML
##   <date>        <dbl> <dbl> <dbl>
## 1 2009-12-31    -3.36  0.4   0.43
## 2 2010-01-31     3.4   1.19  3.23
## 3 2010-02-28     6.31  1.48  2.21
## 4 2010-03-31     2     4.87  2.89
## 5 2010-04-30    -7.89  0.09 -2.44
## 6 2010-05-31    -5.57 -1.82 -4.7

Q4 Merge

##        date MKT-RF   SMB    HML        SPY        QQQ         EEM          IWM
## 171985 <NA>  23.66 13.18 -46.67 0.04170771 0.06727659 0.002062126 0.0009053106
## 171986 <NA>  23.56 -3.89  25.49 0.04170771 0.06727659 0.002062126 0.0009053106
## 171987 <NA> -21.60 -6.95  25.81 0.04170771 0.06727659 0.002062126 0.0009053106
## 171988 <NA>  21.70 -3.23 -13.58 0.04170771 0.06727659 0.002062126 0.0009053106
## 171989 <NA>     NA    NA     NA 0.04170771 0.06727659 0.002062126 0.0009053106
## 171990 <NA>     NA    NA     NA 0.04170771 0.06727659 0.002062126 0.0009053106
##               EFA        TLT        IYR        GLD
## 171985 0.02820604 0.02376836 0.03371759 0.02169283
## 171986 0.02820604 0.02376836 0.03371759 0.02169283
## 171987 0.02820604 0.02376836 0.03371759 0.02169283
## 171988 0.02820604 0.02376836 0.03371759 0.02169283
## 171989 0.02820604 0.02376836 0.03371759 0.02169283
## 171990 0.02820604 0.02376836 0.03371759 0.02169283
## # A tibble: 6 × 12
##   date       `MKT-RF`   SMB   HML    SPY    QQQ    EEM    IWM     EFA      TLT
##   <date>        <dbl> <dbl> <dbl>  <dbl>  <dbl>  <dbl>  <dbl>   <dbl>    <dbl>
## 1 2009-12-31    -3.36  0.4   0.43 0.0312 0.0460 0.0178 0.0448 0.00267 -0.00343
## 2 2010-01-31     3.4   1.19  3.23 0.0312 0.0460 0.0178 0.0448 0.00267 -0.00343
## 3 2010-02-28     6.31  1.48  2.21 0.0312 0.0460 0.0178 0.0448 0.00267 -0.00343
## 4 2010-03-31     2     4.87  2.89 0.0312 0.0460 0.0178 0.0448 0.00267 -0.00343
## 5 2010-04-30    -7.89  0.09 -2.44 0.0312 0.0460 0.0178 0.0448 0.00267 -0.00343
## 6 2010-05-31    -5.57 -1.82 -4.7  0.0312 0.0460 0.0178 0.0448 0.00267 -0.00343
## # ℹ 2 more variables: IYR <dbl>, GLD <dbl>

Q5

## # A tibble: 6 × 12
##   date       `MKT-RF`   SMB   HML    SPY    QQQ    EEM    IWM     EFA      TLT
##   <date>        <dbl> <dbl> <dbl>  <dbl>  <dbl>  <dbl>  <dbl>   <dbl>    <dbl>
## 1 2019-03-31     3.97 -1.74  2.15 0.0312 0.0460 0.0178 0.0448 0.00267 -0.00343
## 2 2019-04-30    -6.94 -1.32 -2.37 0.0312 0.0460 0.0178 0.0448 0.00267 -0.00343
## 3 2019-05-31     6.93  0.29 -0.71 0.0312 0.0460 0.0178 0.0448 0.00267 -0.00343
## 4 2019-06-30     1.19 -1.93  0.48 0.0312 0.0460 0.0178 0.0448 0.00267 -0.00343
## 5 2019-07-31    -2.58 -2.38 -4.78 0.0312 0.0460 0.0178 0.0448 0.00267 -0.00343
## 6 2019-08-31     1.43 -0.96  6.75 0.0312 0.0460 0.0178 0.0448 0.00267 -0.00343
## # ℹ 2 more variables: IYR <dbl>, GLD <dbl>
## Warning: Unknown or uninitialised column: `RF`.
## Unknown or uninitialised column: `RF`.
## Unknown or uninitialised column: `RF`.
## Unknown or uninitialised column: `RF`.
## Unknown or uninitialised column: `RF`.
## Unknown or uninitialised column: `RF`.
## Unknown or uninitialised column: `RF`.
## Unknown or uninitialised column: `RF`.

Q6

## # A tibble: 6 × 7
##      QQQ    EEM    IWM     EFA      TLT    IYR    GLD
##    <dbl>  <dbl>  <dbl>   <dbl>    <dbl>  <dbl>  <dbl>
## 1 0.0460 0.0178 0.0448 0.00267 -0.00343 0.0546 0.0327
## 2 0.0460 0.0178 0.0448 0.00267 -0.00343 0.0546 0.0327
## 3 0.0460 0.0178 0.0448 0.00267 -0.00343 0.0546 0.0327
## 4 0.0460 0.0178 0.0448 0.00267 -0.00343 0.0546 0.0327
## 5 0.0460 0.0178 0.0448 0.00267 -0.00343 0.0546 0.0327
## 6 0.0460 0.0178 0.0448 0.00267 -0.00343 0.0546 0.0327

Q7

## # A tibble: 1 × 12
##   date   `MKT-RF`   SMB   HML    SPY    QQQ     EEM      IWM    EFA    TLT
##   <date>    <dbl> <dbl> <dbl>  <dbl>  <dbl>   <dbl>    <dbl>  <dbl>  <dbl>
## 1 NA           NA    NA    NA 0.0417 0.0673 0.00206 0.000905 0.0282 0.0238
## # ℹ 2 more variables: IYR <dbl>, GLD <dbl>
## # A tibble: 1 × 7
##      QQQ     EEM      IWM    EFA    TLT    IYR    GLD
##    <dbl>   <dbl>    <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 0.0673 0.00206 0.000905 0.0282 0.0238 0.0337 0.0217