library(tidyverse)
library(ggthemes)
library(plyr)
library(kableExtra)
library(magrittr)
library(here)
library(ggrepel)
library(tippy)

theme_alan <- function(base_size = 12 , base_family = "")
{
  half_line <- base_size/2
  colors <- ggthemes_data$few
  gray <- colors$medium["gray"]
  black <- colors$dark["black"]
  
  theme(
    line = element_line(colour = "black", size = 0.5, linetype = 1, lineend = "butt"),
    rect = element_rect(fill = "white", 
                        colour = "black", size = 0.5, linetype = 1),
    text = element_text(family = base_family, face = "plain", colour = "black", 
                        size = base_size, lineheight = 0.9, hjust = 0.5, vjust = 0.5,
                        angle = 0, margin = margin(), debug = FALSE),
    
    axis.line = element_blank(),
    axis.line.x = NULL,
    axis.line.y = NULL, 
    axis.text = element_text(size = rel(0.8), colour = "grey30"),
    axis.text.x = element_text(margin = margin(t = 0.8 * half_line/2), vjust = 1),
    axis.text.x.top = element_text(margin = margin(b = 0.8 * half_line/2), vjust = 0),
    axis.text.y = element_text(margin = margin(r = 0.8 * half_line/2), hjust = 1),
    axis.text.y.right = element_text(margin = margin(l = 0.8 * half_line/2), hjust = 0), 
    axis.ticks = element_line(colour = "grey20"), 
    axis.ticks.length = unit(half_line/2, "pt"),
    axis.title.x = element_text(margin = margin(t = half_line), vjust = 1),
    axis.title.x.top = element_text(margin = margin(b = half_line), vjust = 0),
    axis.title.y = element_text(angle = 90, margin = margin(r = half_line), vjust = 1),
    axis.title.y.right = element_text(angle = -90, margin = margin(l = half_line), vjust = 0),
    
    legend.background = element_rect(colour = NA),
    legend.spacing = unit(0.4, "cm"), 
    legend.spacing.x = NULL, 
    legend.spacing.y = NULL,
    legend.margin = margin(0.2, 0.2, 0.2, 0.2, "cm"),
    legend.key = element_rect(fill = "white", colour = NA), 
    legend.key.size = unit(1.2, "lines"), 
    legend.key.height = NULL,
    legend.key.width = NULL,
    legend.text = element_text(size = rel(0.8)), 
    legend.text.align = NULL,
    legend.title = element_text(hjust = 0),
    legend.title.align = NULL,
    legend.position = "right", 
    legend.direction = NULL,
    legend.justification = "center", 
    legend.box = NULL,
    legend.box.margin = margin(0, 0, 0, 0, "cm"),
    legend.box.background = element_blank(),
    legend.box.spacing = unit(0.4, "cm"),
    
    panel.background = element_rect(fill = "white", colour = NA),
    panel.border = element_rect(fill = NA, colour = "grey20"),
    panel.grid.major = element_line(colour = "grey92"),
    panel.grid.minor = element_line(colour = "grey92", size = 0.25),
    panel.spacing = unit(half_line, "pt"),
    panel.spacing.x = NULL,
    panel.spacing.y = NULL,
    panel.ontop = FALSE,
    
    strip.background = element_rect(fill = "NA", colour = "NA"),
    strip.text = element_text(colour = "grey10", size = rel(0.8)),
    strip.text.x = element_text(margin = margin(t = half_line, b = half_line)),
    strip.text.y = element_text(angle = 0, margin = margin(l = half_line, r = half_line)),
    strip.placement = "inside",
    strip.placement.x = NULL, 
    strip.placement.y = NULL,
    strip.switch.pad.grid = unit(0.1, "cm"), 
    strip.switch.pad.wrap = unit(0.1, "cm"), 
    
    plot.background = element_rect(colour = "white"),
    plot.title = element_text(size = rel(1.2), hjust = 0, vjust = 1, margin = margin(b = half_line * 1.2)),
    plot.subtitle = element_text(size = rel(0.9), hjust = 0, vjust = 1, margin = margin(b = half_line * 0.9)),
    plot.caption = element_text(size = rel(0.9), hjust = 1, vjust = 1, margin = margin(t = half_line * 0.9)), 
    plot.margin = margin(half_line, half_line, half_line, half_line),
    
    complete = TRUE)
}

