I have some data from an experiment that has 7 variables that have two levels to generate the conditions for the experiment. Consequently there are 128 (2^7) different combinations of variables. I've seen some data presented in lattice style panel plots that look good, but I've only come across ones that do this for 2 different variables. However, I was wondering if anyone had any ideas for presenting data where there are more than 2 variables (i.e. a contingency table doesn't work!)

I've provided some example data to explain what my data looks like if it wasn't clear:

cond1 <- c(1,2)
cond2 <- c(1,2)
cond3 <- c(1,2)
cond4 <- c(1,2)
cond5 <- c(1,2)
cond6 <- c(1,2)
cond7 <- c(1,2)
conditions <- expand.grid(cond1,cond2,cond3,cond4,cond5,cond6,cond7)
conditions <- sapply(conditions, rep.int, times=10)
data <- runif (nrow(conditions))
df1 <- cbind(conditions, data)

You can still use a lattice by adding nested labels. If your software doesn't support nesting, you can make synthetic variables to simulate the nesting. For example, I think that would be cond123 = paste(cond1, cond2, cond3) in R.

The result can be a table of numbers or a graphical representation such as a heat map: enter image description here

This data is not completely random to show that some patterns can be noticed from this kind of display. I'll mark the formula as a spoiler in case you want to see what you can see from the images without knowing.

data value = random uniform(0, 1) + cond3 + cond4 + cond2 * cond5

If you're looking for particular patterns, you can use a graphical representation that will make those patterns more evident (at the expense of other patterns). For instance, a grid of one plot per variable will highlight any 1-dimensional effects.

enter image description here

And a grid of contour plots will highlight 2-dimensional effects. enter image description here Diagonal contours suggest some kind of combined effect.

| cite | improve this answer | |
  • $\begingroup$ Presumably the spoiler code is SAS code. $\endgroup$ – Nick Cox Feb 25 '18 at 16:23
  • 1
    $\begingroup$ Yes, the function name is from the SAS JMP scripting language -- I was hoping it was be clear enough to serve as pseudo-code. And the graphs are made with JMP's Graph Builder feature. $\endgroup$ – xan Feb 25 '18 at 17:18
  • $\begingroup$ great, really nice plots! $\endgroup$ – unknown Feb 25 '18 at 23:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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