Este documento presenta el análisis de regresión lineal simple basado en los datos proporcionados.
# Librerías necesarias
library(ggplot2)
library(broom)
library(dplyr)
# Datos
x <- c(398, 292, 352, 575, 568, 450, 550, 408, 484, 350, 503, 600, 600)
y <- c(0.15, 0.05, 0.23, 0.43, 0.23, 0.40, 0.44, 0.44, 0.45, 0.09, 0.59, 0.63, 0.63)
# Gráfico de dispersión
plot(x, y, main="Gráfico de Dispersión de Temperatura vs Ag2S", xlab="Temperatura de cristalización (°C)", ylab="Ag2S (mol%)", pch=19)
# Ajuste del modelo
modelo <- lm(y ~ x)
summary(modelo)
##
## Call:
## lm(formula = y ~ x)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.27713 -0.08736 0.03855 0.07610 0.17786
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.3230052 0.1754542 -1.841 0.09273 .
## x 0.0014615 0.0003639 4.016 0.00203 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.132 on 11 degrees of freedom
## Multiple R-squared: 0.5945, Adjusted R-squared: 0.5577
## F-statistic: 16.13 on 1 and 11 DF, p-value: 0.002029
# Traducir el Resumen del Modelo
resumen_modelo <- tidy(modelo) %>%
rename("Estimación" = estimate, "Error Estándar" = std.error, "Valor t" = statistic, "Valor p" = p.value)
print("Resumen del modelo de regresión lineal:")
## [1] "Resumen del modelo de regresión lineal:"
print(resumen_modelo)
## # A tibble: 2 × 5
## term Estimación `Error Estándar` `Valor t` `Valor p`
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) -0.323 0.175 -1.84 0.0927
## 2 x 0.00146 0.000364 4.02 0.00203
# ANOVA
anova_modelo <- anova(modelo)
colnames(anova_modelo) <- c("Grados de libertad", "Suma de cuadrados", "Media cuadrática", "Estadístico F", "Valor p")
print("Tabla ANOVA del modelo:")
## [1] "Tabla ANOVA del modelo:"
print(anova_modelo)
## Analysis of Variance Table
##
## Response: y
## Grados de libertad Suma de cuadrados Media cuadrática Estadístico F
## x 1 0.28093 0.280927 16.13
## Residuals 11 0.19158 0.017416
## Valor p
## x 0.0020292
## Residuals
# Verificación de los supuestos del modelo
par(mfrow=c(2,2))
plot(modelo)
# Prueba de hipótesis
mu <- 0.20
t_test_result <- t.test(y, mu = mu, alternative = "two.sided", conf.level = 0.95)
t_test_result$statistic <- as.numeric(t_test_result$statistic)
t_test_result$p.value <- as.numeric(t_test_result$p.value)
t_test_result$estimate <- as.numeric(t_test_result$estimate)
names(t_test_result) <- c("Estimación", "Estadístico t", "Grados de libertad", "Valor p", "Intervalo de confianza", "Media observada")
print("Resultado de la prueba de hipótesis:")
## [1] "Resultado de la prueba de hipótesis:"
print(t_test_result)
##
##
##
## data:
# Datos
datos <- data.frame(
tiempo = c(170, 165, 168, 175, 180, 190, 185, 220, 220, 240),
x1 = c(13, 12, 11, 16, 15, 20, 19, 24, 25, 28),
x2 = c(40, 35, 32, 40, 60, 55, 55, 65, 72, 75),
x3 = c(1648, 1900, 1740, 1710, 1600, 1500, 1360, 1300, 1200, 1100),
x4 = c(80, 95, 85, 82, 80, 75, 70, 65, 60, 55),
x5 = c(18, 25, 28, 30, 40, 45, 50, 55, 60, 65)
)
# Ajuste del modelo
modelo_multiple <- lm(tiempo ~ ., data = datos)
summary(modelo_multiple)
##
## Call:
## lm(formula = tiempo ~ ., data = datos)
##
## Residuals:
## 1 2 3 4 5 6 7 8 9 10
## 1.0267 5.6131 5.7701 -7.8724 -0.7862 -6.4893 -6.7745 4.9594 -1.8551 6.4082
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 125.26435 88.78967 1.411 0.231
## x1 2.93885 2.04789 1.435 0.225
## x2 0.23891 0.58176 0.411 0.702
## x3 0.09949 0.14408 0.690 0.528
## x4 -2.16073 2.76459 -0.782 0.478
## x5 0.26966 0.77829 0.346 0.746
##
## Residual standard error: 8.449 on 4 degrees of freedom
## Multiple R-squared: 0.9535, Adjusted R-squared: 0.8954
## F-statistic: 16.41 on 5 and 4 DF, p-value: 0.009021
# Traducir el Resumen del Modelo Múltiple
resumen_modelo_multiple <- tidy(modelo_multiple) %>%
rename("Estimación" = estimate, "Error Estándar" = std.error, "Valor t" = statistic, "Valor p" = p.value)
print("Resumen del modelo de regresión lineal múltiple:")
## [1] "Resumen del modelo de regresión lineal múltiple:"
print(resumen_modelo_multiple)
## # A tibble: 6 × 5
## term Estimación `Error Estándar` `Valor t` `Valor p`
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 125. 88.8 1.41 0.231
## 2 x1 2.94 2.05 1.44 0.225
## 3 x2 0.239 0.582 0.411 0.702
## 4 x3 0.0995 0.144 0.690 0.528
## 5 x4 -2.16 2.76 -0.782 0.478
## 6 x5 0.270 0.778 0.346 0.746
# ANOVA
anova_modelo_multiple <- anova(modelo_multiple)
colnames(anova_modelo_multiple) <- c("Grados de libertad", "Suma de cuadrados", "Media cuadrática", "Estadístico F", "Valor p")
print("Tabla ANOVA del modelo múltiple:")
## [1] "Tabla ANOVA del modelo múltiple:"
print(anova_modelo_multiple)
## Analysis of Variance Table
##
## Response: tiempo
## Grados de libertad Suma de cuadrados Media cuadrática Estadístico F
## x1 1 5797.2 5797.2 81.206
## x2 1 10.9 10.9 0.153
## x3 1 3.2 3.2 0.045
## x4 1 36.7 36.7 0.514
## x5 1 8.6 8.6 0.120
## Residuals 4 285.6 71.4
## Valor p
## x1 0.00084
## x2 0.71561
## x3 0.84316
## x4 0.51296
## x5 0.74644
## Residuals
# Verificación de los supuestos del modelo
par(mfrow=c(2,2))
plot(modelo_multiple)
# Método backward
modelo_backward <- step(modelo_multiple, direction = "backward")
## Start: AIC=45.52
## tiempo ~ x1 + x2 + x3 + x4 + x5
##
## Df Sum of Sq RSS AIC
## - x5 1 8.570 294.12 43.814
## - x2 1 12.039 297.59 43.931
## - x3 1 34.037 319.59 44.645
## - x4 1 43.608 329.16 44.940
## <none> 285.55 45.518
## - x1 1 147.018 432.57 47.672
##
## Step: AIC=43.81
## tiempo ~ x1 + x2 + x3 + x4
##
## Df Sum of Sq RSS AIC
## - x2 1 18.574 312.70 42.427
## - x3 1 26.232 320.36 42.668
## - x4 1 36.710 330.84 42.990
## <none> 294.12 43.814
## - x1 1 289.324 583.45 48.664
##
## Step: AIC=42.43
## tiempo ~ x1 + x3 + x4
##
## Df Sum of Sq RSS AIC
## - x3 1 12.14 324.84 40.808
## - x4 1 23.14 335.84 41.140
## <none> 312.70 42.427
## - x1 1 435.74 748.44 49.154
##
## Step: AIC=40.81
## tiempo ~ x1 + x4
##
## Df Sum of Sq RSS AIC
## - x4 1 20.10 344.94 39.408
## <none> 324.84 40.808
## - x1 1 425.26 750.10 47.176
##
## Step: AIC=39.41
## tiempo ~ x1
##
## Df Sum of Sq RSS AIC
## <none> 344.9 39.408
## - x1 1 5797.2 6142.1 66.203
summary(modelo_backward)
##
## Call:
## lm(formula = tiempo ~ x1, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.317 -4.835 1.197 3.831 8.162
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 112.4300 7.1118 15.81 2.56e-07 ***
## x1 4.3098 0.3717 11.60 2.78e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.566 on 8 degrees of freedom
## Multiple R-squared: 0.9438, Adjusted R-squared: 0.9368
## F-statistic: 134.5 on 1 and 8 DF, p-value: 2.783e-06
# Método forward
modelo_forward <- step(modelo_multiple, direction = "forward")
## Start: AIC=45.52
## tiempo ~ x1 + x2 + x3 + x4 + x5
summary(modelo_forward)
##
## Call:
## lm(formula = tiempo ~ x1 + x2 + x3 + x4 + x5, data = datos)
##
## Residuals:
## 1 2 3 4 5 6 7 8 9 10
## 1.0267 5.6131 5.7701 -7.8724 -0.7862 -6.4893 -6.7745 4.9594 -1.8551 6.4082
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 125.26435 88.78967 1.411 0.231
## x1 2.93885 2.04789 1.435 0.225
## x2 0.23891 0.58176 0.411 0.702
## x3 0.09949 0.14408 0.690 0.528
## x4 -2.16073 2.76459 -0.782 0.478
## x5 0.26966 0.77829 0.346 0.746
##
## Residual standard error: 8.449 on 4 degrees of freedom
## Multiple R-squared: 0.9535, Adjusted R-squared: 0.8954
## F-statistic: 16.41 on 5 and 4 DF, p-value: 0.009021