# Wrapper Function for Long Graph Titles
wrapper <- function(x, ...) 
{
  paste(strwrap(x, ...), collapse = "\n")
}


pd <- position_dodge(width = 0.8)       #My standard dodging for graphs


#RDFZ Reds
RDFZPink <- "#cf8f8d"
RDFZRed1 <- "#ae002b"
RDFZRed2 <- "#991815"
RDFZRed3 <- "#78011e"
RDFZRed4 <- "#4b0315"

#Grade Colors
GradeColors <- c("#8900df", "#0092df", "#00df76", "#94df00", "#94df00", "#df5300", "#9b0f00")

#function for allowing inline code chunks to be shown verbatim
rinline <- function(code){
  html <- '<code  class="r">``` `r CODE` ```</code>'
  sub("CODE", code, html)
}
## Read in the Data File
PP2Grades <- read.csv(here("PP2Grades.csv"))

## Make a Unique Column for Grouping
PP2Grades %<>%
  unite(Combo, Teacher, Student, Anon, sep = "-", remove = FALSE) 

## Obtain Maximum Values (total score of test)
P2MaxVal <- as.numeric(sum(head(PP2Grades, length(unique(PP2Grades$Question)))$Value))

## Summarize the Data for Each Participant
PP2Totals <- 
  PP2Grades %>%
    group_by(Combo) %>%
    dplyr::summarise(sum = sum(Grade)) %>%
    mutate(Grade = round(sum/P2MaxVal*100, 1)) %>%
    separate(Combo, into = c("Teacher", "Student", "Anon"), sep = "-", remove = TRUE) %>%
    arrange(Student) 
#FILL THIS IN WHEN SETTING UP THE SHEET - IT WILL HELP WITH NAMING THE TABLES AND IMAGES THAT ARE OUTPUT, SAVING YOU TIME

Class <- "AS Psychology"            #Name of the Class Goes Here
Eval <- "Paper 2 Practice Test"       #Name of what is being evaluated goes here

Paper 2

Questions

Paper 1 consisted of questions testing student’s knowledge of the application of research Methodology in AS Psychology. The questions and their values can be seen in the table below.

##KNITTED TABLE OF QUESTIONS AND POINT VALUES
QTitle <- paste(Class, Eval, "Questions and Values", sep = " - ")

QT1 <- 
  PP2Grades %>%
    head(length(unique(PP2Grades$Question))) %>%
    subset(select = c(Qnum, Question, Value)) %>%
    setNames(c("Number", "Question", "Value"))
    
QuestionsTableP2 <-
  QT1 %>%
    knitr::kable(caption = QTitle, row.names = F) %>%
    row_spec(0, bold = T, color = "white", background = RDFZRed3)%>%
    kable_styling(full_width = FALSE, 
                  bootstrap_options = c("striped", "hover", "condensed"),
                  fixed_thead = TRUE) 

save_kable(QuestionsTableP2, paste(QTitle, ".png", sep = ""))

