library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2

Ejercicio 1: Simulación y Ajuste de Regresión Lineal

Mediante un programa de R realiza y comenta las siguientes tareas:

  1. Simulación de datos: Simula n puntos de datos a partir del modelo y = a+bx+error, donde los valores de x se muestrean uniformemente del rango (0, 100) y los errores se extraen de manera independiente de una distribución normal con media 0 y desviación estándar σ.
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)

  1. Ajuste de regresión lineal: Ajusta una regresión lineal a los datos simulados
lm <- lm(y~x)
b0 <- summary(lm)$coef[1]
b1 <- summary(lm)$coef[2]
lr <- b0 + b1*x
  1. Gráfico de dispersión: Realiza un gráfico de dispersión de los datos y traza la línea de regresión ajustada y la real.
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.

Ejercicio 4: Correlación entre Residuales y Predicciones

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.

Ejercicio 5: Escalado de la Variable Predictora

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.

Ejercicio 6: Regresión Polinómica

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.