I am currently designing an experiment frequently referred to as a “transmission-chain” experiment.
In this design, an initial group of people reads a text. They then are asked to transmit the information in the text to another unknown individual.
A next wave then reads these generated texts and is asked to transmit the information to another individual.
The entire process is repeated 4 times. An entire sequence of information transmissions is referred to as a “chain”.
Of course, the information quickly decays across the chain. To test hypotheses, researchers manipulate the initial texts and then observe the different rates of information decay in the chains.
For the most part, this is done through multiple t-tests.
I am wondering, if some more information about the design could improve the precision of any analysis here, since it is very expensive to generate good data for these experiments.
One important feature is that information from one position in the chain to the next position can not increase by definition, it can only decrease.
I generated some fake data that follows a negative binomial process where a count of transmitted information has to decrease.
The R code is not great, but it creates reasonable data.
library(tidyverse)
mu.t <- c(3,2,1.5,1) # Means of treatment chains
mu.c <- c(4,3,2.5,2) # Means of control chains
chain.sim <- function(vector, N) {
all.list <- list()
all.list[[1]] <- MASS::rnegbin(n = N, mu = vector[1], theta = 1000)
for (i in 2:length(vector)) {
is_smaller <- FALSE
while(!is_smaller){
Y <- MASS::rnegbin(n = N, mu = vector[i], theta = 1000)
if (all(all.list[[i-1]] >= Y)) is_smaller <- TRUE
}
all.list[[i]] <- Y
}
all.list
}
sims.t <- replicate(50, chain.sim(mu.t, 1))
sims.c <- replicate(50, chain.sim(mu.c, 1))
sims.t <- data.frame(sims.t) %>%
rowid_to_column("position") %>%
mutate(treatment="Y")
sims.c <- data.frame(sims.c) %>%
rowid_to_column("position")%>%
mutate(treatment="N")
sims <- bind_rows(sims.t, sims.c) %>%
pivot_longer(!position& !treatment, names_to = "name", values_to = "outcome") %>%
unite("chain", name:treatment, remove = FALSE) %>%
dplyr::select(-name)
sims$outcome <- as.numeric(sims$outcome)
sims$position <- as.factor(sims$position)
ggplot(sims, aes(x=position, y=outcome, fill=treatment)) + geom_boxplot()
A first simple model I thought was reasonable is a negative binomial GLM regressing an interaction of treatment and position in the chain on the outcome (eventually transforming it into a hierarchical model).
But my main question is: Is there a possibility to model the inevitable decrease of the outcome variable inside each individual chain of responses?
I am not sure how to do this through priors.
Thank you very much for all help!