# How to test the difference between samples of sharpe ratios

I am testing the performance difference between 2 portfolio strategies. I use Monte Carlo simulation in R to generate $$N$$ simulations of portfolio returns for each strategy. I then compute the Sharpe ratio for each simulation. In the end, each strategy has $$N$$ observations of Sharpe ratios.

How would I best go about using this data to test whether the true Sharpe ratio of one strategy is greater than that of the other?

All the research I have looked at examines comparisons between samples of returns, and not samples of Sharpe Ratios. The SharpeR package also only seems to have functions that take samples of returns as inputs.

I am also a little unsure of whether my question is even correctly stated - i.e. whether I should instead be asking about whether the true mean Sharpe ratio of one strategy is greater than that of the other.

• A random thought: you might test for Stochastic Dominance of one distribution of SR's versus the other. May 24, 2021 at 2:28
• Author of SharpeR here: The sr_unpaired_test will test samples of Sharpe ratios, but I am in the process of deprecating it. For your problem, if the Sharpes are over equal sample sizes, you can compute their means, then use the normal approximation and the usual standard error. May 24, 2021 at 4:52
• @shabbychef Thank you for the reply. Can sr_unpaired_test be used to compare two samples of sharpe ratios, or is it only for one-sample tests? The documentation seems to imply the latter. May 24, 2021 at 12:18

Typically we have $$\hat{\zeta}\approx\mathcal{N}\left(\zeta,\frac{1 + \frac{\zeta^2}{2}}{n}\right),$$ where $$\hat{\zeta}$$ is the observed Sharpe ratio, and $$\zeta$$ is the unobserved population analogue (the signal-noise ratio). Assuming you observe $$\hat{\zeta}_{1,i}$$ and $$\hat{\zeta}_{2,j}$$ for $$1 \le i \le M_1$$ and $$1 \le j \le M_2$$, where the Sharpes are observed over samples of size $$n_{1,i}$$ and $$n_{2,j}$$, then if the sample sizes are different you should compute weighted averages: $$\tilde{\zeta}_1 = \frac{\sum_i \frac{\hat{\zeta}_{1,i}}{s_{1,i}}}{ \sum_i \frac{1}{s_{1,i}}},$$ where $$s_{1,i}$$ is the estimated standard error $$\sqrt{\frac{1 + \frac{\zeta_{1,i}^2}{2}}{n_{1,i}}}$$. Similarly compute $$\tilde{\zeta}_2$$. The claim is that $$\tilde{\zeta}_1 \approx\mathcal{N}\left(\zeta_1, \frac{M_1}{\left(\sum_i \frac{1}{s_{1,i}}\right)^2}\right).$$ From this you can find an approximate normal form for the difference $$\tilde{\zeta}_1 - \tilde{\zeta}_2$$, which should have zero mean under the null you are testing.
• Thank you very much. Would the appropriate test then be a two-sample t-test with test statistic $t = \frac{(\tilde{\zeta}_1 - \tilde{\zeta}_2) - (\zeta_1 - \zeta_2)}{ \sqrt{ \frac{1}{ \left( \sum_i \frac{1}{s_{1,i}} \right)^2 } + \frac{1}{ \left( \sum_j \frac{1}{s_{2,j}} \right)^2 } } }$? Also, do you happen to know of any literature that deals with this? May 24, 2021 at 13:39