Spearman correlation
set.seed(0)
j = 1
x = y = matrix(nc = 4, nrow = 1000)
for (i in c(1, 3, 7, 15)) {
res = t(sapply(1:1000, function(x) { a = rnorm(50); b = rnorm(50); h0 = cor(a, b, method = "spearman"); a[seq(i)] = rnorm(i, mean = 10); b[seq(i)] = rnorm(i, mean = 10); h1 = cor(a, b, method = "spearman"); if (x==1) plot(a, b, main = sprintf("# changed: %d", i)); c(h0, h1) } ))
x[,j] = res[,1]
y[,j] = res[,2]
j = j + 1
}




matplot(x, y, main = "Spearman, 50 points", pch = 20, ylim = c(-0.5, 1))
legend("bottomright", paste(c(1, 3, 7, 15), " points changed"), pch = 20, col = palette()[seq(ncol(x))])
abline(c(0, 1)); abline(h = 0); abline(v=0)

Pearson
set.seed(0)
j = 1
x = y = matrix(nc = 4, nrow = 1000)
for (i in c(1, 3, 7, 15)) {
res = t(sapply(1:1000, function(x) { a = rnorm(50); b = rnorm(50); h0 = cor(a, b, method = "pearson"); a[seq(i)] = rnorm(i, mean = 10); b[seq(i)] = rnorm(i, mean = 10); h1 = cor(a, b, method = "pearson"); if (x==1) plot(a, b, main = sprintf("# changed: %d", i)); c(h0, h1) } ))
x[,j] = res[,1]
y[,j] = res[,2]
j = j + 1
}




matplot(x, y, main = "Pearson, 50 points", pch = 20, ylim = c(-0.5, 1))
legend("bottomright", paste(c(1, 3, 7, 15), " points changed"), pch = 20, col = palette()[seq(ncol(x))])
abline(c(0, 1)); abline(h = 0); abline(v=0)