QuestionsTableP2
AS Psychology - Paper 2 Practice Test - Questions and Values
Number Question Value
1 Explain what is meant by the ‘aim’ of a study, using an example 2
2a Explain what is meant by a ‘repeated measures design’. 1
2b Suggest one advantage of using a repeated measures design, using any core study as an example 2
3a Explain what is meant by ‘reliability’, using one example from the study by Bandura et al.  2
3b Suggest one problem with reliability in any core study, other than the Bandura et al. study 2
4a Explain why following ethical guidelines can cause demand characteristics 2
4b Explain why it is sometimes necessary to break the guideline of informed consent in psychological research 2
5a Explain what is meant by ‘a controlled variable’ 1
5b dentify an example of a controlled variable from the Bandura et al. study. 1
5c Suggest one advantage of controlling the variable you have identified in part (a)(ii). 2
5d State one way in which Bandura et al. helped observers to be reliable. 1
6 Describe differences between subjectivity and objectivity, using any examples. 6
7a Zho is investigating how quickly fish learn to respond to different coloured lights. She trains fish in two tanks to swim to the end of the tank for food in response to a light. She uses a red light with one tank and a green light with the other tank. She times how quickly the fish swim to the end of the tank. Identify the dependent variable in this experiment 1
7b Identify the independent variable in this experiment 1
7c Explain two ethical guidelines for working with animals 4
8 Hanif is investigating helping behaviour in animals. As part of his experiment, two chimpanzees are put together but it is possible that they might hurt each other, for example, by fighting rather than helping. Hanif is the only observer and wants to find out whether his recording of fighting behaviour is reliable over time. Explain what Hanif should do to measure his reliability 4
9a Alan conducted a study on the effect of caffeine consumption on AS Psychology Paper 1 results. He gave iced coffee to some AS Psychology students before their exam. Identify the type of experiment Alan has conducted 1
9b Suggest how Alan could operationalise the IV and DV in his study 2
9c Write a one-tailed (directional) hypothesis for Alan’s study 2
9d Write a null hypothesis for Alan’s study 1
9e Draw a graph of the likely results of Alan’s study 3
9f Alan has several concerns about uncontrolled variables in his study. Alan observed that more students from his class came for coffee than students from June’s class. Name this type of uncontrolled variable and explain why it could be a problem 3
9g Alan knows that some students are regular coffee drinkers, while others are not. Name this type of uncontrolled variable and explain why it could be a problem 3
10a Cecil is studying a family. The mother, father and both of their sons all have a phobia of trees. Describe how Cecil could conduct a study including a semi-structured interviews to investigate the phobia in this family. 10
10b Identify one practical weakness/limitation with the procedure you have described in your answer to part (a) and suggest how your study might be done differently to overcome the problem. Do not refer to ethics or sampling in your answer 4

Overall Performance

#Single Histogram

OverallTitle <- paste(Class, Eval, "Histogram of Grades", sep = " - ")

ggplot(data=PP2Totals, aes(x=Grade)) +
  geom_histogram(aes(y=..density..), alpha = 1, position = "identity", fill = RDFZRed2) +
  labs(x="Grade (Percentage)", y="Density") +
  stat_function(fun=dnorm, args = list(mean=mean(PP2Totals$Grade), sd=sd(PP2Totals$Grade)), 
                color=RDFZRed4, size   = 1.4) +
  scale_x_continuous(limits = c(0,100)) + 
  theme_alan() +
  theme(legend.position = "none") +
  ggtitle(wrapper(OverallTitle, width = 45))

ggsave(here(paste(OverallTitle, ".png", sep = "")), plot = last_plot(), device = NULL, path = NULL,
       width = 10, height = 6, units = c("in", "cm", "mm"),
       dpi = 600)

Overall performance can be seen in the graph above. We had a fairly normal distribution of grades (Shapiro-Wilk Normality test: W= 0.87, p= 0.058) with a mean score of 75.6% (Median = 73%) and a standard deviation of 8.5%.

The high score on the test was 57 out of 63 marks (90.5%), which was achieved by 1 student(s).

The low score on the test was 40 out of 63 marks (63.5%), which was achieved by 1 student(s).

Letter Grades (Raw)

Typical raw letter grade boundaries for the school can be seen in the table below:

