This document presents the code to generate the analysis over flipped learning data in a pretest - posttest, focus - control process.

Data description

Data consists of 111 rows representing the information of students that participated in a control or focus group in an implementation of a flipped learning methodology. Data has the following columns:

There are 43 rows in the control group and 68 rows in the focus group.

Exploratory analysis

Summary of control group learing gain

sdcontrol <- sd(control$Gain)
sderrorcontrol <- sd(control$Gain)/sqrt(length(control$Gain))
summary(control$Gain)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  7.143  28.902  43.662  41.013  53.516  67.273 

Std. deviation 16.3918702 Std. error mean 2.4997368

Summary of focus group learing gain

sdfocus <- sd(focus$Gain)
sderrorfocus <- sd(focus$Gain)/sqrt(length(focus$Gain))
summary(focus$Gain)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  15.38   39.86   51.03   50.02   60.90   73.81 

Std. deviation 13.7088726 Std. error mean 1.662445

pl <- ggplot(gain, aes(x=factor(Type), y=Gain, color=factor(Type))) + geom_boxplot() +
    theme(axis.text.x = element_text(angle = 45), legend.position = "none") +
    #theme(axis.text.x = element_blank(), axis.ticks = element_blank()) +
    xlab("Type") + ylab("Learning gain") 
pl

##Classification of learning gains

Control

b20control <- length(control$Gain[control$Gain<20])
bmeancontrol <- length(control$Gain[control$Gain<mean(control$Gain) & control$Gain>20])
ameancontrol <- length(control$Gain[control$Gain>=mean(control$Gain)])

Focus

b20focus <- length(focus$Gain[focus$Gain<20])
bmeanfocus <- length(focus$Gain[focus$Gain<mean(focus$Gain) & focus$Gain>20])
ameanfocus <- length(focus$Gain[focus$Gain>=mean(focus$Gain)])

Normality test

Control

shapiro.test(control$Gain)

    Shapiro-Wilk normality test

data:  control$Gain
W = 0.95593, p-value = 0.09831

Focus

shapiro.test(focus$Gain)

    Shapiro-Wilk normality test

data:  focus$Gain
W = 0.96568, p-value = 0.05791

Homogeneity of variance test

leveneTest(Gain ~ as.factor(Type), data = gain)

t test

t <- t.test(x=focus$Gain, y=control$Gain)
t

    Welch Two Sample t-test

data:  focus$Gain and control$Gain
t = 2.9996, df = 77.825, p-value = 0.003629
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
  3.028274 14.982011
sample estimates:
mean of x mean of y 
 50.01839  41.01325 

Frequency and proportion of global learning preferences

t <- knitr::kable(table(focus$Global), row.names = FALSE)
print(t)
Var1 Freq
A 2
AK 7
AR 1
ARK 5
K 10
R 2
RK 2
V 3
VAK 8
VAR 1
VARK 22
VK 1
t <- knitr::kable(prop.table(as.table(table(focus$Global)))*100, row.names = FALSE)
print(t)
Var1 Freq
A 3.1250
AK 10.9375
AR 1.5625
ARK 7.8125
K 15.6250
R 3.1250
RK 3.1250
V 4.6875
VAK 12.5000
VAR 1.5625
VARK 34.3750
VK 1.5625

Summary of learning modalities

Visual modality

summary(focus$V)[1:6]
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
 1.000000  4.000000  6.000000  6.265625  8.000000 16.000000 

Aural modality

summary(focus$A)[1:6]
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
 1.00000  5.00000  7.50000  7.53125 10.25000 15.00000 

Read/write modality

summary(focus$R)[1:6]
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
 1.000000  4.000000  5.000000  5.734375  8.000000 12.000000 

Kinesthetic modality

summary(focus$K)[1:6]
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
 1.000000  7.000000  9.000000  8.609375 11.000000 15.000000 

Correlation coefficients between learning modalities and normalized learning gains

aux <- gain[gain$Type=="Flipped Learning",]
aux <- aux[,c("Gain","V","A","R","K")]
aux <- aux[complete.cases(aux),]

corr <- c("V","A","R","K")

#estimate
Vcor <- cor.test(aux$V,aux$Gain, method = "pearson", use = "complete.obs")
corr <- c(corr,Vcor$estimate)
Acor <- cor.test(aux$A,aux$Gain, method = "pearson", use = "complete.obs")
corr <- c(corr,Acor$estimate)
Rcor <- cor.test(aux$R,aux$Gain, method = "pearson", use = "complete.obs")
corr <- c(corr,Rcor$estimate)
Kcor <- cor.test(aux$K,aux$Gain, method = "pearson", use = "complete.obs")
corr <- c(corr,Kcor$estimate)

#p-value
corr <- c(corr,Vcor$p.value)
corr <- c(corr,Acor$p.value)
corr <- c(corr,Rcor$p.value)
corr <- c(corr,Kcor$p.value)

corr <- as.data.frame(matrix(corr,nrow = 4))
names(corr) <- names <- c("Learning modality","Pearson correlation","p-value")

tab <- knitr::kable(corr, row.names = FALSE)
print(tab)
Learning modality Pearson correlation p-value
V -0.017886203095656 0.888438275773519
A 0.00988106868029863 0.938231815004538
R -0.0618271015605891 0.627440105288782
K 0.235001062194702 0.0615914615116797

  1. Fleming, N., & Baume, D. (2006). Learning styles again: VARKing up the right tree!. Educational developments, 7(4)↩︎