R Group Assignment
Objectives
Finance Theory
Strategy
# Load necessary libraries
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## âś” dplyr 1.1.4 âś” readr 2.1.5
## âś” forcats 1.0.0 âś” stringr 1.5.1
## âś” ggplot2 3.5.0 âś” tibble 3.2.1
## âś” lubridate 1.9.3 âś” tidyr 1.3.1
## âś” purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## âś– dplyr::filter() masks stats::filter()
## âś– dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(readxl)
library(lubridate)
library(writexl)
library(corrplot)
## corrplot 0.92 loaded
# Clear environment
rm(list = ls())
# Set seed for reproducibility
set.seed(1601190)
# Set directory
directory <- "C:/Users/Trinity/Downloads/R project/"
# Read data
My_stocks <- read_xlsx(paste0(directory, "Assignment data.xlsx"), sheet = "Flat Returns") %>%
distinct(Ticker) %>%
slice_sample(n = 20, replace = FALSE) %>%
unlist() %>%
unname()
Ratios_df <- read_xlsx(paste0(directory, "Assignment data.xlsx"), sheet = "Flat Ratios") %>%
select(c(1:5, all_of(toupper(My_stocks)))) %>%
mutate(across(c(1, 3), .fns = function(x){as.Date(x, origin = "1899-12-30")}))
Returns_df <- read_xlsx(paste0(directory, "Assignment data.xlsx"), sheet = "Flat Returns") %>%
filter(Ticker %in% My_stocks)
Returns_df$Ticker <- toupper(Returns_df$Ticker)
Importing and Modifying data
# Read the excel file
excel_file <- "C:/Users/Trinity/Downloads/R project/Assignment data.xlsx"
excel_sheets <- excel_sheets(excel_file)
sheet_name <- "Flat Returns" # Sheet name
data <- read_excel(excel_file, sheet = sheet_name)
##==============================================================================================
## Creating a pivot table
##==============================================================================================
pivoted_df <- pivot_wider(data = data, names_from = "Ticker", values_from = "Daily Return")
# Store data in output Excel file
write_xlsx(pivoted_df, path = "output_data.xlsx")
pivoted_df_1 <- pivoted_df[, ! names(pivoted_df) %in% c('Date')]
# Create covariance matrices
pivoted_df_1 <- pivoted_df[, ! names(pivoted_df) %in% c('Date')]
##============================================================================================
##slicing the data into square matrices
##============================================================================================
matrix_1 <- pivoted_df_1[1:80,]
matrix_2 <- pivoted_df_1[81:160,]
matrix_3 <- pivoted_df_1[161:240,]
matrix_4 <- pivoted_df_1[241:320,]
rownames(matrix_1) <-toupper(rownames(matrix_1))
rownames(matrix_2) <-toupper(rownames(matrix_2))
rownames(matrix_3) <-toupper(rownames(matrix_3))
rownames(matrix_4) <-toupper(rownames(matrix_4))
rownames(matrix_1) <- colnames(matrix_1)
rownames(matrix_2) <- colnames(matrix_2)
rownames(matrix_3) <- colnames(matrix_3)
rownames(matrix_4) <- colnames(matrix_4)
##==============================================================================================
## Creating a covariance matrix for every matrix above
##==============================================================================================
Correlation_matrix_1 <- cor(matrix_1)
Correlation_matrix_2 <- cor(matrix_2)
Correlation_matrix_3 <- cor(matrix_3)
Correlation_matrix_4 <- cor(matrix_4)
rownames(Correlation_matrix_1) <-toupper(rownames(Correlation_matrix_1))
rownames(Correlation_matrix_2) <-toupper(rownames(Correlation_matrix_2))
rownames(Correlation_matrix_3) <-toupper(rownames(Correlation_matrix_3))
rownames(Correlation_matrix_4) <-toupper(rownames(Correlation_matrix_4))
colnames(Correlation_matrix_1) <- rownames(Correlation_matrix_1)
colnames(Correlation_matrix_2) <- rownames(Correlation_matrix_2)
colnames(Correlation_matrix_3) <- rownames(Correlation_matrix_3)
colnames(Correlation_matrix_4) <- rownames(Correlation_matrix_4)
View(Correlation_matrix_4)
Raw Matrix output
print(head(Correlation_matrix_4, n = 20))
## MTN SJ EQUITY NPN SJ EQUITY PRX SJ EQUITY FSR SJ EQUITY
## MTN SJ EQUITY 1.00000000 2.531333e-02 -0.011055621 0.64234879
## NPN SJ EQUITY 0.02531333 1.000000e+00 0.975807627 0.06455968
## PRX SJ EQUITY -0.01105562 9.758076e-01 1.000000000 -0.01556507
## FSR SJ EQUITY 0.64234879 6.455968e-02 -0.015565071 1.00000000
## AGL SJ EQUITY 0.31163289 5.091136e-02 -0.001858297 0.45064298
## SBK SJ EQUITY 0.72427134 7.073854e-02 -0.006939386 0.83612835
## SOL SJ EQUITY 0.13236534 8.532126e-02 0.024701633 0.28164757
## IMP SJ EQUITY 0.39482851 1.600402e-01 0.178997177 0.40333626
## CPI SJ EQUITY 0.38234141 -1.926394e-01 -0.223960072 0.61255342
## BTI SJ EQUITY -0.10956044 1.402218e-02 -0.001696955 -0.08616487
## CFR SJ EQUITY 0.20836835 2.186184e-01 0.181988340 0.34386829
## SSW SJ EQUITY 0.16296622 7.543204e-02 0.077327864 0.30127596
## BHG SJ EQUITY 0.31051087 -6.801653e-02 -0.050221238 0.35358162
## ABG SJ EQUITY 0.38915050 1.334996e-01 0.052536538 0.61798585
## BID SJ EQUITY 0.21752867 -8.002026e-02 -0.064277041 0.26136718
## SLM SJ EQUITY 0.51501250 -4.320307e-05 -0.053592890 0.78046137
## SHP SJ EQUITY 0.33597258 -8.061043e-03 -0.033903300 0.50971782
## AMS SJ EQUITY 0.40911674 1.080264e-01 0.103788843 0.30572133
## VOD SJ EQUITY 0.63936652 -1.611370e-01 -0.164523262 0.46245199
## GFI SJ EQUITY 0.29216135 2.259940e-02 -0.029259359 0.44280810
## AGL SJ EQUITY SBK SJ EQUITY SOL SJ EQUITY IMP SJ EQUITY
## MTN SJ EQUITY 0.311632891 0.724271343 0.13236534 0.39482851
## NPN SJ EQUITY 0.050911361 0.070738536 0.08532126 0.16004017
## PRX SJ EQUITY -0.001858297 -0.006939386 0.02470163 0.17899718
## FSR SJ EQUITY 0.450642984 0.836128352 0.28164757 0.40333626
## AGL SJ EQUITY 1.000000000 0.475787860 0.25792585 0.41182710
## SBK SJ EQUITY 0.475787860 1.000000000 0.39400663 0.40482295
## SOL SJ EQUITY 0.257925850 0.394006633 1.00000000 0.38909204
## IMP SJ EQUITY 0.411827097 0.404822946 0.38909204 1.00000000
## CPI SJ EQUITY 0.429513639 0.507725147 0.17340374 0.30683310
## BTI SJ EQUITY -0.160805522 -0.007359638 0.11685793 -0.07851724
## CFR SJ EQUITY 0.152470577 0.346094451 -0.14285288 0.25767876
## SSW SJ EQUITY 0.290195561 0.298688330 0.29428453 0.63801519
## BHG SJ EQUITY 0.261814523 0.280354939 -0.04611041 0.21585932
## ABG SJ EQUITY 0.698990223 0.678316504 0.44314308 0.32306159
## BID SJ EQUITY -0.140510272 0.293824663 0.09351088 0.26680515
## SLM SJ EQUITY 0.442213717 0.756746316 0.37286375 0.50867839
## SHP SJ EQUITY 0.247505691 0.537900614 0.31454449 0.51942100
## AMS SJ EQUITY 0.341862039 0.402203462 0.26609483 0.78243766
## VOD SJ EQUITY 0.206296165 0.418317040 0.04132165 0.37215083
## GFI SJ EQUITY 0.364329202 0.416557863 0.19483526 0.23681455
## CPI SJ EQUITY BTI SJ EQUITY CFR SJ EQUITY SSW SJ EQUITY
## MTN SJ EQUITY 0.3823414 -0.109560438 0.20836835 0.16296622
## NPN SJ EQUITY -0.1926394 0.014022183 0.21861837 0.07543204
## PRX SJ EQUITY -0.2239601 -0.001696955 0.18198834 0.07732786
## FSR SJ EQUITY 0.6125534 -0.086164867 0.34386829 0.30127596
## AGL SJ EQUITY 0.4295136 -0.160805522 0.15247058 0.29019556
## SBK SJ EQUITY 0.5077251 -0.007359638 0.34609445 0.29868833
## SOL SJ EQUITY 0.1734037 0.116857931 -0.14285288 0.29428453
## IMP SJ EQUITY 0.3068331 -0.078517238 0.25767876 0.63801519
## CPI SJ EQUITY 1.0000000 -0.192711328 0.19973144 0.21175276
## BTI SJ EQUITY -0.1927113 1.000000000 -0.07363493 -0.04086361
## CFR SJ EQUITY 0.1997314 -0.073634926 1.00000000 0.17830936
## SSW SJ EQUITY 0.2117528 -0.040863609 0.17830936 1.00000000
## BHG SJ EQUITY 0.3011797 -0.256061927 0.14768332 0.17342686
## ABG SJ EQUITY 0.5095363 -0.125202327 0.19900709 0.31118834
## BID SJ EQUITY 0.1077457 0.324297894 -0.08123177 0.24355859
## SLM SJ EQUITY 0.5927452 -0.042344212 0.23255533 0.47673547
## SHP SJ EQUITY 0.3489504 0.025116849 0.21533299 0.26073103
## AMS SJ EQUITY 0.2576554 -0.060037313 0.19503044 0.73856698
## VOD SJ EQUITY 0.3698349 0.016221996 0.14118663 0.24499590
## GFI SJ EQUITY 0.3066519 -0.015577485 0.10867196 0.38246640
## BHG SJ EQUITY ABG SJ EQUITY BID SJ EQUITY SLM SJ EQUITY
## MTN SJ EQUITY 0.310510875 0.389150503 0.21752867 5.150125e-01
## NPN SJ EQUITY -0.068016533 0.133499611 -0.08002026 -4.320307e-05
## PRX SJ EQUITY -0.050221238 0.052536538 -0.06427704 -5.359289e-02
## FSR SJ EQUITY 0.353581619 0.617985854 0.26136718 7.804614e-01
## AGL SJ EQUITY 0.261814523 0.698990223 -0.14051027 4.422137e-01
## SBK SJ EQUITY 0.280354939 0.678316504 0.29382466 7.567463e-01
## SOL SJ EQUITY -0.046110413 0.443143083 0.09351088 3.728637e-01
## IMP SJ EQUITY 0.215859320 0.323061591 0.26680515 5.086784e-01
## CPI SJ EQUITY 0.301179652 0.509536319 0.10774573 5.927452e-01
## BTI SJ EQUITY -0.256061927 -0.125202327 0.32429789 -4.234421e-02
## CFR SJ EQUITY 0.147683318 0.199007091 -0.08123177 2.325553e-01
## SSW SJ EQUITY 0.173426860 0.311188343 0.24355859 4.767355e-01
## BHG SJ EQUITY 1.000000000 -0.002488907 -0.07677093 4.333913e-01
## ABG SJ EQUITY -0.002488907 1.000000000 0.04321045 5.675782e-01
## BID SJ EQUITY -0.076770926 0.043210454 1.00000000 2.560304e-01
## SLM SJ EQUITY 0.433391260 0.567578200 0.25603041 1.000000e+00
## SHP SJ EQUITY 0.184417364 0.298317106 0.21392788 5.225889e-01
## AMS SJ EQUITY 0.194363612 0.299866903 0.26237305 4.587773e-01
## VOD SJ EQUITY 0.167528409 0.220638662 0.44546220 5.347304e-01
## GFI SJ EQUITY 0.376484896 0.281800336 0.22165675 4.506196e-01
## SHP SJ EQUITY AMS SJ EQUITY VOD SJ EQUITY GFI SJ EQUITY
## MTN SJ EQUITY 0.335972575 0.40911674 0.63936652 0.29216135
## NPN SJ EQUITY -0.008061043 0.10802642 -0.16113703 0.02259940
## PRX SJ EQUITY -0.033903300 0.10378884 -0.16452326 -0.02925936
## FSR SJ EQUITY 0.509717817 0.30572133 0.46245199 0.44280810
## AGL SJ EQUITY 0.247505691 0.34186204 0.20629617 0.36432920
## SBK SJ EQUITY 0.537900614 0.40220346 0.41831704 0.41655786
## SOL SJ EQUITY 0.314544493 0.26609483 0.04132165 0.19483526
## IMP SJ EQUITY 0.519421003 0.78243766 0.37215083 0.23681455
## CPI SJ EQUITY 0.348950428 0.25765541 0.36983486 0.30665194
## BTI SJ EQUITY 0.025116849 -0.06003731 0.01622200 -0.01557749
## CFR SJ EQUITY 0.215332989 0.19503044 0.14118663 0.10867196
## SSW SJ EQUITY 0.260731027 0.73856698 0.24499590 0.38246640
## BHG SJ EQUITY 0.184417364 0.19436361 0.16752841 0.37648490
## ABG SJ EQUITY 0.298317106 0.29986690 0.22063866 0.28180034
## BID SJ EQUITY 0.213927880 0.26237305 0.44546220 0.22165675
## SLM SJ EQUITY 0.522588935 0.45877734 0.53473041 0.45061959
## SHP SJ EQUITY 1.000000000 0.50795013 0.31152352 0.41900763
## AMS SJ EQUITY 0.507950132 1.00000000 0.37363803 0.48510287
## VOD SJ EQUITY 0.311523516 0.37363803 1.00000000 0.32284424
## GFI SJ EQUITY 0.419007633 0.48510287 0.32284424 1.00000000
## NED SJ EQUITY GLN SJ EQUITY APN SJ EQUITY ANG SJ EQUITY
## MTN SJ EQUITY 0.59714800 0.4713684679 0.36008046 0.31420408
## NPN SJ EQUITY 0.11733193 0.1156154449 -0.09029356 0.14580391
## PRX SJ EQUITY 0.04203672 0.0862240448 -0.09131992 0.06394209
## FSR SJ EQUITY 0.81778693 0.5931217171 0.40606477 0.40444407
## AGL SJ EQUITY 0.48718293 0.3755809187 0.17290299 0.48662199
## SBK SJ EQUITY 0.82092729 0.5789629129 0.45136534 0.48884986
## SOL SJ EQUITY 0.36942346 0.1714438856 0.05342126 0.33341886
## IMP SJ EQUITY 0.46481714 0.4565882310 0.05354898 0.25845724
## CPI SJ EQUITY 0.62036332 0.3646288310 0.30163094 0.35072082
## BTI SJ EQUITY -0.13815809 -0.0881525724 -0.02138702 -0.04191008
## CFR SJ EQUITY 0.39119672 0.3564824345 0.24457208 0.09281016
## SSW SJ EQUITY 0.35355950 0.4958799115 0.14762254 0.38401910
## BHG SJ EQUITY 0.15323978 0.4206348150 0.07485632 0.30153529
## ABG SJ EQUITY 0.79032003 0.3411417996 0.33449360 0.42825494
## BID SJ EQUITY 0.19660816 -0.0006983849 0.12046167 0.03756580
## SLM SJ EQUITY 0.75648601 0.6017777545 0.27811048 0.46174555
## SHP SJ EQUITY 0.51938355 0.3741026395 0.20447377 0.38699855
## AMS SJ EQUITY 0.38479139 0.4490016829 0.15055693 0.55060109
## VOD SJ EQUITY 0.44502452 0.2547092618 0.05735830 0.18989766
## GFI SJ EQUITY 0.34755745 0.3562252935 0.12719547 0.83825943
## CLS SJ EQUITY REM SJ EQUITY DSY SJ EQUITY BVT SJ EQUITY
## MTN SJ EQUITY 0.37384063 0.55109664 0.351443266 0.28130803
## NPN SJ EQUITY -0.01220676 0.16942048 0.070224805 -0.04259904
## PRX SJ EQUITY -0.06281637 0.11143358 0.002599578 0.01585573
## FSR SJ EQUITY 0.43565740 0.78302018 0.573063669 0.32416798
## AGL SJ EQUITY 0.14172423 0.17649029 0.289754018 0.24128433
## SBK SJ EQUITY 0.34176713 0.71758758 0.517149978 0.32923118
## SOL SJ EQUITY 0.03931697 0.20054627 0.312018222 0.24078719
## IMP SJ EQUITY 0.40095658 0.27514389 0.337204738 0.66548336
## CPI SJ EQUITY 0.21891444 0.47732975 0.440038959 0.29966446
## BTI SJ EQUITY -0.09857760 -0.05317781 -0.122721257 -0.03160797
## CFR SJ EQUITY 0.42291615 0.39881304 0.320154943 0.29946175
## SSW SJ EQUITY 0.15878385 0.19656091 0.177592465 0.43250893
## BHG SJ EQUITY 0.21532451 0.31523541 0.161640063 0.24444698
## ABG SJ EQUITY 0.20159712 0.38698599 0.525874468 0.27424868
## BID SJ EQUITY 0.13942682 0.19218271 0.079230810 0.27198219
## SLM SJ EQUITY 0.34187542 0.65109223 0.579153862 0.49868830
## SHP SJ EQUITY 0.56809085 0.46998789 0.632036353 0.41324122
## AMS SJ EQUITY 0.39524033 0.21889969 0.256259435 0.37467145
## VOD SJ EQUITY 0.47106876 0.41079833 0.393155097 0.45755105
## GFI SJ EQUITY 0.41256738 0.29422766 0.377446085 0.16232396
## NPH SJ EQUITY OMU SJ EQUITY MNP SJ EQUITY MRP SJ EQUITY
## MTN SJ EQUITY 0.48039284 0.3617372 0.279446793 0.30126734
## NPN SJ EQUITY 0.23401674 -0.1256332 0.149805456 0.12422598
## PRX SJ EQUITY 0.18819824 -0.1793149 0.134678343 0.10979000
## FSR SJ EQUITY 0.43083644 0.7552848 0.317451213 0.42399502
## AGL SJ EQUITY 0.28374522 0.4708850 0.243907897 0.14068079
## SBK SJ EQUITY 0.48007879 0.5486190 0.333994913 0.50027660
## SOL SJ EQUITY 0.35123708 0.2136522 -0.002400106 0.17946467
## IMP SJ EQUITY 0.79417530 0.4825510 0.050667985 0.29771218
## CPI SJ EQUITY 0.32591563 0.6675364 0.204251893 0.30403614
## BTI SJ EQUITY 0.01385965 -0.1699474 -0.138090064 -0.02150238
## CFR SJ EQUITY 0.35769564 0.2298678 0.093164369 0.12509771
## SSW SJ EQUITY 0.54000341 0.4536875 0.212795529 0.06056072
## BHG SJ EQUITY 0.10951438 0.3458449 0.246880343 0.10003685
## ABG SJ EQUITY 0.34124426 0.4939527 0.187848989 0.30755892
## BID SJ EQUITY 0.26350696 0.3205279 -0.055615626 0.19517547
## SLM SJ EQUITY 0.44844391 0.7741956 0.131422150 0.35582398
## SHP SJ EQUITY 0.47554155 0.4589305 -0.076781958 0.61232810
## AMS SJ EQUITY 0.80897281 0.3538083 0.126021219 0.35990749
## VOD SJ EQUITY 0.37365656 0.5090948 -0.125079103 0.06908264
## GFI SJ EQUITY 0.34177015 0.3464850 0.170382618 0.23431671
## WHL SJ EQUITY GRT SJ EQUITY NRP SJ EQUITY MCG SJ EQUITY
## MTN SJ EQUITY 0.30495219 0.47446314 0.40954149 0.40890884
## NPN SJ EQUITY -0.06871017 0.01750008 0.05923870 -0.12373980
## PRX SJ EQUITY -0.06468254 -0.05101394 -0.00517001 -0.11918944
## FSR SJ EQUITY 0.31657629 0.70665880 0.69373454 0.09275305
## AGL SJ EQUITY 0.16587565 0.40549984 0.42438759 -0.02952807
## SBK SJ EQUITY 0.39921221 0.57997236 0.54002436 0.21384171
## SOL SJ EQUITY 0.12298645 0.22710627 0.17539275 0.13979622
## IMP SJ EQUITY 0.39129636 0.32612381 0.27234098 -0.02762418
## CPI SJ EQUITY 0.09575401 0.30589144 0.48194576 0.24441787
## BTI SJ EQUITY 0.03934885 -0.24157868 -0.01236047 0.12510539
## CFR SJ EQUITY 0.15018257 0.14892563 0.23776930 -0.16340202
## SSW SJ EQUITY 0.30635044 0.34572183 0.23585618 -0.05165304
## BHG SJ EQUITY 0.17404361 0.26578988 0.51635355 -0.02650952
## ABG SJ EQUITY 0.12090151 0.52050834 0.38788122 0.05635152
## BID SJ EQUITY 0.26982513 0.11494526 0.06720549 0.07983855
## SLM SJ EQUITY 0.37679037 0.59193366 0.59222135 0.17994653
## SHP SJ EQUITY 0.57575941 0.41627872 0.50999626 0.16389080
## AMS SJ EQUITY 0.50325571 0.26903842 0.28856397 0.03402492
## VOD SJ EQUITY 0.25157599 0.37436044 0.30787326 0.44561873
## GFI SJ EQUITY 0.38275797 0.47030665 0.48986817 0.08324117
## ANH SJ EQUITY EXX SJ EQUITY RNI SJ EQUITY TFG SJ EQUITY
## MTN SJ EQUITY -0.150607965 0.43017947 0.12352922 0.13202275
## NPN SJ EQUITY -0.179875394 -0.03343013 -0.05253243 0.19901071
## PRX SJ EQUITY -0.162413000 -0.07237722 -0.12735685 0.17946735
## FSR SJ EQUITY -0.183937757 0.37231983 0.28303919 0.37206599
## AGL SJ EQUITY -0.139187180 0.49699462 0.30231760 0.27219542
## SBK SJ EQUITY -0.135107962 0.36241107 0.30232036 0.44475540
## SOL SJ EQUITY -0.259406301 0.07344288 0.23877961 0.25929876
## IMP SJ EQUITY -0.192344901 0.40625024 0.22238832 0.27910012
## CPI SJ EQUITY -0.196660223 0.21970770 0.17522484 0.13914352
## BTI SJ EQUITY 0.330914338 -0.18138778 0.27411244 -0.05082148
## CFR SJ EQUITY -0.023583645 0.22069909 0.23229831 0.28028526
## SSW SJ EQUITY -0.043871019 0.31925417 0.20427379 0.15788210
## BHG SJ EQUITY 0.133167599 0.42440494 0.31568212 0.12443763
## ABG SJ EQUITY -0.133610801 0.26393484 0.17634875 0.35363831
## BID SJ EQUITY 0.002162777 0.01665395 0.34198839 -0.02385085
## SLM SJ EQUITY -0.114719177 0.39439169 0.38266741 0.31002840
## SHP SJ EQUITY -0.024776052 0.27304646 0.15862040 0.51399239
## AMS SJ EQUITY -0.087878253 0.36806267 0.29589270 0.33788824
## VOD SJ EQUITY 0.002703643 0.37663437 0.32100063 -0.09432680
## GFI SJ EQUITY -0.166335957 0.16824981 0.41110463 0.29203501
## RMI SJ EQUITY PPH SJ EQUITY LHC SJ EQUITY SPP SJ EQUITY
## MTN SJ EQUITY NA 0.313804718 0.20434453 0.05408207
## NPN SJ EQUITY NA 0.021001791 0.15753854 -0.12498017
## PRX SJ EQUITY NA 0.045444218 0.10912248 -0.13553470
## FSR SJ EQUITY NA 0.213230944 0.43433005 0.13586960
## AGL SJ EQUITY NA 0.178811031 0.12085137 -0.07710009
## SBK SJ EQUITY NA 0.372305779 0.43379635 0.15265223
## SOL SJ EQUITY NA 0.157085807 0.13307227 -0.07364494
## IMP SJ EQUITY NA 0.303097199 -0.03633588 -0.04584386
## CPI SJ EQUITY NA 0.141247082 0.35000631 0.06378979
## BTI SJ EQUITY NA -0.127967024 0.05840188 -0.09749534
## CFR SJ EQUITY NA 0.069822028 0.26105812 0.09098703
## SSW SJ EQUITY NA 0.161019659 0.10638361 0.05145450
## BHG SJ EQUITY NA 0.258909634 -0.06224324 -0.09521154
## ABG SJ EQUITY NA 0.169217326 0.43591955 0.18039329
## BID SJ EQUITY NA -0.045804143 0.05586069 0.06657466
## SLM SJ EQUITY NA 0.308013214 0.38855593 0.05193007
## SHP SJ EQUITY NA 0.431814838 0.32936542 0.24930516
## AMS SJ EQUITY NA 0.433338088 -0.05468905 0.04547020
## VOD SJ EQUITY NA -0.006317858 0.15052891 0.05337870
## GFI SJ EQUITY NA 0.320015147 0.14415104 0.26055186
## INP SJ EQUITY KIO SJ EQUITY TBS SJ EQUITY RBP SJ EQUITY
## MTN SJ EQUITY 0.608336040 0.31849799 0.04589330 NA
## NPN SJ EQUITY 0.042240906 0.19444219 0.13823746 NA
## PRX SJ EQUITY -0.011137592 0.10232388 0.13560698 NA
## FSR SJ EQUITY 0.751059243 0.27703299 0.23845175 NA
## AGL SJ EQUITY 0.318851152 0.47431387 0.08968010 NA
## SBK SJ EQUITY 0.691688737 0.36094399 0.22842003 NA
## SOL SJ EQUITY 0.289756326 0.23734482 -0.13627871 NA
## IMP SJ EQUITY 0.286912638 0.32264446 0.13860802 NA
## CPI SJ EQUITY 0.481408772 0.10768189 0.16800657 NA
## BTI SJ EQUITY -0.006681174 0.06006276 -0.10099236 NA
## CFR SJ EQUITY 0.307188684 0.38523252 0.40846207 NA
## SSW SJ EQUITY 0.226695999 0.31770185 0.05897967 NA
## BHG SJ EQUITY 0.275286823 0.35255023 0.27042082 NA
## ABG SJ EQUITY 0.402413666 0.32808308 0.05789719 NA
## BID SJ EQUITY 0.130592592 -0.21479988 -0.20084599 NA
## SLM SJ EQUITY 0.639149591 0.35248795 0.08557056 NA
## SHP SJ EQUITY 0.381322675 0.38402718 0.46526267 NA
## AMS SJ EQUITY 0.207691977 0.42761906 0.17201792 NA
## VOD SJ EQUITY 0.517069562 0.15625106 -0.17020319 NA
## GFI SJ EQUITY 0.296444869 0.36038707 0.21295987 NA
## MEI SJ EQUITY BAW SJ EQUITY QLT SJ EQUITY TCP SJ EQUITY
## MTN SJ EQUITY NA 0.30238978 0.263440417 0.0487148660
## NPN SJ EQUITY NA 0.27680227 0.109011128 -0.0193325480
## PRX SJ EQUITY NA 0.24146788 0.118301066 -0.0321820622
## FSR SJ EQUITY NA 0.57233888 0.368057544 0.0806364886
## AGL SJ EQUITY NA 0.42121456 0.230075898 0.2151475557
## SBK SJ EQUITY NA 0.56100832 0.282184448 0.1507633506
## SOL SJ EQUITY NA 0.30518809 0.003226147 0.2571826542
## IMP SJ EQUITY NA 0.45543421 0.499257026 0.2255779835
## CPI SJ EQUITY NA 0.34995033 0.203511681 0.1672186048
## BTI SJ EQUITY NA -0.04960264 0.024141668 -0.0882769972
## CFR SJ EQUITY NA 0.29115187 0.270198574 -0.0473064241
## SSW SJ EQUITY NA 0.71232780 0.432568871 0.1757545766
## BHG SJ EQUITY NA 0.18098164 0.134987111 -0.0215884416
## ABG SJ EQUITY NA 0.57910636 0.208353372 0.1981885452
## BID SJ EQUITY NA 0.11427312 -0.006909332 -0.0055310261
## SLM SJ EQUITY NA 0.61229588 0.270104206 0.0003050121
## SHP SJ EQUITY NA 0.21850300 0.284554542 0.0168067726
## AMS SJ EQUITY NA 0.46807121 0.444249143 0.1573891476
## VOD SJ EQUITY NA 0.17519195 -0.001999126 -0.1437979931
## GFI SJ EQUITY NA 0.30120963 0.099520513 -0.0345669936
## INL SJ EQUITY SAP SJ EQUITY ARI SJ EQUITY AVI SJ EQUITY
## MTN SJ EQUITY 0.61216740 0.11100469 0.45507077 0.25008789
## NPN SJ EQUITY 0.01018124 -0.04057713 0.12806864 0.23022843
## PRX SJ EQUITY -0.05216955 -0.04847873 0.04807542 0.20074250
## FSR SJ EQUITY 0.77708606 0.26616373 0.55180390 0.53961184
## AGL SJ EQUITY 0.33327177 0.23128627 0.54011814 0.35730024
## SBK SJ EQUITY 0.70806496 0.34226949 0.63477386 0.42265446
## SOL SJ EQUITY 0.31583473 0.29990176 0.28966446 0.16506506
## IMP SJ EQUITY 0.33210960 -0.03978609 0.49414935 0.39311427
## CPI SJ EQUITY 0.52557512 0.19919754 0.33610275 0.36031556
## BTI SJ EQUITY -0.05655995 -0.01138948 -0.01586604 -0.03594135
## CFR SJ EQUITY 0.37338407 -0.16083639 0.34249734 0.27923758
## SSW SJ EQUITY 0.23844034 0.18202592 0.44402397 0.25483635
## BHG SJ EQUITY 0.27048610 0.31655126 0.39985032 0.35180732
## ABG SJ EQUITY 0.39701482 0.26799918 0.45216214 0.32024767
## BID SJ EQUITY 0.11152134 0.02893808 -0.04007588 -0.02128715
## SLM SJ EQUITY 0.63803366 0.23562628 0.53573700 0.42061792
## SHP SJ EQUITY 0.43935979 0.03533653 0.46415809 0.51976253
## AMS SJ EQUITY 0.22005984 -0.03329563 0.54868538 0.39882310
## VOD SJ EQUITY 0.47761002 -0.11530522 0.20602093 0.11854090
## GFI SJ EQUITY 0.29975463 0.20712265 0.37239262 0.45313888
## TRU SJ EQUITY RDF SJ EQUITY NTC SJ EQUITY MTM SJ EQUITY
## MTN SJ EQUITY 0.14108271 0.28159667 0.299489823 0.3681468127
## NPN SJ EQUITY 0.06047565 0.03591885 -0.021883637 -0.2509535912
## PRX SJ EQUITY 0.04643884 0.01228620 -0.037598014 -0.2854205961
## FSR SJ EQUITY 0.29515576 0.42401712 0.481319643 0.2932229040
## AGL SJ EQUITY 0.11819672 0.13128594 0.273308955 0.2420761871
## SBK SJ EQUITY 0.40418877 0.40433446 0.402874110 0.2808551912
## SOL SJ EQUITY 0.25340368 0.15995504 0.100536961 0.1221050314
## IMP SJ EQUITY 0.30883343 0.11858635 0.219377409 0.2022738485
## CPI SJ EQUITY 0.10620605 0.20855557 0.481121332 0.2455299861
## BTI SJ EQUITY -0.12957039 -0.24322544 0.009986221 -0.2283110895
## CFR SJ EQUITY 0.11112935 -0.02819209 0.405871923 0.0001958674
## SSW SJ EQUITY 0.12841316 0.35258017 0.198952626 0.3671916095
## BHG SJ EQUITY 0.06166029 0.10895144 -0.059908389 0.0780077378
## ABG SJ EQUITY 0.31981643 0.40173788 0.435504447 0.3512956206
## BID SJ EQUITY 0.14878689 0.02959269 -0.002505067 0.2067858195
## SLM SJ EQUITY 0.30452869 0.44782175 0.270777885 0.4018540282
## SHP SJ EQUITY 0.43003204 0.24210876 0.362726930 0.0235714168
## AMS SJ EQUITY 0.26067832 0.18242032 0.135069943 0.1673102622
## VOD SJ EQUITY 0.02466800 0.14134403 0.180039067 0.5509383687
## GFI SJ EQUITY 0.07586465 0.22765881 -0.010634798 0.0575708544
## HAR SJ EQUITY RES SJ EQUITY MTH SJ EQUITY PIK SJ EQUITY
## MTN SJ EQUITY 0.284815155 0.05597158 0.346856029 0.0564849198
## NPN SJ EQUITY 0.135913964 0.01787942 0.031984197 -0.0005316424
## PRX SJ EQUITY 0.087618091 -0.03132352 0.053271775 -0.0026634536
## FSR SJ EQUITY 0.397685504 0.40784381 0.415276630 0.1981977516
## AGL SJ EQUITY 0.492802765 0.13038256 0.365836459 0.2418676500
## SBK SJ EQUITY 0.526661344 0.25037377 0.417955591 0.2424272839
## SOL SJ EQUITY 0.404519233 0.26972921 0.008144832 0.3114721262
## IMP SJ EQUITY 0.460041495 0.02798621 0.447518394 0.2614907988
## CPI SJ EQUITY 0.372094487 0.14752511 0.394481555 0.3498748087
## BTI SJ EQUITY 0.006989974 -0.30380143 -0.248611550 0.0155030454
## CFR SJ EQUITY 0.189607329 -0.02317098 0.345657155 -0.1770503981
## SSW SJ EQUITY 0.450144787 0.25528613 0.291454803 -0.0203602015
## BHG SJ EQUITY 0.315358498 0.13815097 0.002675956 0.0197861857
## ABG SJ EQUITY 0.398748775 0.33044299 0.435557682 0.3143448632
## BID SJ EQUITY 0.108991391 -0.10053727 0.002421024 0.0619045843
## SLM SJ EQUITY 0.502375602 0.34578810 0.403366904 0.2154016424
## SHP SJ EQUITY 0.468825098 0.18911232 0.313388788 0.4271377166
## AMS SJ EQUITY 0.640175749 0.05959304 0.339665454 0.1934859605
## VOD SJ EQUITY 0.163206141 0.06454663 0.337898089 -0.0458763194
## GFI SJ EQUITY 0.663206069 0.17938969 0.096702157 0.0484017904
## FFA SJ EQUITY TKG SJ EQUITY EQU SJ EQUITY DCP SJ EQUITY
## MTN SJ EQUITY 0.11764582 0.53421644 0.1533476769 0.29211085
## NPN SJ EQUITY -0.06213573 -0.05777668 0.0009597911 0.32405256
## PRX SJ EQUITY -0.08417531 -0.06740484 -0.0270031853 0.32514121
## FSR SJ EQUITY 0.33166662 0.41397138 0.3817162309 0.31494041
## AGL SJ EQUITY 0.17830153 0.09754348 -0.0503725455 0.19215087
## SBK SJ EQUITY 0.33754183 0.44855622 0.1809507832 0.30440707
## SOL SJ EQUITY 0.09806956 0.13941926 -0.0578971556 -0.25622345
## IMP SJ EQUITY 0.16514193 0.15103573 0.1499481573 0.29428803
## CPI SJ EQUITY 0.32393319 0.19613687 0.2006246516 0.26226081
## BTI SJ EQUITY -0.06846865 -0.08743400 -0.1819589737 -0.09189303
## CFR SJ EQUITY 0.33746500 0.10691552 0.0587324643 0.42041273
## SSW SJ EQUITY 0.31580053 -0.23117541 0.2916001357 0.16180525
## BHG SJ EQUITY 0.17109235 0.19852552 0.1276482102 0.16792309
## ABG SJ EQUITY 0.29776469 0.19109752 0.1789145290 0.23231195
## BID SJ EQUITY 0.05112363 0.22185585 0.1055950372 -0.05707235
## SLM SJ EQUITY 0.25945335 0.40483205 0.3289403606 0.14721534
## SHP SJ EQUITY 0.38127866 0.31575124 0.1852329652 0.37936875
## AMS SJ EQUITY 0.17632693 0.12962860 0.1514909980 0.34342925
## VOD SJ EQUITY 0.13282842 0.52141012 0.1683810259 0.10427108
## GFI SJ EQUITY 0.33491069 0.10896419 0.0600873198 0.07963276
## PSG SJ EQUITY DGH SJ EQUITY CML SJ EQUITY HYP SJ EQUITY
## MTN SJ EQUITY NA NA 0.36147863 0.34332530
## NPN SJ EQUITY NA NA 0.24544515 0.05283376
## PRX SJ EQUITY NA NA 0.18873782 0.01208530
## FSR SJ EQUITY NA NA 0.54150172 0.57187021
## AGL SJ EQUITY NA NA 0.51631233 0.32763114
## SBK SJ EQUITY NA NA 0.53013833 0.43534138
## SOL SJ EQUITY NA NA 0.38418590 0.11236818
## IMP SJ EQUITY NA NA 0.55936250 0.33543514
## CPI SJ EQUITY NA NA 0.39061917 0.32976056
## BTI SJ EQUITY NA NA -0.06564184 -0.24440739
## CFR SJ EQUITY NA NA 0.22357101 0.05345369
## SSW SJ EQUITY NA NA 0.39912553 0.56058189
## BHG SJ EQUITY NA NA 0.19367126 0.27586141
## ABG SJ EQUITY NA NA 0.47427730 0.40199351
## BID SJ EQUITY NA NA 0.08275252 0.16804348
## SLM SJ EQUITY NA NA 0.58102964 0.57144255
## SHP SJ EQUITY NA NA 0.58648398 0.37518141
## AMS SJ EQUITY NA NA 0.52373384 0.45697474
## VOD SJ EQUITY NA NA 0.28225056 0.38785488
## GFI SJ EQUITY NA NA 0.46968768 0.53790658
## SPG SJ EQUITY AFE SJ EQUITY KAP SJ EQUITY SNT SJ EQUITY
## MTN SJ EQUITY 0.290868620 0.22858898 0.12877541 0.09386774
## NPN SJ EQUITY 0.114637101 -0.09910497 0.12397327 -0.42901380
## PRX SJ EQUITY 0.093571674 -0.14516042 0.11228545 -0.42949734
## FSR SJ EQUITY 0.436923249 0.29237697 0.11266336 0.11488467
## AGL SJ EQUITY 0.362468401 0.44844501 0.31557304 0.17057686
## SBK SJ EQUITY 0.478272271 0.40971550 0.23447974 0.22657195
## SOL SJ EQUITY 0.445120048 0.17188706 0.31472994 0.12440825
## IMP SJ EQUITY 0.484490541 0.03564086 0.23999894 0.03795726
## CPI SJ EQUITY 0.384193848 0.19238438 0.09488789 0.19460486
## BTI SJ EQUITY -0.026372778 -0.18892195 0.11135372 0.15613441
## CFR SJ EQUITY 0.074825361 0.27043515 -0.11417880 -0.03120715
## SSW SJ EQUITY 0.428297400 0.02307827 0.09498903 0.09280572
## BHG SJ EQUITY 0.004709704 0.08497909 -0.01610790 0.26396334
## ABG SJ EQUITY 0.562470223 0.34425536 0.16278319 0.13126530
## BID SJ EQUITY 0.280986586 -0.20209827 0.18250028 0.08846374
## SLM SJ EQUITY 0.587176104 0.31863726 0.17112869 0.16959998
## SHP SJ EQUITY 0.410876695 0.13499261 -0.07695615 0.35947671
## AMS SJ EQUITY 0.417206381 -0.01939429 -0.02940163 0.18702735
## VOD SJ EQUITY 0.444353227 0.21601752 0.14818326 -0.01659207
## GFI SJ EQUITY 0.284802159 -0.08359918 -0.07290959 0.28019232
## N91 SJ EQUITY IPL SJ EQUITY VKE SJ EQUITY OMN SJ EQUITY
## MTN SJ EQUITY 0.12754952 NA 0.063884995 0.23296026
## NPN SJ EQUITY -0.21453392 NA 0.061771093 0.09626302
## PRX SJ EQUITY -0.17841057 NA -0.015535874 0.07606170
## FSR SJ EQUITY 0.11969582 NA 0.521728081 0.22536678
## AGL SJ EQUITY 0.14928820 NA 0.279067754 0.29296845
## SBK SJ EQUITY 0.08533781 NA 0.323423779 0.30839052
## SOL SJ EQUITY 0.04058528 NA 0.263045265 0.24346972
## IMP SJ EQUITY 0.21572537 NA 0.150476869 0.28924308
## CPI SJ EQUITY 0.05406427 NA 0.294372400 0.19534062
## BTI SJ EQUITY 0.05116673 NA -0.346281153 -0.16276137
## CFR SJ EQUITY 0.32296549 NA 0.214034008 0.13927666
## SSW SJ EQUITY 0.42331713 NA 0.409428727 0.44983875
## BHG SJ EQUITY 0.17020801 NA 0.107954192 0.19289653
## ABG SJ EQUITY -0.06303448 NA 0.487338606 0.36479021
## BID SJ EQUITY 0.03636692 NA 0.009974364 0.11278511
## SLM SJ EQUITY 0.13562424 NA 0.411094843 0.38243504
## SHP SJ EQUITY 0.16982279 NA 0.274947920 0.27952213
## AMS SJ EQUITY 0.28255193 NA 0.206315577 0.29666031
## VOD SJ EQUITY 0.18093518 NA 0.131108795 0.27973537
## GFI SJ EQUITY 0.19273732 NA 0.330365416 0.05070118
Modified Matrix output
- Explain the reason behind perfect correlation between Prosus and
Naspers
- Correlation between banks
##=======================================================================================================
## Covariance matrix for selected 10 stocks from Correlation_matrix_4
##=======================================================================================================
matrix_10 <- Correlation_matrix_4[1:10, 1:10]
corr_matrix_10 <- cor(matrix_10)
rownames(corr_matrix_10) <- toupper(rownames(corr_matrix_10))
rownames(corr_matrix_10) <- colnames(corr_matrix_10)
rounded_corr_matrix <- round(corr_matrix_10, digits = 1)
# Generate a lighter palette
col <- colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF", "#77AADD", "#4477AA"))
# Plot the correlation matrix
corrplot(rounded_corr_matrix, method = "shade", shade.col = NA, tl.col = "blue", tl.srt = 40,
col = col(2000), addCoef.col = "black", cl.pos = "n", order = "AOE", tl.cex = 0.6)

