#11-6
library(stats)

#dimensiones de las tablas de contingencia
dimensiones <- list(
  c(5, 4),  # a) 5 renglones, 4 columnas
  c(6, 2),  # b) 6 renglones, 2 columnas
  c(3, 7),  # c) 3 renglones, 7 columnas
  c(4, 4)   # d) 4 renglones, 4 columnas
)

#grados de libertad 
grados_libertad <- sapply(dimensiones, function(dim) (dim[1] - 1) * (dim[2] - 1))

grados_libertad
## [1] 12  5 12  9
#11-7 y 11-8
# Cargar el paquete stats
library(stats)


# Hipótesis nula (H0): No hay diferencia en las proporciones de adquirir la marca entre las regiones.
# Hipótesis alternativa (H1): Existe diferencia en las proporciones de adquirir la marca entre las regiones.

# b)tabla de frecuencias observadas y esperadas

observados <- matrix(c(40, 55, 45, 50, 60, 45, 55, 50), nrow = 2, byrow = TRUE)
colnames(observados) <- c("NE", "NO", "SE", "SO")

#  frecuencias marginales 
marginales_filas <- rowSums(observados)
marginales_columnas <- colSums(observados)
total <- sum(marginales_filas)

# frecuencias esperadas (asumiendo independencia)
esperados <- outer(marginales_filas, marginales_columnas) / total

# c)  valor de ji-cuadrada de la muestra
ji_cuadrada <- sum((observados - esperados)^2 / esperados)

# d) Prueba de hipótesis

grados_libertad <- (nrow(observados) - 1) * (ncol(observados) - 1)

# Calcular el valor p
valor_p <- 1 - pchisq(ji_cuadrada, df = grados_libertad)


nivel_significancia <- 0.05
rechazar_hipotesis_nula <- valor_p < nivel_significancia


observados
##      NE NO SE SO
## [1,] 40 55 45 50
## [2,] 60 45 55 50
esperados
##        NE   NO   SE   SO
## [1,] 47.5 47.5 47.5 47.5
## [2,] 52.5 52.5 52.5 52.5
ji_cuadrada
## [1] 5.012531
valor_p
## [1] 0.1708818
rechazar_hipotesis_nula
## [1] FALSE
library(stats)


# Hipótesis nula (H0): Las ventas de chips de computadora son independientes de la etapa en la que se encuentra la economía.
# Hipótesis alternativa (H1): Las ventas de chips de computadora están relacionadas con la etapa en la que se encuentra la economía.

# b)  tabla de frecuencias observadas y esperadas

observados <- matrix(c(20, 7, 3, 30, 30, 40, 30, 100, 20, 8, 2, 30, 30, 5, 5, 40), nrow = 4, byrow = TRUE)
colnames(observados) <- c("Venta Semanal Alta", "Venta Semanal Regular", "Venta Semanal Baja", "Total")
rownames(observados) <- c("En Cresta", "En Depresión", "Subiendo", "Bajando")

#  las frecuencias marginales (totales por fila y por columna)
marginales_filas <- rowSums(observados)
marginales_columnas <- colSums(observados)
total <- sum(marginales_filas)

#  las frecuencias esperadas (asumiendo independencia)
esperados <- outer(marginales_filas, marginales_columnas) / total

# c)  valor de ji-cuadrada de la muestra
ji_cuadrada <- sum((observados - esperados)^2 / esperados)

# d) Prueba de hipótesis

grados_libertad <- (nrow(observados) - 1) * (ncol(observados) - 1)


valor_p <- 1 - pchisq(ji_cuadrada, df = grados_libertad)


nivel_significancia <- 0.10
rechazar_hipotesis_nula <- valor_p < nivel_significancia


observados
##              Venta Semanal Alta Venta Semanal Regular Venta Semanal Baja Total
## En Cresta                    20                     7                  3    30
## En Depresión                 30                    40                 30   100
## Subiendo                     20                     8                  2    30
## Bajando                      30                     5                  5    40
esperados
##              Venta Semanal Alta Venta Semanal Regular Venta Semanal Baja Total
## En Cresta                    15                     9                  6    30
## En Depresión                 50                    30                 20   100
## Subiendo                     15                     9                  6    30
## Bajando                      20                    12                  8    40
ji_cuadrada
## [1] 34.59722
valor_p
## [1] 7.015857e-05
rechazar_hipotesis_nula
## [1] TRUE
#11-12

# Cargar el paquete stats
library(stats)

# Crear una matriz con los datos observados
observados <- matrix(c(10, 17, 11, 21, 12, 23, 8, 5, 35, 38, 16, 7, 28, 19, 6, 13), nrow = 4, byrow = TRUE)

