library(dplyr)
library(ggplot2)
library(scales)
library(knitr)
Il Dipartimento delle finanze al seguente link : https://www1.finanze.gov.it/finanze/analisi_stat/public/index.php?opendata=yes fornisce il dataset cla_anno_calcolo_irpef_2023.csv contenente classi di reddito, classi di età , numero contribuenti, reddito complessivo, IRPEF (Imposta sui redditi delle persone fisiche) ecc., il dataset REG_calcolo_irpef_2023.csv contenente i suddetti dati per regioni italiane e il dataset sesso_calcolo_irpef_2023.csv contenente i suddetti dati per sesso dei contribuenti .
Caricamento dati
cla_anno_calcolo_irpef_2023 <- read.csv("cla_anno_calcolo_irpef_2023.csv")
REG_calcolo_irpef_2023 <- read.csv("REG_calcolo_irpef_2023.csv")
sesso_calcolo_irpef_2023 <- read.csv("sesso_calcolo_irpef_2023.csv")
cla_anno_calcolo_irpef_2023$ordine= rep(1:34,5)
cla_anno_calcolo_irpef_2023$Classi.di.reddito.complessivo.in.euro <- as.factor(cla_anno_calcolo_irpef_2023$Classi.di.reddito.complessivo.in.euro)
sesso_calcolo_irpef_2023$Sesso <- factor(sesso_calcolo_irpef_2023$Sesso, levels = c("Femmine","Maschi"))
Si vuole evidenziare che dei 174,05 miliardi di IRPEF pagata dai 41 milioni di contribuenti italiani,il 92,24% è pagata dal 47,95% cioè da chi ha un reddito superiore a 20.000 euro, l’ 81,16% è pagata dal 31,16% cioè da chi ha un reddito superiore a 26.000 euro, il 63,33% è pagata dal 15,64% cioè da chi ha un reddito superiore a 35.000 euro
cla_anno_calcolo_irpef_2023 %>%
group_by(Classi.di.reddito.complessivo.in.euro,ordine) %>%
summarise(reddito=sum(Reddito.complessivo...Ammontare.in.euro, na.rm = TRUE), .groups="keep") %>%
ggplot(aes(reorder(Classi.di.reddito.complessivo.in.euro,ordine),reddito))+
geom_bar(stat = "identity", fill="darkblue")+
scale_y_continuous(label = comma_format(big.mark = ".", decimal.mark = ",") )+
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))+
xlab("Classi di reddito")+
ggtitle("Reddito complessivo in euro per classi di reddito nel 2023 ")
cla_anno_calcolo_irpef_2023 %>%
group_by(Classi.di.reddito.complessivo.in.euro,ordine) %>%
summarise(Numero_contribuenti=sum(Numero.contribuenti, na.rm = TRUE), .groups="keep") %>%
ggplot(aes(reorder(Classi.di.reddito.complessivo.in.euro,ordine),Numero_contribuenti))+
geom_bar(stat = "identity", fill="pink")+
scale_y_continuous(label = comma_format(big.mark = ".", decimal.mark = ",") )+
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))+
xlab("Classi di reddito")+
ggtitle("Numero di contribuenti per classi di reddito nel 2023 ")
cla_anno_calcolo_irpef_2023 %>%
group_by(Classi.di.reddito.complessivo.in.euro,ordine) %>%
summarise(Irpef=sum(Imposta.netta...Ammontare.in.euro, na.rm = TRUE), .groups="keep") %>%
ggplot(aes(reorder(Classi.di.reddito.complessivo.in.euro,ordine),Irpef))+
geom_bar(stat = "identity", fill="red")+
scale_y_continuous(label = comma_format(big.mark = ".", decimal.mark = ",") )+
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))+
xlab("Classi di reddito")+
ggtitle("Irpef per classi di reddito nel 2023 ")
df<-cla_anno_calcolo_irpef_2023 %>%
filter(ordine>=4) %>%
group_by(Classi.di.reddito.complessivo.in.euro,ordine) %>%
summarise(Irpef=sum(Imposta.netta...Ammontare.in.euro, na.rm = TRUE), .groups="keep") %>%
arrange(ordine)
df3<-cla_anno_calcolo_irpef_2023 %>%
filter(ordine>=4) %>%
group_by(Classi.di.reddito.complessivo.in.euro,ordine) %>%
summarise(Numero_contribuenti=sum(Numero.contribuenti, na.rm = TRUE), .groups="keep") %>%
arrange(ordine)
df_tab <- data.frame()
soglia_t=c("da 20.000","da 26.000","da 29.000","da 35.000","da 40.000","da 50.000","da 55.000")
for (i in 18:24) {
df1<-cla_anno_calcolo_irpef_2023 %>%
group_by(Classi.di.reddito.complessivo.in.euro,ordine) %>%
summarise(Irpef=sum(Imposta.netta...Ammontare.in.euro, na.rm = TRUE), .groups="keep") %>%
filter(ordine>=i) %>%
arrange(ordine)
df4<-cla_anno_calcolo_irpef_2023 %>%
group_by(Classi.di.reddito.complessivo.in.euro,ordine) %>%
summarise(Numero_contribuenti=sum(Numero.contribuenti, na.rm = TRUE), .groups="keep") %>%
filter(ordine>=i) %>%
arrange(ordine)
df_tab <- rbind(df_tab,data.frame(
soglia=soglia_t[i-17],
percentuale_irpef=round(sum(df1$Irpef)*100/sum(df$Irpef),2), percentuale_contribuenti=round(sum(df4$Numero_contribuenti)*100/sum(df3$Numero_contribuenti),2)))
}
print(paste("Numero totale di contribuenti =",comma(sum(df3$Numero_contribuenti, na.rm = TRUE),big.mark = ".", decimal.mark = ",")))
## [1] "Numero totale di contribuenti = 41.019.423"
print(paste("IRPEF totale in euro =",comma(sum(df$Irpef, na.rm = TRUE),big.mark = ".", decimal.mark = ",")))
## [1] "IRPEF totale in euro = 174.048.674.887"
kable(df_tab)
soglia | percentuale_irpef | percentuale_contribuenti |
---|---|---|
da 20.000 | 92.24 | 47.95 |
da 26.000 | 81.16 | 31.16 |
da 29.000 | 75.13 | 24.79 |
da 35.000 | 63.33 | 15.64 |
da 40.000 | 55.55 | 11.18 |
da 50.000 | 45.39 | 6.76 |
da 55.000 | 41.92 | 5.58 |
cla_anno_calcolo_irpef_2023 %>%
group_by(Classi.di.eta.) %>%
summarise(Reddito=sum(Reddito.complessivo...Ammontare.in.euro, na.rm = TRUE), .groups="keep") %>%
ggplot(aes(reorder(Classi.di.eta.,Reddito),Reddito, fill = Classi.di.eta.))+
geom_bar(stat = "identity")+
scale_y_continuous(label = comma_format(big.mark = ".", decimal.mark = ",") )+
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))+
guides(fill="none")+
ylab("Reddito")+
xlab("Classi di età ")+
ggtitle("Reddito per classi di età nel 2023 ")
REG_calcolo_irpef_2023 %>%
group_by(Regione) %>%
summarise(Reddito=sum(Reddito.complessivo...Ammontare.in.euro, na.rm = TRUE), .groups="keep") %>%
ggplot(aes(reorder(Regione,Reddito),Reddito))+
geom_bar(stat = "identity", fill="blue")+
coord_flip()+
scale_y_continuous(label = comma_format(big.mark = ".", decimal.mark = ",") )+
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))+
ylab("Reddito")+
xlab("Regione")+
ggtitle("Reddito per regioni nel 2023 ")
sesso_calcolo_irpef_2023 %>%
group_by(Sesso) %>%
summarise(Reddito=sum(Reddito.complessivo...Ammontare.in.euro, na.rm = TRUE), .groups="keep") %>%
ggplot(aes(reorder(Sesso,Reddito),Reddito, fill = Sesso))+
geom_bar(stat = "identity")+
scale_y_continuous(label = comma_format(big.mark = ".", decimal.mark = ",") )+
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))+
ylab("Reddito")+
xlab("Sesso")+
ggtitle("Reddito per sesso nel 2023 ")