Price Multiple Relative Valuation
##======================================================================================================
## Stock selection criteria
##======================================================================================================
# Above Average number of analyst coverage
# forward P/E must be less than average 7-year P/E
# Return stocks below threshold correlation
average_analyst_coverage <- round(mean(as.numeric(Ratios_df[17,6:25]))) #Average number of analysts coverage
print(average_analyst_coverage)
## [1] 9
#=============================================*Command code 1*====================================================
columns_to_select <- colnames(Ratios_df[,6:25])[which(as.numeric(Ratios_df[17, 6:25]) >= average_analyst_coverage)]
#=================================================================================================================
knitr::kable(columns_to_select, caption = "Stocks => Average Analyst Coverage")
Stocks => Average Analyst Coverage
| SBK SJ EQUITY |
| BHG SJ EQUITY |
| LHC SJ EQUITY |
| TFG SJ EQUITY |
| NED SJ EQUITY |
| SHP SJ EQUITY |
| CLS SJ EQUITY |
| CFR SJ EQUITY |
| TKG SJ EQUITY |
| KIO SJ EQUITY |
updated_dataframe <- Ratios_df[,columns_to_select]
##======================================================================================================
## Selecting columns with z score below zero and match with lower P/E ratios
##======================================================================================================
#============================================*Command Code 2*==========================================
columns_below_zero_z_score <- colnames(updated_dataframe)[which(as.numeric(updated_dataframe[19,]) < 0)]
#======================================================================================================
knitr::kable(columns_below_zero_z_score, caption = "Stocks => Avg Analyst Coverage and < 7Y avg P/E")
Stocks => Avg Analyst Coverage and < 7Y avg P/E
| SBK SJ EQUITY |
| TFG SJ EQUITY |
| CLS SJ EQUITY |
| CFR SJ EQUITY |
| TKG SJ EQUITY |
| KIO SJ EQUITY |
dataframe_below_average <- updated_dataframe[19,columns_below_zero_z_score]
View(dataframe_below_average)
##=======================================================================================================
## match the previous stage with the list containing negatively correlated stock pairs
##=======================================================================================================
# Generate all possible pairs of words
ticker_pairs <- combn(columns_below_zero_z_score, 2)
# Transpose the result to get pairs in separate rows
ticker_pairs <- t(ticker_pairs)
# Convert the result to a data frame if needed
ticker_pairs_df <- as.data.frame(ticker_pairs)
colnames(ticker_pairs_df) <- c("row_name", "column_name")
merged_df <- merge(ticker_pairs_df, correlations_dataframe, by = c("row_name", "column_name"), all.x = TRUE)
Stock Picks
- Low correlation between stocks in the portfolio.
- Well diversified across industries.
- 6C2
View(merged_df)
knitr::kable(merged_df, caption = "Stock Picks")
Stock Picks
| CFR SJ EQUITY |
KIO SJ EQUITY |
NA |
| CFR SJ EQUITY |
TKG SJ EQUITY |
0.1069155 |
| CLS SJ EQUITY |
CFR SJ EQUITY |
NA |
| CLS SJ EQUITY |
KIO SJ EQUITY |
NA |
| CLS SJ EQUITY |
TKG SJ EQUITY |
NA |
| SBK SJ EQUITY |
CFR SJ EQUITY |
NA |
| SBK SJ EQUITY |
CLS SJ EQUITY |
NA |
| SBK SJ EQUITY |
KIO SJ EQUITY |
NA |
| SBK SJ EQUITY |
TFG SJ EQUITY |
NA |
| SBK SJ EQUITY |
TKG SJ EQUITY |
NA |
| TFG SJ EQUITY |
CFR SJ EQUITY |
NA |
| TFG SJ EQUITY |
CLS SJ EQUITY |
NA |
| TFG SJ EQUITY |
KIO SJ EQUITY |
NA |
| TFG SJ EQUITY |
TKG SJ EQUITY |
0.1901291 |
| TKG SJ EQUITY |
KIO SJ EQUITY |
0.1100579 |
##==============================================================================
## Filtering unique qualifying stocks
##==============================================================================
filtered_df <- merged_df %>%
filter(!is.na(correlation_value)) %>%
select(row_name, column_name)
unique_1 <- (filtered_df$row_name)
unique_2 <- (filtered_df$column_name)
stock_picks <- unique(c(unique_1,unique_2))
knitr::kable(stock_picks, caption = "Final Stock Picks")
Final Stock Picks
| CFR SJ EQUITY |
| TFG SJ EQUITY |
| TKG SJ EQUITY |
| KIO SJ EQUITY |
1Y Price forecast




Expected Returns
- Based on analysts’ 12 months forecast
- Sourced from Tradingview
#expected returns
#assuming equal probability
tfg <-sum((10.6+32.3 +50.59))*(1/3)
cfr <- sum(-9.65+14.12+30.49)*(1/3)
kio <- sum(-16.34+-5+16.52)*(1/3)
tkg <- sum(-13.56+18.21+37.52)*(1/3)
#assuming equal weighting
tot_expected_return <- sum(tfg+cfr+kio+tkg)*(1/4)
print(tot_expected_return)
## [1] 13.81667