Correlation of the result of an algorithm to the coefficient of variation of the input Let $A$ and $B$ be two algorithms to solve the same problem and $f(.)$ be the evaluation criteria of the solutions. I use $\frac{f(A(I))}{f(B(I))}$ to find the relative performance of the two algorithms. Both $A$ and $B$ take a list of positive numbers as input. I want to show that algorithm $A$ works much better (compared to $B$) if the input $I$ has a higher coefficient of variation. Assume $X$ is the vector of coefficient of variation of the inputs and $Y$ is the relative performance of the algorithms as described above. Here is a plot of "coefficient of variation" vs "performance ratio" for 2000 randomly generated inputs:

Correlation of the "coefficient of variation" and "performance ratio" for the sample data is about $0.87$. Now, I have two questions:


*

*Based on the above data, can I say the variables are strongly correlated?

*What sort of other analysis/plot can I use to show the correlation if them clearly?


Edit: I asked quite a similar question at Mathematica.SE and got an answer. I'll put the answer below.
 A: Note: Thanks to Chris Degnen, I've got a nice answer for the question at Mathematica.ES website. Below is the copied answer.
You can also calculate the Coefficient of Determination, R Squared.
This is the same as the correlation squared, but by making use of LinearModelFit you can create some additional graphics.
To make a sample distribution you can use this:
CreateDistribution[] := DynamicModule[{savepts = {{-1, -1}}},
  Dynamic[
   EventHandler[
    ListPlot[pts, AxesOrigin -> {0, 0}, 
     PlotRange -> {{0, 7}, {0, 5}}], 
    "MouseDown" :> (savepts = 
       pts = DeleteCases[
         Append[pts, MousePosition["Graphics"]], {-1, -1}])],
   Initialization :> (pts = savepts)]]

CreateDistribution[]

Just click to add some points.  The data is collected in the variable pts.

Then calculate R Squared:
lm = LinearModelFit[Sort@pts, a, a]; r2 = lm["RSquared"];
Show[Plot[lm[x], {x, 0, 7}], ListPlot[pts], AxesOrigin -> {0, 0}, 
 PlotRange -> {{0, 7}, {0, 5}}, 
 PlotLabel -> 
  "The correlation is " <> 
   If[D[lm["BestFit"], a] < 0, "negative", "positive"], 
 Epilog -> 
  Inset[Style[
    "\!\(\*SuperscriptBox[\"R\", \"2\"]\) = " <> ToString[r2], 
    11], {1.5, 4.5}]]


Whether the correlation is positive or negative is obtained here from the derivative of the BestFit.
You can add standard deviation bands for sigma = 1, 2 & 3 like this.
lm = LinearModelFit[Sort@pts, {1, x (*, x^2 *)}, x];
{bands68[x_], bands95[x_], bands99[x_]} = 
  Table[lm["SinglePredictionBands", 
    ConfidenceLevel -> cl], {cl, {0.6827, 0.9545, 0.9973}}];
Show[ListPlot[Sort@pts], 
 Plot[{lm[x], bands68[x], bands95[x], bands99[x]}, {x, -0.15, 7.2}, 
  Filling -> {2 -> {1}, 3 -> {2}, 4 -> {3}}], AxesOrigin -> {0, 0}, 
 PlotRange -> {{0, 7}, {0, 5}}, ImageSize -> 480, Frame -> True]


Uncomment x^2 for a quadratic fit.

