# Datos
gasto_publicidad <- c(2, 3, 5, 7, 8, 10, 11, 12, 14, 15)
ventas <- c(4, 5, 7, 10, 11, 14, 15, 16, 18, 20)
# Crear un data frame
datos <- data.frame(gasto_publicidad, ventas)
# Ajustar el modelo de regresión lineal
modelo <- lm(ventas ~ gasto_publicidad, data = datos)
# Resumen del modelo
resumen_modelo <- summary(modelo)
print(resumen_modelo)
##
## Call:
## lm(formula = ventas ~ gasto_publicidad, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.50361 -0.11813 0.04026 0.21058 0.40478
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.32426 0.22977 5.764 0.000422 ***
## gasto_publicidad 1.22710 0.02374 51.697 2.17e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3185 on 8 degrees of freedom
## Multiple R-squared: 0.997, Adjusted R-squared: 0.9966
## F-statistic: 2673 on 1 and 8 DF, p-value: 2.172e-11
# Coeficientes del modelo
coeficientes <- resumen_modelo$coefficients
print(coeficientes)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.324264 0.22976548 5.763548 4.223900e-04
## gasto_publicidad 1.227096 0.02373641 51.696790 2.171882e-11
# \(R^2\) del modelo
r_cuadrado <- resumen_modelo$r.squared
print(r_cuadrado)
## [1] 0.9970155
# Predicciones
predicciones <- predict(modelo, newdata = datos)
# Calcular los residuos
residuos <- datos$ventas - predicciones
# Tabla de valores observados, predichos y residuos
tabla_resultados <- data.frame(
Gasto_Publicidad = datos$gasto_publicidad,
Ventas_Actuales = datos$ventas,
Ventas_Predichas = predicciones,
Residuos = residuos
)
print(tabla_resultados)
## Gasto_Publicidad Ventas_Actuales Ventas_Predichas Residuos
## 1 2 4 3.778456 0.221543587
## 2 3 5 5.005552 -0.005552471
## 3 5 7 7.459745 -0.459744586
## 4 7 10 9.913937 0.086063298
## 5 8 11 11.141033 -0.141032760
## 6 10 14 13.595225 0.404775125
## 7 11 15 14.822321 0.177679067
## 8 12 16 16.049417 -0.049416991
## 9 14 18 18.503609 -0.503609106
## 10 15 20 19.730705 0.269294836
# Prueba Chi-cuadrado para bondad de ajuste
observed <- datos$ventas
expected <- predicciones
chi_squared <- sum((observed - expected)^2 / expected)
print(chi_squared)
## [1] 0.07557818
# Grados de libertad (número de observaciones - número de parámetros estimados)
df <- length(observed) - 2
p_value <- pchisq(chi_squared, df, lower.tail = FALSE)
print(p_value)
## [1] 0.9999999
# Visualización
plot(datos$gasto_publicidad, datos$ventas, main = "Regresión Lineal Simple",
xlab = "Gasto en Publicidad (miles de dólares)", ylab = "Ventas (miles de dólares)",
pch = 19, col = "blue")
abline(modelo, col = "red")
# Mostrar los coeficientes del modelo y el \(R^2\)
print(paste("Intercepto:", coeficientes[1, 1]))
## [1] "Intercepto: 1.32426429761243"
print(paste("Pendiente:", coeficientes[2, 1]))
## [1] "Pendiente: 1.2270960577457"
print(paste("R^2:", r_cuadrado))
## [1] "R^2: 0.997015546918379"
Hipótesis nula (H0): La distribución de administradores es homogénea en todos los departamentos.
Hipótesis alternativa (H1): La distribución de administradores no es homogénea en todos los departamentos.
# Datos observados
observado <- c(25, 30, 20, 25)
# Datos esperados
esperado <- c(25, 25, 25, 25)
# Realizar la prueba Chi-cuadrado
chi_cuadrado <- sum((observado - esperado)^2 / esperado)
# Grados de libertad
grados_libertad <- length(observado) - 1
# Valor crítico al 5% de significancia
valor_critico <- qchisq(0.95, grados_libertad)
# Resultado de la prueba
resultado <- ifelse(chi_cuadrado > valor_critico, "Rechazar H0", "No Rechazar H0")
# Mostrar resultados
resultado
## [1] "No Rechazar H0"
chi_cuadrado
## [1] 2
grados_libertad
## [1] 3
valor_critico
## [1] 7.814728