5  Analiza tipurilor de taxe

În acest capitol ne vom ocupa de tipurile de taxe calculate de Comisia Europeană. În speţă este vorba de taxele pe capital, contribuţii, muncă, consum şi proprietate. Datele brute sunt aici.

Arată codul
library(tidyverse)
library(gt)
library(gtExtras)

culori <- c("#EA5B0C", "#a44a08", "#ea960c", "#ea150c", 
            "#a40e08", "#000000", "#0865a4", "#a48408")


theme_set(hrbrthemes::theme_ipsum_tw(strip_text_size = 14, 
                                     strip_text_family = "Frutiger Bold",
                                     strip_text_face = "italic",
                                     axis_title_size = 10,
                                     axis_text_size = 8,
                                     base_family = "Frutiger",
                                     plot_title_family = "Frutiger Bold",
                                     subtitle_family = "Frutiger",
                                     caption_family = "Frutiger", 
                                     caption_size = 8,
                                     plot_title_size = 14,
                                     subtitle_size = 10) +
  theme(legend.text = element_text(size=8), 
        legend.title = element_text(size=10),
        legend.key.size = unit(0.5, "cm")))


taxari <- read_csv(here::here("database", "taxation_trends_eurostat.csv"))
Arată codul
grafice <- function(df, var, numar=10){
  
  segmente <- df %>% filter(time%in%c("2009", "2021")) %>% 
              select(geo, what, time, var) %>% 
              spread(what, var) %>% 
              pivot_wider(names_from = time, values_from = c(PIB, Total)) %>%
              filter(!grepl("Luxemb|Irlanda|Malta|Cipru", geo)) %>%
              mutate(centru_x = 0.5*(Total_2009+Total_2021), 
                     centru_y=0.5*(PIB_2009+PIB_2021)) %>%
              mutate(delta = sqrt((PIB_2021-PIB_2009)^2 + (Total_2021-Total_2009)^2)) %>%
              mutate(directie = if_else(PIB_2021 < PIB_2009 & Total_2021 < Total_2009, 
                                        "Scădere", "Creştere")) %>%
              arrange(desc(delta)) 
  
  tari <- segmente %>% 
    arrange(desc(delta)) %>%
    mutate(index = if_else(row_number()<numar | geo=="Romania", 1, 0)) %>%
    filter(index==1) %>% select(-index) %>% pull(geo)
  
  segmente %>%
    ggplot(aes(x=Total_2009, y=PIB_2009)) + 
    geom_point(colour='red3') + 
    geom_point(colour='red3', aes(x=Total_2021, y=PIB_2021)) +
    geomtextpath::geom_textsegment(aes(x=Total_2009, xend=Total_2021, 
                                       y=PIB_2009, yend=PIB_2021, label=geo, size=delta,
                                       colour=directie),
                                   vjust=-0.3, arrow = arrow(length=unit(0.3, "cm")),
                                   show.legend = c("size"=FALSE)) + 
    scale_x_continuous(labels=scales::percent_format(scale=1)) +
    scale_y_continuous(labels=scales::percent_format(scale=1)) +
    scale_size_continuous(range=c(2, 4)) +
    scale_colour_manual(values=c(culori[7], culori[4])) +
    gghighlight::gghighlight(geo%in%tari) +
    theme(legend.position = 'top')
}
Arată codul
rbiplot <- function(mat, p=1, clusters=4, k=15, scale=TRUE){
  x <- mat[,apply(mat, MARGIN=2, FUN=mean)>p, drop=F] %>% colnames()
  pca <- sparsepca::robspca(mat, scale=scale, verbose=FALSE)
  procent <- pca$eigenvalues^2/sum(pca$eigenvalues^2)
  procent <- paste(round(100*procent[1:2], 1), "%")
  rot <- as_tibble(pca$loadings) %>% mutate(var=colnames(mat)) %>% filter(var%in%x)
  model <- kmeans(pca$scores[,1:2], centers=clusters)$cluster
  coords <- as_tibble(pca$scores, rownames="geo") %>%
    mutate(cluster = as.factor(model))
  ggplot(coords, aes(x=V1, y=V2)) + 
    ggConvexHull::geom_convexhull(aes(x=V1, y=V2, group=cluster, fill=cluster), alpha=0.2) +
    geom_point(colour='red3') + 
    ggrepel::geom_text_repel(aes(label=geo),nudge_y=0.3, max.overlaps = 10, size=3) +
    geom_vline(xintercept = 0,linetype=2) +
    geom_hline(yintercept=0, linetype=2) +
    geom_segment(data=rot, aes(xend=k*V1, x=0, yend=k*V2, y=0), 
                 arrow = arrow(length = unit(0.25, "cm")), colour=culori[7]) +
    ggrepel::geom_text_repel(data=rot, aes(label=var,x=k*V1, y=k*V2), 
                             alpha=0.9, colour=culori[7], size=3) +
    labs(title="PCA - Biplot", 
         subtitle="Componentele principale (robuste) ale cheltuielilor COFOG99 pe 2017-2021", 
         caption="Sursa: calcule pe Eurostat, gov_10a_main",
         x=paste0("Dim1 (", procent[1], ")"), y=paste0("Dim2 (", procent[2],")")) +
    theme(axis.title = element_text(size=14)) +
    scale_fill_manual(values = culori)
  
}

