#Medios que usan negocios como marketing
Contexto:
##Analisis Exploratorio
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
datos <- read.csv("Base_marketing.csv")
head(datos)
## Estrategia Inversion Conversiones Impacto
## 1 SEO 24425.76 489 0.23
## 2 SEO 38382.77 99 0.30
## 3 Redes Sociales 26007.83 262 0.59
## 4 Email Marketing 48328.58 429 0.75
## 5 Publicidad TV 16902.05 437 0.74
## 6 Publicidad TV 35587.91 236 0.70
La base de datos consiste en que tanto impacto tiene el marketing
dim(datos)
## [1] 100 4
###Resumen Estadistico
# Resumen estadístico de las variables numéricas
summary(datos)
## Estrategia Inversion Conversiones Impacto
## Length:100 Min. : 5062 Min. : 51.0 Min. :0.1100
## Class :character 1st Qu.:18409 1st Qu.:155.5 1st Qu.:0.3000
## Mode :character Median :28834 Median :270.5 Median :0.5300
## Mean :28582 Mean :272.3 Mean :0.5377
## 3rd Qu.:40271 3rd Qu.:394.2 3rd Qu.:0.7325
## Max. :49850 Max. :496.0 Max. :0.9800
De acuerdo a lo anterior podemos observar que las inversiones en marketing oscilan entre 5062 y 49850
library(ggplot2)
ggplot(datos, aes( x=Estrategia, y=Inversion, fill=Estrategia))+ geom_boxplot() +labs()
labs(title = "Distribución de Inversion por estrategia",
x = "Estrategia",
y = "Inversion")+
theme_minimal()
## NULL
ggplot(datos, aes(x = Inversion, y = Impacto, color = Estrategia)) +
geom_point() +
theme_minimal()
ggplot(datos, aes(x = Estrategia, y = Inversion, fill = Estrategia)) +
stat_summary(fun = mean, geom = "bar") +
theme_minimal()
ggplot(datos, aes(x = Estrategia, y = Inversion, color = Impacto)) +
geom_jitter(width = 0.2, alpha = 0.7) +
theme_minimal()
Parte 2: estimaciones estadisticas 1. Estimación de la Media
# Estimación de la Media y el Intervalo de Confianza al 95%
library(dplyr)
# Media muestral
media_muestral <- mean(datos$Inversion, na.rm = TRUE)
# Intervalo de confianza al 95%
ic <- t.test(datos$Inversion, conf.level = 0.95)$conf.int
# Mostrar resultados
cat("La media muestral de las inversiones es:", round(media_muestral, 2), "\n")
## La media muestral de las inversiones es: 28581.98
cat("El intervalo de confianza al 95% para la media poblacional está entre:",
round(ic[1], 2), "y", round(ic[2], 2))
## El intervalo de confianza al 95% para la media poblacional está entre: 25948.46 y 31215.49
# Crear una variable binaria: 1 = Satisfactorio (Impacto >= 0.5), 0 = No satisfactorio (Impacto < 0.5)
datos$Satisfaccion <- ifelse(datos$Impacto >= 0.5, 1, 0)
# Calcular la proporción muestral
num_satisfechos <- sum(datos$Satisfaccion)
n <- nrow(datos)
p <- num_satisfechos / n
# Calcular el error estándar e intervalo de confianza
error_p <- qnorm(0.975) * sqrt((p * (1 - p)) / n)
IC_p <- c(p - error_p, p + error_p)
# Mostrar resultados
cat("Número de clientes satisfechos:", num_satisfechos, "\n")
## Número de clientes satisfechos: 55
cat("Tamaño de la muestra (n):", n, "\n")
## Tamaño de la muestra (n): 100
cat("Proporción muestral de clientes satisfechos:", round(p, 4), "\n")
## Proporción muestral de clientes satisfechos: 0.55
cat("Intervalo de confianza (95%) de la población de clientes satisfechos está entre:",
round(IC_p[1], 4), "y", round(IC_p[2], 4), "\n")
## Intervalo de confianza (95%) de la población de clientes satisfechos está entre: 0.4525 y 0.6475
# Seleccionar la variable a analizar (ejemplo: 'Inversion')
varianza_muestral <- var(datos$Inversion)
n <- nrow(datos)
# Cálculo del intervalo de confianza para la varianza
alpha <- 0.05
chi_inf <- qchisq(1 - alpha/2, df = n - 1) # Límite inferior
chi_sup <- qchisq(alpha/2, df = n - 1) # Límite superior
IC_varianza <- c((n - 1) * varianza_muestral / chi_inf,
(n - 1) * varianza_muestral / chi_sup)
# Resultados
cat("Varianza muestral:", round(varianza_muestral, 4), "\n")
## Varianza muestral: 176154630
cat("Intervalo de confianza (95%) para la varianza:", round(IC_varianza[1], 4), "a", round(IC_varianza[2], 4), "\n")
## Intervalo de confianza (95%) para la varianza: 135796903 a 237718805
# Definir los grupos
datos_A <- subset(datos, Estrategia == "SEO")$Inversion
datos_B <- subset(datos, Estrategia == "Redes Sociales")$Inversion
# Calcular estadísticas básicas
media_A <- mean(datos_A)
media_B <- mean(datos_B)
sd_A <- sd(datos_A) # Desviación estándar muestral
sd_B <- sd(datos_B)
n_A <- length(datos_A)
n_B <- length(datos_B)
# Diferencia de medias
diff_medias <- media_A - media_B
# Error estándar de la diferencia
error_diff <- sqrt((sd_A^2 / n_A) + (sd_B^2 / n_B))
# Grados de libertad de Welch
df_welch <- ((sd_A^2 / n_A + sd_B^2 / n_B)^2) /
(((sd_A^2 / n_A)^2) / (n_A - 1) + ((sd_B^2 / n_B)^2) / (n_B - 1))
# Valor crítico t para un IC del 95%
t_critico <- qt(0.975, df = df_welch)
# Intervalo de confianza
IC_inf <- diff_medias - t_critico * error_diff
IC_sup <- diff_medias + t_critico * error_diff
# Mostrar resultados
cat("Media de inversión en SEO:", round(media_A, 2), "\n")
## Media de inversión en SEO: 24554.8
cat("Media de inversión en Redes Sociales:", round(media_B, 2), "\n")
## Media de inversión en Redes Sociales: 23387.98
cat("Diferencia de medias:", round(diff_medias, 2), "\n")
## Diferencia de medias: 1166.82
cat("Intervalo de confianza (95%) para la diferencia de medias:",
round(IC_inf, 2), "a", round(IC_sup, 2), "\n")
## Intervalo de confianza (95%) para la diferencia de medias: -6888.02 a 9221.66
# Definir los grupos
datos_A <- subset(datos, Estrategia == "SEO")
datos_B <- subset(datos, Estrategia == "Redes Sociales")
# Total de intentos (aproximado con la inversión total)
total_intentos_A <- sum(datos_A$Inversion)
total_intentos_B <- sum(datos_B$Inversion)
# Éxitos: número total de conversiones
exitos_A <- sum(datos_A$Conversiones)
exitos_B <- sum(datos_B$Conversiones)
# Proporciones de éxito
p_A <- exitos_A / total_intentos_A
p_B <- exitos_B / total_intentos_B
# Diferencia de proporciones
diff_prop <- p_A - p_B
# Error estándar
error_diff_prop <- sqrt((p_A * (1 - p_A) / total_intentos_A) + (p_B * (1 - p_B) / total_intentos_B))
# Valor crítico z para 95%
z_critico <- qnorm(0.975)
# Intervalo de confianza
IC_inf_prop <- diff_prop - z_critico * error_diff_prop
IC_sup_prop <- diff_prop + z_critico * error_diff_prop
# Mostrar resultados
cat("Proporción de éxito en SEO:", round(p_A, 4), "\n")
## Proporción de éxito en SEO: 0.0107
cat("Proporción de éxito en Redes Sociales:", round(p_B, 4), "\n")
## Proporción de éxito en Redes Sociales: 0.011
cat("Diferencia de proporciones:", round(diff_prop, 4), "\n")
## Diferencia de proporciones: -3e-04
cat("Intervalo de confianza (95%):", round(IC_inf_prop, 4), "a", round(IC_sup_prop, 4), "\n")
## Intervalo de confianza (95%): -7e-04 a 1e-04
# Definir los grupos
datos_A <- subset(datos, Estrategia == "SEO")$Inversion
datos_B <- subset(datos, Estrategia == "Redes Sociales")$Inversion
# Calcular varianzas muestrales
var_A <- var(datos_A)
var_B <- var(datos_B)
# Razón de varianzas (F)
F_stat <- var_A / var_B
# Grados de libertad
df_A <- length(datos_A) - 1
df_B <- length(datos_B) - 1
# Intervalo de confianza usando distribución F
alpha <- 0.05 # Nivel de significancia para 95%
F_inf <- qf(alpha / 2, df_A, df_B) # Límite inferior
F_sup <- qf(1 - alpha / 2, df_A, df_B) # Límite superior
# Intervalo de confianza para la razón de varianzas
IC_inf_var <- F_stat / F_sup
IC_sup_var <- F_stat / F_inf
# Mostrar resultados
cat("Varianza en SEO:", round(var_A, 2), "\n")
## Varianza en SEO: 182711504
cat("Varianza en Redes Sociales:", round(var_B, 2), "\n")
## Varianza en Redes Sociales: 150651962
cat("Razón de varianzas (F):", round(F_stat, 3), "\n")
## Razón de varianzas (F): 1.213
cat("Intervalo de confianza (95%) para la razón de varianzas:",
round(IC_inf_var, 3), "a", round(IC_sup_var, 3), "\n")
## Intervalo de confianza (95%) para la razón de varianzas: 0.492 a 2.989
Pruebas de hipotesis en R
mu_hipotetico <- 10000
prueba_media <- t.test(datos$Inversion, mu = mu_hipotetico)
print(prueba_media)
##
## One Sample t-test
##
## data: datos$Inversion
## t = 14.001, df = 99, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 10000
## 95 percent confidence interval:
## 25948.46 31215.49
## sample estimates:
## mean of x
## 28581.98
if (prueba_media$p.value < 0.05) {
cat("Rechazamos H0: la media es significativamente diferente de", mu_hipotetico, "\n")
} else {
cat("No se rechaza H0: no hay evidencia suficiente para decir que la media es diferente de", mu_hipotetico, "\n")
}
## Rechazamos H0: la media es significativamente diferente de 10000
p_esperado <- 0.5
exitos <- sum(datos$Satisfaccion)
n <- length(datos$Satisfaccion)
prueba_prop <- prop.test(x = exitos, n = n, p = p_esperado, alternative = "two.sided", correct = FALSE)
print(prueba_prop)
##
## 1-sample proportions test without continuity correction
##
## data: exitos out of n, null probability p_esperado
## X-squared = 1, df = 1, p-value = 0.3173
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.4524460 0.6438546
## sample estimates:
## p
## 0.55
if (prueba_prop$p.value < 0.05) {
cat("Se rechaza H0: la proporción es significativamente diferente de", p_esperado, "\n")
} else {
cat("No se rechaza H0: no hay evidencia suficiente para afirmar que la proporción difiere de", p_esperado, "\n")
}
## No se rechaza H0: no hay evidencia suficiente para afirmar que la proporción difiere de 0.5
# Hipótesis:
# H0: La varianza es igual al valor esperado (ej. 5,000,000)
# H1: La varianza es diferente
# Valor hipotético de varianza
var_esperada <- 5000000
# Datos
inversiones <- datos$Inversion
n <- length(inversiones)
var_muestral <- var(inversiones)
# Estadístico de prueba (chi-cuadrado)
chi_squared <- (n - 1) * var_muestral / var_esperada
# Valor p bilateral
p_valor <- 2 * min(
pchisq(chi_squared, df = n - 1, lower.tail = TRUE),
pchisq(chi_squared, df = n - 1, lower.tail = FALSE)
)
# Resultados
cat("Varianza muestral:", round(var_muestral, 2), "\n")
## Varianza muestral: 176154630
cat("Chi-cuadrado:", round(chi_squared, 3), "\n")
## Chi-cuadrado: 3487.862
cat("Valor p:", round(p_valor, 4), "\n")
## Valor p: 0
if (p_valor < 0.05) {
cat("Conclusión: Se rechaza H0. La varianza es significativamente diferente de", var_esperada, "\n")
} else {
cat("Conclusión: No se rechaza H0. No hay evidencia suficiente para decir que la varianza difiere de", var_esperada, "\n")
}
## Conclusión: Se rechaza H0. La varianza es significativamente diferente de 5e+06
# Hipótesis:
# H0: Las medias son iguales (µ1 = µ2)
# H1: Las medias son diferentes (µ1 ≠ µ2)
# Extraer los grupos
inversion_SEO <- subset(datos, Estrategia == "SEO")$Inversion
inversion_RS <- subset(datos, Estrategia == "Redes Sociales")$Inversion
# Prueba t de Student para muestras independientes
# Se asume igualdad de varianzas por defecto, pero se puede usar var.equal = FALSE si no lo deseas
prueba_t <- t.test(inversion_SEO, inversion_RS, var.equal = TRUE)
# Resultados
cat("Media SEO:", mean(inversion_SEO), "\n")
## Media SEO: 24554.8
cat("Media Redes Sociales:", mean(inversion_RS), "\n")
## Media Redes Sociales: 23387.98
cat("Estadístico t:", round(prueba_t$statistic, 3), "\n")
## Estadístico t: 0.293
cat("Grados de libertad:", round(prueba_t$parameter, 2), "\n")
## Grados de libertad: 40
cat("Valor p:", round(prueba_t$p.value, 4), "\n")
## Valor p: 0.7711
# Conclusión
if (prueba_t$p.value < 0.05) {
cat("Conclusión: Se rechaza H0. Existe una diferencia significativa en la media de inversión entre las dos estrategias.\n")
} else {
cat("Conclusión: No se rechaza H0. No hay evidencia suficiente de diferencia significativa en las medias.\n")
}
## Conclusión: No se rechaza H0. No hay evidencia suficiente de diferencia significativa en las medias.
# Hipótesis:
# H0: p_A - p_B = 0 (no hay diferencia en proporciones)
# H1: p_A - p_B ≠ 0 (hay diferencia en proporciones)
# Proporciones ya calculadas previamente
# exitos_A, exitos_B, total_intentos_A, total_intentos_B
# p_A, p_B
# Proporción combinada (p pooled)
p_combinada <- (exitos_A + exitos_B) / (total_intentos_A + total_intentos_B)
# Error estándar combinado
error_combinado <- sqrt(p_combinada * (1 - p_combinada) * (1 / total_intentos_A + 1 / total_intentos_B))
# Estadístico Z
z <- (p_A - p_B) / error_combinado
# Valor p
p_valor <- 2 * (1 - pnorm(abs(z)))
# Mostrar resultados
cat("Estadístico Z:", round(z, 3), "\n")
## Estadístico Z: -1.427
cat("Valor p:", round(p_valor, 4), "\n")
## Valor p: 0.1535
# Evaluación
if(p_valor < 0.05){
cat("Conclusión: Se rechaza H0. Hay una diferencia significativa entre las proporciones.\n")
} else {
cat("Conclusión: No se rechaza H0. No hay evidencia suficiente de diferencia significativa.\n")
}
## Conclusión: No se rechaza H0. No hay evidencia suficiente de diferencia significativa.
# Hipótesis:
# H0: σ²_A = σ²_B (las varianzas son iguales)
# H1: σ²_A ≠ σ²_B (las varianzas son diferentes)
# Extraer los datos de los dos grupos
inversion_SEO <- subset(datos, Estrategia == "SEO")$Inversion
inversion_RS <- subset(datos, Estrategia == "Redes Sociales")$Inversion
# Calcular varianzas muestrales
var_SEO <- var(inversion_SEO)
var_RS <- var(inversion_RS)
# Grados de libertad
df_SEO <- length(inversion_SEO) - 1
df_RS <- length(inversion_RS) - 1
# Estadístico F
F_estadistico <- var_SEO / var_RS
# Valor p (bilateral)
p_valor_f <- 2 * min(
pf(F_estadistico, df_SEO, df_RS, lower.tail = TRUE),
pf(F_estadistico, df_SEO, df_RS, lower.tail = FALSE)
)
# Mostrar resultados
cat("Varianza SEO:", round(var_SEO, 2), "\n")
## Varianza SEO: 182711504
cat("Varianza Redes Sociales:", round(var_RS, 2), "\n")
## Varianza Redes Sociales: 150651962
cat("Estadístico F:", round(F_estadistico, 3), "\n")
## Estadístico F: 1.213
cat("Grados de libertad SEO:", df_SEO, " - Redes Sociales:", df_RS, "\n")
## Grados de libertad SEO: 20 - Redes Sociales: 20
cat("Valor p:", round(p_valor_f, 4), "\n")
## Valor p: 0.6703
# Evaluación
if (p_valor_f < 0.05) {
cat("Conclusión: Se rechaza H0. Las varianzas son significativamente diferentes.\n")
} else {
cat("Conclusión: No se rechaza H0. No hay evidencia de diferencia significativa en varianzas.\n")
}
## Conclusión: No se rechaza H0. No hay evidencia de diferencia significativa en varianzas.