#Note that this already includes rounding up any grade above 0.5 to the next letter grade (e.g. 79.5% = A)
Letters <- c("A*", "A", "B", "C", "D", "E", "U")
MinVal <- c(89.5, 79.5, 69.5, 59.5, 49.5, 39.5, 0)
MaxVal <- c (100, 89.49, 79.49, 69.49, 59.49, 49.49, 39.49)

LetterBoundaries <- 
  cbind.data.frame(Letters, MinVal, MaxVal) %>%
    setNames(c("Letter", "Bottom", "Top"))

LetterGradesTable <-
  LetterBoundaries  %>%
    setNames(c("Letter Grade", "Bottom Boundary", "Top Boundary")) %>%
    knitr::kable(caption = "RDFZ Letter Grade Boundaries", row.names = F) %>%
    row_spec(0, bold = T, color = "white", background = RDFZRed3)%>%
    kable_styling(full_width = FALSE, 
                  bootstrap_options = c("striped", "hover", "condensed"),
                  fixed_thead = TRUE) %>%
    footnote(general = "Note this includes rounding of grades like 79.5% up a grade boundary" )

LetterGradesTable
RDFZ Letter Grade Boundaries
Letter Grade Bottom Boundary Top Boundary
A* 89.5 100.00
A 79.5 89.49
B 69.5 79.49
C 59.5 69.49
D 49.5 59.49
E 39.5 49.49
U 0.0 39.49
Note:
Note this includes rounding of grades like 79.5% up a grade boundary

If we assign grade boundaries based on these we can see the following distribution of grades

GB1Title <- paste(Class, Eval, "Letter Grades (Raw)", sep = " - ")
  
  
PP2Totals %<>%
  mutate(Letter = cut(x= PP2Totals$Grade, 
                      breaks = c(LetterBoundaries$Bottom,100), 
                      labels= map_df(LetterBoundaries,rev)$Letter)) %>%
  mutate(Letter = factor(Letter, levels =c("U", "E", "D", "C", "B", "A", "A*")))
    

ggplot(data=PP2Totals, aes(x=Letter, fill = Letter)) +
  geom_bar(stat = "count", position = pd, width = 0.8) +
  scale_x_discrete(drop = FALSE) +
  scale_fill_manual(values = (c(rev(GradeColors[1:4]))  )) +  #Janky because of missing grade boundaries (no students in bins)
  labs(x="Letter Grade", y="Count") +
  theme_alan() +
  ggtitle(wrapper(GB1Title, width = 45))

ggsave(here(paste(GB1Title, ".png", sep = "")), plot = last_plot(), device = NULL, path = NULL,
       width = 8, height = 6, units = c("in", "cm", "mm"),
       dpi = 600)


LetterCounts <- count(PP2Totals$Letter)

LetterBoundaries2 <-
  LetterBoundaries  %>%
    mutate(Count = plyr::mapvalues(Letter, from = LetterCounts$x, to = LetterCounts$freq))  %>%
    mutate(Count = as.numeric(Count))  %>%
    mutate(Count = replace_na(Count, 0))

This is not where we want our results clumping - we need to improve here. Only 3 students earned an A or A-star, although it is encouraging that 0 students earned E or a U on the exam. The total counts of students in each grade category can be seen in the table below

LetterBoundaries2  %>%
    setNames(c("Letter Grade", "Bottom Boundary", "Top Boundary", "Count")) %>%
    knitr::kable(caption = "RDFZ Letter Grade Boundaries", row.names = F) %>%
    row_spec(0, bold = T, color = "white", background = RDFZRed3)%>%
    kable_styling(full_width = FALSE, 
                  bootstrap_options = c("striped", "hover", "condensed"),
                  fixed_thead = TRUE) 
RDFZ Letter Grade Boundaries
Letter Grade Bottom Boundary Top Boundary Count
A* 89.5 100.00 1
A 79.5 89.49 2
B 69.5 79.49 9
C 59.5 69.49 1
D 49.5 59.49 0
E 39.5 49.49 0
U 0.0 39.49 0

