#PROBLEMA #En un yacimiento mineral, se recopilaron datos sobre la densidad de las rocas y la concentración de un mineral valioso presente en ellas. Los investigadores quieren determinar si existe una relación lineal entre estas variables y, además, predecir la concentración del mineral en una roca con una densidad específica. #Con base en la tabla de datos proporcionada, realiza un modelo de regresión lineal para analizar la relación entre la densidad de la roca (g/cm³) y la concentración del mineral (%). #¿Cuál sería la concentración esperada del mineral en una roca con una densidad de 3.1 g/cm³?

# Paso 1: Ingresar los datos
datos <- data.frame(
  Muestra = 1:10,
  Densidad = c(2.6, 2.7, 2.8, 2.9, 3.0, 2.5, 3.1, 2.7, 2.8, 3.0),
  Concentracion = c(12.5, 14.8, 16.3, 18.2, 19.7, 11.1, 20.8, 15.0, 16.7, 19.5)
)

# Paso 2: Ajustar el modelo de regresión lineal
modelo <- lm(Concentracion ~ Densidad, data = datos)

# Paso 3: Resumen del modelo e interpretación
resumen_modelo <- summary(modelo)

# Imprimir el resumen
print(resumen_modelo)
## 
## Call:
## lm(formula = Concentracion ~ Densidad, data = datos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.48511 -0.19878  0.05076  0.22812  0.40547 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -30.0374     1.6480  -18.23 8.44e-08 ***
## Densidad     16.5471     0.5853   28.27 2.65e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3357 on 8 degrees of freedom
## Multiple R-squared:  0.9901, Adjusted R-squared:  0.9889 
## F-statistic: 799.4 on 1 and 8 DF,  p-value: 2.646e-09
# Interpretación de coeficientes
cat("\nInterpretación de los coeficientes:\n")
## 
## Interpretación de los coeficientes:
cat("Pendiente (Densidad):", round(coef(modelo)[2], 2), 
    "- Por cada aumento de 1 g/cm³ en la densidad, la concentración aumenta en promedio en", 
    round(coef(modelo)[2], 2), "%.\n")
## Pendiente (Densidad): 16.55 - Por cada aumento de 1 g/cm³ en la densidad, la concentración aumenta en promedio en 16.55 %.
cat("Intercepto:", round(coef(modelo)[1], 2), 
    "- Representa la concentración esperada cuando la densidad es 0 (sin sentido físico en este caso).\n")
## Intercepto: -30.04 - Representa la concentración esperada cuando la densidad es 0 (sin sentido físico en este caso).
# Coeficiente de determinación (R²)
cat("R²:", round(resumen_modelo$r.squared, 2), 
    "- Indica que el", round(resumen_modelo$r.squared * 100, 2), 
    "% de la variabilidad en la concentración se explica por la densidad.\n")
## R²: 0.99 - Indica que el 99.01 % de la variabilidad en la concentración se explica por la densidad.
# Significancia estadística
cat("P-valor de la pendiente:", signif(resumen_modelo$coefficients[2, 4], 3), 
    "- Indica que la relación entre densidad y concentración es significativa.\n")
## P-valor de la pendiente: 2.65e-09 - Indica que la relación entre densidad y concentración es significativa.
# Paso 4: Predicción e intervalo de confianza
nuevo_dato <- data.frame(Densidad = 3.1)
prediccion <- predict(modelo, nuevo_dato, interval = "confidence")
cat("\nPredicción para densidad = 3.1 g/cm³:\n")
## 
## Predicción para densidad = 3.1 g/cm³:
print(prediccion)
##        fit      lwr     upr
## 1 21.25866 20.79703 21.7203
# Paso 5: Análisis de residuos
# Gráfico de residuos
plot(modelo$residuals, main = "Residuos del Modelo", xlab = "Índice", ylab = "Residuos")
abline(h = 0, col = "red", lty = 2)

# Prueba de normalidad de los residuos
shapiro_test <- shapiro.test(modelo$residuals)
cat("\nPrueba de normalidad de los residuos (Shapiro-Wilk):\n")
## 
## Prueba de normalidad de los residuos (Shapiro-Wilk):
print(shapiro_test)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo$residuals
## W = 0.93786, p-value = 0.5295
# Paso 7: Visualización con interpretación
library(ggplot2)

ggplot(datos, aes(x = Densidad, y = Concentracion)) +
  geom_point(color = "blue", size = 3) +
  geom_smooth(method = "lm", color = "red", se = TRUE) +
  annotate("text", x = 2.6, y = 20, label = paste("R² =", round(resumen_modelo$r.squared, 2)), color = "black") +
  annotate("text", x = 2.6, y = 18, label = paste("Ecuación: Y =", round(coef(modelo)[1], 2), "+", round(coef(modelo)[2], 2), "*X"), color = "black") +
  labs(
    title = "Relación entre Densidad y Concentración del Mineral",
    x = "Densidad de la roca (g/cm³)",
    y = "Concentración del mineral (%)"
  ) +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

# Coeficientes del modelo
intercepto <- coef(modelo)[1]  # Intercepto
pendiente <- coef(modelo)[2]   # Pendiente

# Densidad a predecir
densidad_nueva <- 3.1

# Calcular la concentración directamente
concentracion_predicha <- intercepto + pendiente * densidad_nueva
cat("\nConcentración estimada para densidad = 3.1 g/cm³:", concentracion_predicha, "%\n")
## 
## Concentración estimada para densidad = 3.1 g/cm³: 21.25866 %