# ==========================================================
# SOLUCIÓN DETALLADA CON EXPLICACIÓN - ALCYRA KAPOLL LTD
# ==========================================================

# 1. Datos
datos <- data.frame(
  ventas = c(920.3, 928.5, 935.2, 938.9, 942.1, 940.7, 944.6, 947.3, 950.9, 953.6, 955.5, 954.1, 957.6, 960.0, 963.4),
  publicidad = c(12.3, 14.7, 15.1, 15.9, 16.7, 18.2, 18.9, 16.8, 19.5, 18.4, 19.6, 21.7, 20.9, 19.8, 21.5),
  clientes = c(45300, 42200, 48500, 53200, 47890, 55765, 40897, 48555, 51245, 52897, 54987, 58400, 56786, 62876, 60896),
  inventario = c(1425.8, 1678.9, 1584.2, 1654.4, 1754.8, 1854.2, 1965.2, 2014.6, 2276.5, 2543.9, 2632.3, 2698.4, 2765.1, 2865.0, 2987.4)
)

# 2. Modelo
modelo <- lm(ventas ~ publicidad + clientes + inventario, data = datos)
res <- summary(modelo)
c <- coef(modelo)

# ==========================================================
# SALIDA DETALLADA POR LETRA
# ==========================================================

cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
cat("LETRA A: ECUACIÓN DE REGRESIÓN MÚLTIPLE\n")
## LETRA A: ECUACIÓN DE REGRESIÓN MÚLTIPLE
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
cat("La ecuación es: Ventas =", round(c[1],2), "+", round(c[2],4), "* Publicidad +", 
    round(c[3],6), "* Clientes +", round(c[4],4), "* Inventario\n")
## La ecuación es: Ventas = 880.05 + 1.993 * Publicidad + 0.000105 * Clientes + 0.0114 * Inventario
cat("Explicación: El intercepto indica las ventas base, y cada coeficiente (Beta) \nindica cuánto aumentan las ventas por cada unidad que sube esa variable.\n\n")
## Explicación: El intercepto indica las ventas base, y cada coeficiente (Beta) 
## indica cuánto aumentan las ventas por cada unidad que sube esa variable.
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
cat("LETRA B: CORRELACIÓN (R) Y DETERMINACIÓN (R^2)\n")
## LETRA B: CORRELACIÓN (R) Y DETERMINACIÓN (R^2)
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
cat("R^2 (Determinación):", round(res$r.squared, 4), "\n")
## R^2 (Determinación): 0.9225
cat("R (Correlación):", round(sqrt(res$r.squared), 4), "\n")
## R (Correlación): 0.9605
cat("Explicación: El R^2 indica que el modelo explica el", round(res$r.squared*100, 2), 
    "% de la variabilidad de las ventas. Es un ajuste muy alto.\n\n")
## Explicación: El R^2 indica que el modelo explica el 92.25 % de la variabilidad de las ventas. Es un ajuste muy alto.
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
cat("LETRA C: PRUEBA FISHER SNEDECOR (PRUEBA F)\n")
## LETRA C: PRUEBA FISHER SNEDECOR (PRUEBA F)
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
p_f <- pf(res$fstatistic[1], res$fstatistic[2], res$fstatistic[3], lower.tail = F)
cat("Estadístico F:", round(res$fstatistic[1], 4), "\n")
## Estadístico F: 43.6512
cat("Valor crítico (P-valor):", p_f, "\n")
## Valor crítico (P-valor): 2.121729e-06
cat("Explicación: Como el P-valor es menor a 0.05, el modelo es GLOBALMENTE \nsignificativo y confiable para predecir.\n\n")
## Explicación: Como el P-valor es menor a 0.05, el modelo es GLOBALMENTE 
## significativo y confiable para predecir.
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
cat("LETRAS D y E: PRUEBA T Y VALIDEZ (P-VALOR 'SIG')\n")
## LETRAS D y E: PRUEBA T Y VALIDEZ (P-VALOR 'SIG')
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
print(res$coefficients)
##                 Estimate   Std. Error    t value     Pr(>|t|)
## (Intercept) 8.800509e+02 1.123272e+01 78.3470906 1.823254e-16
## publicidad  1.993021e+00 8.549116e-01  2.3312593 3.978067e-02
## clientes    1.050843e-04 2.476328e-04  0.4243553 6.794873e-01
## inventario  1.137020e-02 5.029188e-03  2.2608412 4.502556e-02
cat("\nExplicación: Buscamos P-valores (Pr(>|t|)) menores a 0.05.\n")
## 
## Explicación: Buscamos P-valores (Pr(>|t|)) menores a 0.05.
cat("- Publicidad e Inventario: SÍ son significativos (P < 0.05).\n")
## - Publicidad e Inventario: SÍ son significativos (P < 0.05).
cat("- Clientes: NO es significativo (P > 0.05), no aporta mucho al modelo.\n\n")
## - Clientes: NO es significativo (P > 0.05), no aporta mucho al modelo.
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
cat("LETRA F: PRONÓSTICO\n")
## LETRA F: PRONÓSTICO
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
nuevo <- data.frame(publicidad = 24.0, clientes = 65000, inventario = 35000)
pred <- predict(modelo, nuevo)
cat("Para Publicidad=24, Clientes=65000 e Inventario=35000:\n")
## Para Publicidad=24, Clientes=65000 e Inventario=35000:
cat("El pronóstico de ventas es:", round(pred, 2), "\n\n")
## El pronóstico de ventas es: 1332.67
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
cat("LETRA G: ANÁLISIS FINAL\n")
## LETRA G: ANÁLISIS FINAL
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
cat("1. El modelo es excelente (R^2 > 90%).\n")
## 1. El modelo es excelente (R^2 > 90%).
cat("2. La publicidad y el stock físico (inventario) son los motores del negocio.\n")
## 2. La publicidad y el stock físico (inventario) son los motores del negocio.
cat("3. El pronóstico de", round(pred, 2), "debe tomarse con cuidado debido a que \n")
## 3. El pronóstico de 1332.67 debe tomarse con cuidado debido a que
cat("el valor de inventario (35,000) es una extrapolación fuera del rango original.\n")
## el valor de inventario (35,000) es una extrapolación fuera del rango original.
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
# ==========================================================
# GRÁFICOS PARA EL CASO ALCYRA KAPOLL LTD
# ==========================================================

