title: “Análisis de Marketing Campaign Performance” author: “PAVEL TORRES” date: “2025-08-01” output: PDF

1. Introducción

En este análisis exploraremos un dataset real de Marketing Campaign Performance (más de 200000 registros y dos años de información sobre campañas, clics, conversiones, ingresos y ROI) :contentReferenceoaicite:1 El objetivo es aplicar análisis descriptivo, crear funciones estadísticas en R, y comparar resultados usando R Markdown para generar un reporte reproducible.

2. Librerías utilizadas

install.packages(“tinytex”) tinytex::install_tinytex() library(dplyr) library(ggplot2)

#CARGA DE DATOS PARA TALLER

datos <- read.csv("C:\\Users\\CEC\\Documents\\PAVEL_TORRES\\R\\datos_taller.csv", stringsAsFactors = FALSE)

summary(datos)
##   Campaign_ID       Company          Campaign_Type      Target_Audience   
##  Min.   :     1   Length:200000      Length:200000      Length:200000     
##  1st Qu.: 50001   Class :character   Class :character   Class :character  
##  Median :100001   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :100001                                                           
##  3rd Qu.:150000                                                           
##  Max.   :200000                                                           
##    Duration         Channel_Used       Conversion_Rate   Acquisition_Cost  
##  Length:200000      Length:200000      Min.   :0.01000   Length:200000     
##  Class :character   Class :character   1st Qu.:0.05000   Class :character  
##  Mode  :character   Mode  :character   Median :0.08000   Mode  :character  
##                                        Mean   :0.08007                     
##                                        3rd Qu.:0.12000                     
##                                        Max.   :0.15000                     
##       ROI          Location           Language             Clicks      
##  Min.   :2.000   Length:200000      Length:200000      Min.   : 100.0  
##  1st Qu.:3.500   Class :character   Class :character   1st Qu.: 325.0  
##  Median :5.010   Mode  :character   Mode  :character   Median : 550.0  
##  Mean   :5.002                                         Mean   : 549.8  
##  3rd Qu.:6.510                                         3rd Qu.: 775.0  
##  Max.   :8.000                                         Max.   :1000.0  
##   Impressions    Engagement_Score Customer_Segment       Date          
##  Min.   : 1000   Min.   : 1.000   Length:200000      Length:200000     
##  1st Qu.: 3266   1st Qu.: 3.000   Class :character   Class :character  
##  Median : 5518   Median : 5.000   Mode  :character   Mode  :character  
##  Mean   : 5507   Mean   : 5.495                                        
##  3rd Qu.: 7753   3rd Qu.: 8.000                                        
##  Max.   :10000   Max.   :10.000
#' Calcula la Media de un vector
#' @param a Vector numérico de valores
#' @return Media Normal 
media <- function(a) {
  resultado <- sum(a)/length(a)
  return(resultado)
}

#' Calcula la Media Ponderada de un vector
#' @param a Vector numérico de valores
#' @param b Vector numérico de pesos
#' @return Media Ponderada 
 media_pon <- function(a,b) {
   resultado <- sum(a*b)/sum(b)
   return(resultado)
 }


#' Calcula la Varianza de un vector
#' @param a Vector numérico de valores
#' @return Varianza
varianza <- function(a){
   resultado <- sum((a-media(a))^2)/(length(a) -1)
 }


#' Calcula la Desviación Estandar de un vector
#' @param a Vector numérico de valores
#' @return Desviación Estandar
desviacion <- function(a){
resultado <- sum((a-media(a))^2)/(length(a) -1)
}


library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
#MEDIA


datos_ventas <- datos |>
  dplyr::group_by(Company, Target_Audience) |>
  dplyr::summarise(total_clicks = sum(Clicks, na.rm = TRUE), .groups = "drop")
  media_general <- media(datos_ventas$total_clicks)
 # Crear gráfico de barras
ggplot(datos_ventas, aes(x = Company, y = total_clicks, fill = Target_Audience)) +
  geom_col(position = "dodge") +
  geom_hline(yintercept = media_general, linetype = "dashed", color = "red", size = 1) +
  labs(
    title = "Total de Clicks por Compañía y Audiencia",
    subtitle = paste("Media general:", round(media_general, 2)),
    x = "Compañía",
    y = "Total de Clicks",
    fill = "Audiencia"
  ) +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.