Shresth Shaurya
October 27, 2026
An interactive Shiny application for estimating student final examination scores.
Project objective: Demonstrate an interactive and reproducible prediction workflow.
Can a simple regression model estimate a student's final examination score using academic and lifestyle indicators?
The dataset contains 360 synthetic student examples.
A multiple linear regression model estimates final scores from the five predictors.
student_data <- read.csv("../data/student_performance.csv")
dim(student_data)
[1] 360 6
summary(student_data$final_score)
Min. 1st Qu. Median Mean 3rd Qu. Max.
50.10 81.17 87.40 87.33 95.62 100.00
hist(
student_data$final_score,
breaks = 18,
col = "steelblue2",
border = "white",
main = "Distribution of Student Final Scores",
xlab = "Final Examination Score",
xlim = c(0, 100)
)
The data are synthetic and are used for educational demonstration.
student_model <- lm(
final_score ~ study_hours +
attendance_pct +
previous_score +
sleep_hours +
assignments_completed,
data = student_data
)
example_student <- data.frame(
study_hours = 3,
attendance_pct = 85,
previous_score = 65,
sleep_hours = 7,
assignments_completed = 7
)
round(
predict(student_model, newdata = example_student),
1
)
1
88.6
The model is fitted and the prediction is calculated when the presentation is rendered.
The Student Performance Predictor demonstrates how R, linear regression, and Shiny can be combined to create an interactive educational application.
Live Shiny Application:
https://dbw42p-shresth0shau.shinyapps.io/student_performance_predictor/