Introducción

Este documento presenta el análisis de regresión lineal simple basado en los datos proporcionados.

Análisis de Regresión Lineal Simple

# 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