Objective

Utilize K-Means and UMAP, along with dplyr, ggplot2 and purrr to create a viz that identifies subgroups for companies in the S&P 500 Index.

Data

We can read in the stock prices. The data is 1.2M observations. The most important columns for our analysis are:

# STOCK PRICES
sp_500_prices_tbl <- read_rds("../Stock Price Analysis - Challenge/week_6_data/week_6_data/sp_500_prices_tbl.rds")
sp_500_prices_tbl

The second data frame contains information about the stocks the most important of which are:

# SECTOR INFORMATION
sp_500_index_tbl <- read_rds("../Stock Price Analysis - Challenge/week_6_data/week_6_data/sp_500_index_tbl.rds")
sp_500_index_tbl

Question

Which stock prices behave similarly?

Step 1 - Convert stock prices to a standardized format (daily returns)

sp_500_prices_tbl %>% glimpse()
## Rows: 1,225,765
## Columns: 8
## $ symbol   <chr> "MSFT", "MSFT", "MSFT", "MSFT", "MSFT", "MSFT", "MSFT", "M...
## $ date     <date> 2009-01-02, 2009-01-05, 2009-01-06, 2009-01-07, 2009-01-0...
## $ open     <dbl> 19.53, 20.20, 20.75, 20.19, 19.63, 20.17, 19.71, 19.52, 19...
## $ high     <dbl> 20.40, 20.67, 21.00, 20.29, 20.19, 20.30, 19.79, 19.99, 19...
## $ low      <dbl> 19.37, 20.06, 20.61, 19.48, 19.55, 19.41, 19.30, 19.52, 19...
## $ close    <dbl> 20.33, 20.52, 20.76, 19.51, 20.12, 19.52, 19.47, 19.82, 19...
## $ volume   <dbl> 50084000, 61475200, 58083400, 72709900, 70255400, 49815300...
## $ adjusted <dbl> 15.86624, 16.01451, 16.20183, 15.22628, 15.70234, 15.23408...
sp_500_daily_returns_tbl <- sp_500_prices_tbl %>% 
    select(symbol, date, adjusted) %>% 
    
    filter(date >= ymd("2018-01-01")) %>% 
    
    group_by(symbol) %>% 
    
    mutate(lag_1 = lag(adjusted)) %>% 
    ungroup() %>% 
    
    filter(!is.na(lag_1)) %>% 
    
    mutate(diff = adjusted - lag_1) %>% 
    mutate(pct_return  = diff / lag_1) %>% 
    
    select(symbol, date, pct_return)

Step 2 - Convert to User-Item Format

stock_data_matrix_tbl <- sp_500_daily_returns_tbl %>% 
    spread(key = date, value = pct_return, fill = 0)

