---
title: "VA Intervention GPD Results - Physics 240 2018"
output: html_notebook
---

```{r, echo = FALSE, message = FALSE}
library(tidyverse)
library(RColorBrewer)
library(boot)
```

```{r, echo = FALSE}
theme_pub <- 
    theme(plot.title = element_text(face = "bold",
                                      size = rel(1.2), hjust = 0.5),
            text = element_text(),
            panel.background = element_blank(),
            plot.background = element_rect(colour = "white"),
            axis.title = element_text(face = "bold",size = 14),
            axis.title.y = element_text(angle=90,vjust =2,size=12),
            axis.title.x = element_text(vjust = -0.2,size=12),
            axis.text = element_text(size=10), 
            axis.line = element_line(colour="black"),
            axis.ticks = element_line(),
            panel.grid.major = element_line(colour="grey90"),
            panel.grid.minor = element_blank(),
            legend.key = element_rect(colour = NA),
            legend.position = "bottom",
            legend.direction = "horizontal",
            legend.key.size= unit(0.2, "cm"),
            legend.title = element_text(face="italic"),
            plot.margin=unit(c(10,5,5,5),"mm"),
            strip.background=element_rect(colour="#f0f0f0",fill="#f0f0f0"),
            strip.text = element_text(face="bold"),
          aspect.ratio=.65
    )
```

### Comparing gendered performance differences between Winter 2018 and Fall 2018 terms.

```{r, echo = FALSE, message = FALSE}
All240 <- read_csv("Demo_quiz_scores_WN18_FA18_P240.csv") %>%
  filter(published_grade >= 0) %>%
  mutate(`Quiz Percent` = published_grade / points_possible * 100)
```

```{r, echo = FALSE}
Q1_FA18_P240 <- filter(All240, name == "PHYSICS 240 FA 2018" & title == "Quiz 1")
Q2_FA18_P240 <- filter(All240, name == "PHYSICS 240 FA 2018" & title == "Quiz 2")
Q3_FA18_P240 <- filter(All240, name == "PHYSICS 240 FA 2018" & title == "Quiz 3")
Q4_FA18_P240 <- filter(All240, name == "PHYSICS 240 FA 2018" & title == "Quiz 4")
Q5_FA18_P240 <- filter(All240, name == "PHYSICS 240 FA 2018" & title == "Quiz 5")

Q1_WN18_P240 <- filter(All240, name == "PHYSICS 240 WN 2018" & title == "Quiz 1")
Q2_WN18_P240 <- filter(All240, name == "PHYSICS 240 WN 2018" & title == "Quiz 2")
Q3_WN18_P240 <- filter(All240, name == "PHYSICS 240 WN 2018" & title == "Quiz 3")
Q4_WN18_P240 <- filter(All240, name == "PHYSICS 240 WN 2018" & title == "Quiz 4")
Q5_WN18_P240 <- filter(All240, name == "PHYSICS 240 WN 2018" & title == "Quiz 5")
```
  
```{r, echo = FALSE}
bootfunc <- function(d,i) {
  d1 <- d[i]
  return(mean(d1))
}
```

```{r, echo = FALSE}
demoError <-c()
# Female error - FA 18
demoError[1] <- sd(boot(filter(Q1_FA18_P240, sex == "F")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[2] <- sd(boot(filter(Q2_FA18_P240, sex == "F")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[3] <- sd(boot(filter(Q3_FA18_P240, sex == "F")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[4] <- sd(boot(filter(Q4_FA18_P240, sex == "F")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[5] <- sd(boot(filter(Q5_FA18_P240, sex == "F")$`Quiz Percent`, bootfunc, 10000)$t)
# Female error - WN 18
demoError[6] <- sd(boot(filter(Q1_WN18_P240, sex == "F")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[7] <- sd(boot(filter(Q2_WN18_P240, sex == "F")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[8] <- sd(boot(filter(Q3_WN18_P240, sex == "F")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[9] <- sd(boot(filter(Q4_WN18_P240, sex == "F")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[10] <- sd(boot(filter(Q5_WN18_P240, sex == "F")$`Quiz Percent`, bootfunc, 10000)$t)

# Male error - FA 18
demoError[11] <- sd(boot(filter(Q1_FA18_P240, sex == "M")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[12] <- sd(boot(filter(Q2_FA18_P240, sex == "M")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[13] <- sd(boot(filter(Q3_FA18_P240, sex == "M")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[14] <- sd(boot(filter(Q4_FA18_P240, sex == "M")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[15] <- sd(boot(filter(Q5_FA18_P240, sex == "M")$`Quiz Percent`, bootfunc, 10000)$t)
# Male error - WN 18
demoError[16] <- sd(boot(filter(Q1_WN18_P240, sex == "M")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[17] <- sd(boot(filter(Q2_WN18_P240, sex == "M")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[18] <- sd(boot(filter(Q3_WN18_P240, sex == "M")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[19] <- sd(boot(filter(Q4_WN18_P240, sex == "M")$`Quiz Percent`, bootfunc, 10000)$t)
demoError[20] <- sd(boot(filter(Q5_WN18_P240, sex == "M")$`Quiz Percent`, bootfunc, 10000)$t)
```

