Como dice el título de mi pregunta, estoy confundido en cuanto a cuándo el $R^2$ del ajuste de un modelo no es igual a la pendiente de la regresión entre los valores observados y los predichos.
Intento presentar las estadísticas de predicción del modelo de forma similar a las que se presentan en las cifras resumidas del informe de validación de Globcolor ( enlace ) - (por ejemplo, la figura de la página 53 del .pdf):
Aquí vemos que presentan el gráfico de las concentraciones de clorofila observadas frente a las predichas, así como los estadísticos relativos a su regresión (por ejemplo, la línea discontinua: $R^2$ , $RMS$ , $\alpha$ - interceptar, y $\beta$ - pendiente).
Mi problema es que en mis comparaciones, siempre obtengo exactamente el mismo valor para el ajuste global del modelo $R^2$ y $\beta$ -pendiente de la regresión observada frente a la prevista.
Pregunta básica: ¿Cuándo (si es que alguna vez) pueden ser diferentes?
He incluido un ejemplo básico de mi problema en el siguiente script de R:
set.seed(1)
n <- 100
x <- runif(n)
e <- rnorm(n)
a <- 3
b <- 5
y <- a + x*b + e
#fit model
fit <- lm( y ~ x )
#plot regression
plot(x,y)
abline(fit)
#plot predicted versus observed
png("plot.png", units="in", width=5, height=5, res=400)
par(mar=c(5,5,1,1))
pred <- predict(fit)
plot(y, pred, xlim=range(c(y,pred)), ylim=range(c(y,pred)), xlab="observed", ylab="predicted")
abline(0,1, lwd=2, col=8)
#add regression
fit2 <- lm(pred ~ y)
lgd <- c(
paste("R^2 =", round(summary(fit2)$r.squared,3)),
paste("Offset =", round(coef(fit2)[1],3)),
paste("Slope =", round(coef(fit2)[2],3))
)
legend("topleft", legend=lgd)
abline(fit2, lwd=2)
legend("bottomright", legend=c("predicted ~ observed", "1:1"), col=c(1,8), lty=1, lwd=2)
dev.off()
cor(pred, y)^2 # also the same