The AS Psychology End of Term exam consisted of 24 questions covering Research Methods, The Biological Approach, The Cognitive Approach, and the first two studies of The Learning Approach, worth a total of 80 points. The questions and their point values can be seen in the table below:
##KNITTED TABLE OF QUESTIONS AND POINT VALUES
QuestionsTable <-
EoTGrades %>%
head(24) %>%
subset(select = c(Qnum, Question, Value)) %>%
setNames(c("Number", "Question", "Value")) %>%
knitr::kable(caption = "AS Psychology- Questions and Values", row.names = F) %>%
kable_styling(full_width = F)
save_kable(QuestionsTable, "QuestionsTable.png")
QuestionsTable
| Number | Question | Value |
|---|---|---|
| 1 | Describe why psychologists operationally define the independent and dependent variable in experiments, using any examples | 6 |
| 2 | Identify the technique that was used to measure brain activititgy (in Canli et al. (brain scans and emotions)) | 1 |
| 3 | Explain one reason for using this technique to monitor the brain | 2 |
| 4 | Identify the sample technique used in Canli et al. (brain scans and emotions) | 1 |
| 5 | Explain one weakness of the sampling technique used in Canli et al. (brain scans and emotions) | 2 |
| 6 | Identify one feature of the sample from Canli et al. (brain scans and emotions), other than gender | 1 |
| 7 | Outline why only females were used as participants in Canli et al. (brain scans and emotions) | 2 |
| 8 | Dea and Echo are working at a sleep laboratory and have read about external stimuli becoming part of people’s dreams. Their aim is to test whether noises can more easily become part of a dream than smells. Describe how Dea and Echo could conduct a laboratory experiment to test their aim. | 10 |
| 9 | Identify one weakness/limitation of the procedure that you have described in your answer above and suggest how your study mightt be done differently to overcome the problem | 4 |
| 10 | Outline one assumption of the biological approach, including an example from Schachter & Singer (two factors in emotion) | 2 |
| 11 | Describe two independent variables from the study by Schachter & Singer (two factors in emotion) | 4 |
| 12 | Identify two behaviors from participants in the euphoria condition that would be coded as “joins in activity” | 2 |
| 13 | Identify how participants were allocated into conditions in this study | 1 |
| 14 | Explain one benefit of this method of allocation | 2 |
| 15 | Outline the nature versus nurture debate in psychology | 2 |
| 16 | Cecilia believes that the Baron-Cohen et al study supports the nature side of the debate, but Selena believes it supports the nurture side of the debate. Outline why you think either Cecilia or Selena is correct, using evidence from the study | 4 |
| 17 | Laney et al. (false memory) tested the memory of their participants by asking half about place names first, and half about party attendee names first: Identify the term for this method of deciding the order of conditions | 1 |
| 18 | Explain why this method is important for repeated-measures designs | 2 |
| 19 | Explain one similarity and one difference between the study by Andrade (doodling) and the study by Laney et al. (false memory) | 8 |
| 20 | Describe the psychology being investigated in the study by Bandura et al. (aggression) | 4 |
| 21 | Evaluate the study by Bandura et al. (aggression) in terms of two strengths and two weaknesses. At least one of yoru points must be about mundane realism | 10 |
| 22 | Outline how the subjective rating of distress was measured in Saavedra & Silverman (button phobia) | 2 |
| 23 | Describe how the boy’s distress rating changed over the first three sessions in response to imagining hundreds of buttons falling on his body | 2 |
| 24 | Two friends, Angela and Zoe, are discussing the ethics of the study Saavedra and Silverman (button phobia). Angela thinks the study is ethical but Zoe thinks it is unethical. Explain one reason why Angela is correct and one reason why Zoe is correct, using evidence from this study. | 6 |
Generally, the first thing we want to look at in one of these analyses is the overall distribution of grades, which we can see in the histogram below
#Single Histogram
#Histograms
ggplot(data=EoTTotals, aes(x=Grade)) +
geom_histogram(aes(y=..density..), alpha = 0.6, position = "identity") +
labs(x="Grade (Percentage)", y="Density") +
stat_function(fun=dnorm, args = list(mean=mean(EoTTotals$Grade), sd=sd(EoTTotals$Grade)),
color="black", size = 1.4) +
scale_fill_manual(values= c("darkred", "darkgrey")) +
scale_x_continuous(limits = c(0,100)) +
theme_alan() +
ggtitle("Histogram of Grades in AS Psychology End of Term Exam")
ggsave(here("EoT Histogram.png"), plot = last_plot(), device = NULL, path = NULL,
width = 8, height = 4, units = c("in", "cm", "mm"),
dpi = 600)
The first thing we can note is a normal distribution (Shapiro-Wilk Normality test: W= 0.96, p= 0.423). Ultimately in most methods of assessment a normal distribution is desirable.
Overall performance was around what we’d expect, with an average of 74.27% and a standard deviation of 14.9 (Range = 33.8% to 97.5%).
Lets see if we can observe any of those things by looking at the test on a question-by-question basis, which you can see in the bar chart below (Recall that you can tell this is a bar chart and not a histogram because the dependent variable (grades) is on the y axis, and because there are spaces between the levels of the factor (question number) on the X axis - which means they represent independent data points).
EoTSummary <- summarySE(EoTGrades, measurevar = "Grade", groupvars = c("Teacher", "Qnum"))
ggplot(data=EoTSummary, aes(x=Qnum, y= Grade, fill = Teacher)) +
geom_bar(stat= "summary", position = pd, width = 0.8) +
geom_errorbar(aes(ymin= Grade - se, ymax= Grade + se), width= 0.2, size = 1, position= pd)+
#annotate("text", x=11.5, y=7.2, label = "Average Grades", hjust = 0, fontface = "bold") +
#annotate("text", x=11.5, y=6.7, label = "Alan's Class = 52.3%", hjust = 0, color = "darkred") +
#annotate("text", x=11.5, y=6.2, label = "June's Class = 67.2%", hjust = 0, color = "darkgrey") +
labs(x="Question", y="Average Grade (Value)") +
theme_alan() +
#scale_y_continuous(limits = c(0,3), breaks=c(0:3)) +
scale_x_continuous(breaks = c(1:24)) +
scale_color_manual(values= c("darkred", "darkgrey")) +
scale_fill_manual(values= c("darkred", "darkgrey")) +
ggtitle("Bar Plot of Grades on AS Psychology End of Term Exam")
ggsave(here("EoTGrades.png"), plot = last_plot(), device = NULL, path = NULL,
width = 8, height = 4, units = c("in", "cm", "mm"),
dpi = 600)
This is one way to visualize the results, but without discussion and reference to the specific questions, it isn’t very valuable. What it does reveal is that performance between the two classes was similar on all questions.
Most valuably we can look at overall performance differences between the two classes, then perhaps return to any performance differences on individual questions that seem notable. You can see the distribution of performance between the two classes in the histogram below:
#Histograms by Class
JuneQ2Grades <- subset(EoTTotals, Teacher == "June")
AlanQ2Grades <- subset(EoTTotals, Teacher == "Alan")
ggplot(data=EoTTotals, aes(x=Grade, fill = Teacher)) +
geom_histogram(aes(y=..density..), alpha = 0.6, position = "identity") +
labs(x="Grade (Percentage)", y="Density") +
# geom_text(x= 180, y = .075, label = str_wrap(testreport, 20)) +
stat_function(fun=dnorm, args = list(mean=mean(JuneQ2Grades$Grade), sd=sd(JuneQ2Grades$Grade)), color="darkgrey", size = 1.2) +
stat_function(fun=dnorm, args = list(mean=mean(AlanQ2Grades$Grade), sd=sd(AlanQ2Grades$Grade)), color="darkred", size = 1.2) +
scale_fill_manual(values= c("darkred", "darkgrey")) +
scale_x_continuous(limits = c(0,100)) +
theme_alan() +
ggtitle("Histogram of Grades in AS Psychology End of Term Exam - Comparison of Classes")
ggsave(here("EoT Class Histograms.png"), plot = last_plot(), device = NULL, path = NULL,
width = 8, height = 4, units = c("in", "cm", "mm"),
dpi = 600)
testcomp <- t.test(JuneQ2Grades$Grade, AlanQ2Grades$Grade, warning = FALSE, message = FALSE)
ClassGrades
| Teacher | Average Grade |
|---|---|
| Alan | 72.7 |
| June | 76.0 |
Not much interesting going on in the histogram - the classes aren’t significantly different from each other.
Looking at differences between classes can provide us with one metric of performance, but ultimately as teachers we also want to be able to identify problem areas for our students, both in terms of content and in terms of types of questions that students are struggling with. The by-question performance was shown above previously, but lets take a look at it below again:
ggplot(data=EoTSummary, aes(x=Qnum, y= Grade, fill = Teacher)) +
geom_bar(stat= "summary", position = pd, width = 0.8) +
geom_errorbar(aes(ymin= Grade - se, ymax= Grade + se), width= 0.2, size = 1, position= pd)+
#annotate("text", x=11.5, y=7.2, label = "Average Grades", hjust = 0, fontface = "bold") +
#annotate("text", x=11.5, y=6.7, label = "Alan's Class = 52.3%", hjust = 0, color = "darkred") +
#annotate("text", x=11.5, y=6.2, label = "June's Class = 67.2%", hjust = 0, color = "darkgrey") +
labs(x="Question", y="Average Grade (Value)") +
theme_alan() +
#scale_y_continuous(limits = c(0,3), breaks=c(0:3)) +
scale_color_manual(values= c("darkred", "darkgrey")) +
scale_fill_manual(values= c("darkred", "darkgrey")) +
ggtitle("Bar Plot of Grades on AS Psychology Quiz 2")
So again that distribution doesn’t tell us very much - overall performance was good, performance between the classes was similar, etc. Lets look a bit more closely at the questions. In the interest of ease we’ll do this a few questions at a time
EoTGrades$GradeF <- factor(EoTGrades$Grade)
EoTGroup1 <- subset(EoTGrades, Qnum == "1"|Qnum == "2"|Qnum == "3"|Qnum == "4"| Qnum == "5"| Qnum == "6")
EoTGroup2 <- subset(EoTGrades, Qnum == "7"|Qnum == "8"|Qnum == "9"|Qnum == "10"| Qnum == "11"| Qnum == "12")
EoTGroup3 <- subset(EoTGrades, Qnum == "13"|Qnum == "14"|Qnum == "15"|Qnum == "16"| Qnum == "17"| Qnum == "18")
EoTGroup4 <- subset(EoTGrades, Qnum == "19"|Qnum == "20"|Qnum == "21"|Qnum == "22"| Qnum == "23"| Qnum == "24")
ggplot(data=EoTGroup1, aes(x=GradeF)) +
geom_histogram(stat = "count", fill = "darkred") +
labs(x="Score", y="Count") +
theme_alan() +
facet_wrap(~Qnum, scales = "free_x", ncol = 3)+
theme(text = element_text(size=24)) +
ggtitle("AS Psychology EoT - By Question Histograms I")
ggplot(data=EoTGroup2, aes(x=GradeF)) +
geom_histogram(stat = "count", fill = "darkred") +
labs(x="Score", y="Count") +
theme_alan() +
facet_wrap(~Qnum, scales = "free_x", ncol = 3)+
theme(text = element_text(size=24)) +
ggtitle("AS Psychology EoT - By Question Histograms II")
ggplot(data=EoTGroup3, aes(x=GradeF)) +
geom_histogram(stat = "count", fill = "darkred") +
labs(x="Score", y="Count") +
theme_alan() +
facet_wrap(~Qnum, scales = "free_x", ncol = 3)+
theme(text = element_text(size=24)) +
ggtitle("AS Psychology EoT - By Question Histograms III")
ggplot(data=EoTGroup4, aes(x=GradeF)) +
geom_histogram(stat = "count", fill = "darkred") +
labs(x="Score", y="Count") +
theme_alan() +
facet_wrap(~Qnum, scales = "free_x", ncol = 3)+
theme(text = element_text(size=24)) +
ggtitle("AS Psychology EoT - By Question Histograms IV")
Because this was the first time students dealt with design questions, we decided to curve the overall score on the test by 5% for each student. This is also in line with the fact that Cambridge always curves their exams. When doing this I realized we graded the test out of 80, even though there were 81 marks. So we retained this score out of 80 and simply added 3.75% to each student’s grade, then rounded as required.
EoTTotals %<>%
mutate(`Curved Grade` = round(Grade + 3.75,1) ) %>%
mutate(`Curved Grade` = ifelse(`Curved Grade` > 100, 100, `Curved Grade`))
EoTTableKnit <-
EoTTotals %>%
subset(select = -Anon) %>%
knitr::kable(caption = "AS Psychology- EoT Grades", "html", row.names = F) %>%
kable_styling(full_width = F)
save_kable(EoTTableKnit, "AS Psychology - EoT Grades.png")
EoTTableKnitAnon <-
EoTTotals %>%
subset(select = -c(Teacher, Student)) %>%
knitr::kable(caption = "AS Psychology- EoT Table", "html", row.names = F) %>%
kable_styling(full_width = F)
EoTTableKnitAnon
| Anon | sum | Grade | Curved Grade |
|---|---|---|---|
| E13 | 78 | 97.5 | 100.0 |
| E26 | 76 | 95.0 | 98.8 |
| E8 | 75 | 93.8 | 97.5 |
| E24 | 73 | 91.2 | 95.0 |
| E16 | 71 | 88.8 | 92.5 |
| E22 | 70 | 87.5 | 91.2 |
| E7 | 69 | 86.2 | 90.0 |
| E1 | 68 | 85.0 | 88.8 |
| E5 | 67 | 83.8 | 87.5 |
| E9 | 67 | 83.8 | 87.5 |
| E27 | 63 | 78.8 | 82.5 |
| E6 | 62 | 77.5 | 81.2 |
| E14 | 62 | 77.5 | 81.2 |
| E23 | 62 | 77.5 | 81.2 |
| E10 | 57 | 71.2 | 75.0 |
| E17 | 57 | 71.2 | 75.0 |
| E18 | 56 | 70.0 | 73.8 |
| E12 | 54 | 67.5 | 71.2 |
| E4 | 54 | 67.5 | 71.2 |
| E2 | 52 | 65.0 | 68.8 |
| E25 | 51 | 63.7 | 67.5 |
| E21 | 49 | 61.3 | 65.0 |
| E20 | 49 | 61.3 | 65.0 |
| E15 | 47 | 58.8 | 62.5 |
| E11 | 46 | 57.5 | 61.2 |
| E3 | 42 | 52.5 | 56.2 |
| E19 | 27 | 33.8 | 37.5 |
JuneTable <- subset(EoTTotals, Teacher == "June")
AlanTable <- subset(EoTTotals, Teacher == "Alan")
#Alan's Students
AlanTableKnit <-
AlanTable %>%
subset(select = -c(Teacher, Anon)) %>%
knitr::kable(caption = "AS Psychology- EoT Grades - Alan's Class", "html", row.names = F) %>%
kable_styling(full_width = F)
save_kable(AlanTableKnit, "AS Psychology - EoT Grades- Alan.png")
#Alan Anon
AlanTableAnon <-
AlanTable %>%
subset(select = -c(Teacher, Student)) %>%
knitr::kable(caption = "AS Psychology- EoT Grades - Alan's Class", "html", row.names = F) %>%
kable_styling(full_width = F)
AlanTableAnon
| Anon | sum | Grade | Curved Grade |
|---|---|---|---|
| E13 | 78 | 97.5 | 100.0 |
| E24 | 73 | 91.2 | 95.0 |
| E22 | 70 | 87.5 | 91.2 |
| E1 | 68 | 85.0 | 88.8 |
| E6 | 62 | 77.5 | 81.2 |
| E14 | 62 | 77.5 | 81.2 |
| E10 | 57 | 71.2 | 75.0 |
| E12 | 54 | 67.5 | 71.2 |
| E2 | 52 | 65.0 | 68.8 |
| E25 | 51 | 63.7 | 67.5 |
| E21 | 49 | 61.3 | 65.0 |
| E20 | 49 | 61.3 | 65.0 |
| E15 | 47 | 58.8 | 62.5 |
| E3 | 42 | 52.5 | 56.2 |
#June's Students
JuneTableKnit <-
JuneTable %>%
subset(select = -c(Teacher, Anon)) %>%
knitr::kable(caption = "AS Psychology- EoT Grades - June's Class", "html", row.names = F) %>%
kable_styling(full_width = F)
save_kable(JuneTableKnit, "AS Psychology - EoT Grades- June.png")
#June Anon
JuneTableAnon <-
JuneTable %>%
subset(select = -c(Teacher, Student)) %>%
knitr::kable(caption = "AS Psychology- EoT Grades - June's Class", "html", row.names = F) %>%
kable_styling(full_width = F)
JuneTableAnon
| Anon | sum | Grade | Curved Grade |
|---|---|---|---|
| E26 | 76 | 95.0 | 98.8 |
| E8 | 75 | 93.8 | 97.5 |
| E16 | 71 | 88.8 | 92.5 |
| E7 | 69 | 86.2 | 90.0 |
| E5 | 67 | 83.8 | 87.5 |
| E9 | 67 | 83.8 | 87.5 |
| E27 | 63 | 78.8 | 82.5 |
| E23 | 62 | 77.5 | 81.2 |
| E17 | 57 | 71.2 | 75.0 |
| E18 | 56 | 70.0 | 73.8 |
| E4 | 54 | 67.5 | 71.2 |
| E11 | 46 | 57.5 | 61.2 |
| E19 | 27 | 33.8 | 37.5 |
If you have any questions or comments about student performance in the class, please don’t hesitate to get in touch via email to Alan Nielsen or June Zhu.
This report was generated using R Markdown.