```{r, echo = FALSE}
PerformDiff <- data_frame(c(replicate(10, "F"), replicate(10,"M")),
                          c("1", "2", "3", "4", "5", "1", "2", "3", "4", "5",
                            "1", "2", "3", "4", "5", "1", "2", "3", "4", "5"),
                          c(replicate(5, "Fall 2018"), replicate(5, "Winter 2018"),
                            replicate(5, "Fall 2018"), replicate(5, "Winter 2018")),
                          c("P240"),
                          c(mean(filter(Q1_FA18_P240, sex == "F")$`Quiz Percent`),
                            mean(filter(Q2_FA18_P240, sex == "F")$`Quiz Percent`),
                            mean(filter(Q3_FA18_P240, sex == "F")$`Quiz Percent`),
                            mean(filter(Q4_FA18_P240, sex == "F")$`Quiz Percent`),
                            mean(filter(Q5_FA18_P240, sex == "F")$`Quiz Percent`),
                            mean(filter(Q1_WN18_P240, sex == "F")$`Quiz Percent`),
                            mean(filter(Q2_WN18_P240, sex == "F")$`Quiz Percent`),
                            mean(filter(Q3_WN18_P240, sex == "F")$`Quiz Percent`),
                            mean(filter(Q4_WN18_P240, sex == "F")$`Quiz Percent`),
                            mean(filter(Q5_WN18_P240, sex == "F")$`Quiz Percent`),
                            mean(filter(Q1_FA18_P240, sex == "M")$`Quiz Percent`),
                            mean(filter(Q2_FA18_P240, sex == "M")$`Quiz Percent`),
                            mean(filter(Q3_FA18_P240, sex == "M")$`Quiz Percent`),
                            mean(filter(Q4_FA18_P240, sex == "M")$`Quiz Percent`),
                            mean(filter(Q5_FA18_P240, sex == "M")$`Quiz Percent`),
                            mean(filter(Q1_WN18_P240, sex == "M")$`Quiz Percent`),
                            mean(filter(Q2_WN18_P240, sex == "M")$`Quiz Percent`),
                            mean(filter(Q3_WN18_P240, sex == "M")$`Quiz Percent`),
                            mean(filter(Q4_WN18_P240, sex == "M")$`Quiz Percent`),
                            mean(filter(Q5_WN18_P240, sex == "M")$`Quiz Percent`)), demoError)
colnames(PerformDiff) <- c("Gender", "Quiz", "Term","Course", "Mean Quiz Percent", "Error")
PerformDiff$Term <- ordered(PerformDiff$Term, levels = c("Winter 2018", "Fall 2018"))
PerformDiff
```

```{r, echo = FALSE}
ggplot(PerformDiff, aes(Quiz, `Mean Quiz Percent`, color = Gender)) +
  geom_point(position = position_dodge(width = .2)) +
  geom_errorbar(aes(ymin = `Mean Quiz Percent` - Error,
                    ymax = `Mean Quiz Percent` + Error), width = .3,
                position = position_dodge(width = .2)) +
  facet_wrap(~Term) +
  ggtitle("Quiz Performance by Gender and Term for Physics 240") +
  scale_color_brewer(palette = "Set2") + labs(color = "") +
  theme_pub
```

