Este tutorial explica cómo realizar un Análisis de Componentes Principales (PCA) para campañas de Google Ads, Facebook Ads y TikTok Ads, utilizando métricas clave. He intentado explicar todos los procesos de manera sencilla desde la preparación de los datos hasta la interpretación de los resultados y recomendaciones finales.
Introducción al PCA
El PCA es una técnica estadística que:
- Reduce la dimensionalidad de los datos.
- Condensa múltiples métricas relacionadas en menos variables llamadas componentes principales ( PC ).
- Ayuda a identificar patrones en datos complejos.
En este tutorial, usaremos el PCA para analizar campañas publicitarias con el objetivo de:
- Simplificar el análisis de métricas publicitarias.
- Identificar campañas más eficientes.
- Optimizar la asignación de recursos publicitarios.
Métricas utilizadas
Se han cogido para el ejemplo una serie de métricas habituales en campañas publicitarias:
- Impresiones: Número de veces que se mostró el anuncio.
- Clics: Número de veces que los usuarios interactuaron con el anuncio.
- Conversiones: Número de compras u objetivos logrados.
- Coste (€): Inversión total realizada en la campaña.
- CTR (%): Tasa de clics, calculada como (Clics / Impresiones) * 100.
- CPA (€): Coste por adquisición, calculado como (Coste / Conversiones).
- ROAS: Retorno de la inversión en publicidad, calculado como (Ingresos / Coste).
- Duración (días): Número de días que duró la campaña.
- Conversion Rate (%): Porcentaje de clics que resultaron en conversiones, calculado como (Conversiones / Clics) * 100.
Para entender la metodología trabajaremos con un dataframe con valores ficticios asociados a estas métricas de campañas:
Campaña | Impresiones | Clics | Conversiones | Coste (€) | CTR (%) | CPA (€) | ROAS | Duración (días) | Conversion Rate (%) |
Google Ads 1 | 10,000 | 500 | 50 | 200 | 5 | 4 | 6 | 10 | 10 |
Facebook Ads 1 | 8,000 | 400 | 40 | 150 | 5 | 3.75 | 5 | 12 | 10 |
TikTok Ads 1 | 15,000 | 600 | 30 | 300 | 4 | 10 | 3 | 15 | 5 |
Google Ads 2 | 12,000 | 550 | 45 | 250 | 4.58 | 5.56 | 5.5 | 10 | 8.18 |
Facebook Ads 2 | 9,000 | 450 | 35 | 180 | 5 | 5.14 | 4.5 | 12 | 7.78 |
Análisis detallado en R
Para este tutorial usaremos R, un lenguaje de programación diseñado para el análisis estadístico, la visualización de datos y el desarrollo de modelos. Para que nos entendamos R es como un taller donde herramientas matemáticas y gráficas se combinan para explorar patrones, responder preguntas y presentar información de forma clara y efectiva. Así que pongámonos con ello!
Paso 1: Instalación de librerías
Asegúrate de instalar las librerías necesarias para este tutorial y cargarlas en este caso ggplot2 y factoextra:
# Instalar las librerías necesarias (solo si no están instaladas)
install.packages("ggplot2") # Para gráficos
install.packages("factoextra") # Para visualización del PCA
# Cargar las librerías
library(ggplot2)
library(factoextra)
Paso 2: Cargamos y preparamos los datos
Primero, creamos el dataframe en R con las métricas principales y a continuación normalizamos las métricas para que tengan igual peso. En este segundo proceso excluimos la columna Campaña ya que no es numérica.
# Crear el dataframe con métricas principales y secundarias
campanas <- data.frame(
Campaña = c("Google Ads 1", "Facebook Ads 1", "TikTok Ads 1", "Google Ads 2", "Facebook Ads 2"),
Impresiones = c(10000, 8000, 15000, 12000, 9000),
Clics = c(500, 400, 600, 550, 450),
Conversiones = c(50, 40, 30, 45, 35),
Coste = c(200, 150, 300, 250, 180),
CTR = c(5, 5, 4, 4.58, 5),
CPA = c(4, 3.75, 10, 5.56, 5.14),
ROAS = c(6, 5, 3, 5.5, 4.5), # Métrica principal adicional
Duración_días = c(10, 12, 15, 10, 12),
Conversion_Rate = c(10, 10, 5, 8.18, 7.78)
)
# Escalar las métricas (normalización)
# Excluimos la columna "Campaña" ya que no es numérica
campanas_scaled <- scale(campanas[, -1])
Paso 3: Calcular el PCA
Calculamos los componentes principales y examinamos el resumen.
# Calcular el PCA
pca_result <- prcomp(campanas_scaled, center = TRUE, scale. = TRUE)
# Ver el resumen del PCA
summary(pca_result)
Y esto nos arroja el siguiente resultado:
Importance of components:
PC1 PC2 PC3 PC4 PC5
Standard deviation 2.6590 1.3268 0.36456 0.19040 1.157e-16
Proportion of Variance 0.7856 0.1956 0.01477 0.00403 0.000e+00
Cumulative Proportion 0.7856 0.9812 0.99597 1.00000 1.000e+00
De lo que extraemos lo siguiente:
PC1 y PC2 explican el 98.2% de la información relevante.
- PC1 (Primer Componente Principal): Explica el 78.6% de la varianza total.
- PC2 (Segundo Componente Principal): Explica el 19.6% de la varianza total.
Siendo el resto de componentes prácticamente residuales.
Análisis de resultados y gráficas
Una vez obtenido el resultado pasaremos a su representación gráfica lo que nos facilitará el trabajo de interpretación y análisis.
Scree Plot – Varianza Explicada
El Scree Plot será el primer tipo de gráfico que obtendremos y muestra la proporción de varianza explicada por cada componente principal. Para ello usamos el siguiente fragmento de código.
# 1. Scree Plot
scree_plot <- fviz_eig(pca_result, addlabels = TRUE, barfill = "aquamarine", barcolor = "aquamarine4") +
ggtitle("Scree Plot - Varianza Explicada") +
theme_minimal(base_size = 14) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text = element_text(size = 12),
axis.title = element_text(size = 14)
)
# Mostramos el Scree Plot
print(scree_plot) # Mostrar el gráfico en la ventana interactiva
# Guardamos el Scree Plot
ggsave("scree_plot_adjusted.png", scree_plot, width = 8, height = 5)
Y el resultado es el siguiente:

Interpretación del Scree Plot:
Un scree plot se interpreta buscando el «codo» de la gráfica, que es como cuando una pendiente empinada de una montaña se aplana de golpe. Al principio, las barras o puntos caen bruscamente porque las primeras dimensiones (o componentes) explican mucha información o varianza. Luego, la caída se hace más lenta y plana, indicando que las siguientes dimensiones aportan muy poco.
Como ya intuíamos por los datos iniciales la gráfica nos viene a confirmar lo siguiente.
- PC1 y PC2: Juntos explican el 98.2% de la varianza total. Esto indica que estos dos componentes son suficientes para capturar la mayoría de la información relevante.
- Componentes Adicionales: PC3, PC4 y PC5 aportan información marginal y pueden descartarse del análisis.
Biplot – Relación entre métricas y campañas
El Biplot permite visualizar cómo las campañas se distribuyen en el espacio definido por los dos primeros componentes principales. Para obtenerlo usamos el siguiente fragmento de código.
# 2. Biplot
biplot <- fviz_pca_biplot(
pca_result,
repel = TRUE, # Evitar superposición de etiquetas
col.var = "goldenrod2", # Color de las variables (flechas)
col.ind = "aquamarine4", # Color de las observaciones (puntos)
label = "var", # Mostrar etiquetas de las variables
habillage = campanas$Campaña, # Usar Campañas para colores de grupos
palette = c("aquamarine4", "goldenrod2", "salmon3", "mediumorchid", "skyblue4") # Paleta de colores
) +
ggtitle("Biplot - Análisis de Campañas Publicitarias") +
theme_minimal(base_size = 14) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text = element_text(size = 12),
axis.title = element_text(size = 14)
)
# Mostrar el Biplot
print(biplot) # Mostrar el gráfico en la ventana interactiva
# Guardar el Biplot
ggsave("biplot_adjusted.png", biplot, width = 10, height = 7)
Y el resultado es el siguiente:

