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)
DatasetZ <- read_excel("C:/Users/manib/Downloads/A6Q3-2.xlsx")
DatasetZ %>%
group_by(Exercise) %>%
summarise(
Mean = mean(Weight, na.rm = TRUE),
Median = median(Weight, na.rm = TRUE),
SD = sd(Weight, na.rm = TRUE),
N = n()
)
## # A tibble: 2 × 5
## Exercise Mean Median SD N
## <chr> <dbl> <dbl> <dbl> <int>
## 1 cardio 74.7 73.3 7.57 25
## 2 nocardio 70.8 69.5 7.35 25
hist(DatasetZ$Weight[DatasetZ$Exercise == "nocardio"],
main = "Histogram of Exercise Weight",
xlab = "Value",
ylab = "Frequency",
col = "lightblue",
border = "black",
breaks = 10)

hist(DatasetZ$Weight[DatasetZ$Exercise == "cardio"],
main = "Histogram of Exercise Weight",
xlab = "Value",
ylab = "Frequency",
col = "lightgreen",
border = "black",
breaks = 10)

#Group 1: nocardio
#The first variable looks abnormally distributed.
#The data is positively skewed.
#The data does not have a proper bell curve.
#Group 2: cardio
#The second variable looks normally distributed.
#The data is symmetrical.
#The data has a proper bell curve.
ggboxplot(DatasetZ, x = "Exercise", y = "Weight",
color = "Exercise",
palette = "jco",
add = "jitter")

#Boxplot 1: nocordio
#There are dots outside the boxplot.
#The dots are close to the whiskers.
#Based on these findings, the boxplot is normal.
#Boxplot 2: cordio
#There are dots outside the boxplot.
#The dots are close to the whiskers.
#Based on these findings, the boxplot is normal.
shapiro.test(DatasetZ$Weight[DatasetZ$Exercise == "nocardio"])
##
## Shapiro-Wilk normality test
##
## data: DatasetZ$Weight[DatasetZ$Exercise == "nocardio"]
## W = 0.97686, p-value = 0.8166
shapiro.test(DatasetZ$Weight[DatasetZ$Exercise == "cardio"])
##
## Shapiro-Wilk normality test
##
## data: DatasetZ$Weight[DatasetZ$Exercise == "cardio"]
## W = 0.96745, p-value = 0.5812
#Group 1: nocardio
#The first group is normally distributed, (p = 0.816).
#Group 2: cardio
#The second group is normally distributed, (p = 0.581).
t.test(Weight ~ Exercise, data = DatasetZ, var.equal = TRUE)
##
## Two Sample t-test
##
## data: Weight by Exercise
## t = 1.8552, df = 48, p-value = 0.06971
## alternative hypothesis: true difference in means between group cardio and group nocardio is not equal to 0
## 95 percent confidence interval:
## -0.3280454 8.1605622
## sample estimates:
## mean in group cardio mean in group nocardio
## 74.73336 70.81710
cohens_d_result <- cohens_d(Weight ~ Exercise, data = DatasetZ, pooled_sd = TRUE)
print(cohens_d_result)
## Cohen's d | 95% CI
## -------------------------
## 0.52 | [-0.04, 1.09]
##
## - Estimated using pooled SD.
#An Independent T-Test was conducted to determine if there was a difference in weight between nocardio and cardio.
#nocardio scores (M = 74.7, SD = 7.57) were not significantly different from cardio scores (M = 70.8, SD = 7.35), t(46) = 1.8552, p > .05.
#The effect size was medium, Cohen's d = .52.