Can you perform an ANOVA on r-values (correlation values)? I am doing neuroimaging research yielding what is essentially a correlational analysis wherein my output is a brain's-worth of r-values (so like 15000 voxels worth of r-values). In this particular study, I had 3 groups and I want to take these brains worth of r-values and see if they differ across the 3 groups. In normal situations in neuroimaging when you have beta weights you just do a 3-way ANOVA on the beta weights to get an F-value (or a t-value for more specific comparisons) so my default was just to assume I could do the same thing here - a 3 way ANOVA with group as the fixed factor. However I realized I'm not sure performing an ANOVA on r-values is appropriate. Can someone speak to this? If it IS inappropriate, can someone recommend how I could go about testing for differences using these values?
Follow-up question: I also have Z-scored brain maps and ultimately I'd like for the comparisons to be made using the Z-scores. I suppose if using an ANOVA on r-values is inappropriate then using one on the Z'd r-values is also inappropriate but if using an ANOVA is okay with correlation values, I'd assume it's okay with Z'd correlation values as well?
I guess my general question is: I understand you should not perform ANOVAs if certain violations (e.g., normality) occur but are there are types of VALUES which would be appropriate to run ANOVAs on?
 A: One of the assumptions of an ANOVA is that the data are normally distributed within each cell. Since correlation coefficients are limited to $[0, 1]$, that cannot be strictly the case here. If the correlation coefficients are calculated from a "reasonably large" number of data points, such that the estimation variation of the correlations is clearly smaller than this interval, it will however hold approximately.
You can improve the match with the assumptions of the ANOVA by entering not the $r$s themselves, but $z$-values obtained after applying the Fisher transformation, whose distribution is closer to normal. Moreover, it approximately equalizes the estimation variance between different cells, which means you should be able to use an ANOVA without adjustment for heteroscedasticity.
Concerning $Z$-scores: If you mean standardized values, i.e. some data after subtracting the estimated mean and dividing by the estimated standard deviation, it is hard to say something in general; it depends on the distribution of your original data. If they are approximately normally distributed, then the $Z$-scores will be approximately scaled-$t$-distributed, which for a "reasonably large" number of data points will again be close to a normal distribution. I'd reconsider whether you really want to enter $Z$-scores, and what exactly would be the motivation for doing so, especially considering that $Z$-scoring removes the mean while the ANOVA looks for mean differences.
A: I see nothing wrong with performing an ANOVA on the estimated correlation coefficients as long as the assumptions of the ANOVA test are met.  At the end of the day, you are simply doing a test of whether the means of the correlation coefficients are equal in each of your groups.  There is no ANOVA assumption that prohibits specific $values$ of the independent variable as you are worried about.
A: There is also independency assumption being violated when ANOVA is applied to differentiate between groups of correlations. Let's perform a simple simulation to check how far ANOVA's p-value could be trusted for some simple null hypothesis of such type. 
We will generate 1e5 random samples of 20 subjects with 10 normally distributed measurements each broken into two groups A=(x1,...,x4) and B=(x5,...,x10). We will record p-values from one-way ANOVA between three groups: “correlations inside A”, “correlations inside B” and “correlations between A and B”.
gAA <- 4
fisherz <- function (rho) { 0.5 * log((1 + rho)/(1 - rho)) }
null.distr <- replicate(1e5,{
  x <- matrix(rnorm(10*20, 0, 1), ncol=10)
  r <- cor(x)
  ut <- upper.tri(r)
  df <- data.frame(row = row(r)[ut], col = col(r)[ut], rho = r[ut])
  df$z <- fisherz(df$rho)
  df$group <- factor( ifelse(df$row<=gAA & df$col<=gAA, "AA",
                  ifelse(df$row>gAA & df$col>gAA, "BB", "AB")) )

  c(p.rho = anova(lm(rho~group,data=df))$"Pr(>F)"[1],
p.z = anova(lm(z~group,data=df))$"Pr(>F)"[1])
})
null.distr <- -log10(null.distr)

pdf("qqplot ANOVA on Pearson correlations.pdf")
par(mfrow=c(2,1))
qqplot(null.distr["p.z",], -log10(runif(n=ncol(null.distr))),
  xlab="p-value, ANOVA on z-transformed Pearson correlations ",ylab="Uniform p-value")
abline(0,1, col=2)
qqplot(null.distr["p.rho",], -log10(runif(n=ncol(null.distr))),
  xlab="p-value, ANOVA on Pearson correlations ",ylab="Uniform p-value")
abline(0,1, col=2)
dev.off()

Looking at QQ-plots we see that ANOVA's p-values are too optimistic and there is no visible gain for using z-transformation. On the other hand, we have all the rights to use the estimated null distribution, converting p=1e-4 reported by ANOVA into "true" p-value of about 1e-3.