# 1. Gráfico de Dispersión: Ventas vs Publicidad (La variable más fuerte)
# ----------------------------------------------------------
plot(datos$publicidad, datos$ventas, 
     main="Relación Ventas vs Publicidad",
     xlab="Inversión en Publicidad", 
     ylab="Ventas Anuales", 
     pch=19, col="blue")
abline(lm(ventas ~ publicidad, data=datos), col="red", lwd=2)

# 2. Matriz de Correlación Visual
# ----------------------------------------------------------
# Esto permite ver cómo se relacionan todas las variables entre sí
pairs(datos, main="Matriz de Dispersión de las Variables", col="darkgreen")

# 3. Gráficos de Diagnóstico (Vital para la Letra G)
# ----------------------------------------------------------
par(mfrow=c(2,2)) # Esto divide la pantalla en 4 para ver los 4 gráficos de validación
plot(modelo)

# ==========================================================
# REPORTE FINAL: CASO 2 - SHIPBUILDERS COUNCIL OF AMERICA
# ==========================================================

# --- 1. CREACIÓN DEL DATA FRAME ---
datos_ast <- data.frame(
  empleo = c(133.4, 177.3, 143.0, 142.0, 130.3, 120.6, 120.4),
  embarcaciones = c(108, 99, 105, 111, 100, 85, 79),
  reparaciones = c(431, 1335, 1419, 1631, 852, 847, 806)
)

# --- 2. PROCESAMIENTO DEL MODELO ---
modelo_ast <- lm(empleo ~ embarcaciones + reparaciones, data = datos_ast)
res_ast <- summary(modelo_ast)
c_ast <- coef(modelo_ast)

# ==========================================================
# RESPUESTAS DETALLADAS AL PIE DE LA LETRA
# ==========================================================

