How do you calculate the standard error of $R^2$

I would like to confirm something.

I know that $R^2$ (in a linear regression) can be found by taking the square of Pearson's $r$.

The standard error of Pearson's $r$ is calculated using the following formula.

$$SE = \sqrt{((1-r^2)/(n-2))}$$

Is the standard error of the $R^2$ therefore, simply the square of the standard error of $r$? If it is not, what is the formula for the standard error of $R^2$?

• I would expect it to be closer to something more like $(r +SE)^2-r^2 = 2\,r\, SE + SE^2$ and perhaps more complicated than that Sep 15 '15 at 21:14
• No it is not. If you want an approximation of the standard error, consider using the Delta Method. Sep 15 '15 at 22:30
• I think this question is extremely relevant in our "Machine Learning" times. People tend to forget that $r^2$ is also an estimator, and as one, it has its own standard error. This means that perhaps your "good" predictive model (even under Multiple Cross-Validation) actually has a problem of big confidence intervals in its adjustment measures. I believe the answer from Tyler Wilcox(stats.stackexchange.com/q/491126) is correct, but I hesitate about why you would choose Bootstrap instead of Jackknife. Does anyone have an idea? Oct 25 '20 at 2:39

One easy and robust estimator of the standard error of $$R^2$$ is bootstrapping. Obtain bootstrap samples of your data set (say there are $$n$$ observations) by sampling $$n$$ observations from your data with replacement $$B$$ times (e.g., $$B = 1,000$$). For each bootstrap sample $$b = 1, 2, \ldots, B$$, compute $$R^2_b$$ (the $$R^2$$ estimate for the $$b$$th bootstrap sample). As a result, you will have $$B$$ estimates of $$R^2$$ which already incorporate the sampling variability which you are trying to estimate. The bootstrap estimate of $$SE(R^2)$$ is simply the standard deviation of $$R^2_1, R^2_2, \ldots, R^2_B$$, $$\hat{SE}(R^2) = \frac{1}{B-1} \sqrt{\sum_{b=1}^B \left[R^2_b - \left(B^{-1} \sum_{b=1}^B R^2_b\right)\right]^2}.$$

For more information, see, e.g., Wikipedia page on bootstrapping and the excellent introductory text An Introduction to the Bootstrap by Efron & Tibshirani.

• Great advice. Learning about bootstrapping early in your career can pay off many times over. I'm a data scientist and I use bootstrapping far more often than I thought I would when I first learned about it in school. R makes bootstrapping easy. Nov 26 '20 at 3:28
• I marked this as answered because it is certainly correct and answers my question, though I was hoping for an analytic rather than empirical solution.
– Andy
Nov 30 '20 at 17:25

I noticed that the MBESS package in R has the Variance.R2 function:

[It is a] function to determine the variance of the squared multiple correlation coefficient given the population squared multiple correlation coefficient, sample size, and the number of predictors.

That said, its not quite what you are after, because it assumes a given population r-squared value. If anything, sample adjusted r-squared would be a better estimate of population r-squared.