¿Como interpretaríamos este biplot? los iconos representan las campañas publicitarias y las flechas muestran las variables que influyen en ellas. Las campañas cercanas entre sí tienen comportamientos similares, mientras que las que están en la dirección de una flecha están más influenciadas por esa variable. Flechas largas indican variables con mayor variabilidad, pero si no están alineadas con los puntos (como «Duración_días«), su impacto real en las campañas es no será tan elevado.
Interpretación del Biplot:
- Ejes PC1 y PC2:
- PC1 (Dim1), en el eje horizontal, explica el 78.6% de la variabilidad de los datos. Se asocia principalmente con variables como Coste y CPA, que muestran diferencias significativas entre las campañas.
- PC2 (Dim2), en el eje vertical, explica el 19.6% de la variabilidad y está más relacionado con ROAS y Conversiones, indicando rendimiento en retorno y resultados.
- Google Ads 1 y Google Ads 2:
Estas campañas están posicionadas en la parte superior del gráfico, muy alineadas con «ROAS» y «Conversiones» en la dirección de PC2. Esto indica que tienen un buen rendimiento general, con un alto número de conversiones y un retorno positivo sobre la inversión. - Facebook Ads 1 y Facebook Ads 2:
Estas campañas están ubicadas hacia la parte inferior del gráfico, alineadas con «CTR» y «Duración días» pero en el caso de esta última variable no tiene una fuerte contribución al rendimiento general porque está alejada de otras métricas clave. - TikTok Ads 1:
Esta campaña se encuentra a la derecha del gráfico, muy cercana a las variables «Coste» y «CPA» en PC1. Esto indica que tiene altos costos y un elevado costo por adquisición, lo que refleja ineficiencia económica en comparación con las demás campañas.
En conjunto, PC1 se distingue principalmente por eficiencia económica (Coste y CPA), mientras que PC2 destaca el rendimiento en conversiones y retorno.
Si quisiéramos además ver en consola los datos numéricos añadiríamos:
# Varianza explicada por cada componente principal
cat("Varianza Explicada por cada Componente Principal:n")
print(pca_result$sdev^2 / sum(pca_result$sdev^2))
# Coordenadas de las Campañas en los dos primeros Componentes Principales
cat("nCoordenadas de las Campañas en los Componentes Principales (PC1 y PC2):n")
print(pca_result$x[, 1:2])
# Contribución de las Variables a los Componentes Principales
cat("nContribución de las Variables a los Componentes Principales (PC1 y PC2):n")
print(pca_result$rotation[, 1:2])
Obteniendo los siguientes resultados:

Conclusiones y recomendaciones
El análisis realizado proporciona una información para la toma de decisiones estratégicas, destacando tanto los puntos fuertes como las áreas de mejora de las campañas publicitarias analizadas. Estas son las principales conclusiones y recomendaciones basadas en los resultados del Scree Plot y el Biplot:
- Priorizar Google Ads (1 y 2):
- Estas campañas han mostrado el mejor rendimiento general, sobresaliendo en métricas como Conversiones, ROAS y CTR. También tienen un buen equilibrio en términos de coste por adquisición (CPA).
- Recomendación: Escalar estas campañas asignándoles un mayor presupuesto y manteniendo la optimización en sus creatividades y segmentaciones para maximizar el retorno de inversión (ROAS).
- Optimizar Facebook Ads (1 y 2):
- Estas campañas se encuentran en un punto medio en cuanto a rendimiento. Destacan por métricas como CTR y Duración, pero tienen margen de mejora en Conversiones y ROAS.
- Recomendación:
- Implementar estrategias de remarketing para incrementar Conversiones.
- Probar creatividades más atractivas o cambiar las segmentaciones para mejorar el ROAS.
- Analizar los costos operativos asociados para reducir CPA.
- Revisar TikTok Ads (1):
- Esta campaña ha mostrado el menor rendimiento en comparación con las demás, con un CPA elevado y un bajo ROAS. Aunque genera un alto número de Impresiones y Clics, no convierte eficazmente en Conversiones.
- Recomendación:
- Reevaluar la estrategia publicitaria en esta plataforma, centrándose en creatividades más alineadas con el público objetivo de TikTok.
- Optimizar la segmentación para alcanzar audiencias más relevantes.
- Si no hay mejoras en los resultados tras ajustes estratégicos, considerar reducir la inversión en TikTok y reasignarla a campañas más efectivas.
- Reforzar el análisis periódico:
- Este análisis es una fotografía en el tiempo; los resultados pueden cambiar con el tiempo o con nuevas estrategias publicitarias.
- Recomendación:
- Realizar un análisis PCA mensual o trimestral para identificar cambios en el rendimiento de las campañas y ajustar las estrategias en consecuencia.
- Implementar KPIs específicos para cada métrica clave identificada (ROAS, Conversiones, CPA) para monitorizar mejoras en tiempo real.
- Optimizar el presupuesto global:
- Los hallazgos del análisis sugieren que una reasignación estratégica del presupuesto podría maximizar el retorno general:
- Priorizar Google Ads, que tiene un mejor rendimiento general.
- Asignar parte del presupuesto a optimizar Facebook Ads, buscando un balance entre inversión y rendimiento.
- Reducir el presupuesto de TikTok Ads si no se observan mejoras significativas tras los ajustes sugeridos.
- Los hallazgos del análisis sugieren que una reasignación estratégica del presupuesto podría maximizar el retorno general:
Reflexión final sobre el uso del PCA y sus limitaciones
El Análisis de Componentes Principales (PCA) ha demostrado ser una herramienta muy práctica para simplificar la complejidad de los datos, ofreciendo una visión clara de cómo se relacionan las métricas con el rendimiento de las campañas publicitarias. Este enfoque permite identificar patrones subyacentes y tomar decisiones fundamentadas, como priorizar canales publicitarios o redefinir estrategias de marketing. Al reducir la dimensionalidad, el PCA resalta los aspectos esenciales y facilita la interpretación visual de datos multidimensionales.
Sin embargo, es importante considerar que el PCA no es una solución universal y presenta limitaciones que deben evaluarse cuidadosamente:
- Relaciones no lineales:
El PCA se fundamenta en transformaciones lineales entre variables. Cuando los datos presentan relaciones no lineales complejas (por ejemplo, interacciones no lineales entre comportamiento del usuario y tiempo), los resultados pueden ser superficiales o engañosos. - Interpretabilidad de los componentes:
Aunque el PCA identifica combinaciones de variables que explican la mayor varianza, estas componentes principales pueden ser abstracciones matemáticas de difícil interpretación directa. Se requiere un análisis complementario para traducir los hallazgos en estrategias operativas. - Sensibilidad a escalas:
El análisis puede estar sesgado si las variables no están adecuadamente normalizadas. Variables con magnitudes absolutas mayores (como «Coste total») podrían dominar la varianza, ocultando potencialmente contribuciones importantes de variables con escalas menores. - Limitaciones con datos no numéricos:
El PCA es óptimo para datos continuos y numéricos. La incorporación de variables categóricas o cualitativas (como tipo de audiencia o canal) requiere técnicas de preprocesamiento como codificación one-hot, - Dinamismo y estabilidad temporal:
El PCA proporciona una representación estática basada en los datos en un momento específico. En entornos dinámicos con rápida evolución de mercados o campañas, los resultados pueden perder relevancia rápidamente, lo que exige actualizaciones periódicas y análisis complementarios. - Factores externos no representados en los datos:
El PCA analiza únicamente las variables incluidas en el modelo, pero no considera factores externos que puedan influir en el rendimiento, como cambios en el mercado, eventos imprevistos o restricciones presupuestarias. Esto puede llevar a decisiones basadas en una visión incompleta del contexto.
Conclusión
El PCA es una herramienta estadística poderosa para descubrir estructuras subyacentes y reducir la complejidad dimensional en conjuntos de datos multivariados. Sin embargo, debe considerarse como un complemento metodológico, no como una solución definitiva. Para maximizar su valor, es crucial:
- Contextualizar los resultados.
- Considerar las limitaciones inherentes del método.
- Complementar con técnicas de análisis adicionales.
- Mantener una perspectiva crítica sobre las interpretaciones.
En esencia, el PCA representa un punto de partida analítico valioso, pero no puede sustituir el juicio estratégico ni el análisis personalizado adaptado a cada contexto específico.