Un grupo de geólogos desea analizar si existe una relación entre la profundidad del suelo y la concentración de minerales en el mismo. Se dispone de un conjunto de datos con 10 observaciones sobre la profundidad del suelo y la concentración de minerales. Se utilizará un modelo de regresión lineal simple para ajustar estos datos y evaluar la relación entre ambas variables.

# Profundidad del suelo (en metros) y concentración de minerales (en %)
profundidad_suelo <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) # Profundidad en metros
concentracion_minerales <- c(12, 11, 10, 9, 8, 7, 6, 5, 4, 3) # Concentración en porcentaje

# Crear un data frame
datos <- data.frame(Profundidad_Suelo = profundidad_suelo, Concentracion_Minerales = concentracion_minerales)

# Crear el modelo de regresión lineal
modelo <- lm(Concentracion_Minerales ~ Profundidad_Suelo, data = datos)
# Obtenemos los coeficientes del modelo (intercepto y pendiente)
resumen_modelo <- summary(modelo)
## Warning in summary.lm(modelo): essentially perfect fit: summary may be
## unreliable
coeficientes <- resumen_modelo$coefficients

# Mostrar la ecuación de la línea de regresión
cat("1. Ecuación de la línea de regresión: y =", round(coeficientes[1, 1], 2), "+", round(coeficientes[2, 1], 4), "x\n")
## 1. Ecuación de la línea de regresión: y = 13 + -1 x
# Interpretación de la pendiente
cat("2. La pendiente (", round(coeficientes[2, 1], 4), ") indica que por cada incremento de 1 metro en la profundidad del suelo, la concentración de minerales disminuye en", abs(round(coeficientes[2, 1], 4)), "%.\n")
## 2. La pendiente ( -1 ) indica que por cada incremento de 1 metro en la profundidad del suelo, la concentración de minerales disminuye en 1 %.
# Predicción para 12 metros de profundidad
nueva_profundidad <- data.frame(Profundidad_Suelo = 12)
prediccion <- predict(modelo, nueva_profundidad)

# Mostrar el resultado de la predicción
cat("3. Predicción para 12 metros de profundidad:", round(prediccion, 2), "% de concentración de minerales.\n")
## 3. Predicción para 12 metros de profundidad: 1 % de concentración de minerales.
# Coeficiente de determinación (R²)
r_cuadrado <- resumen_modelo$r.squared
cat("4. Coeficiente de determinación (R²):", round(r_cuadrado, 4), "\n")
## 4. Coeficiente de determinación (R²): 1
cat("   Esto indica que el modelo explica aproximadamente el", round(r_cuadrado * 100, 2), "% de la variabilidad en la concentración de minerales.\n")
##    Esto indica que el modelo explica aproximadamente el 100 % de la variabilidad en la concentración de minerales.
# Calcular los residuos
predicciones <- predict(modelo, newdata = datos)
residuos <- datos$Concentracion_Minerales - predicciones

# Crear la tabla con los resultados
tabla_resultados <- data.frame(
  Profundidad_Suelo = datos$Profundidad_Suelo,
  Concentracion_Minerales_Actuales = datos$Concentracion_Minerales,
  Concentracion_Minerales_Predichas = predicciones,
  Residuos = residuos
)

# Mostrar la tabla de resultados
cat("5. Tabla de resultados:\n")
## 5. Tabla de resultados:
print(tabla_resultados)
##    Profundidad_Suelo Concentracion_Minerales_Actuales
## 1                  1                               12
## 2                  2                               11
## 3                  3                               10
## 4                  4                                9
## 5                  5                                8
## 6                  6                                7
## 7                  7                                6
## 8                  8                                5
## 9                  9                                4
## 10                10                                3
##    Concentracion_Minerales_Predichas     Residuos
## 1                                 12 3.552714e-15
## 2                                 11 3.552714e-15
## 3                                 10 3.552714e-15
## 4                                  9 3.552714e-15
## 5                                  8 2.664535e-15
## 6                                  7 1.776357e-15
## 7                                  6 1.776357e-15
## 8                                  5 1.776357e-15
## 9                                  4 1.776357e-15
## 10                                 3 1.776357e-15
# Graficar los 4 gráficos de diagnóstico del modelo
par(mfrow = c(2, 2))  # Disposición en una matriz de 2x2

# 1. Residuos vs. valores ajustados
plot(modelo, which = 1)  # Residuals vs Fitted

# 2. Q-Q plot para los residuos
plot(modelo, which = 2)  # Normal Q-Q

# 3. Residuos estandarizados vs. valores ajustados
plot(modelo, which = 3)  # Scale-Location

# 4. Residuos vs. apalancamiento
plot(modelo, which = 5)  # Residuals vs Leverage

# Gráfico de la relación entre la profundidad del suelo y la concentración de minerales
plot(datos$Profundidad_Suelo, datos$Concentracion_Minerales,
     main = "Relación entre la Profundidad del Suelo y la Concentración de Minerales",
     xlab = "Profundidad del Suelo (m)", ylab = "Concentración de Minerales (%)",
     pch = 19, col = "blue")
abline(modelo, col = "red")

cat("El modelo ajustado está representado por la línea roja en el gráfico.\n")
## El modelo ajustado está representado por la línea roja en el gráfico.