## Quiz 1
- caricare il dataset clienti_na
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.0 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.1 ✔ tibble 3.2.0
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(ggplot2)
clienti_na <- read.table("clienti_na.txt",header=T,sep=';')
clienti_na <- as_tibble(clienti_na)
glimpse(clienti_na)
## Rows: 8,052
## Columns: 21
## $ clienteattivo <int> 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1,…
## $ mesicliente <int> 12, 5, 12, 12, 12, 12, 12, 12, 12, 6, 12,…
## $ mesi_dalla_prima_attivazione <int> 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1…
## $ n_utenze <int> 2, 2, 1, 4, 1, 1, 1, 3, 1, 2, 1, 1, 1, 3,…
## $ n_utenze_attive <int> 2, 0, 1, 1, 1, 1, 1, 3, 1, 0, 1, 1, 1, 3,…
## $ serviziattivaticliente <chr> "GA", "EG", "E", "EGAM", "E", "E", "M", "…
## $ serviziattivi <chr> "GA", "noservizi", "E", "A", "E", "E", "M…
## $ fattmedia <dbl> 141.48250, 170.26000, 54.79300, 140.27800…
## $ statoamministrativo <chr> "MOROSO", "REGOLARE", "MOROSO", "REGOLARE…
## $ ageingticketultimoreclamo <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ areanielsencliente <chr> "Nord O", "Centro", "Centro", "Sud", "Cen…
## $ sessoreferente <chr> "F", "M", "F", "M", "F", "F", "F", "M", "…
## $ etareferente <int> 42, 39, 40, 29, 97, 62, 23, 62, 39, 75, 5…
## $ canalemodale <chr> "Retediretta", "ReteIndiretta", "ReteIndi…
## $ ultimamodalita <chr> "BP", "BP", "BP", "BP", "BP", "SDD", "BP"…
## $ proxy_churn_strong <int> 2, 2, 0, 6, 0, 1, 1, 4, 0, 2, 1, 0, 0, 0,…
## $ bu_co <chr> "CONSUMER", "BUSINESS", "CONSUMER", "CONS…
## $ reclami <int> 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0,…
## $ casi_credito <int> 22, 3, 6, 4, 5, 0, 0, 0, 0, 9, 8, 1, 0, 0…
## $ casi_fattura <int> 4, 1, 3, 5, 2, 0, 4, 0, 0, 4, 0, 4, 0, 7,…
## $ tiposped <chr> "Elettronica", "Elettronica", "Cartacea",…
# install.packages("catspec_0.97.tar.gz",repos=NULL,type="source")
library(catspec)
is.factor(clienti_na$clienteattivo)
## [1] FALSE
is.factor(clienti_na$canalemodale)
## [1] FALSE
clienti_na2 <-clienti_na %>%
mutate(clienteattivo = as.factor(clienteattivo)) %>%
mutate(canalemodale = as.factor(canalemodale))
is.factor(clienti_na2$clienteattivo)
## [1] TRUE
is.factor(clienti_na2$canalemodale)
## [1] TRUE
ctab(clienti_na2$clienteattivo,clienti_na2$canalemodale,addmargins=T)
## CampagnaNazionale Comparatori Retediretta ReteIndiretta Teleselling web Sum
##
## 0 504 501 1043 362 791 1 3202
## 1 397 869 2157 900 525 2 4850
## Sum 901 1370 3200 1262 1316 3 8052
- Aggiungere le percentuali di colonna e i le frequenze marginali di riga e colonna. Assicurarsi che la tabella sia leggibile. Commentare brevemente la tabella.
ctab(clienti_na2$clienteattivo,clienti_na2$canalemodale,style="l",type=c("n","c"),addmargins=T)
## Var2 CampagnaNazionale Comparatori Retediretta ReteIndiretta Teleselling web Sum
## Var1
## 0 Count 504.00 501.00 1043.00 362.00 791.00 1.00 3202.00
## Column % 55.94 36.57 32.59 28.68 60.11 33.33 247.23
## 1 Count 397.00 869.00 2157.00 900.00 525.00 2.00 4850.00
## Column % 44.06 63.43 67.41 71.32 39.89 66.67 352.77
## Sum Count 901.00 1370.00 3200.00 1262.00 1316.00 3.00 8052.00
## Column % 100.00 100.00 100.00 100.00 100.00 100.00 600.00
print("In prima analisi bisogna notare che nelle frequenze marginali di riga abbiamo alcune frequenze senza senso come quella relativa alla somma. Quindi bisogna stare molto attenti ai dati che si hanno alla mano. Per il resto possiamo notare la distribuzione della frequenza di canalemodale rispetto ai clienti, dove il valore 0 corrisponde ai clienti non attivi e il valore 1 corrisponde ai clienti attivi. Nel count finale possiamo riconoscere subito che abbiamo più clienti attivi rispetto ai non attivi, oltrettutto la maggior parte di clientiattivi è portato dal canale ReteDiretta.")
## [1] "In prima analisi bisogna notare che nelle frequenze marginali di riga abbiamo alcune frequenze senza senso come quella relativa alla somma. Quindi bisogna stare molto attenti ai dati che si hanno alla mano. Per il resto possiamo notare la distribuzione della frequenza di canalemodale rispetto ai clienti, dove il valore 0 corrisponde ai clienti non attivi e il valore 1 corrisponde ai clienti attivi. Nel count finale possiamo riconoscere subito che abbiamo più clienti attivi rispetto ai non attivi, oltrettutto la maggior parte di clientiattivi è portato dal canale ReteDiretta."
diagramma_barre <- clienti_na2 %>%
ggplot(aes(x=clienteattivo,fill=canalemodale)) + geom_bar(position="dodge") +
theme_minimal() + scale_fill_brewer(palette="Set2") + labs(x="Clienti attivi nei canali",y="Count")
diagramma_barre
diagramma_barre + facet_wrap(clienti_na2$canalemodale)
clienti_na2 %>%
filter(!is.na(clienteattivo) & !is.na(canalemodale)) %>%
ggplot(aes(x=clienteattivo,fill=canalemodale)) +
geom_bar(position="fill",alpha=0.7) +
ggtitle("ClienteAttivo vs CanaleModale") +
scale_fill_brewer(palette="Set3") +
theme_minimal() +
xlab("Clienti attivi nei canali")
print("L'asse delle ordinate è utile per capire la percentuale in gioco di ogni categoria, dove le categorie in questa casistica sono date dalla vriabile canalemodale cioè i canali. Oltretutto l'asse delle x è rappresentato dai clienti attivi indicati con 1 e i clienti non attivi indicati con 0. Possiamo vedere come ci sono due colonne proprio per indicare le percentuali di clienti non attivi nei vari canali e la percentuale di clienti attivi nei vari canali.")
## [1] "L'asse delle ordinate è utile per capire la percentuale in gioco di ogni categoria, dove le categorie in questa casistica sono date dalla vriabile canalemodale cioè i canali. Oltretutto l'asse delle x è rappresentato dai clienti attivi indicati con 1 e i clienti non attivi indicati con 0. Possiamo vedere come ci sono due colonne proprio per indicare le percentuali di clienti non attivi nei vari canali e la percentuale di clienti attivi nei vari canali."