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("C:/Users/joyce/Downloads/Dataset6.1.xlsx")
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
This code will calculate the descriptive statistic of student who recieved tutoring and Student who did not receive tutoring.
hist(Dataset6.1$Exam_Score[Dataset6.1$Group == "No Tutoring"],
main = "Histogram of No Tutoring Exam Scores",
xlab = "Exam Score",
ylab = "Frequency",
col = "lightblue",
border = "black",
breaks = 10)
hist(Dataset6.1$Exam_Score[Dataset6.1$Group == "Tutoring"],
main = "Histogram of Tutoring Exam Scores",
xlab = "Exam Score",
ylab = "Frequency",
col = "lightgreen",
border = "black",
breaks = 10)
For the no tutoring histogram, the data appears approximately symmetrical with no strong positive or negative skewed. The kurtosis appears bell shaped and consistent with a normal.
For the Tutoring histogram, the data appears symmetrical (normal). The kurtosis also appears bell-shaped (normal).
We may need to use an independent t - test.
ggboxplot(Dataset6.1, x = "Group", y = "Exam_Score",
color = "Group",
palette = "jco",
add = "jitter")
The Tutoring boxplot appears normal. There are dots present and close to the whiskers.
The no Tutoring boxplot appears abnormal. There are several dots past the whiskers. Although some are very close to the whiskers, a few not so far away.
We may need to use an independent t - test.
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
The data for tutoring group was normal (p > .05). The data for no tutoring group was abnormal (p < .05).
After conducting all three normality tests, it is clear we must use an 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
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.
The no tutoring group (M = 71.95, SD = 7.68) was significantly different from the tutoring group (M = 78.36, SD = 7.18), t(78) = 3.86, p = .001. The effect size was large (Cohen’s d = 0.86).