Tables

Tables for Engage

# Alan
AlanTitle <- paste(Class, Eval, "Final Grades - Alan", sep = " - ")

AlanTable <- 
  PP2Totals %>%
    subset(select = -Teacher) %>%
    arrange(-Grade) %>%
    knitr::kable(caption = AlanTitle, row.names = F) %>%
    row_spec(0, bold = T, color = "white", background = RDFZRed3)%>%
    kable_styling(full_width = FALSE, 
                  bootstrap_options = c("striped", "hover", "condensed"),
                  fixed_thead = TRUE) 

save_kable(AlanTable, paste(AlanTitle, ".png", sep = ""))

By-Question Analysis and Comments

In the sections below, we analyse the AS Psychology - Paper 2 Practice Test responses on a question by question basis. For each question, we:

  • Show the distribution of student grades obtained
  • Show the Cambridge Mark Scheme for the question
  • Discuss any general comments on student responses, including where students typically went wrong
  • Provide two exemplar responses
    • One exemplar response chosen from a student who gave a strong response to the question
    • One exemplar response provided by the Teacher (you should note that this exemplar response will be at a much higher level than you would be expected to provide in either AS or A2 Psychology)

Paper 1

Question 1-

QNumber <- 1

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[QNumber])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for explaining term
    • What the researcher plans to test/find/expects
  • 1 mark for linked example
    • e.g. Bandura was looking at whether children copied aggressive models

Comments

Everyone got the full marks here except the one of you who forgot an example….

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 2a-

QNumber <- 2

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[QNumber])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for definition
    • Every participant does all/both of the levels (of the IV)/conditions

Comments

Almost all of you got this

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 2b-

QNumber <- 3

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[QNumber])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for identifying advantage
    • Overcomes problems with individual differences
    • Requires fewer experimental participants
  • 1 mark for detailed link to core study
    • In Yamamoto et al., avoids problem of one chimp being more/less helpful than others
    • In Yamamoto et al., could conduct study with only 5 chimpanzees

Comments

If you got this wrong, you probably got it backwards

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 3a-

QNumber <- 4

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[QNumber])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for definition
    • Reliability is about consistency of measurement
    • TO be reliable, measures must measure the phenomenon in the same way each time
  • 1 mark for linked example
    • In Bandura et al. they used two raters and tested how reliable their ratings were
    • In Bandura et al they standardized the procedure

NO CAMBRIDGE! NO! BAD CAMBRIDGE!

Comments

If you got this wrong, I’m not surprised - Cambridge doesn’t even seem to know what reliability is
Reliability = if we measure the same thing again with the same person, will we get the same measurement?
We can make a measurement more reliable by making it relatively more objective
Or we can directly test how reliable it is
Reliability and replicability are not the same thing

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 3b-

QNumber <- 5

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[QNumber])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for identification of problem
    • Dement & Kleitman may not have interpreted all the dream reports in the same way
  • 2 mark for identification of problem + explanation
    • If schachter & Singer’s participants interpreted scales differently, they could have appeared more happy/angry than other participants

NO CAMBRIDGE! NO! BAD CAMBRIDGE!

Comments

If you got this wrong, I’m not surprised - Cambridge doesn’t even seem to know what reliability is Reliability is NOT about what DIFFERENT PARTICIPANTS WILL DO - that’s validity
Reliability would be if scales were written in a way that participants couldn’t interpret them sensibly so might answer differently at different times

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 4a-

QNumber <- 6

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[QNumber])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for brief explanation
    • Following the guideline of informed consent makes demand characteristics more likely
  • 2 marks for fully correct explanation
    • Demand characteristics are the features of the experimental situation that tell the participants what the requirements of the expeirment are and they are more likely if the study is ethical, so that participants have not been deceived

Comments

Pretty Good

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 4b-

