# Load required libraries
library(ggplot2)
library(corrplot)
## corrplot 0.95 loaded
# Load the mtcars dataset
data(mtcars)
# Review the codebook by ?
?mtcars
# Display the first few rows and summary statistics
head(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
summary(mtcars)
## mpg cyl disp hp
## Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0
## 1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5
## Median :19.20 Median :6.000 Median :196.3 Median :123.0
## Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7
## 3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0
## Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0
## drat wt qsec vs
## Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000
## 1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000
## Median :3.695 Median :3.325 Median :17.71 Median :0.0000
## Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375
## 3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000
## Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000
## am gear carb
## Min. :0.0000 Min. :3.000 Min. :1.000
## 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000
## Median :0.0000 Median :4.000 Median :2.000
## Mean :0.4062 Mean :3.688 Mean :2.812
## 3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000
## Max. :1.0000 Max. :5.000 Max. :8.000
Answer: I don’t find any variable abnormal at this stage. Maybe I will discover some later.
aggregate(mpg ~ cyl, data = mtcars, mean)
## cyl mpg
## 1 4 26.66364
## 2 6 19.74286
## 3 8 15.10000
Answer: The less cylinders a model has the the better the miles per gallon.
plot(mtcars$wt, mtcars$mpg,
main = "MPG versus Vehicle Weight",
xlab = "Weight",
ylab = "MPG",
pch = 19,
col = "blue")
# scatter plot
Answer: The plot shows that the heavier cars have a lower MPG.
colSums(is.na(mtcars))
## mpg cyl disp hp drat wt qsec vs am gear carb
## 0 0 0 0 0 0 0 0 0 0 0
sum(is.na(mtcars))
## [1] 0
Answer: It looks like there are no missing data and every column has a value of zero missing.
boxplot(scale(mtcars),
main = "Boxplots of mtcars Variables",
las = 2)
outliers <- lapply(mtcars, function(x) boxplot.stats(x)$out)
outliers[lengths(outliers) > 0]
## $hp
## [1] 335
##
## $wt
## [1] 5.424 5.345
##
## $qsec
## [1] 22.9
##
## $carb
## [1] 8
Answer: There are outliers in the colums hp, wt, qsec, and carb.
mtcars$hp_rs <- (mtcars$hp - min(mtcars$hp)) /
(max(mtcars$hp) - min(mtcars$hp))
range(mtcars$hp_rs)
## [1] 0 1
Answer: The minimum of hp_rs is 0 and the max is 1.
limits <- quantile(mtcars$wt, c(0.05, 0.95))
mtcars$wt_win <- pmin(
pmax(mtcars$wt, limits[1]),
limits[2]
)
range(mtcars$wt_win)
## [1] 1.73600 5.29275
Answer: After winsorizing the variable, the new min is 1.73600 and the max is 5.29275 . The new variables were saved under wt_win .