1
$\begingroup$

There are 1000 students and 100 teachers. Each teacher is given the answer scripts of randomly selected 100 students. So in total 10,000 answer scripts are judged.

Now this is sort of panel data, but lots of missingness. If i want to find which teachers are lenient in grading and which are stricter, what technique can i use.

Imputation shall not work as missingness is around 90%.

The basic way to work this - that comes to me seems to be -

  • Define a data structure for assessment:id, teacher id, student id, marks
  • Group by students and for each group rank the teachers based on marks
  • Compute normalized average ranks for each teachers, normalisation required to accommodate different numbers of assessments done by different teachers
  • Then rank the teachers based on this averages or do clustering based on this average ranks to split them in to strict and lenient

How to estimate standard error? What is underlying probability distribution?

Is there a standard methodology to handle such a problem? what if instead of marks, we have categorical variables (grades) like A,B,C,D.

$\endgroup$

1 Answer 1

2
+50
$\begingroup$

Assuming, there's no problematic bias in how teachers are assigned to students (ideally, you'd have [stratified] random allocation), one standard approach to this would be to fit a random effects model. Let's say that the score is a number on an ordinal scale (i.e. a finite number of discrete values e.g. A, B, C, D, E, F or 1,2,3,4,5,6 or 0,1,2,3,...,15 or whatever various countries use). You could then define an ordinal logistic regression model with a random teacher effect (measures whether teachers tend to give better or lower grades) and a random student effect (measures how good the student is).

E.g. using R and the brms package, an analysis could look like this:

library(tidyverse)
library(brms)
library(tidybayes)

example = tibble(teacher= c(1,1,1,1,1, 2,2,2,2,2, 3,3,3,3,3,3, 4,4,4,4,4,4),
                 student= c(1,2,3,4,6, 2,3,4,5,7, 1,3,4,5,6,7, 1,2,3,5,6,7),
                 grade  = c(1,2,3,5,5, 2,3,4,5,6, 1,3,3,4,5,6, 1,1,1,2,4,4)) %>%
  mutate(grade = ordered(grade, levels=1:6))

# Fit brms ordinal logistic reg. model with default priors (for other options, see below)
brmfit1 = brm(data = example, 
              formula = grade ~ (1 | teacher ) + (1 | student),
              family = cumulative(link = "logit", threshold = "flexible"))

# Look at the random effects (can of course also get full MCMC samples)
ranef(brmfit1)

# Plot model estimates of difficulty of each case
brmfit1 %>%
  spread_draws(r_teacher[teacher, Intercept]) %>%
  ggplot(aes(y = teacher, x = r_teacher)) +
  geom_halfeyeh()

enter image description here

The nice thing about taking this type of Bayesian approach is that getting estimates and credible intervals for the random teacher effects is incredibly straightforward.

This is described e.g. in the brms package documentation, as well as in a publication by its author. See also (shows some options for priors) this post on the Stan discourse page.

You can in fact also get a reasonable imputation for the teacher-student pairs you do not have data for, e.g. like this:

missing_combinations = expand_grid(teacher=1:4, student=1:7) %>%
  left_join(example, by=c("teacher", "student")) %>%
  filter(is.na(grade)) %>%
  dplyr::select(teacher, student)

# Produces predictions: 
#  rows = a multiple imputation, 
#  columns = a record for which we get a prediction
preds1 = predict(brmfit1,
                 newdata = missing_combinations,
                 summary=FALSE)

preds1 %>%
  as_tibble() %>%
  pivot_longer(cols=starts_with("V"),
               names_to="row", values_to="imputed") %>%
  mutate(rowno = as.numeric(str_extract(row, "[0-9]+$"))) %>%
  left_join(missing_combinations %>% mutate(rowno=1:n()), by="rowno") %>%
  ggplot(aes(x=imputed)) +
  geom_bar() +
  facet_wrap(~teacher + student)

enter image description here

However, note that while different teacher can have different random effects, i.e. one teacher gives consistently higher or lower grades, the “distance” on the logit-scale between grades is the same across teachers. I.e. you are making a proportional odds assumption. If you want to relax assumptions like that one, look into item response theory (IRT), e.g. you could modify an IRT model to say that somehow the IRT model parameters are exchangeable between teachers.

Note: R package versions for some of the key packages that I used in R-3.6.1 for the example were tidyverse_1.2.1, tidybayes_1.1.0, brms_2.10.0, rstan_2.19.2 and Rcpp_1.0.3 (there's now R version 4 and especially tidybayes has been updated a lot since that version).

$\endgroup$
5
  • $\begingroup$ When you say - "a random student effect (measures how good the student is)" - its the same answer script that is being graded by different teachers - So should it be a random student effect? $\endgroup$
    – shoonya
    Commented Jul 4, 2020 at 19:02
  • $\begingroup$ Also since the missingness is around 90%, imputation of values shall result in creation of artificial data. Thus any results based on this "imputed" data may be a representation of the imputation methodology. $\endgroup$
    – shoonya
    Commented Jul 4, 2020 at 19:08
  • $\begingroup$ Some suggestion - We have what is essentially called a "conjoint measurement problem", because we have two latent variables, how strict the teachers are and how well the students performed, and you can't (with this sort of data) measure either one independently, but only "conjointly". This fits into "item response theory" (e.g., some teachers might be stricter for certain sub-groups of students, called "differential item functioning"). Could you elaborate for that as well. Thanks $\endgroup$
    – shoonya
    Commented Jul 9, 2020 at 4:24
  • $\begingroup$ Firstly, random vs. fixed effect: the former is more efficient (fewer parameters), if the assumed distribution of effects across students is a good approx. of the real one & students are a-priori exchangeable (no information that we expect one to perform better than another). Secondly, with missingness any result will be driven by the model, whether you impute or not (the imputation just makes it more obvious what is going on). Sometimes, people assume that really imputing is somehow different from using a model that implicitly does the same thing as imputing in some way, but there isn't. $\endgroup$
    – Björn
    Commented Jul 9, 2020 at 5:58
  • $\begingroup$ Thirdly, yes, the terms conjoint analysis and item response theory are very relevant here. IRT was what the second from last paragraph in the answer was about. $\endgroup$
    – Björn
    Commented Jul 9, 2020 at 5:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.