Vom ilustra situaţia cu toate aceste tipuri de taxe în grafice cu două axe - pe axa x fiind procentul din total taxe iar pe y procentul din PIB colectat. Să începem cu taxarea pe capital.

Arată codul
grafice(taxari, var = "capital", numar=10) + 
            labs(title=paste("Taxarea pe capital", "2009 vs 2021"), 
                 subtitle="Sursa: Taxation trends in the European Union", 
                 x="din Total", y="din PIB") 

Taxarea pe contribuţii

Arată codul
grafice(taxari, var = "contributii", numar=10) + 
            labs(title=paste("Taxarea pe contribuţii", "2009 vs 2021"), 
                 subtitle="Sursa: Taxation trends in the European Union", 
                 x="din Total", y="din PIB") +
      scale_x_continuous(limits = c(25, 50), 
                         labels=scales::percent_format(scale=1)) +
      scale_y_continuous(limits=c(6, 20), 
                         labels=scales::percent_format(scale=1))

Taxarea pe muncă

Arată codul
grafice(taxari, var = "munca", numar=10) + 
            labs(title=paste("Taxarea pe muncă", "2009 vs 2021"), 
                 subtitle="Sursa: Taxation trends in the European Union", 
                 x="din Total", y="din PIB") 

Taxarea pe consum

Arată codul
grafice(taxari, var = "consum", numar=10) + 
            labs(title=paste("Taxarea pe consum", "2009 vs 2021"), 
                 subtitle="Sursa: Taxation trends in the European Union", 
                 x="din Total", y="din PIB") 

Taxele pe proprietate

Arată codul
grafice(taxari, var = "proprietate", numar=10) + 
            labs(title=paste("Taxarea pe proprietate", "2009 vs 2021"), 
                 subtitle="Sursa: Taxation trends in the European Union", 
                 x="din Total", y="din PIB") 

Şi multidimensional, o hartă a taxării în Europa. Vom folosi ca valori pentru diferitele tipuri de taxări media între 2018-2021 pentru o imagine mai robustă.

Arată codul
mat <- taxari %>% filter(what=="PIB") %>% mutate(time=as.numeric(time)) %>%
       filter(time>"2017") %>% group_by(geo) %>% 
       summarise(across(capital:proprietate, mean)) %>% 
       select(geo, capital:proprietate) %>% filter(geo!="Irlanda") %>%
       column_to_rownames("geo") 

rbiplot(mat, p=0, clusters=3, k=5) +
  labs(title="Componentele principale ale diferitelor tipuri de taxe", 
       subtitle="Media 2018-2021")

Observăm că taxarea pe capital, proprietate şi muncă sunt corelate pozitiv şi invers corelate fiecare în mod negativ cu taxarea pe consum. Contribuţiile sunt relativ puţin corelate cu restul variabilelor. România se află împreună cu statele est-europene şi baltice în zona taxelor care taxează mai degrabă consumul decât celelalte categorii. Mai jos, un tabel cu aceste valori pentru România.

Arată codul
taxari %>% filter(geo=="Romania",what=="PIB") %>% 
  select(-what, -geo) %>% gt::gt(rowname_col = "time") %>% 
  gt::fmt_number(2:6, decimals = 2) %>% 
  gt::tab_header(title="România - % din PIB pentru diferite taxe", 
                 subtitle = "Sursa: Taxation Trends in European Union") %>%
  gtExtras::gt_theme_538() %>%
  gt::opt_table_font(font="Frutiger") %>%
  gt::tab_style(style=gt::cell_fill(color=culori[1]), 
                locations = gt::cells_column_labels()) %>% 
  gt::tab_style(style=gt::cell_text(color="white"), 
                locations=gt::cells_column_labels()) %>% 
  gt::tab_style(style=gt::cell_fill(color=culori[3], alpha=0.3), 
                locations=gt::cells_body()) %>% 
  gt::tab_options(table.border.left.color = "#000000") %>%
  gt::tab_style(style=gt::cell_fill(color=culori[1], alpha=0.5), 
                locations=cells_row_groups()) %>%
  gtExtras::gt_color_rows(columns=2:6) %>%
  gt::tab_style(cell_text(font="Frutiger Bold"), cells_title(groups='title')) %>%
  gt::fmt_percent(columns=2:6, scale_values = FALSE)
România - % din PIB pentru diferite taxe
Sursa: Taxation Trends in European Union
capital contributii munca consum proprietate
2009 4.40% 8.96% 11.13% 9.70% 0.75%
2010 4.00% 8.47% 10.76% 11.06% 0.82%
2011 4.41% 8.65% 10.62% 11.94% 0.78%
2012 3.92% 8.36% 10.60% 12.06% 0.83%
2013 4.19% 8.68% 11.06% 12.27% 0.89%
2014 4.80% 8.52% 10.76% 11.96% 0.89%
2015 5.13% 8.08% 10.30% 12.62% 0.86%
2016 5.17% 8.14% 10.19% 10.94% 0.83%
2017 4.32% 8.51% 10.78% 9.99% 0.72%
2018 3.66% 10.48% 12.10% 10.03% 0.62%
2019 3.84% 10.48% 11.98% 10.11% 0.62%
2020 3.30% 11.02% 12.83% 9.94% 0.59%
2021 4.04% 10.52% 12.10% 10.38% 0.63%