kable(head(stock_data_matrix_tbl, 10))
symbol 2018-01-03 2018-01-04 2018-01-05 2018-01-08 2018-01-09 2018-01-10 2018-01-11 2018-01-12 2018-01-16 2018-01-17 2018-01-18 2018-01-19 2018-01-22 2018-01-23 2018-01-24 2018-01-25 2018-01-26 2018-01-29 2018-01-30 2018-01-31 2018-02-01 2018-02-02 2018-02-05 2018-02-06 2018-02-07 2018-02-08 2018-02-09 2018-02-12 2018-02-13 2018-02-14 2018-02-15 2018-02-16 2018-02-20 2018-02-21 2018-02-22 2018-02-23 2018-02-26 2018-02-27 2018-02-28 2018-03-01 2018-03-02 2018-03-05 2018-03-06 2018-03-07 2018-03-08 2018-03-09 2018-03-12 2018-03-13 2018-03-14 2018-03-15 2018-03-16 2018-03-19 2018-03-20 2018-03-21 2018-03-22 2018-03-23 2018-03-26 2018-03-27 2018-03-28 2018-03-29 2018-04-02 2018-04-03 2018-04-04 2018-04-05 2018-04-06 2018-04-09 2018-04-10 2018-04-11 2018-04-12 2018-04-13 2018-04-16 2018-04-17 2018-04-18 2018-04-19 2018-04-20 2018-04-23 2018-04-24 2018-04-25 2018-04-26 2018-04-27 2018-04-30 2018-05-01 2018-05-02 2018-05-03 2018-05-04 2018-05-07 2018-05-08 2018-05-09 2018-05-10 2018-05-11 2018-05-14 2018-05-15 2018-05-16 2018-05-17 2018-05-18 2018-05-21 2018-05-22 2018-05-23 2018-05-24 2018-05-25 2018-05-29 2018-05-30 2018-05-31 2018-06-01 2018-06-04 2018-06-05 2018-06-06 2018-06-07 2018-06-08 2018-06-11 2018-06-12 2018-06-13 2018-06-14 2018-06-15 2018-06-18 2018-06-19 2018-06-20 2018-06-21 2018-06-22 2018-06-25 2018-06-26 2018-06-27 2018-06-28 2018-06-29 2018-07-02 2018-07-03 2018-07-05 2018-07-06 2018-07-09 2018-07-10 2018-07-11 2018-07-12 2018-07-13 2018-07-16 2018-07-17 2018-07-18 2018-07-19 2018-07-20 2018-07-23 2018-07-24 2018-07-25 2018-07-26 2018-07-27 2018-07-30 2018-07-31 2018-08-01 2018-08-02 2018-08-03 2018-08-06 2018-08-07 2018-08-08 2018-08-09 2018-08-10 2018-08-13 2018-08-14 2018-08-15 2018-08-16 2018-08-17 2018-08-20 2018-08-21 2018-08-22 2018-08-23 2018-08-24 2018-08-27 2018-08-28 2018-08-29 2018-08-30 2018-08-31 2018-09-04 2018-09-05 2018-09-06 2018-09-07 2018-09-10 2018-09-11 2018-09-12 2018-09-13 2018-09-14 2018-09-17 2018-09-18 2018-09-19 2018-09-20 2018-09-21 2018-09-24 2018-09-25 2018-09-26 2018-09-27 2018-09-28 2018-10-01 2018-10-02 2018-10-03 2018-10-04 2018-10-05 2018-10-08 2018-10-09 2018-10-10 2018-10-11 2018-10-12 2018-10-15 2018-10-16 2018-10-17 2018-10-18 2018-10-19 2018-10-22 2018-10-23 2018-10-24 2018-10-25 2018-10-26 2018-10-29 2018-10-30 2018-10-31 2018-11-01 2018-11-02 2018-11-05 2018-11-06 2018-11-07 2018-11-08 2018-11-09 2018-11-12 2018-11-13 2018-11-14 2018-11-15 2018-11-16 2018-11-19 2018-11-20 2018-11-21 2018-11-23 2018-11-26 2018-11-27 2018-11-28 2018-11-29 2018-11-30 2018-12-03 2018-12-04 2018-12-06 2018-12-07 2018-12-10 2018-12-11 2018-12-12 2018-12-13 2018-12-14 2018-12-17 2018-12-18 2018-12-19 2018-12-20 2018-12-21 2018-12-24 2018-12-26 2018-12-27 2018-12-28 2018-12-31 2019-01-02 2019-01-03 2019-01-04 2019-01-07 2019-01-08 2019-01-09 2019-01-10 2019-01-11 2019-01-14 2019-01-15 2019-01-16 2019-01-17 2019-01-18 2019-01-22 2019-01-23 2019-01-24 2019-01-25 2019-01-28 2019-01-29 2019-01-30 2019-01-31 2019-02-01 2019-02-04 2019-02-05 2019-02-06 2019-02-07 2019-02-08 2019-02-11 2019-02-12 2019-02-13 2019-02-14 2019-02-15
A 0.0254438 -0.0075014 0.0159885 0.0021459 0.0245539 -0.0136547 0.0001413 0.0131355 -0.0069706 0.0116524 0.0018041 0.0121899 0.0056111 -0.0005443 0.0019064 0.0038053 0.0129976 -0.0038760 -0.0206629 0.0060283 -0.0081709 -0.0216945 -0.0425262 0.0033714 -0.0056976 -0.0442256 0.0296695 0.0216483 -0.0013154 0.0199007 0.0332854 -0.0006942 -0.0123662 0.0023916 -0.0080000 0.0002829 -0.0016972 -0.0223860 -0.0059420 -0.0176412 0.0019295 0.0005924 0.0082902 0.0233446 0.0021518 0.0183251 -0.0059046 -0.0004243 -0.0107527 0.0037187 -0.0039897 -0.0080115 0.0073549 -0.0064422 -0.0278098 -0.0208982 0.0323948 -0.0175953 -0.0089551 0.0075301 -0.0347711 0.0153655 0.0004586 0.0035141 -0.0309074 0.0241949 0.0222426 -0.0084033 0.0169489 0.0001489 0.0142836 0.0039608 0.0162185 -0.0227175 -0.0061793 0.0076980 -0.0210077 -0.0126049 0.0086625 -0.0013560 -0.0081474 0.0076058 -0.0049819 0.0065241 0.0099487 0.0058209 -0.0002968 0.0112810 0.0107149 0.0085680 -0.0034555 -0.0969514 -0.0089600 0.0266387 0.0114797 0.0191233 -0.0108316 -0.0047809 -0.0063536 -0.0151279 -0.0205860 0.0135813 -0.0122826 0.0138889 0.0095572 0.0022089 0.0262910 0.0006135 0.0076653 0.0060852 0.0028732 -0.0009048 0.0007545 -0.0027145 -0.0175410 -0.0223180 -0.0114925 0.0039815 -0.0039657 -0.0253226 0.0127452 -0.0135528 0.0024534 0.0089737 -0.0035823 -0.0035790 0.0089795 0.0079289 0.0133247 0.0087136 -0.0127218 0.0093860 -0.0011032 -0.0104134 0.0051021 -0.0007932 0.0184156 -0.0046766 -0.0020360 0.0167922 0.0180583 0.0119770 -0.0149813 -0.0170342 0.0218165 -0.0160507 0.0047705 0.0067393 0.0118667 0.0172907 -0.0041385 -0.0102403 -0.0064478 -0.0048293 0.0122838 -0.0302621 0.0118956 -0.0128244 -0.0029385 0.0071352 0.0110887 0.0006093 0.0044148 0.0015156 0.0092312 0.0047984 0.0037307 0.0041629 -0.0039976 -0.0046084 0.0059738 0.0005938 0.0078634 -0.0045635 0.0042885 0.0209100 -0.0069234 0.0033407 -0.0021715 0.0091397 0.0225703 -0.0057640 -0.0108880 0.0061472 -0.0007105 0.0066829 -0.0036723 0.0123454 0.0058939 0.0061383 -0.0202439 -0.0050949 -0.0113798 -0.0012949 -0.0394757 -0.0266987 0.0208045 -0.0092090 0.0278836 -0.0038542 -0.0215773 -0.0194676 -0.0029472 -0.0241132 -0.0255061 0.0242107 0.0019166 -0.0103618 0.0251288 0.0180705 0.0066368 0.0108862 -0.0003034 0.0010621 0.0345559 -0.0068855 -0.0076708 -0.0411774 -0.0024806 -0.0135218 0.0196943 0.0041718 -0.0366210 0.0784219 0.0029621 0.0072357 0.0152470 0.0015885 0.0305652 0.0012591 0.0108984 0.0320664 -0.0235703 -0.0137156 -0.0230844 0.0048398 0.0065166 0.0098522 -0.0085018 -0.0250210 -0.0217705 0.0020634 -0.0170613 -0.0245399 -0.0291456 -0.0097962 0.0457955 0.0143424 -0.0053683 0.0227411 -0.0262377 -0.0368397 0.0346135 0.0212343 0.0146597 0.0209347 0.0093863 0.0068669 -0.0089514 0.0121864 -0.0080736 0.0112809 0.0156735 -0.0084805 0.0046271 0.0073970 0.0203658 -0.0051596 0.0039580 0.0255574 0.0080859 -0.0001315 -0.0001315 0.0036827 -0.0001310 -0.0127130 0.0062392 0.0036939 0.0130126 0.0023355 -0.0029774 0.0166191
AAL -0.0122664 0.0063048 -0.0003798 -0.0098764 -0.0009592 0.0326421 0.0490888 0.0363347 -0.0083804 0.0031045 0.0030949 -0.0047994 0.0006889 0.0032702 -0.0600445 -0.0317578 0.0003771 -0.0073487 -0.0017084 0.0328959 -0.0081001 -0.0330365 -0.0430769 0.0285371 0.0042985 -0.0544747 -0.0049383 0.0357733 0.0155720 0.0039316 0.0117484 -0.0017417 0.0027142 0.0204949 0.0037893 0.0077388 0.0301556 -0.0134547 -0.0001841 -0.0141936 -0.0056096 0.0001880 0.0071442 0.0100803 0.0125671 0.0233619 0.0076689 -0.0047787 -0.0168950 -0.0019898 0.0041690 -0.0140795 0.0128159 -0.0222342 -0.0329081 -0.0248519 0.0166634 -0.0185113 -0.0009824 0.0218289 -0.0419554 0.0339496 0.0110743 0.0019216 -0.0354814 -0.0093458 -0.0473706 -0.0434050 0.0257710 -0.0150312 0.0115545 -0.0140087 0.0439344 -0.0184254 -0.0021331 -0.0021376 -0.0212082 -0.0096301 -0.0636465 0.0243096 -0.0108294 0.0100163 -0.0258303 -0.0030777 0.0178106 -0.0074837 0.0131952 -0.0348838 0.0130121 0.0133205 -0.0032863 0.0171927 0.0201436 -0.0097595 -0.0057299 0.0207467 -0.0316170 -0.0018656 0.0177571 0.0309917 -0.0293921 -0.0066530 0.0055427 0.0105650 0.0195456 -0.0151584 0.0002263 -0.0079202 -0.0166515 0.0243563 -0.0169837 -0.0112877 0.0037279 -0.0071960 -0.0077157 -0.0219133 0.0125271 -0.0128479 -0.0033743 -0.0403869 -0.0148690 -0.0212331 -0.0015682 -0.0062827 0.0105376 -0.0159022 0.0063578 0.0026322 0.0320294 -0.0048335 -0.0807770 0.0102893 0.0217450 0.0043102 0.0026826 0.0264848 -0.0062549 -0.0065566 0.0042240 -0.0155100 0.0197597 0.0479182 -0.0082460 -0.0181404 0.0146265 -0.0354071 -0.0055061 0.0129186 0.0023486 -0.0039052 0.0031365 -0.0119855 -0.0174050 -0.0126140 0.0081543 0.0094366 0.0192307 -0.0096960 0.0582165 0.0085021 -0.0282669 -0.0091859 -0.0002576 0.0180319 0.0296053 -0.0046694 -0.0024691 0.0019801 0.0071641 -0.0269806 -0.0299976 -0.0012993 0.0260214 0.0190211 -0.0228971 0.0056038 0.0065856 0.0145949 0.0116567 0.0198578 0.0069712 0.0408211 -0.0371559 -0.0278705 0.0056359 0.0112085 -0.0040963 -0.0416163 -0.0280232 0.0077921 -0.0226804 -0.0390296 -0.0148188 -0.0654596 -0.0578242 -0.0107561 -0.0115126 0.0281462 0.0471994 0.0087140 -0.0449806 -0.0006238 0.0037453 0.0068408 -0.0630019 0.0669083 0.0027804 0.0043130 0.0631903 0.0121177 0.0367730 -0.0010997 -0.0140768 -0.0153976 0.0511801 -0.0029753 -0.0173630 0.0176698 0.0249592 0.0087349 -0.0076096 -0.0282919 -0.0253061 -0.0064209 0.0202304 0.0451666 0.0039525 0.0049869 0.0169757 -0.0133539 0.0452890 -0.0126992 -0.0746533 0.0068139 -0.0912290 0.0080428 0.0076832 0.0073314 -0.0550218 -0.0015404 -0.0114162 0.0468165 -0.0333931 -0.0163479 -0.0348071 -0.0344380 0.0864738 -0.0077424 -0.0065543 0.0087967 0.0115228 -0.0745074 0.0658683 0.0284020 -0.0160850 0.0308451 -0.0412925 -0.0074907 -0.0028302 0.0122989 0.0230531 0.0225335 0.0116140 -0.0362084 -0.0332927 0.0635070 0.0392158 0.0454545 -0.0076565 0.0013777 -0.0156852 0.0095052 0.0185544 0.0068157 -0.0046034 -0.0160501 -0.0047000 0.0163889 -0.0229571 0.0128671 -0.0027616 -0.0293548
AAP 0.0090489 0.0368986 0.0106306 -0.0070423 -0.0080797 0.0009050 0.0213402 0.0264719 -0.0175954 0.0127304 0.0015605 0.0128971 0.0086310 0.0090655 0.0158690 -0.0005785 0.0224942 -0.0060661 -0.0294572 -0.0191163 0.0025643 -0.0286469 -0.0357237 0.0212998 -0.0202317 -0.0027291 -0.0044695 0.0031153 -0.0297772 0.0263603 -0.0022015 -0.0111233 -0.0206378 0.0821073 -0.0307894 0.0527649 -0.0126375 -0.0439703 0.0405281 0.0285340 -0.0122543 0.0024986 0.0191647 -0.0153470 -0.0087351 0.0268683 -0.0037859 0.0049827 -0.0163026 0.0003417 -0.0040137 -0.0065162 -0.0139813 0.0086652 -0.0301267 -0.0077881 0.0354565 0.0020912 0.0084340 0.0221590 -0.0558415 -0.0001787 0.0229649 0.0166841 -0.0384913 -0.0139397 0.0162211 -0.0107900 -0.0032454 -0.0358143 -0.0015009 0.0164396 -0.0074861 -0.0205792 -0.0135007 0.0169621 0.0133625 0.0083231 0.0497125 0.0279201 -0.0162455 0.0098733 0.0027686 -0.0040552 0.0107424 -0.0045427 0.0056829 0.0101883 0.0020341 0.0144634 0.0139236 -0.0138969 -0.0074216 0.0063849 -0.0122715 0.0070150 -0.0320604 0.0686724 0.0155782 -0.0020771 -0.0076056 0.0368667 0.0007002 -0.0021769 0.0122332 0.0003079 0.0049250 -0.0041351 0.0127644 0.0077441 0.0068562 -0.0071836 0.0061803 0.0274158 0.0078740 0.0004340 0.0062185 0.0028756 -0.0046595 -0.0113791 -0.0014570 -0.0196249 0.0054322 0.0043667 -0.0073692 0.0023015 0.0062958 0.0096423 0.0275570 -0.0021284 -0.0111624 -0.0020853 0.0039630 0.0023682 0.0043675 -0.0022098 0.0242908 -0.0048824 0.0139483 -0.0322826 0.0034287 0.0093259 -0.0136125 0.0059348 0.0039096 -0.0104794 0.0251163 0.0099120 0.0029031 0.0004135 0.0086112 0.0094255 -0.0097435 -0.0103178 0.0779481 0.0121693 0.0092388 0.0014421 0.0070123 -0.0042899 0.0036216 0.0157406 0.0067379 -0.0144804 0.0007409 0.0090067 -0.0107606 0.0137824 0.0332257 -0.0146331 0.0013174 0.0003588 -0.0020923 0.0018571 -0.0008371 -0.0022143 -0.0076772 -0.0117861 0.0253823 0.0116315 0.0000589 -0.0065467 -0.0046901 -0.0019682 0.0120128 0.0027165 -0.0085988 0.0075447 -0.0070756 -0.0047504 -0.0112769 0.0007241 0.0152566 0.0031480 -0.0338682 -0.0130539 0.0253353 0.0109617 0.0086264 -0.0522064 0.0163554 0.0131944 0.0026776 -0.0048553 -0.0292127 0.0250660 0.0084574 0.0019447 0.0006066 -0.0315816 0.0234728 0.0091126 0.0006667 0.0180486 0.0143970 0.0113776 -0.0073645 -0.0240682 0.1057105 -0.0381117 0.0077105 0.0008936 -0.0081469 -0.0349929 0.0183057 0.0147136 0.0027082 0.0087216 -0.0017851 -0.0071529 0.0002252 0.0010128 0.0016865 -0.0136372 -0.0464838 -0.0084730 -0.0022266 0.0071169 -0.0041322 -0.0150941 -0.0301625 -0.0037773 -0.0133974 -0.0228117 -0.0071475 -0.0164455 0.0410287 -0.0021931 0.0049777 0.0128650 0.0029213 0.0312184 -0.0248082 0.0146716 -0.0069504 0.0275590 0.0038923 -0.0342280 -0.0043909 0.0098286 0.0134764 0.0236395 0.0079986 -0.0207625 0.0012185 -0.0488043 -0.0197684 0.0107036 0.0034224 0.0234892 0.0010061 -0.0010051 0.0145247 0.0006818 -0.0262604 0.0375907 -0.0044137 0.0167477 0.0167141 -0.0085174 0.0136970 0.0074078
AAPL -0.0001742 0.0046451 0.0113853 -0.0037143 -0.0001147 -0.0002295 0.0056802 0.0103264 -0.0050821 0.0165162 0.0008933 -0.0044627 -0.0081811 0.0002259 -0.0159287 -0.0178510 0.0023376 -0.0206984 -0.0058942 0.0027549 0.0020904 -0.0433902 -0.0249843 0.0417915 -0.0214071 -0.0275165 0.0122315 0.0402787 0.0100178 0.0184373 0.0335784 -0.0032372 -0.0033637 -0.0045388 0.0083591 0.0173913 0.0197722 -0.0032407 -0.0015137 -0.0175162 0.0069144 0.0034617 -0.0008483 -0.0092828 0.0109124 0.0171809 0.0096677 -0.0096302 -0.0085014 0.0011769 -0.0035264 -0.0152791 -0.0003423 -0.0226547 -0.0141297 -0.0231567 0.0474720 -0.0256411 -0.0110491 0.0078087 -0.0065562 0.0102591 0.0191224 0.0069342 -0.0255786 0.0099180 0.0188179 -0.0046752 0.0098584 0.0033881 0.0062382 0.0137640 -0.0022442 -0.0283401 -0.0409723 -0.0028964 -0.0139191 0.0043574 0.0034831 -0.0115699 0.0181123 0.0232361 0.0441751 0.0018122 0.0392334 0.0072349 0.0048067 0.0070412 0.0143039 -0.0038033 -0.0023331 -0.0090885 0.0093326 -0.0063236 -0.0036365 0.0070849 -0.0025049 0.0064115 -0.0011148 0.0022854 -0.0036059 -0.0021289 -0.0033600 0.0180340 0.0083578 0.0077152 0.0034659 -0.0026806 -0.0090975 -0.0024517 0.0054907 -0.0082172 0.0005244 -0.0102725 -0.0005295 -0.0161599 0.0043621 -0.0055764 -0.0029118 -0.0148712 0.0124060 -0.0014639 0.0072762 -0.0021024 0.0111824 -0.0174164 0.0080470 0.0138621 0.0138851 -0.0012069 -0.0129760 0.0167660 0.0015705 -0.0021952 0.0028286 -0.0054845 0.0077732 -0.0022931 0.0008880 0.0072543 0.0094301 -0.0031311 -0.0166316 -0.0056026 0.0020009 0.0589101 0.0292308 0.0028932 0.0051925 -0.0093749 0.0006760 0.0078649 -0.0029786 0.0064570 0.0042131 0.0023361 0.0146500 0.0199700 -0.0097435 -0.0019494 0.0000465 0.0020460 0.0031092 0.0082347 0.0080756 0.0149294 0.0091937 0.0115540 0.0032069 -0.0065248 -0.0166174 -0.0080682 -0.0134207 0.0252829 -0.0124190 0.0241552 -0.0113512 -0.0266261 0.0016522 0.0005957 0.0076018 -0.0107712 0.0143801 0.0063409 -0.0079662 0.0205516 0.0035120 0.0067334 0.0088885 0.0121686 -0.0175809 -0.0162288 -0.0023184 0.0138535 -0.0463260 -0.0088280 0.0357194 -0.0213858 0.0220371 -0.0043213 -0.0233736 0.0152301 0.0061100 0.0094267 -0.0343016 0.0218978 -0.0159236 -0.0187701 0.0049943 0.0260665 0.0153523 -0.0663307 -0.0283883 0.0108141 0.0303282 -0.0034890 -0.0192815 -0.0503742 -0.0099913 -0.0282473 0.0246788 0.0110757 -0.0396321 -0.0477779 -0.0011300 -0.0253988 0.0135237 -0.0021761 0.0384527 -0.0076821 -0.0054024 0.0349423 -0.0439887 -0.0111495 -0.0356570 0.0065879 -0.0057194 0.0027872 0.0109402 -0.0319977 -0.0093062 0.0129926 -0.0311917 -0.0252346 -0.0388957 -0.0258740 0.0704215 -0.0064899 0.0005124 0.0096653 0.0011411 -0.0996074 0.0426893 -0.0022258 0.0190630 0.0169818 0.0031962 -0.0098181 -0.0150370 0.0204667 0.0122166 0.0059377 0.0061595 -0.0224462 0.0040443 -0.0079262 0.0331369 -0.0092546 -0.0103647 0.0683346 0.0072012 0.0004807 0.0284049 0.0171094 0.0003445 -0.0189394 0.0011750 -0.0057509 0.0086172 -0.0041548 0.0036433 -0.0022249
ABBV 0.0156488 -0.0057029 0.0174079 -0.0160223 0.0075386 -0.0054867 0.0029298 0.0107787 0.0214271 0.0182456 -0.0052702 0.0079955 0.0176797 -0.0104237 0.0012338 0.0264430 0.1376730 -0.0073047 -0.0525713 -0.0315844 0.0367136 -0.0100567 -0.0491448 0.0154324 0.0217626 -0.0452385 0.0259956 0.0056603 -0.0006254 0.0109066 0.0160947 0.0322019 -0.0052276 -0.0005933 -0.0029684 0.0101225 0.0234947 -0.0269870 -0.0205480 -0.0171804 0.0105411 0.0053894 -0.0095107 0.0013967 0.0199617 0.0194855 -0.0082990 0.0122569 -0.0067641 -0.0337144 -0.0106152 -0.0147745 0.0055344 -0.0017756 -0.1276122 -0.0065240 -0.0223681 -0.0343198 0.0245624 0.0040311 -0.0337031 -0.0095124 0.0259411 -0.0078546 -0.0263529 0.0077969 0.0347039 0.0002135 -0.0060422 -0.0031482 0.0083851 0.0106911 0.0078000 -0.0138889 -0.0044082 0.0061555 -0.0194267 0.0055823 0.0606291 0.0132389 -0.0220803 0.0571723 -0.0166552 -0.0008967 -0.0010968 -0.0053909 -0.0023085 0.0179075 0.0165052 0.0129314 0.0164140 -0.0161489 0.0082550 0.0026657 0.0062666 0.0023588 0.0000000 -0.0059305 -0.0232955 -0.0199728 -0.0159280 0.0355887 -0.0395108 -0.0089953 0.0107088 0.0014127 0.0074567 -0.0066013 0.0111761 -0.0065718 -0.0086197 -0.0134466 0.0119901 0.0083038 -0.0109472 -0.0047724 0.0024486 -0.0274808 -0.0215595 -0.0047063 -0.0099945 -0.0066219 0.0100536 0.0023802 0.0049649 0.0053700 0.0092940 0.0258255 0.0012380 0.0185491 -0.0392553 0.0171276 0.0106683 -0.0039324 -0.0087273 -0.0105859 -0.0471399 -0.0115618 0.0055111 0.0239373 0.0172603 0.0088058 -0.0359806 0.0098278 0.0085293 0.0182154 0.0128847 0.0148232 0.0054906 -0.0309088 -0.0035083 0.0185639 0.0034566 0.0102295 -0.0088862 0.0159508 0.0079015 0.0060069 -0.0119421 0.0011267 -0.0010232 -0.0050183 0.0025733 0.0063654 -0.0077534 0.0032901 -0.0080960 -0.0083686 -0.0147948 0.0066625 -0.0152327 0.0045872 -0.0037167 -0.0068214 0.0006438 0.0331403 -0.0067477 -0.0032399 -0.0289399 -0.0171688 0.0182378 -0.0045317 0.0125731 0.0038536 0.0042653 -0.0004247 0.0046739 0.0044406 -0.0081052 0.0188900 -0.0226019 0.0057545 0.0045561 -0.0025314 -0.0157555 -0.0255695 0.0105863 -0.0166502 0.0306122 0.0039169 -0.0256854 -0.0214683 -0.0420598 -0.0155453 -0.0427916 0.0292155 -0.0115014 0.0070554 0.0028269 -0.0458390 0.0303147 -0.0081037 0.0379588 0.0130782 0.0394454 0.0088547 0.0120824 0.0101363 -0.0163898 0.0010201 0.0207224 0.0154205 -0.0223969 -0.0155343 -0.0220229 -0.0060360 0.0071237 0.0166976 0.0143705 0.0109063 0.0484928 -0.0064707 -0.0332052 -0.0024296 -0.0373077 0.0074747 0.0063920 0.0048769 -0.0100451 -0.0239425 -0.0079430 -0.0158954 -0.0007180 0.0221505 -0.0052713 -0.0089495 0.0579848 0.0097710 0.0134579 0.0117428 -0.0321076 -0.0329486 0.0322169 0.0145953 0.0046475 -0.0328230 0.0044413 0.0012472 -0.0284273 0.0087305 0.0005848 0.0192869 0.0263762 -0.0093854 -0.0023687 -0.0290560 -0.0621797 -0.0422151 0.0042780 0.0205240 0.0155578 0.0026155 -0.0244721 0.0147715 -0.0076547 0.0011380 0.0063155 0.0012552 0.0020058 0.0107594 -0.0033420 0.0040984
ABC 0.0037218 -0.0022248 0.0121045 0.0165758 0.0063982 -0.0031789 0.0095670 0.0087631 0.0055555 0.0175791 -0.0043435 -0.0079318 0.0259844 0.0014611 0.0176054 -0.0023896 0.0106352 -0.0036975 -0.0250262 -0.0272302 -0.0038125 -0.0329339 -0.0429077 -0.0039172 0.0292769 -0.0283380 -0.0257783 0.0029150 0.0930129 -0.0140125 0.0124481 0.0224233 0.0054326 -0.0137082 -0.0147103 0.0133855 0.0219468 -0.0292305 -0.0253995 -0.0195460 0.0070740 0.0100042 -0.0021075 0.0095036 0.0066947 0.0286783 0.0130303 0.0030910 -0.0200795 -0.0123758 -0.0077033 -0.0373668 -0.0409677 0.0034757 -0.0502793 -0.0114118 0.0109483 -0.0110652 0.0130937 0.0129244 -0.0410625 0.0152412 0.0276421 0.0131015 -0.0225451 0.0161572 0.0244268 0.0020245 -0.0101021 -0.0155347 0.0224602 0.0255718 0.0187829 -0.0114285 -0.0198496 0.0096806 -0.0066123 0.0143112 0.0071093 0.0107514 -0.0267540 -0.0152352 0.0334081 -0.0738772 0.0117137 -0.0194512 0.0000000 0.0003543 0.0095608 0.0157839 0.0046041 -0.0184463 0.0037353 0.0125595 -0.0221478 -0.0050725 0.0020157 -0.0065082 0.0015483 0.0166488 -0.0341560 0.0188931 -0.0236538 0.0146091 0.0117592 0.0055740 0.0278335 -0.0063111 -0.0058891 0.0138228 0.0087076 0.0297592 0.0296713 0.0160686 -0.0345809 0.0065523 0.0115005 -0.0002145 0.0031112 -0.0136898 -0.0198439 -0.0063060 -0.0414161 -0.0096401 0.0052775 0.0111992 0.0059990 0.0088304 0.0031829 -0.0012465 -0.0113455 -0.0039018 0.0127881 -0.0114890 -0.0009207 -0.0056438 -0.0089193 -0.0100515 0.0005904 -0.0096755 0.0100084 -0.0180489 -0.0038443 -0.0001205 -0.0130262 -0.0285959 -0.0064158 0.0251962 0.0144498 0.0158266 -0.0093480 0.0070166 -0.0151369 0.0131739 0.0164941 0.0081725 0.0199717 0.0148080 0.0062699 -0.0031720 0.0018184 0.0014747 0.0005665 0.0014716 0.0046350 0.0043884 0.0089625 -0.0009992 -0.0088918 0.0030280 -0.0118517 0.0029419 -0.0034972 -0.0478888 0.0131987 0.0084497 -0.0010474 0.0107177 0.0065698 0.0235887 0.0186821 -0.0102130 -0.0062133 -0.0005582 0.0088248 0.0093014 0.0117389 0.0061809 -0.0149801 -0.0040481 0.0001099 -0.0050528 0.0078385 -0.0040531 -0.0008799 -0.0388595 0.0134005 0.0119801 0.0338396 0.0128551 -0.0040529 -0.0062111 -0.0278017 0.0006650 -0.0641338 0.0145580 -0.0116659 0.0149905 0.0188394 0.0044516 0.0331818 -0.0258469 -0.0001130 -0.0514905 0.0302380 0.0303907 -0.0034765 0.0119289 0.0154581 -0.0189464 -0.0048002 0.0000000 0.0233239 -0.0214710 -0.0162035 0.0026308 0.0146018 0.0077580 0.0179628 -0.0081105 -0.0176795 0.0013498 -0.0158391 -0.0186052 -0.0193068 -0.0091318 -0.0128067 0.0089718 -0.0159817 -0.0356576 -0.0249462 -0.0098702 0.0009182 -0.0404927 -0.0169352 -0.0169491 0.0322215 0.0067086 0.0058479 0.0059492 0.0006720 -0.0145063 0.0115850 0.0071410 0.0107024 0.0101919 -0.0041929 0.0073683 0.0039185 0.0052043 0.0005178 -0.0157828 0.0496846 -0.0018783 -0.0043909 -0.0083165 0.0121982 0.0057745 -0.0072391 -0.0126980 0.0616325 0.0046780 0.0082377 0.0156306 0.0101434 -0.0096952 -0.0173661 -0.0079468 0.0257054 0.0072270 0.0004628 0.0070890
ABMD 0.0172996 0.0175160 0.0154078 0.0270858 0.0094321 -0.0077231 0.0096569 0.0236022 0.0138534 0.0276950 0.0078526 0.0106246 -0.0004818 0.0091595 0.0116385 0.0144667 0.0108751 -0.0093767 -0.0067188 -0.0002552 0.0771490 -0.0194762 -0.0355762 -0.0303296 0.0297704 -0.0398293 -0.0005229 0.0189206 0.0011552 0.0917988 0.0218030 0.0256665 0.0102339 -0.0082446 -0.0159553 0.0169717 0.0176196 -0.0070649 -0.0113180 -0.0092102 0.0354522 0.0150474 0.0081284 0.0136393 0.0112832 0.0205128 0.0007470 -0.0053267 0.0091414 -0.0043265 -0.0051601 -0.0173007 0.0209389 -0.0057822 -0.0202524 -0.0083803 0.0401775 -0.0303656 -0.0120099 0.0282696 -0.0408262 -0.0037261 0.0376164 0.0124771 -0.0202307 0.0066382 0.0422047 -0.0129213 0.0018219 -0.0006736 -0.0014153 0.0273690 0.0105115 -0.0038358 -0.0017295 -0.0106891 -0.0387246 0.0078026 0.0348226 -0.0055041 -0.0026181 0.0317328 -0.0269243 0.1106440 0.0408558 -0.0048958 -0.0005467 0.0310323 0.0299308 0.0103014 0.0080230 0.0124577 0.0042592 -0.0053146 0.0116334 -0.0135029 0.0189361 0.0237349 -0.0026800 -0.0004563 -0.0174495 0.0030202 -0.0191214 0.0291494 0.0346463 -0.0004188 0.0113392 -0.0113340 0.0102312 0.0205969 0.0302241 0.0051526 0.0175029 0.0066493 -0.0009694 -0.0079205 0.0149440 -0.0177943 -0.0250530 -0.0259543 0.0292407 -0.0413894 0.0080362 -0.0118133 0.0084587 -0.0072241 -0.0218544 0.0135054 0.0060839 -0.0081036 -0.0033567 0.0267960 0.0100095 0.0014805 0.0190519 0.0097807 -0.0128838 -0.0058921 0.0175214 -0.0173822 0.0170757 -0.1078163 -0.0391452 -0.0345369 -0.0053028 0.0244267 0.0248080 0.0131918 0.0038451 -0.0057058 -0.0010361 0.0126060 -0.0076691 -0.0260170 0.0088315 -0.0206330 0.0147969 -0.0275090 0.0102001 0.0045243 0.0116995 0.0232097 0.0108774 -0.0009973 0.0139761 0.0416094 0.0162923 -0.0048950 0.0117566 -0.0669243 -0.0019018 -0.0146437 0.0293783 0.0227238 -0.0112478 -0.0050898 0.0120991 -0.0676574 0.0207644 0.0005046 0.0138819 0.0075920 0.0902359 0.0522152 0.0072024 -0.0040702 0.0154891 -0.0122290 -0.0339448 -0.0064077 -0.0225834 -0.0025913 -0.0401722 -0.0098494 -0.0460412 -0.0248083 0.0469064 -0.0330059 0.0397764 0.0075217 -0.0081069 -0.0626180 0.0104299 0.0104861 -0.0468328 -0.0555414 -0.0083153 -0.0312396 0.0349655 0.0301311 0.1047479 0.0190747 0.0228568 -0.0077880 0.0570732 0.0042465 -0.0209738 -0.1661279 -0.0213993 -0.0546533 0.0262990 -0.0031174 -0.0623867 0.0082047 -0.0022826 -0.0072613 0.0392104 0.0089989 0.0677496 -0.0096355 0.0020784 0.0323735 -0.0473723 0.0177273 -0.0464293 0.0193374 0.0138108 0.0078018 -0.0331731 -0.0110409 -0.0550935 0.0201827 -0.0284120 -0.0400487 0.0211412 -0.0317270 0.0937812 0.0267695 0.0079197 0.0215922 -0.0463943 -0.0247451 0.0368851 0.0043389 0.0114994 0.0564662 -0.0037752 -0.0338078 -0.0264052 0.0328628 -0.0045453 0.0190973 0.0103535 0.0071613 0.0025288 0.0341860 0.0024964 -0.0356928 -0.0193529 0.0278770 0.0338055 0.0000284 -0.0588754 0.0419781 0.0014523 -0.0091943 -0.0011709 0.0401806 0.0089033 0.0095510 -0.0101798 0.0118495
ABT 0.0022113 -0.0016972 0.0028901 -0.0028818 0.0017001 -0.0015275 0.0068318 -0.0018659 -0.0067981 0.0094114 0.0013561 0.0040630 0.0043837 -0.0057076 0.0420396 0.0243033 0.0031635 -0.0017345 -0.0137419 -0.0044843 0.0003218 -0.0078804 -0.0479819 0.0022136 -0.0032281 -0.0409068 0.0159943 0.0041980 0.0040062 0.0111034 0.0209335 0.0112604 -0.0174505 -0.0021989 0.0000000 0.0122054 0.0137330 0.0003303 -0.0036333 -0.0255263 0.0113965 0.0153044 0.0084479 0.0067346 0.0094632 0.0279619 0.0003145 -0.0066017 -0.0053798 -0.0042953 0.0094264 -0.0145616 0.0062640 -0.0036711 -0.0238706 -0.0234695 0.0263865 -0.0129360 -0.0174187 0.0116495 -0.0285381 0.0135716 0.0077965 0.0067273 -0.0382560 0.0112907 0.0158020 -0.0116672 0.0113461 -0.0057793 0.0133356 0.0089422 -0.0046823 0.0060483 -0.0115231 -0.0059131 -0.0090075 0.0058309 0.0144927 0.0010084 -0.0240094 0.0118699 -0.0164910 0.0013829 0.0139824 0.0098740 -0.0102832 0.0117527 0.0195286 0.0115588 0.0124062 -0.0238633 0.0037992 0.0047721 0.0106453 0.0064818 -0.0115923 0.0073302 0.0108344 -0.0022396 -0.0171557 0.0125612 -0.0086998 0.0143019 0.0097742 0.0001586 0.0080914 -0.0056658 0.0014246 -0.0022127 -0.0033265 -0.0046090 0.0052690 -0.0007941 -0.0014307 -0.0076408 -0.0032082 -0.0062762 0.0030770 -0.0188892 0.0006582 -0.0052622 0.0128946 -0.0045699 0.0001640 -0.0031148 0.0085513 0.0135333 0.0045045 0.0059257 -0.0038211 0.0072244 0.0051004 -0.0202981 0.0165102 0.0310510 -0.0149807 -0.0072122 -0.0018951 0.0189874 0.0128881 0.0065920 -0.0060920 -0.0013791 0.0056774 -0.0115960 -0.0030873 0.0100650 0.0001533 -0.0076640 0.0015445 -0.0030845 -0.0094368 -0.0093706 0.0031531 -0.0025146 0.0108713 0.0087281 -0.0012361 0.0017018 0.0142085 0.0024364 0.0041015 0.0111951 -0.0007479 0.0050904 -0.0016387 -0.0026858 0.0040396 -0.0165400 -0.0025759 0.0057725 0.0051353 0.0007512 0.0055555 0.0228460 -0.0011678 -0.0109619 0.0109356 0.0013155 0.0042336 0.0037796 0.0346126 0.0106383 0.0088643 0.0024712 0.0046564 0.0103599 -0.0041825 -0.0239805 -0.0030538 -0.0033416 -0.0019560 -0.0020997 -0.0332444 -0.0078352 0.0180617 -0.0090871 0.0327511 -0.0101480 -0.0297594 -0.0080716 0.0137594 0.0007298 -0.0237713 0.0109052 -0.0100487 0.0047768 0.0102512 0.0138235 0.0175515 0.0005702 0.0028494 0.0080977 0.0217023 0.0063448 -0.0023300 -0.0306361 -0.0151644 -0.0011511 0.0190174 0.0185210 -0.0208217 -0.0209811 -0.0076744 -0.0061287 0.0102775 0.0130795 0.0447569 0.0059041 0.0107835 0.0029709 -0.0372963 0.0005595 -0.0222254 0.0138671 0.0129723 0.0096048 -0.0048255 -0.0196730 -0.0142736 0.0047312 -0.0154109 -0.0089856 -0.0162329 -0.0254199 0.0619281 0.0145072 0.0065127 0.0174428 -0.0391263 -0.0471943 0.0285413 0.0149757 -0.0120063 0.0166910 -0.0051843 0.0036190 -0.0107232 0.0322250 -0.0092238 0.0100257 0.0127624 0.0009801 -0.0221009 0.0135889 0.0040926 -0.0295151 0.0092686 0.0285550 0.0181362 -0.0084955 0.0019348 0.0084138 0.0051976 -0.0102055 0.0081111 0.0028638 0.0206690 -0.0090594 -0.0055122 0.0173043
ACN 0.0046152 0.0118409 0.0082491 0.0079912 0.0033350 -0.0035119 0.0013215 0.0062850 -0.0134283 0.0142442 0.0045565 0.0050329 -0.0019785 -0.0034069 -0.0017404 0.0011830 0.0109460 -0.0083665 -0.0092439 0.0062618 -0.0014935 -0.0221862 -0.0323136 0.0188369 0.0029736 -0.0299065 0.0221248 0.0072153 0.0121974 0.0188089 0.0079480 0.0099343 -0.0075003 -0.0060704 -0.0008725 0.0164046 0.0109850 -0.0132938 -0.0094741 -0.0301844 0.0086456 0.0085714 -0.0051621 0.0032905 -0.0003154 0.0189904 0.0011145 0.0049479 -0.0091699 0.0115529 -0.0120963 -0.0016782 0.0140705 -0.0052186 -0.0728260 -0.0191705 0.0373261 -0.0261041 -0.0097407 0.0413134 -0.0359610 0.0054737 0.0079308 0.0106688 -0.0276440 0.0059031 0.0256323 -0.0153928 0.0113882 0.0002665 0.0085926 0.0186237 0.0082987 -0.0059800 -0.0141018 0.0041335 -0.0128723 -0.0064872 0.0146578 0.0006567 -0.0078090 0.0047620 -0.0079647 0.0067679 0.0112701 -0.0074297 -0.0023637 0.0176385 0.0124176 0.0034496 -0.0096129 -0.0096419 0.0000649 0.0055165 0.0024528 0.0104951 -0.0102587 -0.0001288 0.0018029 0.0025709 -0.0157062 0.0162173 -0.0018585 0.0202259 0.0033985 0.0030735 0.0174463 -0.0129064 0.0097130 0.0035765 0.0005529 0.0011054 -0.0015949 0.0044236 -0.0036700 0.0026399 -0.0094299 -0.0107560 -0.0024994 -0.0217378 0.0044826 -0.0096902 0.0589675 -0.0055320 -0.0022006 0.0006739 0.0089384 -0.0017598 0.0098474 0.0019865 -0.0009012 0.0103421 0.0003570 -0.0026771 0.0025651 -0.0100554 0.0030652 -0.0022170 -0.0033630 -0.0047602 0.0115639 -0.0114317 -0.0190712 -0.0160475 -0.0005645 0.0023850 0.0027549 0.0013737 0.0013096 0.0038610 -0.0003722 -0.0031029 0.0002489 -0.0028006 0.0063036 -0.0051476 0.0154604 0.0122781 0.0013949 -0.0030886 0.0018832 0.0016977 0.0041163 0.0059681 0.0047942 0.0125247 -0.0067149 0.0026092 0.0025433 -0.0050737 0.0042694 -0.0017123 0.0028390 0.0067237 -0.0019919 0.0100969 -0.0024991 -0.0034957 0.0080099 0.0042341 0.0057179 0.0003445 -0.0089557 0.0011007 0.0008678 -0.0168815 0.0008821 0.0194477 -0.0020748 0.0057176 -0.0130929 -0.0036658 -0.0077673 -0.0064743 -0.0418247 -0.0354891 0.0220513 -0.0095333 0.0207700 -0.0052586 -0.0169918 0.0133163 0.0080238 -0.0091508 -0.0314378 0.0248172 -0.0157405 -0.0110715 0.0123084 0.0194024 0.0060906 -0.0075041 0.0076880 0.0051702 0.0279137 0.0038445 0.0039513 -0.0164093 -0.0060946 -0.0071849 0.0137252 0.0154471 -0.0135151 -0.0237759 -0.0120831 -0.0003185 0.0093672 0.0044824 0.0194834 -0.0070279 0.0214192 0.0139801 -0.0156456 -0.0302053 -0.0113030 0.0017149 0.0036774 0.0020214 0.0102762 -0.0294540 -0.0248184 0.0030988 -0.0077560 -0.0494171 -0.0439025 -0.0257289 0.0399491 0.0100713 -0.0042020 0.0085109 -0.0029785 -0.0341419 0.0388837 0.0034734 0.0252896 0.0050296 0.0078838 -0.0053735 -0.0088901 0.0135238 0.0067398 0.0083851 0.0089190 -0.0098371 -0.0036920 0.0116561 0.0113221 0.0025683 -0.0014451 0.0136166 -0.0035044 0.0077499 0.0116970 0.0049186 -0.0010171 -0.0125987 0.0026421 -0.0017353 0.0084342 0.0089382 -0.0011390 0.0087424
ADBE 0.0187957 0.0120416 0.0115708 -0.0016187 0.0089711 0.0021961 0.0096734 0.0324476 -0.0132786 0.0209394 -0.0014759 -0.0023955 0.0107802 0.0113728 -0.0115448 -0.0013652 0.0191889 -0.0152509 -0.0067094 0.0145251 -0.0019022 -0.0187582 -0.0274483 0.0220739 -0.0109529 -0.0373297 0.0152841 0.0221288 0.0069217 0.0188650 0.0296251 -0.0069469 0.0070450 -0.0043847 0.0025731 0.0351908 0.0114904 -0.0156964 0.0014845 -0.0148233 0.0182497 0.0065304 0.0040253 0.0228763 -0.0021212 0.0217653 -0.0007688 -0.0053408 -0.0060065 0.0019685 0.0305204 -0.0149413 0.0340715 -0.0126224 -0.0279039 -0.0249410 0.0645986 -0.0660085 -0.0058934 0.0166557 -0.0175861 0.0171942 0.0422360 -0.0067097 -0.0220542 0.0025616 0.0244559 -0.0040083 0.0148907 -0.0127776 0.0109792 0.0204838 -0.0002596 -0.0150585 -0.0104560 0.0002664 -0.0328895 -0.0026160 0.0211209 -0.0000451 -0.0013519 0.0111913 -0.0132988 0.0223880 0.0108825 0.0108530 0.0154552 0.0220839 0.0058813 0.0030272 -0.0145114 -0.0074254 0.0033389 -0.0022747 0.0052353 0.0000420 0.0028979 0.0214415 0.0050838 -0.0064858 -0.0056249 0.0215120 0.0075991 0.0081434 0.0080777 -0.0025262 0.0049466 -0.0253593 0.0149489 -0.0008360 0.0063346 0.0140148 0.0076914 -0.0243316 0.0153681 -0.0154484 -0.0019862 -0.0095924 -0.0208978 -0.0162132 0.0107227 -0.0188648 0.0089617 0.0166799 -0.0022559 -0.0051385 0.0089666 0.0164223 0.0063661 -0.0045642 -0.0020513 0.0272046 0.0145957 -0.0151205 0.0142532 0.0056908 -0.0080838 -0.0005432 0.0074940 -0.0076310 0.0220592 -0.0047119 -0.0271828 -0.0490169 0.0097391 0.0136096 0.0169751 0.0042027 0.0032770 -0.0028334 0.0017365 -0.0001182 -0.0003940 -0.0006307 0.0098998 -0.0215973 -0.0065065 -0.0128169 0.0165242 0.0069667 0.0160636 0.0057134 0.0175487 0.0034033 0.0024391 0.0202250 -0.0071918 -0.0109597 0.0120298 -0.0395229 0.0140938 0.0043118 0.0172500 0.0061424 0.0029588 0.0027259 0.0229779 -0.0234446 0.0094688 -0.0218250 0.0055119 -0.0205001 0.0123045 0.0141997 0.0023522 0.0053637 0.0001482 0.0205222 -0.0126683 -0.0054779 -0.0251378 -0.0018581 -0.0324063 -0.0020810 -0.0639361 0.0028582 0.0430865 -0.0436372 0.0952062 -0.0067519 -0.0330617 -0.0212503 0.0246092 0.0027882 -0.0529075 0.0607280 -0.0281512 -0.0246135 -0.0055891 0.0308292 -0.0019531 -0.0229941 0.0010432 0.0027929 0.0535001 -0.0136921 -0.0204833 -0.0333687 0.0087464 -0.0147441 0.0201088 -0.0044176 -0.0803717 0.0001820 0.0284440 -0.0018586 0.0283739 0.0012502 0.0730248 -0.0004816 0.0072263 0.0174180 -0.0369819 0.0195672 -0.0503930 0.0255882 0.0051211 0.0008560 0.0103034 -0.0728797 -0.0374782 0.0216821 -0.0067645 -0.0267082 -0.0450491 -0.0174329 0.0867128 0.0098228 -0.0089278 0.0139381 -0.0073815 -0.0394978 0.0486324 0.0135726 0.0149176 0.0118188 0.0099393 -0.0009253 -0.0125868 0.0332538 -0.0016917 0.0101260 0.0127250 -0.0147872 0.0052901 -0.0105246 0.0098532 -0.0126556 -0.0148026 0.0184664 0.0212223 -0.0017755 0.0297518 0.0003141 -0.0018444 -0.0023983 0.0128478 0.0054086 0.0115329 -0.0043616 -0.0003458 -0.0026524

