Is there a difference in body weight (kg) before versus after all participants tried the keto diet?

Load Required Packages

library(readxl)
## Warning: package 'readxl' was built under R version 4.6.1
library(ggpubr)
## Warning: package 'ggpubr' was built under R version 4.6.1
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.6.1
library(effsize)
## Warning: package 'effsize' was built under R version 4.6.1
library(rstatix)
## Warning: package 'rstatix' was built under R version 4.6.1
## 
## Attaching package: 'rstatix'
## The following object is masked from 'package:stats':
## 
##     filter
library(rmarkdown)

Import dataset

A6Q2 <- read_excel("C:/Users/rteno/OneDrive - Saint Louis University/AA 5221/Assignment 6/Question 2/A6Q2.xlsx")

Create Groups for Before and After

Before <- A6Q2$Before
After <- A6Q2$After
Differences <- After - Before

Calculate the Descriptive Statistics

# Descriptive Statistics for Before 
mean(Before, na.rm = TRUE)
## [1] 76.13299
median(Before, na.rm = TRUE)
## [1] 75.95988
sd(Before, na.rm = TRUE)
## [1] 7.781323
# Descriptive Statistics for After
mean(After, na.rm = TRUE)
## [1] 57.17874
median(After, na.rm = TRUE)
## [1] 58.36459
sd(After, na.rm = TRUE)
## [1] 14.39364

Create Histogram (Normality Check #1)

hist(Differences,
     main = "Histogram of Difference Scores",
     xlab = "Value",
     ylab = "Frequency",
     col = "blue",
     border = "black",
     breaks = 20)

# Interpret the Histogram 
# Histogram of Difference Scores
# The difference scores look abnormally distributed.
# The data is negatively skewed.
# The data does not have a proper bell curve.

Create Boxplot for Outliers (Normality Check #2)

boxplot(Differences,
        main = "Distribution of Score Differences (After - Before)",
        ylab = "Difference in Scores",
        col = "blue",
        border = "darkblue")

# Interpret the Boxplot
# Boxplot of Difference Scores
# There is one dot outside the box.
# The dot is not close to the whiskers.
# The dot is very far away from the whiskers.
# Based on these findings, the boxplot is abnormal.

Shapiro-Wilk Tests (Normality Check #3)

shapiro.test(Differences)
## 
##  Shapiro-Wilk normality test
## 
## data:  Differences
## W = 0.89142, p-value = 0.02856
# Interpret the Shapiro-Wilk Test
# Shapiro-Wilk Difference Scores
# The data is abnormally distributed, (p = .029).

# Determine Overall Normality
# Histogram: Abnormal
# Boxplot: Abnormal
# Shapiro-Wilk: Abnormal
# Overall Decision: Abnormal

Conduct the Wilcoxon Signed Rank Test

wilcox.test(Before, 
            After, 
            paired = TRUE, 
            na.action = na.omit)
## 
##  Wilcoxon signed rank exact test
## 
## data:  Before and After
## V = 210, p-value = 1.907e-06
## alternative hypothesis: true location shift is not equal to 0

Calculate Effect Size for Wilcoxon Signed Rank Test

df_long <- data.frame(
  id = rep(1:length(Before), 2),
  time = rep(c("Before", "After"), 
  each = length(Before)),
  score = c(Before, After)
)
wilcox_effsize(df_long, score ~ time, paired = TRUE)
## # A tibble: 1 × 7
##   .y.   group1 group2 effsize    n1    n2 magnitude
## * <chr> <chr>  <chr>    <dbl> <int> <int> <ord>    
## 1 score After  Before   0.877    20    20 large

Report the Wilcoxon Signed Rank Test

# A Wilcoxon Signed-Rank Test was conducted to determine if there was a difference in 
# body weight before versus after all participants tried the keto diet.
# Before scores (Mdn = 75.96) were significantly different 
# from after scores (Mdn = 58.36), V = 210, p < .001.
# The effect size was large, r = .877.