Import údajov

library(dplyr)
library(mice)
library(VIM)

udaje1 <- read.csv2(
  "udaje/ChybnaDatabaza.csv",
  header = TRUE,
  sep = ";",
  na.strings = c("", "NA"),
  stringsAsFactors = FALSE
)
head(udaje1)
# počet NA v jednotlivých stĺpcoch
print("pocet chybajucich udajov za jednotlive premenne")
## [1] "pocet chybajucich udajov za jednotlive premenne"
colSums(is.na(udaje1))
##                          YEARS                      COMPANIES 
##                              1                              0 
##                EXCHANGE.SECTOR               PRIMARY.BUSINESS 
##                              0                              1 
##                        TOBIN.Q          MARKET.CAPITALIZATION 
##                              1                              2 
##               RETURN.ON.ASSETS                  DEBT.TO.ASSET 
##                              1                              4 
##                      FIRM.SIZE        SOCIAL.DISCLOSURE.INDEX 
##                              2                              3 
## ENVIRONMENTAL.DISCLOSURE.INDEX    GOVERNANCE.DISCLOSURE.INDEX 
##                              1                              2 
##                      ESG.INDEX 
##                              2
id="abbrev_columns"
# skracovanie názvov stĺpcov pre grafy
names(udaje1) <- abbreviate(names(udaje1), minlength = 3, strict = FALSE)

Upravovanie názvov premenných

library(dplyr)
# uloženie pôvodných názvov stĺpcov
old_names <- names(udaje1)

# odstránenie medzier z názvov premenných
names(udaje1) <- make.names(names(udaje1))

# porovnanie pôvodných a upravených názvov
comparison <- data.frame(
  Original_Name = old_names,
  New_Name = names(udaje1)
)
print(comparison)
##    Original_Name New_Name
## 1            YEA      YEA
## 2            COM      COM
## 3            EXC      EXC
## 4            PRI      PRI
## 5            TOB      TOB
## 6            MAR      MAR
## 7            RET      RET
## 8            DEB      DEB
## 9            FIR      FIR
## 10           SOC      SOC
## 11           ENV      ENV
## 12           GOV      GOV
## 13           ESG      ESG
# pattern of missingness
md.pattern(udaje1)

##     COM EXC YEA PRI TOB RET ENV MAR FIR GOV ESG SOC DEB   
## 746   1   1   1   1   1   1   1   1   1   1   1   1   1  0
## 1     1   1   1   1   1   1   1   1   1   1   1   1   0  1
## 1     1   1   1   1   1   1   1   1   1   1   1   0   1  1
## 1     1   1   1   1   1   1   1   1   1   1   0   1   0  2
## 1     1   1   1   1   1   1   1   1   1   0   1   1   1  1
## 1     1   1   1   1   1   1   1   1   1   0   1   0   0  3
## 1     1   1   1   1   1   1   1   1   0   1   1   1   1  1
## 1     1   1   1   1   1   1   1   1   0   1   0   1   1  2
## 2     1   1   1   1   1   1   1   0   1   1   1   1   1  1
## 1     1   1   1   1   1   1   0   1   1   1   1   1   1  1
## 1     1   1   1   1   1   0   1   1   1   1   1   1   1  1
## 1     1   1   1   1   0   1   1   1   1   1   1   1   1  1
## 1     1   1   1   0   1   1   1   1   1   1   1   1   1  1
## 1     1   1   0   1   1   1   1   1   1   1   1   0   0  3
##       0   0   1   1   1   1   1   2   2   2   2   3   4 20
# graf chýbajúcich údajov s krátkymi názvami
par(mar = c(15, 4, 2, 1))
aggr(
  udaje1,
  bars = FALSE,
  col = c("navyblue", "red"),
  numbers = TRUE,
  sortVars = TRUE,
  cex.axis = 0.6,
  gap = 8
)
## Warning in plot.aggr(res, ...): not enough horizontal space to display
## frequencies

## 
##  Variables sorted by number of missings: 
##  Variable       Count
##       DEB 0.005263158
##       SOC 0.003947368
##       MAR 0.002631579
##       FIR 0.002631579
##       GOV 0.002631579
##       ESG 0.002631579
##       YEA 0.001315789
##       PRI 0.001315789
##       TOB 0.001315789
##       RET 0.001315789
##       ENV 0.001315789
##       COM 0.000000000
##       EXC 0.000000000
# imputácia chýbajúcich údajov
imp <- mice(udaje1, seed = 123)
## 
##  iter imp variable
##   1   1  YEA
##   1   2  YEA
##   1   3  YEA
##   1   4  YEA
##   1   5  YEA
##   2   1  YEA
##   2   2  YEA
##   2   3  YEA
##   2   4  YEA
##   2   5  YEA
##   3   1  YEA
##   3   2  YEA
##   3   3  YEA
##   3   4  YEA
##   3   5  YEA
##   4   1  YEA
##   4   2  YEA
##   4   3  YEA
##   4   4  YEA
##   4   5  YEA
##   5   1  YEA
##   5   2  YEA
##   5   3  YEA
##   5   4  YEA
##   5   5  YEA
## Warning: Number of logged events: 12
udaje1 <- complete(imp, 1)

# kontrola po imputácii
print("Počet chýbajúcich údajov po imputácii:")
## [1] "Počet chýbajúcich údajov po imputácii:"
colSums(is.na(udaje1))
## YEA COM EXC PRI TOB MAR RET DEB FIR SOC ENV GOV ESG 
##   0   0   0   1   1   2   1   4   2   3   1   2   2