QNumber <- 7

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[QNumber])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

Comments

Basically the same answer as above, and you all got it. Good

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 5a-

QNumber <- 8

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[QNumber])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for definition
    • A factor that is kept constant across different levels of the IV

Comments

Don’t confuse a manipulated variable and a controlled variable

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 5b-

QNumber <- 9

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[QNumber])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for Example
    • Duration of modelling behavior
    • Frustration episode used
    • Toys available

Comments

Many of you gave examples of Independent Variables…

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 5c-

QNumber <- 10

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[QNumber])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark examples
    • Duration of aggression- All participants had the same exposure to modelled behvior so were equally likely to be influenced
    • Frustration episode- All participants were likely to express aggresion by the time they were observed
  • 2 mark examples
    • In case exposure to aggression reduced the likelihood of expression (so it would be hard to measure imitation)
    • SO if the toys themselves rather than the imitation were the cause they would be equally lkely to aggress

Comments

Sorry Cambridge but… what?
The generic explanation for the advantage of controlling variables is that it avoids extraneous variables - i.e. it doesn’t introduce unnecessary noise/variation into the experiment where we aren’t certain whether the way something is done might have influenced the results.
You could link this specifically to a study - i.e. if the aggression induction procedure was different sometimes, some participants might have more/less aggression induced and this could affect their results

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 5d-

QNumber <- 11

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[QNumber])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for an example
    • Interval sampling
    • Recording of behaviors in clearly defined behavioral categories
    • Simple 5 point scale for initial rating of children

Comments

Most of you talked about inter-observer reliability - this helps the EXPERIMENT be reliable
The question asked about how INDIVIDUAL OBSERVERS were helped to be more reliable

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 6-

QNumber <- 12

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[QNumber])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark max for each definition

    • Subjective = personal perspective
    • Objective = independent/non-personal perspective
  • 1 mark for each comparison/explanation

  • 1 mark for each linked example

Comments

What you’re mostly missing here is the “differences between” part - you can’t just describe what each is - you need to give examples that illustrate the differences directly.

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 7a-

QNumber <- 13

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[QNumber])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for identification
    • How quickly they learn to respond to the light/swim to the end of the tank/work out that they need to swim to get food/time to the end of the tank

Comments

Cambridge tells us she measures the time it takes to get to the end of the tank, so that’s the DV.
Always operationalise, even when you aren’t asked to (it gets you into the right habit)

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 7b-

QNumber <- 14

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[1])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for definition
    • Colour of light (red or green)

Comments

Don’t give just the levels - you have to call the IV something

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 7c-

QNumber <- 15

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[1])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for identifying each

  • 1 mark for explanation

Comments

Pretty good. Just know these. Dont’ mix them up with each other

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 8-

QNumber <- 16

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[1])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for test-retest

  • Up to 3 marks for details

    • uses the same tests and scores them twice
    • e.g. by videotaping the chimpanzees behavior
    • then correlating his scores for the first and second viewing
    • and if the correlation is high he is reliable
    • e.g. by counting the number of times they help to see if it is the same

NO CAMBRIDGE! NO! BAD CAMBRIDGE!

Comments

Cambridge is not describing Test-Retest reliability
Test-Retest is about giving the same test… to the participants of the study
Cambridge is here describing intra-rater reliability
You could also do this by replicating the experiment - but this then wouldn’t be reliability…
You could use split-test reliability as well

At least don’t worry if you get the questions wrong that Cambridge has wrong. They will have to award you grades or curve hard.

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 9a-

QNumber <- 17

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[1])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for identification
    • Field Experiment

Comments

This is NOT A LABORATORY EXPERIMENT because: It takes place in the normal natural setting (actual exams taken under exam conditions) This is NOT A NATURAL EXPERIMENT because: Alan manipulated a variable - “He GAVE inced coffee to some students”

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 9b-