# Definir los nombres de columnas y filas
colnames(observados) <- c("Profesional o Posgrado", "En Licenciatura", "Bachillerato", "No terminó el Bachillerato")
rownames(observados) <- c("Nunca", "Algunas veces", "Mañana o tarde", "Ambas ediciones")

# Realizar la prueba de independencia
resultado <- chisq.test(observados)

# Obtener los resultados
estadistico <- resultado$statistic
valor_p <- resultado$p.value

# Calcular los grados de libertad
grados_libertad <- resultado$parameter

# Comparar el valor p con el nivel de significancia
nivel_significancia <- 0.10
rechazar_hipotesis_nula <- valor_p < nivel_significancia

# Imprimir los resultados
observados
##                 Profesional o Posgrado En Licenciatura Bachillerato
## Nunca                               10              17           11
## Algunas veces                       12              23            8
## Mañana o tarde                      35              38           16
## Ambas ediciones                     28              19            6
##                 No terminó el Bachillerato
## Nunca                                   21
## Algunas veces                            5
## Mañana o tarde                           7
## Ambas ediciones                         13
cat("\n")
cat("Estadístico de chi-cuadrado:", estadistico, "\n")
## Estadístico de chi-cuadrado: 32.85553
cat("Valor p:", valor_p, "\n")
## Valor p: 0.000141511
cat("Grados de libertad:", grados_libertad, "\n")
## Grados de libertad: 9
cat("¿Rechazar hipótesis nula?:", rechazar_hipotesis_nula, "\n")
## ¿Rechazar hipótesis nula?: TRUE
library(stats)


ventas <- data.frame(
  "Promocion" = rep(c("Muestra gratis", "Producto Extra", "Descuento", "Reembolso"), each = 5),
  "Ventas" = c(78, 87, 81, 89, 85, 94, 91, 87, 90, 88, 73, 78, 69, 83, 76, 79, 83, 78, 69, 81)
)

# análisis de varianza
resultado <- aov(Ventas ~ Promocion, data = ventas)


estadistico <- summary(resultado)[[1]]$`Pr(>F)`[1]
valor_p <- summary(resultado)[[1]]$`Pr(>F)`[2]


nivel_significancia <- 0.01
rechazar_hipotesis_nula <- valor_p < nivel_significancia


ventas
##         Promocion Ventas
## 1  Muestra gratis     78
## 2  Muestra gratis     87
## 3  Muestra gratis     81
## 4  Muestra gratis     89
## 5  Muestra gratis     85
## 6  Producto Extra     94
## 7  Producto Extra     91
## 8  Producto Extra     87
## 9  Producto Extra     90
## 10 Producto Extra     88
## 11      Descuento     73
## 12      Descuento     78
## 13      Descuento     69
## 14      Descuento     83
## 15      Descuento     76
## 16      Reembolso     79
## 17      Reembolso     83
## 18      Reembolso     78
## 19      Reembolso     69
## 20      Reembolso     81
cat("\n")
cat("Estadístico F:", estadistico, "\n")
## Estadístico F: 0.0006952327
cat("Valor p:", valor_p, "\n")
## Valor p: NA
cat("¿Rechazar hipótesis nula?:", rechazar_hipotesis_nula, "\n")
## ¿Rechazar hipótesis nula?: NA
library(stats)


quejas <- matrix(c(
  15, 17, 14, 12,
  12, 10, 13, 17,
  11, 14, 13, 15, 12,
  13, 12, 12, 14, 10, 9
), nrow = 5, byrow = TRUE)
## Warning in matrix(c(15, 17, 14, 12, 12, 10, 13, 17, 11, 14, 13, 15, 12, : data
## length [19] is not a sub-multiple or multiple of the number of rows [5]
quejas_df <- as.data.frame(quejas)
colnames(quejas_df) <- paste("Empleado", 1:4, sep = " ")


medias <- colMeans(quejas_df)

#  análisis de varianza
resultado <- aov(medias ~ 1)


estadistico <- summary(resultado)[[1]]$`Pr(>F)`[1]
valor_p <- summary(resultado)[[1]]$`Pr(>F)`[2]

#  el valor p con el nivel de significancia
nivel_significancia <- 0.05
rechazar_hipotesis_nula <- valor_p < nivel_significancia


quejas_df
##   Empleado 1 Empleado 2 Empleado 3 Empleado 4
## 1         15         17         14         12
## 2         12         10         13         17
## 3         11         14         13         15
## 4         12         13         12         12
## 5         14         10          9         15
cat("\n")
cat("Estadístico F:", estadistico, "\n")
## Estadístico F: NA
cat("Valor p:", valor_p, "\n")
## Valor p: NA
cat("¿Rechazar hipótesis nula?:", rechazar_hipotesis_nula, "\n")
## ¿Rechazar hipótesis nula?: NA