Se utiliza para determinar si existen diferencias estadísticamente significativas entre las medias de 3 o mas grupos.
# Crear un vector con los tipos de caja
tipo <- c(1, 2, 3, 4)

# Crear una matriz con las resistencias a la compresión
# Crear un vector con los tipos de caja
tipo <- c(rep(1, 6), rep(2, 6), rep(3, 6), rep(4, 6))

# Crear un vector con las resistencias a la compresión
resistencia <- c(655.5, 788.3, 734.3, 721.4, 679.1, 699.4,
                 789.2, 772.5, 786.9, 686.1, 732.1, 774.8,
                 737.1, 639, 696.3, 671.7, 717.2, 727.1,
                 535.1, 628.7, 542.4, 559, 586.9, 520)

# Crear un data frame con los dos vectores
tabla <- data.frame(tipo, resistencia)

# Ajustar un modelo lineal con el tipo de caja como factor
modelo <- lm(resistencia ~ factor(tipo), data = tabla)

# Realizar el análisis ANOVA
resultado <- anova(modelo)

# Mostrar el resultado
print(resultado)
## Analysis of Variance Table
## 
## Response: resistencia
##              Df Sum Sq Mean Sq F value    Pr(>F)    
## factor(tipo)  3 127375   42458  25.094 5.525e-07 ***
## Residuals    20  33839    1692                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Establecer el nivel de significancia
alfa <- 0.05

# Calcular el valor crítico del estadístico F
f_critico <- qf(1 - alfa, df1 = resultado$Df[1], df2 = resultado$Df[2])

# Comparar el valor observado con el valor crítico
if (resultado$`F value`[1] > f_critico) {
  print("Se rechaza la hipótesis nula de que las medias son iguales")
} else {
  print("No se rechaza la hipótesis nula de que las medias son iguales")
}
## [1] "Se rechaza la hipótesis nula de que las medias son iguales"
# Calcular la media de la resistencia
media <- mean(resistencia)

# Calcular la suma de cuadrados total
SST <- sum((resistencia - media)^2)

# Mostrar la suma de cuadrados total
print(SST)
## [1] 161213.7

Regresión lineal

x <- c(0,2,0,5,1,2,3)
y <- c(8,10,18,25,60,NA,NA) 
regresion <- lm(y ~ x) # Realice una regresión lineal simple
plot(x,y) 
abline(regresion) 

plot(regresion)

#Ejercicio 2
x2 <- c(-6,-3,0,3,6,9,12,15,20,25)
y2 <- c(2,2.8,3.9,4.2,5.8,6.2,7.5,8.2,9.3,10.9) # Agregue un paréntesis de cierre después del vector y
regresion2 <- lm(y2 ~ x2) # Realice una regresión lineal simple
summary(regresion2) 
## 
## Call:
## lm(formula = y2 ~ x2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.41088 -0.12507 -0.03329  0.14807  0.32493 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 3.746694   0.101162   37.04 3.10e-10 ***
## x2          0.288062   0.008087   35.62 4.22e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2438 on 8 degrees of freedom
## Multiple R-squared:  0.9937, Adjusted R-squared:  0.993 
## F-statistic:  1269 on 1 and 8 DF,  p-value: 4.223e-10
plot(x2,y2)
abline(regresion2)

plot(regresion2)

Ejercicios del mundo real

11-36

La compañía Genes and Jeans, Inc. Ofrece 4 marcas populares de pantalones de jeans: Generic, ADN, ARN y Oops. La tienda desea saber si existen diferencias en el número de pantalones vendidos de cada marca diferente. El gerente ha contado el número de pantalones vendidos de cada marca en diferentes días. Al nivel de significancia de 0.05, ¿son iguales las ventas de las 4 marcas?

# Crear un data frame con los datos
datos <- data.frame(
  Marca = rep(c("Generic", "ADN", "ARN", "Oops"), c(5, 5, 5, 5)),
  Ventas = c(17, 21, 13, 27, 12, 27, 13, 29, 9, 13, 15, 17, 23, 10, 21, 18, 25, 15, 27, 12)
)

# Realizar el ANOVA
ajuste <- aov(Ventas ~ Marca, data = datos)
summary(ajuste)
##             Df Sum Sq Mean Sq F value Pr(>F)
## Marca        3   12.4    4.13   0.088  0.966
## Residuals   16  754.8   47.17

11-38

La compañía Genes and Jeans, Inc. Ofrece 4 marcas populares de pantalones de jeans: Generic, ADN, ARN y Oops. La tienda desea saber si existen diferencias en el número de pantalones vendidos de cada marca diferente. El gerente ha contado el número de pantalones vendidos de cada marca en diferentes días. Al nivel de significancia de 0.05, ¿son iguales las ventas de las 4 marcas?

restaurante1 <- c(3, 4, 5.5, 3.5, 4)
restaurante2 <- c(3, 3.5, 4.5, 4, 5.5)
restaurante3 <- c(2, 3.5, 5, 6.5, 6)
restaurante4 <- c(3, 4, 5.5, 2.5, 3)

tabla <- data.frame(restaurante1, restaurante2, restaurante3, restaurante4)
tabla
##   restaurante1 restaurante2 restaurante3 restaurante4
## 1          3.0          3.0          2.0          3.0
## 2          4.0          3.5          3.5          4.0
## 3          5.5          4.5          5.0          5.5
## 4          3.5          4.0          6.5          2.5
## 5          4.0          5.5          6.0          3.0
tiempos <- c(restaurante1, restaurante2, restaurante3, restaurante4)
restaurantes <- factor(rep(1:4, each=5))
modelo <- aov(tiempos ~ restaurantes)

summary(modelo)
##              Df Sum Sq Mean Sq F value Pr(>F)
## restaurantes  3  2.538  0.8458   0.509  0.682
## Residuals    16 26.600  1.6625