x <- c(-3, -2, -1, 0, 1, 2, 3)
y <- x^2
cor(x, y, method = "pearson")
## [1] 0
cor(x, y, method = "spearman")
## [1] 0
x <- c(1, 2, 3, 4, 5, 6, 7)
y <- c(1, 4, 9, 16, 25, 36, 49)  # y = x^2 pero solo lado derecho

pearson  <- cor(x, y, method = "pearson")
spearman <- cor(x, y, method = "spearman")

cat("Pearson: ", pearson, "\n")
## Pearson:  0.9773556
cat("Spearman:", spearman, "\n")
## Spearman: 1

¿Si tengo datos sin estandarizar y primero corro Pearson, el resultado cambia si aplico primero z-score?

La respuesta es negativa, porque si realmente cambiara es porque los valores cambian pero al estandarizar encunetro que los datos tan dispersos no estan uno del otro por eso no cambia el resultado.

x <- c(1500, 2300, 800, 4200, 950)
y <- c(2, 4, 1, 6, 2)

# Sin estandarizar
cor(x, y, method = "pearson")
## [1] 0.976883
# Con Z-score
x_z <- (x - mean(x)) / sd(x)
cor(x_z, y, method = "pearson")
## [1] 0.976883

La correlación de Pearson es invariante a transformaciones lineales Eso significa que Z-score, Min-Max, Decimal Scaling y MaxAbs nunca cambian el valor de Pearson — porque todas son transformaciones lineales (multiplicar y sumar constantes).

Pero entonces ahora vamos a hacer el analisis de los datos, Log es una transformación no lineal. Distorsiona las distancias entre los datos y por eso Pearson obtiene un resultado diferente.

x <- c(1500, 2300, 800, 4200, 950)
y <- c(2, 4, 1, 6, 2)

# Sin transformar
cor(x, y, method = "pearson")
## [1] 0.976883
# Con Log
cor(log(x), y, method = "pearson")
## [1] 0.9695094
x <- c(1500, 2300, 800, 4200, 950)
y <- c(2, 4, 1, 6, 2)

cor(x,      y, method = "spearman")
## [1] 0.9746794
cor(log(x), y, method = "spearman")
## [1] 0.9746794
cor((x - median(x))/IQR(x), y, method = "spearman")
## [1] 0.9746794

Spearman es invariante a CUALQUIER transformación monótona — lineal o no lineal — porque solo le importan los rangos, no los valores.

Uso Pearson cuando mis datos tienen distribución normal y la relación entre variables es lineal. Uso Spearman cuando mis datos tienen outliers o la relación entre variables es monótona pero no necesariamente lineal.