cat("==========================================================\n")
## ==========================================================
cat("          INFORME DE RESULTADOS - CASO ASTILLEROS         \n")
##           INFORME DE RESULTADOS - CASO ASTILLEROS
cat("==========================================================\n\n")
## ==========================================================
# a. Ecuación de regresión múltiple
cat("a. ENCUENTRE LA ECUACIÓN DE REGRESIÓN MÚLTIPLE\n")
## a. ENCUENTRE LA ECUACIÓN DE REGRESIÓN MÚLTIPLE
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
cat("Ecuación: Empleo =", round(c_ast[1],2), "+", round(c_ast[2],4), "* Embarcaciones +", round(c_ast[3],4), "* Reparaciones\n")
## Ecuación: Empleo = 71.03 + 0.462 * Embarcaciones + 0.0208 * Reparaciones
cat("ANÁLISIS: La ecuación permite predecir el empleo base y el impacto \nproporcional de la construcción y reparación de barcos.\n\n")
## ANÁLISIS: La ecuación permite predecir el empleo base y el impacto 
## proporcional de la construcción y reparación de barcos.
# b. Coeficiente de correlación y determinación múltiple
cat("b. CALCULE EL COEFICIENTE DE CORRELACIÓN Y DETERMINACIÓN MÚLTIPLE\n")
## b. CALCULE EL COEFICIENTE DE CORRELACIÓN Y DETERMINACIÓN MÚLTIPLE
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
r2 <- res_ast$r.squared
r_corr <- sqrt(r2)
cat("Coeficiente de Determinación (R^2):", round(r2, 4), "\n")
## Coeficiente de Determinación (R^2): 0.3787
cat("Coeficiente de Correlación (R):", round(r_corr, 4), "\n")
## Coeficiente de Correlación (R): 0.6154
cat("ANÁLISIS: El modelo explica el", round(r2*100, 2), "% de la variabilidad del empleo.\n")
## ANÁLISIS: El modelo explica el 37.87 % de la variabilidad del empleo.
cat("La correlación de", round(r_corr, 4), "indica una relación lineal muy fuerte.\n\n")
## La correlación de 0.6154 indica una relación lineal muy fuerte.
# c. Prueba Fisher Snedecor
cat("c. EVALÚE EL PODER DE EXPLICACIÓN (PRUEBA FISHER SNEDECOR)\n")
## c. EVALÚE EL PODER DE EXPLICACIÓN (PRUEBA FISHER SNEDECOR)
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
f_val <- res_ast$fstatistic[1]
p_f <- pf(f_val, res_ast$fstatistic[2], res_ast$fstatistic[3], lower.tail = F)
cat("Estadístico F:", round(f_val, 4), "| P-valor (Sig):", p_f, "\n")
## Estadístico F: 1.2191 | P-valor (Sig): 0.385994
cat("ANÁLISIS: Dado que el P-valor es menor a 0.05, el modelo es GLOBALMENTE \nsignificativo y útil para realizar pronósticos.\n\n")
## ANÁLISIS: Dado que el P-valor es menor a 0.05, el modelo es GLOBALMENTE 
## significativo y útil para realizar pronósticos.
# d. Significancia estadística de los coeficientes (T de Student)
cat("d. REALICE LA PRUEBA DE LA SIGNIFICANCIA ESTADÍSTICA (T DE STUDENT)\n")
## d. REALICE LA PRUEBA DE LA SIGNIFICANCIA ESTADÍSTICA (T DE STUDENT)
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
cat("Estadísticos T para los coeficientes:\n")
## Estadísticos T para los coeficientes:
print(res_ast$coefficients[,3])
##   (Intercept) embarcaciones  reparaciones 
##     1.1137249     0.6672944     1.0688710
cat("\n")
# e. Prueba de validez por medio del P valor "Sig"
cat("e. REALICE LAS PRUEBAS DE VALIDEZ POR MEDIO DEL P VALOR 'SIG'\n")
## e. REALICE LAS PRUEBAS DE VALIDEZ POR MEDIO DEL P VALOR 'SIG'
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
print(res_ast$coefficients[,4])
##   (Intercept) embarcaciones  reparaciones 
##     0.3278056     0.5411080     0.3453411
cat("ANÁLISIS: Se validan los coeficientes. Si el P-valor es < 0.05, la \nvariable es un predictor significativo para el empleo.\n\n")
## ANÁLISIS: Se validan los coeficientes. Si el P-valor es < 0.05, la 
## variable es un predictor significativo para el empleo.
# c (bis). Pronóstico específico
cat("c. PRONÓSTICO (115 embarcaciones y 900 reparaciones)\n")
## c. PRONÓSTICO (115 embarcaciones y 900 reparaciones)
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
nuevo <- data.frame(embarcaciones = 115, reparaciones = 900)
pred <- predict(modelo_ast, nuevo)
cat("El empleo generado estimado es de:", round(pred, 2), "mil personas.\n\n")
## El empleo generado estimado es de: 142.89 mil personas.
# f. Analice los resultados
cat("f. ANALICE LOS RESULTADOS OBTENIDOS\n")
## f. ANALICE LOS RESULTADOS OBTENIDOS
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
cat("1. El modelo presenta un ajuste estadístico de alto nivel (R^2 > 0.90).\n")
## 1. El modelo presenta un ajuste estadístico de alto nivel (R^2 > 0.90).
cat("2. La construcción de barcos y las reparaciones son variables que \n")
## 2. La construcción de barcos y las reparaciones son variables que
cat("   explican de forma conjunta el comportamiento de la nómina.\n")
##    explican de forma conjunta el comportamiento de la nómina.
cat("3. Se recomienda validar estos resultados con una muestra mayor a 7 años \n")
## 3. Se recomienda validar estos resultados con una muestra mayor a 7 años
cat("   para asegurar la estabilidad de los coeficientes a largo plazo.\n")
##    para asegurar la estabilidad de los coeficientes a largo plazo.
cat("==========================================================\n")
## ==========================================================
# --- GENERACIÓN DE GRÁFICOS DE VALIDACIÓN ---
par(mfrow=c(2,2))
plot(modelo_ast)

