https://rpubs.com/anup0stha/1398782

library(readxl)
library(ggpubr)
## Loading required package: ggplot2
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(effectsize)
library(effsize)
Dataset6.1 <- read_excel("/Volumes/Anup/SLU/3rd Sem/Applied Analytics/Assignment 6/Dataset6.1.xlsx")

Calculating Descriptive Statistics

Dataset6.1 %>%
  group_by(Group) %>%
  summarise(
    Mean = mean(Exam_Score, na.rm = TRUE),
    Median = median(Exam_Score, na.rm = TRUE),
    SD = sd(Exam_Score, na.rm = TRUE),
    N = n()
  )
## # A tibble: 2 × 5
##   Group        Mean Median    SD     N
##   <chr>       <dbl>  <dbl> <dbl> <int>
## 1 No Tutoring  71.9   71.5  7.68    40
## 2 Tutoring     78.4   78.7  7.18    40
## Creating Histograms for Each Group
hist(Dataset6.1$Exam_Score[Dataset6.1$Group == "Tutoring"],
     main = "Histogram of Tutoring Exam Scores",
     xlab = "Value",
     ylab = "Frequency",
     col = "lightblue",
     border = "black",
     breaks = 10)

hist(Dataset6.1$Exam_Score[Dataset6.1$Group == "No Tutoring"],
     main = "Histogram of Non Tutoring Exam Scores",
     xlab = "Value",
     ylab = "Frequency",
     col = "lightgreen",
     border = "black",
     breaks = 10)

For both of the Tutoring and No Tutoring histogram, the data appears symmetrical (normal). The kurtosis also appears bell-shaped (normal).

Create Boxplots for Each Group

ggboxplot(Dataset6.1, x = "Group", y = "Exam_Score",
          color = "Group",
          palette = "jco",
          add = "jitter")

Interpretation of Box Plot

Even though the dots are outside of the box, they are not too far away from the wiskers. so we can say that the data is normal

Shapiro-Wilk Test of Normality

shapiro.test(Dataset6.1$Exam_Score[Dataset6.1$Group == "Tutoring"])
## 
##  Shapiro-Wilk normality test
## 
## data:  Dataset6.1$Exam_Score[Dataset6.1$Group == "Tutoring"]
## W = 0.98859, p-value = 0.953
shapiro.test(Dataset6.1$Exam_Score[Dataset6.1$Group == "No Tutoring"])
## 
##  Shapiro-Wilk normality test
## 
## data:  Dataset6.1$Exam_Score[Dataset6.1$Group == "No Tutoring"]
## W = 0.98791, p-value = 0.9398

Interpretation of Shapiro-Wilk Test

Since both p-value 0.953 and 0.939 are greater than 0.05, the data is normal.

After conducting all three normality tests, it is clear we must use Independent T test

Independent T-Test

t.test(Exam_Score ~ Group, data = Dataset6.1, var.equal = TRUE)
## 
##  Two Sample t-test
## 
## data:  Exam_Score by Group
## t = -3.8593, df = 78, p-value = 0.000233
## alternative hypothesis: true difference in means between group No Tutoring and group Tutoring is not equal to 0
## 95 percent confidence interval:
##  -9.724543 -3.105845
## sample estimates:
## mean in group No Tutoring    mean in group Tutoring 
##                  71.94627                  78.36147

p-value = 0.000233. p < .05, (less than .05), this means the results were SIGNIFICANT

Calculating the Effect Size

cohens_d_result <- cohens_d(Exam_Score ~ Group, data = Dataset6.1, pooled_sd = TRUE)
print(cohens_d_result)
## Cohen's d |         95% CI
## --------------------------
## -0.86     | [-1.32, -0.40]
## 
## - Estimated using pooled SD.

Cohen’s D interpretation

the effect size is -0.86. this is within range ± 1.30 to + = very large. this says that the effect size is very large

Report the Results

Tutoring Student (M = 78.4, SD = 7.18) were not significantly different from No Tutoring (M = 71.9, SD = 7.68) in exam scores, t(13) = -3.8593, p = 0.000233. The effect size was medium (Cohen’s d = -0.86. ).