library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
Mediante un programa de R realiza y comenta las siguientes tareas:
n <- 10
a <- 2
b <- 5
x <- runif(n,0,100)
errores <- rnorm(n, mean = 0, sd = 2)
y <- a + b*x
y <- y + errores
plot(y)
lm <- lm(y~x)
b0 <- summary(lm)$coef[1]
b1 <- summary(lm)$coef[2]
lr <- b0 + b1*x
plot(x,y, main = "Dispersión con línea de regresión", xlab = "x", ylab = "y", col = "blue")
abline(lm, col = "green", lwd = 2) # Línea ajustada por el modelo
abline(a, b, col = "red", lty = 2, lwd = 2) # Línea real (la que generó los datos)
##Ejercicio 2: Regresion a la media Encuentra datos que representen
mediciones antes y después de algún evento o intervención. Haz un
gráfico de dispersión y discute los desafíos de la regresión hacia la
media al interpretar los cambios antes-después.
Los datos los voy a generar, serán km corridos antes y después de entrenamiento para maratón
n <- 100
antes <- rnorm(n, mean = 20, sd = 15)
despues <- antes + rnorm(n, mean = 10, sd = 10)
datos <- data.frame(antes = antes, despues = despues)
head(datos)
## antes despues
## 1 21.255093 28.00674
## 2 25.265888 28.01026
## 3 28.361344 39.02928
## 4 8.128094 16.85712
## 5 18.673695 49.38288
## 6 30.640965 42.82024
plot(datos$antes, datos$despues)
Vemos que los valores extremos tienden a acercarse a la media en medidas sucesivas. El problema de la regresión hacia la media es que el que en la segunda muestra los valoress extremos esten más acercados a la media quiere decir que las dos variables enten relacionadas o que algun fenomeno fue el que ocasionó esto. como en este caso que simplemente simulé los valores.
##Ejercicio 3: Regresión Lineal con un Único Predictor
Con los datos de tu interés que describiste en la tarea pasada selecciona dos variables para ajustar un regresión lineal simple con un único predictor, grafica los datos junto con la línea ajustada y un intervalo de predicción. Interpreta los parámetros estimados y sus incertidumbres. Realiza una validación del modelo e indica qué podría estar funcionando bien o mal, y qué pasos futuros podrías seguir en tu proceso de modelado. Si observas que tu modelo requiere alguna transformación, sugiérela, aplícala y compara los resultados. No es necesario lograr un modelo perfecto; la idea es identificar posibles mejoras basadas en la validación realizada.
Los datos que esocgí fueron la tasa de referencia de México y la de Estados Unidos por año, ahorita usaré de los ultimos 10 años.
eua <- c(0.25,0.5,0.75,1.5,2.5,1.75,0.25,0.25,4.5,5.25,5.5) ##predictora
mx <- c(3,3.25,5.75,7.25,8,7.25,4.25,5.5,10.3,11.25,11) ## respuesta
plot(eua,mx)
# beta1
SXY<-sum((eua - mean(eua))*(mx - mean(mx)))
SXX<-sum((eua - mean(eua))*(eua - mean(eua)))
(hatb1<-SXY/SXX)
## [1] 1.36404
# 0.8955; i.e., 0.90, approx.
# beta0
(hatb0<-mean(mx) - (hatb1*mean(eua)))
## [1] 4.129736
# -42.1378, approx.
# Grafiquemos el modelo:
abline(a=hatb0, b=hatb1, col="red", lty=2)
No creo que el modelo requiera alguna transformación ya que es notorio que los datos sí siguen una tendencia lineal.
Comprueba que los residuales y los errores no están correlacionados en una regresión lineal simple.
hatys<-hatb0 + hatb1*eua
RSS<-sum((mx - hatys)^2)
n<-length(mx) # Tamaño muestral, 17
(hatsig2<-RSS/(n-2))
## [1] 0.9302522
esa es la varianza del proceso
# Así, el error estándar de la regresión es simplemente:
(seofr<-sqrt(hatsig2)) # "standard error of regression"
## [1] 0.9644958
# Echemos un vistazo a una descriptiva de los residuales
summary((eua - hatys))
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -6.132 -5.404 -4.676 -4.891 -4.266 -4.221
# No queda del todo claro que haya normalidad o simetría...
ob<-lm(eua ~ mx)
summary(ob)
##
## Call:
## lm(formula = eua ~ mx)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.85850 -0.52147 -0.02977 0.53725 0.88321
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.53789 0.54125 -4.689 0.00114 **
## mx 0.66298 0.07188 9.223 6.98e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6724 on 9 degrees of freedom
## Multiple R-squared: 0.9043, Adjusted R-squared: 0.8937
## F-statistic: 85.07 on 1 and 9 DF, p-value: 6.983e-06
Vemos que sí da un resultado que tiende a cero solo que no tanto porque en este caso solo se están usando 10 datos.
Considera la regresión lineal simple usual y supón que a cada valor de X le sumamos 2. ¿Cambiarán los parámetros? ¿Y las predicciones y residuales? ¿Qué ocurre si multiplicamos X por 2? [Justifica tus respuestas] También investiga y discute el uso del escalamiento de predictores en modelo predictivos. Tomando en cuenta lo anterior, discute sobre la relevancia de escalar o no los predictores en un modelo de regresión linear simple.
Escalar la variable predictora en una regresión lineal simple afecta principalmente el intercepto y la pendiente del modelo. Si a 𝑋 le sumamos un valor constante, solo el intercepto cambia, mientras que la pendiente y los residuos permanecen inalterados. Si multiplicamos 𝑋 X por un factor, la pendiente cambia en función inversa al factor y el intercepto también se ajusta. Sin embargo, los residuos no se ven afectados.
En modelos predictivos más complejos, escalar los predictores es crucial para la interpretación de los coeficientes, la estabilidad numérica y el rendimiento de algoritmos que utilizan técnicas de regularización o gradiente descendente. En regresión lineal simple, aunque el impacto es menor, escalar puede ayudar en la claridad de la interpretación y en la consistencia del modelo.
La regresión polinómica entra dentro de regresión multiple, sin embargo, tiene la facilidad de ser visualizado en dos dimensiones a pesar de tener mas de un predictor. Explique porque el modelo sigue estando dentro del grupo de modelos lineales y como interpretaría los parámetros del modelo. También investigue y comente sobre los riesgos de overfitting con modelos polinómicos.
La refresión polinomica sigue siendo lineal porque como tal no se le hace ninguna transformación a los datos. una desventaja de este modelo es que puede llegar a tener mucho ruido mientras más grados se le ponga, esto quiere decir que aproximadamente con un grado 5 el polinomio ya sigue mucho a los datos, dando una regresión que no da mucha explicación de tendencia de los datos, simplemente los sigue, hasta a los outliers.