#### GPD = Average_Female_Percent - Average_Male_Percent
##### This GPD calculation only looks at raw scores, it does not make any BTE measurements.
```{r, echo = FALSE}
GPD_P240 <- c()
GPD_P240[1] <- mean(filter(Q1_WN18_P240, sex == "F")$`Quiz Percent`) -
  mean(filter(Q1_WN18_P240, sex == "M")$`Quiz Percent`)
GPD_P240[2] <- mean(filter(Q2_WN18_P240, sex == "F")$`Quiz Percent`) -
  mean(filter(Q2_WN18_P240, sex == "M")$`Quiz Percent`)
GPD_P240[3] <- mean(filter(Q3_WN18_P240, sex == "F")$`Quiz Percent`) -
  mean(filter(Q3_WN18_P240, sex == "M")$`Quiz Percent`)
GPD_P240[4] <- mean(filter(Q4_WN18_P240, sex == "F")$`Quiz Percent`) -
  mean(filter(Q4_WN18_P240, sex == "M")$`Quiz Percent`)
GPD_P240[5] <- mean(filter(Q5_WN18_P240, sex == "F")$`Quiz Percent`) -
  mean(filter(Q5_WN18_P240, sex == "M")$`Quiz Percent`)

GPD_P240[6] <- mean(filter(Q1_FA18_P240, sex == "F")$`Quiz Percent`) -
  mean(filter(Q1_FA18_P240, sex == "M")$`Quiz Percent`)
GPD_P240[7] <- mean(filter(Q2_FA18_P240, sex == "F")$`Quiz Percent`) -
  mean(filter(Q2_FA18_P240, sex == "M")$`Quiz Percent`)
GPD_P240[8] <- mean(filter(Q3_FA18_P240, sex == "F")$`Quiz Percent`) -
  mean(filter(Q3_FA18_P240, sex == "M")$`Quiz Percent`)
GPD_P240[9] <- mean(filter(Q4_FA18_P240, sex == "F")$`Quiz Percent`) -
  mean(filter(Q4_FA18_P240, sex == "M")$`Quiz Percent`)
GPD_P240[10] <- mean(filter(Q5_FA18_P240, sex == "F")$`Quiz Percent`) -
  mean(filter(Q5_FA18_P240, sex == "M")$`Quiz Percent`)
```

```{r, echo = FALSE}
GPD_error_P240 <- c()
GPD_error_P240[1] <- sqrt(demoError[6]^2 + demoError[16]^2)
GPD_error_P240[2] <- sqrt(demoError[7]^2 + demoError[17]^2)
GPD_error_P240[3] <- sqrt(demoError[8]^2 + demoError[18]^2)
GPD_error_P240[4] <- sqrt(demoError[9]^2 + demoError[19]^2)
GPD_error_P240[5] <- sqrt(demoError[10]^2 + demoError[20]^2)

GPD_error_P240[6] <- sqrt(demoError[1]^2 + demoError[11]^2)
GPD_error_P240[7] <- sqrt(demoError[2]^2 + demoError[12]^2)
GPD_error_P240[8] <- sqrt(demoError[3]^2 + demoError[13]^2)
GPD_error_P240[9] <- sqrt(demoError[4]^2 + demoError[14]^2)
GPD_error_P240[10] <- sqrt(demoError[5]^2 + demoError[15]^2)
```

```{r, echo = FALSE}
GPD_table <- data_frame(c("1", "2", "3", "4", "5", "1", "2", "3", "4", "5"),
                        c(replicate(5, "Winter 2018"), replicate(5, "Fall 2018")),
                          c("P240"),
                          GPD_P240, GPD_error_P240)
colnames(GPD_table) <- c("Quiz", "Term", "Course", "GPD", "Error")
GPD_table$Term <- ordered(GPD_table$Term, levels = c("Winter 2018", "Fall 2018"))
GPD_table
```

```{r, echo = FALSE}
ggplot(GPD_table, aes(Quiz, GPD, color = Term)) +
  geom_point(position = position_dodge(width = .2)) +
  geom_errorbar(aes(ymin = GPD - Error,
                    ymax = GPD + Error), width = .3,
                position = position_dodge(width = .2)) +
  ggtitle("Gendered Performance Difference by Exam and Term for Physics 240") +
  scale_color_brewer(palette = "Set1") + labs(color = "") +
  theme_pub
```










