# Can I treat the mean of a set of z-scores as a z-score?

I have a set of z-scores corresponding to different tests taken by the same subjects. Can i take the average of the z-scores for each subject and compare the average z-scores as it was actual z-scores? (i.e. can I calculate a percentile for each subject based on the average of the set of z-scores?)

EDIT:

My goal is to calculate percentiles for a subject based on a set of z-scores for that subject. So far my approach has been to take the average of the z-scores of a subject, and then treat that average as a z-score and calculate the percentile based on that. I wonder if there is any problem with that approach?

• Could you tell us more on your actual problem (what is your data, what are you trying to achieve)? In general, after converting to z-scores your samples have the same mean (=0) and standartd deviation (=1), so they are on the same scale, but it is hard to comment since your question is very vague.
– Tim
Nov 8, 2017 at 10:18
• Thanks! I tried to be as concise as possible, but maybe that made it vague. I edited the question now. Is it clearer? Nov 8, 2017 at 15:21
• What is your data? Why do you want to use z-scores at all?
– Tim
Nov 8, 2017 at 15:24
• My input data consists of z-scores from different tests testing the same latent variable. I have no further control over the data at this point. I want to divide the subjects in groups based on a normal distribution of the population, where the group is determined by different percentile levels. The groups will make more sense to practitioners looking at the data. So I want to present a group for each subject based on their aggregated z-scores. And the group is based on percentile-levels. Nov 8, 2017 at 15:31
• I would NOT make any statistical inferences based off of doing this, but for rhetorical value, you could do a median split and show mean levels for “low” and “high”? Nov 9, 2017 at 14:25

Maybe someone else can explain the math behind it, but consider this quick demonstration: I generate five vectors, each 100 numbers long. Each of these vectors is on a different scale, so I standardize them (i.e., create z-scored variables). That is, the mean is zero and the standard deviation is 1 for each of these five latent construct variables:

set.seed(1839)

## create five different z-score variables that represent latent constructs
data <- data.frame(
latent_construct_1 = scale(rnorm(100, 10, 4)),
latent_construct_2 = scale(rnorm(100, 3, 18)),
latent_construct_3 = scale(rnorm(100, -5, 7)),
latent_construct_4 = scale(rnorm(100, 0, 8)),
latent_construct_5 = scale(rnorm(100, 20, 20))
)

Let's check to make sure they are actually z-scores:

> sapply(data, mean)
latent_construct_1 latent_construct_2 latent_construct_3 latent_construct_4 latent_construct_5
-2.203951e-16       1.634435e-17       1.400464e-17      -1.449145e-17       7.852226e-17
>
> sapply(data, sd)
latent_construct_1 latent_construct_2 latent_construct_3 latent_construct_4 latent_construct_5
1                  1                  1                  1                  1

So, now let's say we average all five of these together:

## make a mean of all of these latent constructs
data$mean_latent_construct <- rowMeans(data) Is this new variable a z-score? We can check to see if the mean is zero and standard deviation is one: > ## is the mean zero? > mean(data$mean_latent_construct)
[1] -2.436148e-17
>
> ## is the standard deviation one?
> sd(data$mean_latent_construct) [1] 0.4599126 The variable is not a z-score, because the standard deviation is not one. However, we could now z-score this mean variable. Let's do that and compare the distributions: ## z-score the mean latent construct data$mean_latent_construct_z <- scale(data$mean_latent_construct) ## compare distributions library(tidyverse) data <- data %>% select(mean_latent_construct, mean_latent_construct_z) %>% gather(variable, value) ggplot(data, aes(x = value, fill = variable)) + geom_density(alpha = .7) + theme_light() The z-scored aggregate variable of z-scores looks a lot different from the aggregate variable of z-scores. In short: No, a mean of z-scored variables is not a z-score itself. • Thank you! I will ask you the same question as I asked AdamO below. Looking at those two distributions in your plot, calculating a percentile for each subject in both of those should yield the exact same result right? So even if it is not formally a z-score, the percentile value might be the same? Nov 9, 2017 at 12:24 • If you really want a percentile, you could just rank people from low to high, and then take someone’s rank and divide it by the number of people you have? Or you could just z-score what you have and get percentiles from z-scores. Nov 9, 2017 at 14:23 • Perfect! My customers will understand percentiles, that's why I want to present the results in percentiles. Nov 10, 2017 at 9:13 Nope. The central limit theorem should provide some insight. Or you can appeal to the variance of a sum. If$X_1, X_2, \ldots, X_p$comprise your$p\$ independent z-scores to average together, (mean 0, variance 1), then the mean has variance:

$$\mbox{var} (\bar{X}) = \frac{1}{p^2} \sum_{i=1}^p \mbox{var}(X_i) = 1/p$$

This quantity could be scaled, however, since the sum of normals is normal, and this would meet the criteria of a Z-score.

• Thanks! So the distribution of the mean would be similar to z-scores in all regards except the scale? In that case, as it is still normal and the scale shouldn't affect the percentiles, it should be possible to calculate a percentile for each subject anyway? Nov 9, 2017 at 12:22
• @Frank5000 Yes, if you center/scale the grand mean, you can apply percentiles or rank based comparisons. Inspect a QQ-plot, however, to verify the normality, however. Measurement invariance is a big deal. Nov 9, 2017 at 16:40
• Alright! When you say measurement invariance is a big deal, what do you mean in this context? Nov 10, 2017 at 9:11
• @Frank5000 I'll leave it to you to do more thorough investigation. Measurement invariance is a whole field of methods. When you create a new scale, the properties of that scale should be investigated for measurement invariance. Nov 10, 2017 at 18:09
• @Frank5000 have a look here: stats.stackexchange.com/questions/348192/… Apr 24, 2019 at 22:25