Basandosi sulla distribuzione di frequenza della variabile Income, definire una variabile categoriale ordinata con le modalità basso/medio/alto e calcolare il bilancio medio all’interno dei gruppi definiti dalla nuova variabile

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("ISLR")

data("Credit",package="ISLR")

summary(Credit)
##        ID            Income           Limit           Rating     
##  Min.   :  1.0   Min.   : 10.35   Min.   :  855   Min.   : 93.0  
##  1st Qu.:100.8   1st Qu.: 21.01   1st Qu.: 3088   1st Qu.:247.2  
##  Median :200.5   Median : 33.12   Median : 4622   Median :344.0  
##  Mean   :200.5   Mean   : 45.22   Mean   : 4736   Mean   :354.9  
##  3rd Qu.:300.2   3rd Qu.: 57.47   3rd Qu.: 5873   3rd Qu.:437.2  
##  Max.   :400.0   Max.   :186.63   Max.   :13913   Max.   :982.0  
##      Cards            Age          Education        Gender    Student  
##  Min.   :1.000   Min.   :23.00   Min.   : 5.00    Male :193   No :360  
##  1st Qu.:2.000   1st Qu.:41.75   1st Qu.:11.00   Female:207   Yes: 40  
##  Median :3.000   Median :56.00   Median :14.00                         
##  Mean   :2.958   Mean   :55.67   Mean   :13.45                         
##  3rd Qu.:4.000   3rd Qu.:70.00   3rd Qu.:16.00                         
##  Max.   :9.000   Max.   :98.00   Max.   :20.00                         
##  Married              Ethnicity      Balance       
##  No :155   African American: 99   Min.   :   0.00  
##  Yes:245   Asian           :102   1st Qu.:  68.75  
##            Caucasian       :199   Median : 459.50  
##                                   Mean   : 520.01  
##                                   3rd Qu.: 863.00  
##                                   Max.   :1999.00
Credit2 <- Credit %>%
mutate(Income2 = case_when(Income < 21 ~ "basso", Income >= 21 & Income < 57 ~ "medio", Income >= 57 ~ "alto")) %>%
mutate(Income2=factor(Income2,levels = c("basso","medio","alto"),ordered=T))


table(Credit2$Income2)
## 
## basso medio  alto 
##   100   197   103
class(Credit2$Income2)
## [1] "ordered" "factor"
Credit2 %>%
group_by(Income2) %>%
summarize(Balance_mean=mean(Balance))
## # A tibble: 3 × 2
##   Income2 Balance_mean
##   <ord>          <dbl>
## 1 basso           380.
## 2 medio           428.
## 3 alto            832.

Definire una nuova variabile caucasico si/no. In media chi ha l’Income più elevato tra i caucasici e i non caucasici? In quale dei due gruppi c’è una maggiore variabilità?

Credit3 <- Credit %>%
mutate(Caucasico= case_when(Ethnicity == "Caucasian" ~ "si", Ethnicity == "Asian" | Ethnicity == "African American" ~ "no")) %>%
mutate(Caucasico =factor(Caucasico,levels=c("si","no"),ordered=T))

table(Credit3$Caucasico)
## 
##  si  no 
## 199 201
class(Credit3$Caucasico)
## [1] "ordered" "factor"
Credit3 %>%
group_by(Caucasico) %>%
summarize(Income_mean=mean(Income))
## # A tibble: 2 × 2
##   Caucasico Income_mean
##   <ord>           <dbl>
## 1 si               44.5
## 2 no               45.9
print("I non caucasici hanno una media di income maggiore")
## [1] "I non caucasici hanno una media di income maggiore"
Credit3 %>%
group_by(Caucasico) %>%
summarize(Variabilità=var(Income))
## # A tibble: 2 × 2
##   Caucasico Variabilità
##   <ord>           <dbl>
## 1 si              1107.
## 2 no              1381.
print("I non caucasici hanno una maggiore variabilità")
## [1] "I non caucasici hanno una maggiore variabilità"

Creare un nuovo dataset Credit_std standardizzando tutte le variabili che ha senso standardizzare

Credit_std <- Credit %>%
mutate(Income=scale(Income),Limit=scale(Limit),Rating=scale(Rating),Cards=scale(Cards),Age=scale(Age),Balance=scale(Balance),Education=scale(Education))