Step 3 - Perform K-Means Clustering

kmeans_obj <- stock_data_matrix_tbl %>% 
    select(-symbol) %>% 
    kmeans(centers = 4, nstart = 20)
kmeans_obj %>% glance()

Step 4 - Identify optimal value for K

kmeans_mapper <- function(center = 3) {
    stock_data_matrix_tbl %>%
        select(-symbol) %>%
        kmeans(centers = center, nstart = 20)
}
k_means_mapped_tbl <- tibble(centers = 1:30) %>% 
    mutate(k_means = centers %>% map(kmeans_mapper)) %>%
    mutate(glance  = k_means %>% map(glance))
# Visualize Scree Plot

k_means_mapped_tbl %>% 
    unnest(glance) %>% 
    
    ggplot(aes(x = centers, y = tot.withinss)) +
    geom_point(color = "#2c3e50") +
    geom_line(color = "#2c3e50") +
    labs(title = "Scree Plot") +
    theme_tq()

# Scree Plot appears to become relatively linear between 5 and 10 centers for K.

Step 5 - Apply UMAP to stock_data_matrix_tbl first, then combine layout from umap_results with stock symbol from stock_data_matrix_tbl and visualize.

umap_results <- stock_data_matrix_tbl %>% 
    select(-symbol) %>% 
    umap()
