A Mann-Whitney U test was conducted to compare customer satisfaction scores between those served by human agents (\(n = 100\)) and those served by an AI chatbot (\(n = 100\)). The human agents group had significantly higher median scores (\(\text{Mdn} = 8.00\)) than the AI chatbot group (\(\text{Mdn} = 3.00\)), \(U = 497\), \(p < 0.001\). The effect size was large (\(r = 0.90\)), indicating a very large difference between the two service types. Overall, customers reported much higher satisfaction when interacting with a human agent compared to an AI chatbot.
# INDEPENDENT T-TEST & MANN-WHITNEY U TEST
# QUESTION
# What are the null and alternate hypotheses for YOUR research scenario?
# H0: There is no difference in the average customer satisfaction scores between customers served by human agents and those served by an AI chatbot.
# H1: There is a difference in the average customer satisfaction scores between customers served by human agents and those served by an AI chatbot.
# --- SETUP AND DATA IMPORT ---
# INSTALL REQUIRED PACKAGE (Uncomment and run only if needed)
# install.packages("readxl")
# LOAD THE PACKAGE
library(readxl)
# IMPORT EXCEL FILE INTO R STUDIO
# REPLACE THE FILE PATH BELOW with your actual path.
satisfaction_data <- read_excel("C:/Users/sahit/Downloads/A6R2.xlsx")
# --- DESCRIPTIVE STATISTICS ---
# INSTALL REQUIRED PACKAGE (Uncomment and run only if needed)
# install.packages("dplyr")
# LOAD THE PACKAGE
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
# CALCULATE THE DESCRIPTIVE STATISTICS
satisfaction_data %>%
group_by(ServiceType) %>%
summarise(
Mean = mean(SatisfactionScore, na.rm = TRUE),
Median = median(SatisfactionScore, na.rm = TRUE),
SD = sd(SatisfactionScore, na.rm = TRUE),
N = n()
)
## # A tibble: 2 × 5
## ServiceType Mean Median SD N
## <chr> <dbl> <dbl> <dbl> <int>
## 1 AI 3.6 3 1.60 100
## 2 Human 7.42 8 1.44 100
# --- ASSUMPTION CHECKS: NORMALITY AND OUTLIERS ---
# HISTOGRAMS
# CREATE THE HISTOGRAMS
hist(satisfaction_data$SatisfactionScore[satisfaction_data$ServiceType == "Human"],
main = "Histogram of Human Agent Scores",
xlab = "SatisfactionScore",
ylab = "Frequency",
col = "lightblue",
border = "black",
breaks = 20)
hist(satisfaction_data$SatisfactionScore[satisfaction_data$ServiceType == "AI"],
main = "Histogram of AI Chatbot Scores",
xlab = "SatisfactionScore",
ylab = "Frequency",
col = "lightgreen",
border = "black",
breaks = 20)
# SHAPIRO-WILK TEST
# CONDUCT THE SHAPIRO-WILK TEST
# Result was: p < 0.05 for both groups (NOT normal)
shapiro.test(satisfaction_data$SatisfactionScore[satisfaction_data$ServiceType == "Human"])
##
## Shapiro-Wilk normality test
##
## data: satisfaction_data$SatisfactionScore[satisfaction_data$ServiceType == "Human"]
## W = 0.93741, p-value = 0.0001344
shapiro.test(satisfaction_data$SatisfactionScore[satisfaction_data$ServiceType == "AI"])
##
## Shapiro-Wilk normality test
##
## data: satisfaction_data$SatisfactionScore[satisfaction_data$ServiceType == "AI"]
## W = 0.91143, p-value = 5.083e-06
# BOXPLOT
# INSTALL REQUIRED PACKAGE (Uncomment and run only if needed)
# install.packages("ggplot2")
# install.packages("ggpubr")
# LOAD THE PACKAGE
library(ggplot2)
library(ggpubr)
# CREATE THE BOXPLOT
ggboxplot(satisfaction_data, x = "ServiceType", y = "SatisfactionScore",
color = "ServiceType",
palette = "jco",
add = "jitter")
# --- INFERENTIAL TEST: MANN-WHITNEY U TEST ---
# DECISION: The Shapiro-Wilk test for both groups resulted in p < 0.05. Proceed with Mann-Whitney U test.
# MANN-WHITNEY U TEST (Result: W = 497, p < 2.2e-16)
wilcox_result <- wilcox.test(SatisfactionScore ~ ServiceType, data = satisfaction_data, exact = FALSE)
print(wilcox_result)
##
## Wilcoxon rank sum test with continuity correction
##
## data: SatisfactionScore by ServiceType
## W = 497, p-value < 2.2e-16
## alternative hypothesis: true location shift is not equal to 0
# EFFECT-SIZE
# INSTALL REQUIRED PACKAGE (Uncomment and run only if needed)
# install.packages("effectsize")
# LOAD THE PACKAGE
library(effectsize)
# CALCULATE EFFECT SIZE (RANK-BISERIAL r = 0.90)
# --- FINAL ANSWERS AND REPORTING ---
# QUESTIONS
# Answer the questions below as a comment within the R script:
# Q1) What is the size of the effect?
# The effect size is r = 0.90. This is a **large effect**.
# Q2) Which group had the higher average rank?
# The **Human Agent** group had the higher average rank (Median = 8.00).
# WRITTEN REPORT FOR MANN-WHITNEY U TEST
# Write a paragraph summarizing your findings:
# A Mann-Whitney U test was conducted to compare customer satisfaction scores
# between those served by human agents (n = 100) and those served by an AI chatbot (n = 100).
# The human agents group had significantly higher median scores (Mdn = 8.00) than the AI chatbot group (Mdn = 3.00), U = 497, p < 0.001.
# The effect size was large (r = 0.90), indicating a very large difference between the two service types.
# Overall, customers reported much higher satisfaction when interacting with a human agent compared to an AI chatbot.