QNumber <- 18

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[1])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for IV
    • Administration of coffee/caffeine (yes/no)
  • 1 mark for DV
    • Scores of AS Psychology Paper 1 (percentage correct/points out of 60)

Comments

Operationalise (units!)
There is no suggestion of a continuous IV here (amount of coffee) - don’t make this more complicated than you need to
If Alan allowed students to drink however much coffee they want, this would no longer be a field experiment
Why would you dichotomize the DV? (e.g. High vs Low Scores)

KEEP IT SIMPLE
Make your IV dichotomous
Make your DV continuous
Don’t add extra IVs and DVs…

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 9c-

QNumber <- 19

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[1])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

Comments

Good enough
You should, however, operationalise your hypothesis

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 9d-

QNumber <- 20

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[1])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for null
    • There will be no difference in test scores between coffee drinkers/non drinkers
    • Any difference in test scores between the coffee drinkers and non-coffee drinkers is due to chance

Comments

You all got this - but you should be using the second example, which is closer to correct

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 9e-

QNumber <- 21

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[1])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for correct kind of graph (consistent with description in previous questions)
  • 1 mark for labeling axes (including units)
  • 1 mark for displaying results consistent with hypotheses

Comments

This should be a bar graph
Bar graphs are used when our X axis is categorical/discrete
This is why there are spaces between the bars
IVs will almost always be categorical/discrete (and when we are keeping it simple, dichotomous)

A scatterplot is used when we have two numerical variables, and ideally when those variables are continuous (in fact you need a special type of correlation called polyserial correlation if your variable(s) are discrete)
Do you find that confusing? Then don’t do it in your design questions!

A histogram is useful when we want to look at the distributions of things. We can plot distributions of two levels of an IV next to each other, but this is very rarely done

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 9f-

QNumber <- 22

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[1])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for identification as a confounding variable
  • 1 mark for generic explanation
  • 1 mark for link to specific study

Comments

A confounding variable is when an extraneous variable affects DV performance on some levels of the IV more than others
In this case, the IV is whether participants were given coffee
But only a subset of participants were given coffee - those students in Alan’s class (and not even all of them)
So we might find results where “coffee drinkers” perform significantly better (or worse), but this may instead be because they all have the same teacher

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 9g-

QNumber <- 23

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[1])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

  • 1 mark for identification as a participant variable
  • 1 mark for generic explanation
  • 1 mark for link to specific study

Comments

Most of you got this. Good work

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 10a-

QNumber <- 24

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[1])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

Cambridge asked this as a question about Unstructured Interview, which is even worse
They then didn’t release a Mark Scheme… because they realized the question sucks?

Cambridge Generic Design Scheme

Cambridge Generic Design Scheme

Comments

This is a tough question
But you don’t need to test anything here - this isn’t asking you to do an experiment
Keep this in mind if you are given an interview question

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required

Question 10b-

QNumber <- 25

FocalData <- 
  PP2Grades %>%
    subset(Qnum == QT1$Number[QNumber]) %>%
    mutate(GradeF = factor(Grade, levels = c(0:Value[1])))
    
FocalTitle <- paste(Class, Eval, "Paper 1 - ", sep = " - ")
FocalSubTitle <- paste("Question ", QT1$Number[QNumber], " - ", QT1$Question[QNumber], " [", QT1$Value[QNumber], " marks]", sep = "")

ggplot(data=FocalData, aes(x=GradeF)) +
  geom_bar(stat = "count", position = pd, width = 0.8, fill= RDFZRed3) +
  scale_x_discrete(drop = FALSE) +
  labs(x="Question Score", y="Count") +
  theme_alan() +
  ggtitle(wrapper(FocalTitle, width = 50), 
          subtitle = wrapper(FocalSubTitle, width = 100))

Cambridge Mark Scheme

Comments

Everyone got 4 marks here. Great

Exemplar Response (Student)

None required

Exemplar Response (Teacher)

None required