umap_results_tbl <- umap_results$layout %>% 
    as_tibble() %>% 
    bind_cols(stock_data_matrix_tbl %>% select(symbol))
umap_results_tbl %>% 
    ggplot(aes(x = V1, y = V2)) +
    geom_point(alpha = 0.5) +
    theme_tq() +
    labs(title = "UMAP Projection")

Step 6 - Combine K-Means and UMAP

k_means_obj <- k_means_mapped_tbl %>% 
    filter(centers == 10) %>% 
    pull(k_means) %>% 
    pluck(1)
umap_kmeans_results_tbl <- k_means_obj %>%
    augment(stock_data_matrix_tbl) %>% 
    select(symbol, .cluster) %>% 
    left_join(umap_results_tbl, by = "symbol") %>% 
    left_join(sp_500_index_tbl %>% select(symbol, company, sector),
              by = "symbol")
umap_kmeans_results_tbl %>% 
    ggplot(aes(x = V1, y = V2, color = .cluster)) +
    geom_point(alpha = 0.5) +
    theme_tq() +
    scale_color_tq()

get_kmeans <- function(k = 3) {
    
    k_means_obj <- k_means_mapped_tbl %>%
        filter(centers == k) %>%
        pull(k_means) %>%
        pluck(1)
    
    umap_kmeans_results_tbl <- k_means_obj %>% 
        augment(stock_data_matrix_tbl) %>%
        select(symbol, .cluster) %>%
        left_join(umap_results_tbl, by = "symbol") %>%
        left_join(sp_500_index_tbl %>% select(symbol, company, sector),
                  by = "symbol")
    
    return(umap_kmeans_results_tbl)
}

plot_cluster <- function(k = 3) {
    
    g <- get_kmeans(k) %>%
        
        mutate(label_text = str_glue("Stock: {symbol}
                                     Company: {company}
                                     Sector: {sector}")) %>%
        
        ggplot(aes(x = V1, y = V2, color = .cluster, text = label_text)) +
        geom_point(alpha = 0.5) +
        theme_tq() +
        scale_color_tq()
        
        g %>%
        ggplotly(tooltip = "text")
    
}

Interactive Cluster Plot

plot_cluster(k = 10)