# Does it make sense for a partial correlation to be larger than a zero-order correlation?

This is probably demonstrating a fundamental lack of understanding of how partial correlations work.

I have 3 variables, x,y,z. When I control for z, the correlation between x and y increases over the correlation between x and y when z was not controlled for.

Does this make sense? I tend to think that when one controls for the effect of a 3rd variable, the correlation should decreases.

Looking at the wikipedia page we have the partial correlation between $X$ and $Y$ given $Z$ is given by:

So we simply require

The right hand side has a global minimum when $\rho_{XZ}=-\rho_{YZ}$. This global minimum is $-1$. I think this should explain what’s going on. If the correlation between $Z$ and $Y$ is the opposite sign to the correlation between $Z$ and $X$ (but same magnitude), then the partial correlation between $X$ and $Y$ given $Z$ will always be greater than or equal to the correlation between $X$ and $Y$. In some sense the “plus” and “minus” conditional correlation tend to cancel out in the unconditional correlation.

UPDATE

I did some mucking around with R, and here is some code to generate a few plots.

partial.plot <- function(r){
r.xz<- as.vector(rep(-99:99/100,199))
r.yz<- sort(r.xz)
r.xy.z <- (r-r.xz*r.yz)/sqrt(1-r.xz^2)/sqrt(1-r.yz^2)
tmp2 <- ifelse(abs(r.xy.z)<1,ifelse(abs(r.xy.z)<abs(r),2,1),0)
r.all <-cbind(r.xz,r.yz,r.xy.z,tmp2)
mycol <- tmp2
mycol[mycol==0] <- "red"
mycol[mycol==1] <- "blue"
mycol[mycol==2] <- "green"
plot(r.xz,r.yz,type="n")
text(r.all[,1],r.all[,2],labels=r.all[,4],col=mycol)
}


so you submit partial.plot(0.5) to see when a marginal correlation of 0.5 corresponds to in partial correlation. The plot is color coded so that red area represents the “impossible” partial correlation, blue area where $|\rho|<|\rho_{XY|Z}|<1$ and the green area where $1>|\rho|>|\rho_{XY|Z}|$ Below is an example for $\rho_{XY}=r=0.5$