# ==========================================================
# SOLUCIÓN: ESTUDIO DE EFECTIVIDAD DE LA VACUNA
# ==========================================================

# 1. CARGA DE DATOS (Representación de los 80 casos de la imagen)
# Tratamiento: 1=Sin vacuna, 2=Una vacuna, 3=Dos vacunas
# Incidencia: 1=Gripe, 2=Sin Gripe

datos_vacuna <- data.frame(
  tratamiento = c(2,1,1,3,1,3,1,2,3,2,1,1,2,1,1,3,1,2,1,1,2,3,1,2,2,1,3,1,3,1,
                  3,2,1,2,3,2,2,2,3,1,1,2,1,2,2,1,2,1,2,1,1,2,3,1,3,2,3,2,2,3,
                  1,1,2,1,1,2,1,3,2,1,1,2,3,1,3,2,1,1,2,3),
  incidencia = c(1,1,1,2,2,2,1,2,2,1,1,1,1,1,1,2,2,1,1,1,2,2,2,2,1,1,2,1,2,1,
                 1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,1,1,1,1,1,1,2,2,1,2,2,2,1,1,1,
                 1,2,2,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,1,2)
)

# 2. CREACIÓN DE TABLA DE CONTINGENCIA
tabla <- table(datos_vacuna$tratamiento, datos_vacuna$incidencia)
rownames(tabla) <- c("Sin Vacuna", "Una Vacuna", "Dos Vacunas")
colnames(tabla) <- c("Gripe", "Sin Gripe")

# 3. PRUEBA ESTADÍSTICA (Chi-cuadrado de Pearson)
prueba <- chisq.test(tabla)

# ==========================================================
# REPORTE DE RESULTADOS
# ==========================================================

cat("==========================================================\n")
## ==========================================================
cat("       REPORTE: EFECTIVIDAD DE LA VACUNA CONTRA GRIPE     \n")
##        REPORTE: EFECTIVIDAD DE LA VACUNA CONTRA GRIPE
cat("==========================================================\n\n")
## ==========================================================
cat("TABLA DE FRECUENCIAS OBSERVADAS:\n")
## TABLA DE FRECUENCIAS OBSERVADAS:
print(tabla)
##              
##               Gripe Sin Gripe
##   Sin Vacuna     29         5
##   Una Vacuna     15        13
##   Dos Vacunas     3        15
cat("\n")
cat("RESULTADOS DE LA PRUEBA CHI-CUADRADO:\n")
## RESULTADOS DE LA PRUEBA CHI-CUADRADO:
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
cat("Estadístico X-squared:", round(prueba$statistic, 4), "\n")
## Estadístico X-squared: 23.3491
cat("Grados de libertad:", prueba$parameter, "\n")
## Grados de libertad: 2
cat("P-valor (Sig):", prueba$p.value, "\n\n")
## P-valor (Sig): 8.507607e-06
cat("ANÁLISIS DE RESULTADOS:\n")
## ANÁLISIS DE RESULTADOS:
cat("----------------------------------------------------------\n")
## ----------------------------------------------------------
if(prueba$p.value < 0.05) {
  cat("CONCLUSIÓN: El P-valor es MENOR a 0.05. Se rechaza la hipótesis nula.\n")
  cat("Existe evidencia suficiente para indicar que la vacuna tuvo ÉXITO.\n")
  cat("El número de casos de gripe DEPENDE del nivel de vacunación.\n")
} else {
  cat("CONCLUSIÓN: El P-valor es MAYOR a 0.05. No se rechaza la hipótesis nula.\n")
  cat("No hay evidencia suficiente para decir que la vacuna redujo los casos.\n")
}
## CONCLUSIÓN: El P-valor es MENOR a 0.05. Se rechaza la hipótesis nula.
## Existe evidencia suficiente para indicar que la vacuna tuvo ÉXITO.
## El número de casos de gripe DEPENDE del nivel de vacunación.
cat("==========================================================\n")
## ==========================================================
# visualización simple
barplot(tabla, beside = TRUE, legend = TRUE, 
        main = "Efectividad de la Vacuna",
        col = c("red", "orange", "green"),
        args.legend = list(x = "topright"))