30 000 points

Pearson correlation, one added value had not a strong impact

set.seed(0)
res = t(sapply(1:1000, function(x) { a = rnorm(30000); b = rnorm(30000); c(h0 = cor(a, b), h1 = cor(c(a,10), c(b, 11))) } ))
plot(res, main = "Pearson, 30,000 points")
abline(c(0, 1)); abline(h = 0); abline(v=0)

50 points

Pearson correlation, the added value had a clear impact

set.seed(0)
res = t(sapply(1:1000, function(x) { a = rnorm(50); b = rnorm(50); c(h0 = cor(a, b), h1 = cor(c(a,10), c(b, 11))) } ))
plot(res, main = "Pearson, 50 points")
abline(c(0, 1)); abline(h = 0); abline(v=0)

Spearman correlation, the added value had not strong impact

set.seed(0)
res = t(sapply(1:1000, function(x) { a = rnorm(50); b = rnorm(50); c(h0 = cor(a, b, method = "spearman"), h1 = cor(c(a,10), c(b, 11), method = "spearman")) } ))
plot(res, main = "Spearman, 50 points")
abline(c(0, 1)); abline(h = 0); abline(v=0)

How much do the number of correlated points change the correlation?

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)