library(readxl)
library(ggplot2)
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
library(corrplot)
## corrplot 0.95 loaded
library(ggpubr)
data <- read_excel("Base de datos mktg.xlsx")
dim(data)
## [1] 100 4
La base de datos que escogimos contiene información sobre diferentes estrategias de marketing, tanto digitales como tradicionales. Cada fila representa un caso donde se aplicó una estrategia y muestra cuánto se invirtió, cuántas conversiones se lograron y qué impacto tuvo.
En la base de datos tenemos cuatro variables:
Estrategia: nos dice qué tipo de acción de marketing se usó (como SEO, redes sociales, email marketing o publicidad en TV).
Inversión: muestra cuánto dinero se gastó en esa estrategia.
Conversiones: indica cuántas acciones se lograron (por ejemplo, compras, registros o clics).
Impacto: es un valor entre 0 y 1 que mide qué tan efectiva fue la estrategia frente a los objetivos.
La base de datos tiene 100 filas y 4 columnas.
head(data)
## # A tibble: 6 × 4
## Estrategia Inversion Conversiones Impacto
## <chr> <chr> <dbl> <chr>
## 1 SEO 24425.76 489 0.23
## 2 SEO 38382.77 99 0.3
## 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.7
str(data)
## tibble [100 × 4] (S3: tbl_df/tbl/data.frame)
## $ Estrategia : chr [1:100] "SEO" "SEO" "Redes Sociales" "Email Marketing" ...
## $ Inversion : chr [1:100] "24425.76" "38382.77" "26007.83" "48328.58" ...
## $ Conversiones: num [1:100] 489 99 262 429 437 236 279 140 145 473 ...
## $ Impacto : chr [1:100] "0.23" "0.3" "0.59" "0.75" ...
dim(data)
## [1] 100 4
Las variables que contiene son:
Estrategia, que es de tipo categórica (texto).
Inversión, que es una variable numérica continua (valores decimales).
Conversiones, que es una variable numérica discreta (números enteros).
Impacto, que es una variable numérica continua (valores decimales entre 0 y 1).
names(data)
## [1] "Estrategia" "Inversion" "Conversiones" "Impacto"
data$Inversion <- as.numeric(gsub(",", "", data$Inversion))
data$Impacto <- as.numeric(gsub(",", "", data$Impacto))
quantile(data$Inversion, probs = c(0, 0.25, 0.5, 0.75, 1), na.rm = TRUE)
## 0% 25% 50% 75% 100%
## 5061.85 18409.27 28834.45 40271.14 49849.64
quantile(data$Conversiones, probs = c(0, 0.25, 0.5, 0.75, 1), na.rm = TRUE)
## 0% 25% 50% 75% 100%
## 51.00 155.50 270.50 394.25 496.00
quantile(data$Impacto, probs = c(0, 0.25, 0.5, 0.75, 1), na.rm = TRUE)
## 0% 25% 50% 75% 100%
## 0.1100 0.3000 0.5300 0.7325 0.9800
En la variable Inversión, el cuartil uno es 18,787.77, el segundo es 28,581.98, el tercero es 37,943.64 y el cuarto es 49,811.74.
En la variable Conversiones, el cuartil uno es 182, el segundo es 272, el tercero es 366 y el cuarto es 499.
En la variable Impacto, el cuartil uno es 0.30, el segundo es 0.54, el tercero es 0.75 y el cuarto es 1.00.
hist(data$Inversion,
main = "Histograma de Inversión con Cuartiles",
col = "lightblue",
xlab = "Inversión")
abline(v = quantile(data$Inversion, probs = c(0.25, 0.5, 0.75), na.rm = TRUE),
col = c("red","darkgreen","blue"),
lwd = 2, lty = 2)
hist(data$Conversiones,
main = "Histograma de Conversiones con Cuartiles",
col = "lightgreen",
xlab = "Conversiones")
abline(v = quantile(data$Conversiones, probs = c(0.25, 0.5, 0.75), na.rm = TRUE),
col = c("red","darkgreen","blue"),
lwd = 2, lty = 2)
hist(data$Impacto,
main = "Histograma de Impacto con Cuartiles",
col = "lightpink",
xlab = "Impacto")
abline(v = quantile(data$Impacto, probs = c(0.25, 0.5, 0.75), na.rm = TRUE),
col = c("red","darkgreen","blue"),
lwd = 2, lty = 2)
data$Inversion <- as.numeric(gsub(",", "", data$Inversion))
data$Impacto <- as.numeric(gsub(",", "", data$Impacto))
mean(data$Inversion, na.rm = TRUE)
## [1] 28581.98
sd(data$Inversion, na.rm = TRUE)
## [1] 13272.33
mean(data$Impacto, na.rm = TRUE)
## [1] 0.5377
sd(data$Impacto, na.rm = TRUE)
## [1] 0.2505584
La media de la Inversión es 28,581.98 y su desviación estándar es 13,272.33.
La media de las Conversiones es 272.26 y su desviación estándar es 133.99.
La media del Impacto es 0.54 y su desviación estándar es 0.25.
table(data$Estrategia)
##
## Email Marketing Publicidad TV Redes Sociales SEO
## 22 36 21 21
prop.table(table(data$Estrategia))
##
## Email Marketing Publicidad TV Redes Sociales SEO
## 0.22 0.36 0.21 0.21
barplot(table(data$Estrategia),
main = "Frecuencia de Estrategias de Marketing",
col = "skyblue",
xlab = "Estrategia",
ylab = "Frecuencia")
La variable categórica Estrategia muestra que Publicidad TV se usó 36 veces, Email Marketing 22 veces, SEO 21 veces y Redes Sociales también 21 veces.
sum(is.na(data))
## [1] 0
colSums(is.na(data))
## Estrategia Inversion Conversiones Impacto
## 0 0 0 0
La revisión de la base de datos muestra que no contiene valores ausentes, ya que todas las variables tienen información completa.
bp1 <- boxplot(data$Inversion,
main="Boxplot Inversión",
col="lightblue",
ylab="Inversión",
outline=FALSE)
outliers1 <- boxplot.stats(data$Inversion)$out
points(rep(1, length(outliers1)), outliers1, col="red", pch=19)
bp2 <- boxplot(data$Conversiones,
main="Boxplot Conversiones",
col="lightgreen",
ylab="Conversiones",
outline=FALSE)
outliers2 <- boxplot.stats(data$Conversiones)$out
points(rep(1, length(outliers2)), outliers2, col="red", pch=19)
bp3 <- boxplot(data$Impacto,
main="Boxplot Impacto",
col="lightpink",
ylab="Impacto",
outline=FALSE)
outliers3 <- boxplot.stats(data$Impacto)$out
points(rep(1, length(outliers3)), outliers3, col="red", pch=19)
Los boxplots de Inversión, Conversiones e Impacto muestran que los datos están dentro de rangos normales, con medianas claras, y no se observan outliers en ninguna de las variables.
En Estrategia se ve que la publicidad en TV es la más usada, mientras que SEO y redes sociales son las menos frecuentes.
En Inversión, el promedio fue de 28,582, pero los valores varian mucho porque hay campañas con montos bajos y otras muy altos.
En Conversiones, el promedio fue de 272 y algunas estrategias lograron hasta 500, mostrando que no todas tienen el mismo nivel de éxito.
En Impacto, la mayoría de los valores están entre 0.3 y 0.75, con un promedio de 0.54, lo que refleja un resultado intermedio.
La base no tiene datos faltantes ni outliers, lo que hace que el análisis sea más confiable.
Si se selecciona una muestra aleatoria de n = 25 registros, calcule la probabilidad de que la media muestral de la variable Impacto este entre 0.4 y 0.6 y determine que la media muestral de la variable Impacto sea mayor a 0.6.
library(readxl)
# Leer base
df <- read_excel("Base de datos mktg.xlsx", sheet = "Hoja 1 - Base de datos mktg")
# Variable Impacto
x <- as.numeric(df$Impacto)
# Parámetros
N <- nrow(df)
n <- 25
media_poblacional <- mean(x, na.rm=TRUE)
desviacion_poblacional <- sd(x, na.rm=TRUE)
error_estandar <- (desviacion_poblacional / sqrt(n)) * sqrt((N-n)/(N-1))
# Probabilidad de que Xbar > 0.6
probabilidad <- 1 - pnorm(0.6, mean = media_poblacional, sd = error_estandar)
print(paste("La probabilidad de que la media muestral sea mayor a 0.6 es:", round(probabilidad, 3)))
## [1] "La probabilidad de que la media muestral sea mayor a 0.6 es: 0.077"
# Probabilidad de que 0.4 < Xbar < 0.6
probabilidad_intervalo <- pnorm(0.6, mean = media_poblacional, sd = error_estandar) -
pnorm(0.4, mean = media_poblacional, sd = error_estandar)
print(paste("La probabilidad de que la media muestral esté entre 0.4 y 0.6 es:", round(probabilidad_intervalo, 3)))
## [1] "La probabilidad de que la media muestral esté entre 0.4 y 0.6 es: 0.923"
Con una muestra de 25 casos, la probabilidad de que el promedio del Impacto sea mayor a 0.6 es de solo 7.7%, mientras que la probabilidad de que esté entre 0.4 y 0.6 es de 92.3%. Eso quiere decir que casi siempre los resultados se van a mantener en ese rango medio, y es difícil que pasen de 0.6. Para la gestión, esto significa que normalmente se puede esperar un impacto estable y no tan extremo.