raw_data = read_rds(paste0(
  file.path(Sys.getenv("USERPROFILE"),fsep="\\"),
  "\\OneDrive - Bank Of Israel\\Data\\TASE",
  " liquidity\\Current cache files\\raw_data.RDS"))

vars_status = read_csv(paste0(
  file.path(Sys.getenv("USERPROFILE"),fsep="\\"),
  "\\OneDrive - Bank Of Israel\\Data\\TASE",
  " liquidity\\Variables_List.csv"))

\subsection{Financial reports}

This dataset has data on financial reports of TASE companies. The data covers r length(unique(raw_data$finrep_df$tase_id)) companies for the period r paste0(range(raw_data$finrep_df$date), collapse = "-") at quarterly frequency.

stargazer(raw_data$finrep_df %>% 
            select(-date_yearqtr,-tase_id) %>% 
            as.data.frame(),
          summary = TRUE, header = FALSE, digits = 2,
          summary.stat = c("n","mean","median","max","min"))

\subsection{Market data} A dataset with market data (market capitalization, turnover) that allows to calculate Amihud's iiliquidity measure. The data time period is r paste0(range(raw_data$market_df$date_yearqtr), collapse = "-") at quarterly frequency.

stargazer(raw_data$market_df %>% 
            select(-sec_id,-date_yearqtr) %>% 
            as.data.frame(),
          summary = TRUE, header = FALSE, digits = 2)

\subsection{Nimrod's dataset}

raw_data$nimrod_stata_df = import.nimrod.stata.df(paste0(
  file.path(Sys.getenv("USERPROFILE"),fsep = "\\"),
  "\\OneDrive - Bank Of Israel\\Data\\",
  "TASE liquidity\\Stata files",
  "\\TASE panel.dta")
  )

stata_df = raw_data$nimrod_stata_df %>% 
  select(any_of(parameters_list$nimrod_vars))

A dataset that was gathered by Nimrod . The data covers r length(unique(stata_df$tase_id)) companies for the period r paste0(range(stata_df$date), collapse = "-") at quarterly frequency. The data adresses several categories:

\begin{itemize} \item Financial Reports \item Market data \end{itemize}

stargazer(stata_df %>% 
            select(-starts_with("tase"),-date) %>% 
            as.data.frame(),
          summary = TRUE,
          header = FALSE,
          summary.stat = c("n","mean","median","max","min"))
stata_df %>% 
  slice_sample(n = 1000) %>% 
  group_by(date) %>% 
  mutate(across(everything(), ~is.na(.))) %>% 
  pivot_longer(-date) %>% 
  ggplot(aes(x = date, y = name, color = value)) + 
  scale_color_manual(values = c("TRUE" = "magenta", "FALSE" = "gray")) + 
  geom_point(show.legend = FALSE) + 
  theme_bw()

\subsubsection{Comparison of financial reports data}

The main conclusion is that there are differences between Oracle, Mos and Nimrod's data. However the differences are not systematic, for the same tase_id, variable and date there are sometimes identical observations and sometimes a diffrerent ones.

library(devtools)

load_all()

library(tidyverse)
secs_catalog = read_csv(paste0(
  "C:\\Users\\internet\\OneDrive - Bank Of Israel",
  "\\Data\\TASE liquidity\\Secs_Catalog.csv")) %>% 
  mutate(across(c("tase_id","sec_id"), as.character))

mos_df = import.boi.finrep.data() %>% 
  rename_all(tolower) %>% 
  rename(date_yearqtr = date) %>% 
  rename(total_net_profit = net_profit)

oracle_df  = import.boi.oracle.finrep.data() %>%
  filter(reporting_period == "quarterly")

nimrod_df = import.nimrod.stata.df(paste0(
  file.path(Sys.getenv("USERPROFILE"),fsep = "\\"),
  "\\OneDrive - Bank Of Israel\\Data\\",
  "TASE liquidity\\Stata files",
  "\\TASE panel.dta")
  ) %>% 
  rename(date_yearqtr = date)

\section{Oracle vs Mos comparison}

oracle_mos_diff_df = full_join(
  oracle_df %>% 
    select(intersect(names(.), names(mos_df))) %>% 
    mutate(across(-c("tase_id", "date_yearqtr"), ~ as.numeric(.) * 10 ^ (-3))) %>% 
    pivot_longer(-c("tase_id", "date_yearqtr"),
                 names_to = "feature", values_to = "oracle"),
  mos_df %>% 
    select(intersect(names(.), names(oracle_df))) %>% 
    mutate(across(-c("tase_id", "date_yearqtr"),as.numeric)) %>%  
    pivot_longer(-c("tase_id", "date_yearqtr"),
                 names_to = "feature", values_to = "mos"),
  by = c("tase_id","date_yearqtr","feature"))%>% 
  rowwise() %>% 
  mutate(diff = abs((oracle - mos) / mean(c(oracle,mos))) * 100) %>% 
  ungroup() %>% 
  arrange(desc(diff))

There are some differences between oracle and mos databases. In the case of Aura company oracle database is correct (for example the comparison of 2019Q1 profit). For Brand company mos is correct.

\section{Oracle vs Nimrod comparison}

oracle_nimrod_diff_df = full_join(
  oracle_df %>% 
    select(intersect(names(.), names(nimrod_df))) %>% 
    mutate(across(-c("tase_id", "date_yearqtr"), ~ as.numeric(.) * 10 ^ (-3))) %>% 
    pivot_longer(-c("tase_id", "date_yearqtr"),
                 names_to = "feature", values_to = "oracle"),
  nimrod_df %>% 
    select(intersect(names(.), names(oracle_df))) %>% 
    mutate(across(-c("tase_id", "date_yearqtr"), ~ as.numeric(.) * 10 ^ (-3))) %>% 
    mutate(across(-c("tase_id", "date_yearqtr"),as.numeric)) %>%  
    pivot_longer(-c("tase_id", "date_yearqtr"),
                 names_to = "feature", values_to = "nimrod"),
  by = c("tase_id","date_yearqtr","feature"))%>% 
  rowwise() %>% 
  mutate(diff = abs((oracle - nimrod) / mean(c(oracle,nimrod))) * 100) %>% 
  ungroup() %>% 
  arrange(desc(diff))

discrep_df = oracle_nimrod_diff_df %>% 
  filter(diff > 5) %>% 
  left_join(secs_catalog[,c("tase_id","comp_name_heb")])

There are

inner_join(oracle_mos_diff_df %>% 
  filter(tase_id == 666) %>% 
  select(-diff),
  oracle_nimrod_diff_df %>% 
  filter(tase_id == 666) %>% 
  select(-diff)) %>% 
  filter(feature == "operating_profit") %>% 
  pivot_longer(oracle:nimrod,names_to = "source") %>% 
  ggplot(aes(x = date_yearqtr, y = value, color = source)) + 
  geom_line() + 
  xlab(NULL) + ylab(NULL) + ggtitle("Amos Luzon group operating profit") + 
  theme_bw() + 
  theme(legend.position = "bottom")


MichaelGurkov/TASE documentation built on Jan. 1, 2023, 1:27 p.m.