Data Loading Objective: Make your data accessible in R for analysis. Actions: Use functions like read.csv() for CSV files or readRDS() for RDS files. For demonstration, datasets built into R (like mtcars or iris) can be accessed directly.
# Access the dataset
data(mtcars)
# View the first few rows of the dataset
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
Exploratory Data Analysis (EDA)
Understand the Data Structure
Objective: Get familiar with the dataset’s dimensions, variable types, and missing values. Actions: Use str(), summary(), and dim() functions.
Summary Statistics
Conduct Descriptive Statistics
Objective: Summarize central tendencies, dispersion, and shape of the dataset’s distribution. Actions: Calculate mean, median, range, and standard deviation. Identify any anomalies or outliers.
# Summary statistics for the mtcars dataset
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
# Count of cars by number of cylinders
table(mtcars$cyl)
##
## 4 6 8
## 11 7 14
Data Visualizations
Visualize the Data
Objective: Use visual tools to understand data distributions, relationships between variables, and identify patterns. Actions: Create histograms, box plots, scatter plots, and correlation matrices.
library(ggplot2)
# Histogram of mpg
ggplot(mtcars, aes(x = mpg)) + geom_histogram(binwidth = 5, fill = "cornflowerblue") + labs(title = "Distribution of Miles per Gallon")
# Box plot of mpg by cylinder count
ggplot(mtcars, aes(x = as.factor(cyl), y = mpg)) + geom_boxplot(fill = "lightgreen") + labs(x = "Cylinders", y = "Miles per Gallon", title = "Fuel Efficiency by Cylinder Count")
Preparing for Predictive Modeling
Select a Modeling Approach
Objective: Choose a statistical model or machine learning algorithm suitable for your prediction task. Considerations: Nature of the prediction (regression, classification), assumptions about the data, complexity of the model, interpretability. Prepare the Data for Modeling
Objective: Clean and preprocess data to fit the requirements of your chosen model. Actions: Handle missing values, encode categorical variables, normalize or scale numerical variables, and possibly perform feature selection or engineering.
# Normalize the 'hp' (Horsepower) variable
mtcars$hp_normalized <- scale(mtcars$hp)
Split the Data
Objective: Divide your dataset into training and testing sets to evaluate the performance of your model.
set.seed(123) # For reproducibility
train_indices <- sample(1:nrow(mtcars), size = 0.7 * nrow(mtcars))
train_data <- mtcars[train_indices, ]
test_data <- mtcars[-train_indices, ]
Train the Model
Objective: Fit your model using the training dataset.
model <- lm(mpg ~ wt + cyl, data = train_data)
Evaluate the Model
Objective: Assess your model’s performance using the testing dataset. Actions: Calculate metrics such as Mean Squared Error (MSE) for regression or accuracy for classification.
predictions <- predict(model, test_data)
mse <- mean((predictions - test_data$mpg)^2)
Shiny App Development (Planning) Objective: Design an interactive web application that utilizes your predictive model to make predictions based on user input. Components: UI (User Interface): Design input fields for users to provide data and output plots or prediction results.