library(readxl)
webinarium <- read_excel("webinarium.xlsx")
str(webinarium)
## tibble [82 × 11] (S3: tbl_df/tbl/data.frame)
## $ student : chr [1:82] "Айлана Смагулова" "Алина Аухадиева " "Алина Климентьева" "Алина Морозова" ...
## $ scores1_max31 : num [1:82] 7 0 9 5 9 3 11 9 12 12 ...
## $ quizlet : chr [1:82] "yes" "no" "yes" "yes" ...
## $ nastavnik : chr [1:82] "Лина Сергиенко" "Дмитрий Бушин" "Даша Фрасова" "Дарья Курбанова" ...
## $ scores2_max31 : num [1:82] 29 23 24 13 17 15 25 24 28 24 ...
## $ perindex : num [1:82] 22 23 15 8 8 12 14 15 16 12 ...
## $ testsavg_max31: num [1:82] 21 25 17 16 19.5 22.5 26 14 0 19 ...
## $ openavg_max25 : num [1:82] 16 13 10 5 8.5 10 11 15 0 10.5 ...
## $ rank1 : num [1:82] 13 20 11 15 11 17 9 11 8 8 ...
## $ rank2 : num [1:82] 3 9 8 18 14 16 7 8 4 8 ...
## $ rankindex : num [1:82] 10 11 3 -3 -3 1 2 3 4 0 ...
New variable with weights:
webinarium$wtd <- c(0.96,1.72,0.96,0.96,0.96,1.72,1.72,0.96,0.96,0.96,0.96,1.72,1.72,1.72,0.96,0.96,0.96,0.96,0.96,1.72,0.96,0.96,0.96,1.72,0.96,1.72,1.72,0.96,0.96,0.96,1.72,0.96,0.96,0.96,1.72,0.96,1.72,1.72,1.72,0.96,0.96,0.96,0.96,0.96,0.96,0.96,0.96,1.72,0.96,1.72,0.96,1.72,0.96,1.72,1.72,1.72,0.96,1.72,0.96,1.72,1.72,0.96,1.72,0.96,0.96,0.96,0.96,0.96,0.96,1.72,1.72,0.96,1.72,0.96,0.96,1.72,0.96,0.96,0.96,0.96,0.96,0.96)
str(webinarium)
## tibble [82 × 12] (S3: tbl_df/tbl/data.frame)
## $ student : chr [1:82] "Айлана Смагулова" "Алина Аухадиева " "Алина Климентьева" "Алина Морозова" ...
## $ scores1_max31 : num [1:82] 7 0 9 5 9 3 11 9 12 12 ...
## $ quizlet : chr [1:82] "yes" "no" "yes" "yes" ...
## $ nastavnik : chr [1:82] "Лина Сергиенко" "Дмитрий Бушин" "Даша Фрасова" "Дарья Курбанова" ...
## $ scores2_max31 : num [1:82] 29 23 24 13 17 15 25 24 28 24 ...
## $ perindex : num [1:82] 22 23 15 8 8 12 14 15 16 12 ...
## $ testsavg_max31: num [1:82] 21 25 17 16 19.5 22.5 26 14 0 19 ...
## $ openavg_max25 : num [1:82] 16 13 10 5 8.5 10 11 15 0 10.5 ...
## $ rank1 : num [1:82] 13 20 11 15 11 17 9 11 8 8 ...
## $ rank2 : num [1:82] 3 9 8 18 14 16 7 8 4 8 ...
## $ rankindex : num [1:82] 10 11 3 -3 -3 1 2 3 4 0 ...
## $ wtd : num [1:82] 0.96 1.72 0.96 0.96 0.96 1.72 1.72 0.96 0.96 0.96 ...
library(dplyr)
df_summary <-
webinarium %>%
group_by(quizlet) %>%
summarise(weighted_per = weighted.mean(perindex, wtd))
df_summary
## # A tibble: 2 x 2
## quizlet weighted_per
## <chr> <dbl>
## 1 no 15.0
## 2 yes 15.4
library(ggplot2)
ggplot(webinarium, aes(y = perindex, x = quizlet)) +
geom_boxplot(fill = c("skyblue", "salmon")) +
stat_summary(fun.y = mean, geom = "point", shape = 4, size = 4) +
theme_classic()
library(dplyr)
df_summary2 <-
webinarium %>%
group_by(quizlet) %>%
summarise(weighted_test = weighted.mean(testsavg_max31, wtd))
df_summary2
## # A tibble: 2 x 2
## quizlet weighted_test
## <chr> <dbl>
## 1 no 20.1
## 2 yes 19.8
ggplot(webinarium, aes(y = testsavg_max31, x = quizlet)) +
geom_boxplot(fill = c("skyblue", "salmon")) +
stat_summary(fun.y = mean, geom = "point", shape = 4, size = 4) +
theme_classic()
library(dplyr)
df_summary3 <-
webinarium %>%
group_by(quizlet) %>%
summarise(weighted_open = weighted.mean(openavg_max25, wtd))
df_summary3
## # A tibble: 2 x 2
## quizlet weighted_open
## <chr> <dbl>
## 1 no 12.4
## 2 yes 13.1
ggplot(webinarium, aes(y = openavg_max25, x = quizlet)) +
geom_boxplot(fill = c("skyblue", "salmon")) +
stat_summary(fun.y = mean, geom = "point", shape = 4, size = 4) +
theme_classic()
library(dplyr)
df_summary4 <-
webinarium %>%
group_by(quizlet) %>%
summarise(weighted_rank = weighted.mean(rankindex, wtd))
df_summary4
## # A tibble: 2 x 2
## quizlet weighted_rank
## <chr> <dbl>
## 1 no 3.62
## 2 yes 4.02
ggplot(webinarium, aes(y = rankindex, x = quizlet)) +
geom_boxplot(fill = c("skyblue", "salmon")) +
stat_summary(fun.y = mean, geom = "point", shape = 4, size = 4) +
theme_classic()
Performance index: mean performance index is slightly higher among students who were engaged in gamified learning (15.37736 as opposed to 15.00000 among those who was not exposed to gamificcation techniques)
Test scores: mean test scores are slightly higher in the control group (20.12069 as opposed to 19.77358 in the experimental)
Responces on open questions: mean open questions scores are slightly higher in the experimental group (13.14151 as opposed to 12.44828 in the control one )
Rank change: mean change in rank was slightly higher among studetns in experimental group (4.018868 as opposed to 3.620690 among those in the control group). Meaning that students who were exposed to gamificarion practices improved their knowledge slightly greater than those who were not.
Hypothesis:
H0: There is no significant difference between experimental and control group in performance indicators
H1: There is significant difference between experimental and control group in performance indicators
library(survey)
strat_design <- svydesign(ids=~1, weights=~wtd, data=webinarium, variables=NULL, fpc=NULL)
svyttest(perindex~quizlet,strat_design)
##
## Design-based t-test
##
## data: perindex ~ quizlet
## t = 0.2722, df = 80, p-value = 0.7862
## alternative hypothesis: true difference in mean is not equal to 0
## 95 percent confidence interval:
## -2.339798 3.094515
## sample estimates:
## difference in mean
## 0.3773585
svyttest(testsavg_max31~quizlet,strat_design)
##
## Design-based t-test
##
## data: testsavg_max31 ~ quizlet
## t = -0.22711, df = 80, p-value = 0.8209
## alternative hypothesis: true difference in mean is not equal to 0
## 95 percent confidence interval:
## -3.342572 2.648363
## sample estimates:
## difference in mean
## -0.3471047
svyttest(openavg_max25~quizlet,strat_design)
##
## Design-based t-test
##
## data: openavg_max25 ~ quizlet
## t = 0.54987, df = 80, p-value = 0.5839
## alternative hypothesis: true difference in mean is not equal to 0
## 95 percent confidence interval:
## -1.777731 3.164198
## sample estimates:
## difference in mean
## 0.6932336
svyttest(rankindex~quizlet,strat_design)
##
## Design-based t-test
##
## data: rankindex ~ quizlet
## t = 0.323, df = 80, p-value = 0.7475
## alternative hypothesis: true difference in mean is not equal to 0
## 95 percent confidence interval:
## -2.017951 2.814307
## sample estimates:
## difference in mean
## 0.3981783
In all cases p-value is very big, meaning that we have rather high probability to reject the null hypothesis when in fact it is true
modelwtd <- lm(perindex~quizlet, weights = webinarium$wtd, data=webinarium)
summary(modelwtd)
##
## Call:
## lm(formula = perindex ~ quizlet, data = webinarium, weights = webinarium$wtd)
##
## Weighted Residuals:
## Min 1Q Median 3Q Max
## -14.4264 -5.2460 -0.3697 3.9345 17.0493
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 15.0000 0.9459 15.857 <2e-16 ***
## quizletyes 0.3774 1.3312 0.283 0.778
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.681 on 80 degrees of freedom
## Multiple R-squared: 0.001003, Adjusted R-squared: -0.01148
## F-statistic: 0.08036 on 1 and 80 DF, p-value: 0.7775
modelwtd2 <- lm(testsavg_max31~quizlet, weights = webinarium$wtd, data=webinarium)
summary(modelwtd2)
##
## Call:
## lm(formula = testsavg_max31 ~ quizlet, data = webinarium, weights = webinarium$wtd)
##
## Weighted Residuals:
## Min 1Q Median 3Q Max
## -26.388 -3.085 1.692 5.488 10.989
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 20.1207 1.0437 19.278 <2e-16 ***
## quizletyes -0.3471 1.4688 -0.236 0.814
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.371 on 80 degrees of freedom
## Multiple R-squared: 0.0006976, Adjusted R-squared: -0.01179
## F-statistic: 0.05585 on 1 and 80 DF, p-value: 0.8138
modelwtd3 <- lm(openavg_max25~quizlet, weights = webinarium$wtd, data=webinarium)
summary(modelwtd3)
##
## Call:
## lm(formula = openavg_max25 ~ quizlet, data = webinarium, weights = webinarium$wtd)
##
## Weighted Residuals:
## Min 1Q Median 3Q Max
## -16.3258 -3.1777 0.3512 4.4941 12.5270
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 12.4483 0.8663 14.370 <2e-16 ***
## quizletyes 0.6932 1.2191 0.569 0.571
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.118 on 80 degrees of freedom
## Multiple R-squared: 0.004026, Adjusted R-squared: -0.008424
## F-statistic: 0.3234 on 1 and 80 DF, p-value: 0.5712
modelwtd4 <- lm(rankindex~quizlet, weights = webinarium$wtd, data=webinarium)
summary(modelwtd4)
##
## Call:
## lm(formula = rankindex ~ quizlet, data = webinarium, weights = webinarium$wtd)
##
## Weighted Residuals:
## Min 1Q Median 3Q Max
## -12.6174 -4.7485 -0.9983 3.1204 16.2353
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.6207 0.8405 4.308 4.65e-05 ***
## quizletyes 0.3982 1.1828 0.337 0.737
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.936 on 80 degrees of freedom
## Multiple R-squared: 0.001415, Adjusted R-squared: -0.01107
## F-statistic: 0.1133 on 1 and 80 DF, p-value: 0.7373
General tendency: in all models coefficients are not statistically significant, meaning that we have rather high probability to reject the null hypothesis when in fact it is true (HO: there is no relationship between variables). The reason for this maybe relatively small sample size.
Performance index: comparing with people who were not exposed to gamification practices, for those who were performance index increases by 0.3774.
Test scores: comparing with people who were not exposed to gamification practices, for those who were test scores decrease by 0.3471.
Responces on open questions: comparing with people who were not exposed to gamification practices, for those who were open questions scores increase by 0.6932.
Rank change: comparing with people who were not exposed to gamification practices, for those who were change in rank increase by 0.3982
ggplot(data = webinarium, aes(x = rank1, y = rank2, colour = quizlet)) +
geom_line()