In questo articolo:
L’analisi SEO e di web marketing ci presenta quasi sempre lo stesso problema: abbiamo troppe metriche e non sappiamo quali contano davvero. Volume di ricerca, CPC, concorrenza, CTR, frequenza di rimbalzo, tempo sulla pagina, conversioni per fonte, posizione media — l’elenco si allunga a ogni nuovo tool che aggiungiamo al nostro stack.
Il problema non è la mancanza di dati: è che queste metriche sono spesso correlate tra loro (più impressioni portano più click, che portano più conversioni, che aumentano i costi). Quando le variabili si muovono insieme, gran parte dell’informazione che contengono è ridondante. L’Analisi delle Componenti Principali (PCA) è lo strumento che abbiamo per tagliare questa ridondanza: riduce un set di molte variabili correlate a poche componenti non correlate che catturano la maggior parte dell’informazione originale.
In termini più chiari e diretti: la PCA trova le “direzioni” in cui i nostri dati variano di più, e ci permette di proiettare tutto il resto su quelle poche dimensioni. È come guardare un oggetto tridimensionale dalla sua angolazione più informativa invece che da un punto casuale.
Cos’è la PCA
Immaginiamo una città con molte strade interconnesse. La PCA agisce in modo simile a un sistema di pianificazione urbana che identifica le principali arterie di traffico. Concentrandosi su queste “strade principali”, otteniamo una visione chiara della struttura della città e dei suoi flussi, senza dover analizzare ogni singola via secondaria.
Nel contesto del web marketing e dell’analisi dei dati, la PCA si dimostra uno strumento potente per diverse ragioni. È efficace per visualizzare ed esplorare dataset ad alta dimensionalità, consentendo di identificare facilmente tendenze, modelli o valori anomali. Inoltre, viene comunemente impiegata nella fase di pre-elaborazione dei dati per algoritmi di machine learning, in quanto è in grado di estrarre le caratteristiche più informative da set di dati di grandi dimensioni, preservando le informazioni più rilevanti. Un ulteriore vantaggio è la sua capacità di *minimizzare o eliminare la multicollinearità e l’overfitting***, problemi frequenti in dataset di web marketing caratterizzati da numerose variabili potenzialmente correlate.
Una precisazione importante: la PCA non elimina alcune variabili mantenendone altre. Costruisce invece nuove variabili — le componenti principali — ottenute come combinazioni lineari delle variabili originali. Non è feature selection: è feature extraction. La differenza è sottile ma cruciale.
I fondamenti matematici
Per capire come funziona la PCA dobbiamo familiarizzare con alcuni concetti. Niente di spaventoso: li prendiamo uno alla volta.
Varianza e covarianza. La varianza misura quanto una variabile si disperde attorno alla sua media. La covarianza misura come due variabili si muovono insieme: positiva significa che tendono ad aumentare o diminuire assieme, negativa che si muovono in direzioni opposte. La PCA cerca direzioni (componenti) che massimizzano la varianza — perché più varianza significa più informazione.
La matrice di covarianza riassume le covarianze tra tutte le coppie di variabili. Sulla diagonale ha le varianze di ogni variabile, fuori diagonale le covarianze. È il punto di partenza della PCA.
Autovalori e autovettori. Qui arriva il cuore matematico. Le componenti principali non sono altro che gli autovettori della matrice di covarianza. Un autovettore individua una direzione nello spazio dei dati; l’autovalore associato dice quanta varianza cattura quella direzione.
La formula è semplice:
\( \Sigma \mathbf{v} = \lambda \mathbf{v} \\ \)dove \( \Sigma \) è la matrice di covarianza, \( \mathbf{v} \) è l’autovettore (la direzione della componente), e \( \lambda \) è l’autovalore (la varianza lungo quella direzione). Trovare le componenti principali significa risolvere questa equazione per \( \Sigma \).

La figura rende l’idea in modo immediato. I punti grigi sono due variabili correlate: al crescere di X, tende a crescere anche Y. La freccia rossa (PC1) è la direzione in cui i dati variano di più — è l’asse principale. La freccia verde (PC2) è ortogonale, cattura la varianza rimanente. È tutta qui l’idea geometrica della PCA: trovare gli assi che “spiegano” la maggior parte della variabilità dei dati.
Varianza spiegata. È la metrica che ci dice quanto vale ciascuna componente. La proporzione di varianza spiegata da una componente si calcola come:
\( \text{varianza spiegata}_k = \frac{\lambda_k}{\sum_{i=1}^{p} \lambda_i} \\ \)dove \( \lambda_k \) è l’autovalore della componente \( k \)-esima e \( p \) è il numero totale di componenti. La varianza spiegata cumulativa è la somma delle prime \( k \) proporzioni: ci dice quanta informazione originale conserviamo tenendo solo \( k \) componenti.
Nota a margine: criteri come la regola di Kaiser (tenere solo le componenti con autovalore > 1) e lo scree plot (il grafico degli autovalori ordinati, con il “gomito” come punto di taglio) aiutano a scegliere il numero di componenti da conservare.
Applicazioni pratiche
La PCA è una tecnica versatile con un’ampia gamma di applicazioni. Nel campo dell’elaborazione delle immagini, è usata per la compressione. In genomica, aiuta a identificare i geni più critici. In finanza, per l’analisi del rischio e l’ottimizzazione del portafoglio. Nel settore sanitario, per l’analisi di immagini mediche. In sicurezza, nei sistemi biometrici. In climatologia, per analizzare grandi set di dati ambientali.
Per quanto riguarda specificamente l’analisi dei dati e il marketing, la PCA permette di semplificare dataset complessi, ridurre il rumore, estrarre le caratteristiche più significative e migliorare le prestazioni di modelli predittivi. La sua capacità di visualizzare dati ad alta dimensionalità in uno spazio a due o tre dimensioni facilita l’identificazione di pattern, tendenze e outlier.
PCA nel web marketing
Vediamo come la PCA si applica a problemi concreti del nostro lavoro quotidiano.
Analisi delle parole chiave. Un set di dati di keyword ha numerose metriche: volume di ricerca, concorrenza, CPC, posizione media su Google e Bing. Applicando la PCA, possiamo condensare queste dimensioni in poche componenti che catturano i temi sottostanti. Ad esempio, potremmo scoprire che una componente cattura il “valore potenziale” della keyword (volume alto + CPC alto) e un’altra la “competitività” (concorrenza alta + posizione bassa).
Analisi delle metriche di traffico. Sessioni, frequenza di rimbalzo, tempo sulla pagina, conversioni per fonte — la PCA può rivelare variabili latenti che guidano la performance. Potrebbe emergere una componente legata all’engagement e una seconda legata all’efficacia delle fonti di traffico.
Segmentazione degli utenti. Analizzando dati comportamentali con molte variabili, la PCA identifica raggruppamenti naturali di utenti, permettendo di creare segmenti più definiti.
Analisi delle campagne pubblicitarie. Impressioni, click, conversioni, costo, CTR, CPA — la PCA rivela i fattori chiave che determinano il successo delle campagne.
Implementare la PCA in R
Vediamo ora la PCA sui dati, con due esempi che riproducono esattamente gli scenari appena descritti.
Prepariamo l’ambiente. Le librerie necessarie sono stats per le funzioni base (prcomp()), e (per le visualizzazioni) factoextra.
Calcoliamo in R la PCA sui dati di posizionamento delle parole chiave:
set.seed(123)
n_keywords <- 100
keywords <- paste0("keyword_", 1:n_keywords)
search_volume <- round(runif(n_keywords, min = 100, max = 10000))
competition <- runif(n_keywords, min = 0.1, max = 0.9)
cpc <- round(rnorm(n_keywords, mean = 2.5, sd = 1), 2)
ranking_google <- round(rnorm(n_keywords, mean = 15, sd = 10), 0)
ranking_bing <- round(rnorm(n_keywords, mean = 12, sd = 8), 0)
keyword_data <- data.frame(
Keyword = keywords,
Search_Volume = search_volume,
Competition = competition,
CPC = cpc,
Ranking_Google = ranking_google,
Ranking_Bing = ranking_bing
)
head(keyword_data)Risultato:
Keyword Search_Volume Competition CPC Ranking_Google Ranking_Bing
1 keyword_1 2947 0.5799912 1.79 37 6
2 keyword_2 7904 0.3662588 2.76 28 6
3 keyword_3 4149 0.4908904 2.25 12 4
4 keyword_4 8842 0.8635791 2.15 20 4
5 keyword_5 9411 0.4863219 1.55 11 9
6 keyword_6 551 0.8122802 2.45 10 15Ora creiamo dati sintetici per le campagne pubblicitarie:
set.seed(456)
n_campaigns <- 50
campaign_ids <- paste0("campaign_", 1:n_campaigns)
impressions <- round(runif(n_campaigns, min = 1000, max = 100000))
clicks <- round(impressions * runif(n_campaigns, min = 0.01, max = 0.1))
conversions <- round(clicks * runif(n_campaigns, min = 0.005, max = 0.05))
cost <- round(clicks * runif(n_campaigns, min = 0.1, max = 2), 2)
ctr <- round((clicks / impressions) * 100, 2)
cpa <- round(cost / conversions, 2)
cpa[is.nan(cpa)] <- 0
campaign_data <- data.frame(
Campaign_ID = campaign_ids,
Impressions = impressions,
Clicks = clicks,
Conversions = conversions,
Cost = cost,
CTR = ctr,
CPA = cpa
)
head(campaign_data)Risultato:
Campaign_ID Impressions Clicks Conversions Cost CTR CPA
1 campaign_1 9866 873 14 1093.32 8.85 78.09
2 campaign_2 21841 1788 20 3360.17 8.19 168.01
3 campaign_3 73563 2866 66 2764.48 3.90 41.89
4 campaign_4 85361 4121 73 1422.12 4.83 19.48
5 campaign_5 79051 3432 133 1623.28 4.34 12.21
6 campaign_6 33864 3064 126 6047.70 9.05 48.00Eseguiamo la PCA con prcomp(). È fondamentale scalare i dati (scale. = TRUE) prima di applicare la PCA: altrimenti variabili con scale più ampie (migliaia di impressioni vs frazioni di CPC) dominerebbero l’analisi.
Se una variabile è espressa in euro e un’altra in percentuale, la PCA sarà dominata quasi interamente dalla variabile con la scala numerica maggiore. Per questo motivo, nella maggior parte dei casi è indispensabile standardizzare i dati prima dell’analisi. È l’errore più comune di chi si avvicina alla PCA.
pca_keywords <- prcomp(keyword_data[, 2:6], scale. = TRUE)
summary(pca_keywords)
pca_campaigns <- prcomp(campaign_data[, 2:7], scale. = TRUE)
summary(pca_campaigns)I risultati:
# summary(pca_keywords) — parole chiave (5 variabili, 5 componenti)
Importance of components:
PC1 PC2 PC3 PC4 PC5
Standard deviation 1.1381 1.0298 0.9894 0.9305 0.8941
Proportion of Variance 0.2591 0.2121 0.1958 0.1732 0.1599
Cumulative Proportion 0.2591 0.4712 0.6670 0.8401 1.0000
# summary(pca_campaigns) — campagne (6 variabili, 6 componenti)
Importance of components:
PC1 PC2 PC3 PC4 PC5 PC6
Standard deviation 1.7837 1.2229 0.9303 0.49392 0.4250 0.18138
Proportion of Variance 0.5303 0.2492 0.1442 0.04066 0.0301 0.00548
Cumulative Proportion 0.5303 0.7795 0.9238 0.96442 0.9945 1.00000
La figura racconta la storia meglio dei numeri. Per le parole chiave (sinistra) la varianza è distribuita in modo abbastanza uniforme: le metriche sono in larga parte non correlate, e la PCA non può comprimerle granché senza perdere informazione. Per le campagne (destra), invece, le prime due componenti spiegano quasi l’80% della varianza — le metriche sono fortemente correlate (più impressioni, più click, più conversioni, più costo) e bastano due dimensioni per descrivere quasi tutto.

Il grafico ingrandito sui dati delle campagne lo conferma: PC1+PC2 superano l’80% della varianza cumulativa. La linea tratteggiata a 80% è una soglia comune: sotto di essa si perdono le componenti che contribuiscono poco.
I loadings (pca_keywords\( rotation) mostrano la correlazione tra variabili originali e componenti, aiutando a interpretare il significato di ciascuna componente. Gli scores (pca_keywords \)x) rappresentano la proiezione dei dati originali sul nuovo spazio.
Per visualizzare ulteriormente i risultati, si possono usare lo scree plot (ottenibile con plot(pca_keywords)) e il biplot (biplot(pca_keywords)), che mostra sia gli scores che i loadings nel piano delle prime due componenti.
Verifica e interpretazione
Interpretare le componenti principali richiede una conoscenza del dominio. Se nella PCA sui dati delle keyword la prima componente ha loadings alti e positivi per volume di ricerca e CPC, potrebbe rappresentare le “parole chiave ad alto valore potenziale”. Se la seconda componente è dominata dal ranking, potrebbe rappresentare la “visibilità effettiva”. L’interpretazione è sempre contestuale.
Va tenuto presente che le componenti principali non hanno un significato “naturale”. Sono costruzioni matematiche che dobbiamo interpretare osservando il peso (loading) delle variabili originali. Non esiste un’etichetta predefinita per PC1: siamo noi a doverla costruire, in base ai dati e al contesto.
È importante tenere presente i limiti della PCA. Assume relazioni lineari tra le variabili, ed è sensibile alla scala dei dati (per questo scaliamo sempre prima di applicarla). Per dati con relazioni non lineari, tecniche come t-SNE e UMAP possono essere più appropriate.
FAQ
Quando ha senso usare la PCA?
Quando abbiamo molte variabili correlate tra loro e vogliamo ridurle a poche dimensioni interpretabili. È ideale per esplorazione, visualizzazione e pre-processing per machine learning. Non ha senso quando le variabili sono già poche e indipendenti.
Quante componenti devo tenere?
Dipende dalla varianza spiegata cumulativa. Una regola pratica: fermarsi quando la curva dello scree plot si appiattisce (il “gomito”), oppure quando la varianza cumulativa raggiunge il 70-80%. La regola di Kaiser (autovalore > 1) è un altro criterio, ma va usato con flessibilità.
Perché devo scalare i dati prima della PCA?
Perché la PCA massimizza la varianza. Se una variabile è misurata in migliaia (impressioni) e un’altra in centesimi (CTR), la prima dominerebbe artificialmente l’analisi. Scalare (media 0, deviazione standard 1) mette tutte le variabili sullo stesso piano.
La PCA funziona con dati non lineari?
No, la PCA standard assume relazioni lineari. Per strutture non lineari esistono varianti come la Kernel PCA o tecniche non lineari come t-SNE e UMAP.
Conclusione
L’Analisi delle Componenti Principali ci offre un modo elegante per districare la complessità dei nostri dati. Riduce la dimensionalità, rivela pattern nascosti, migliora i modelli predittivi e rende visualizzabile ciò che altrimenti sarebbe un ammasso di numeri.
La sua potenza, però, sta anche nei suoi limiti: funziona bene quando le relazioni sono lineari, richiede scaling, e l’interpretazione delle componenti è responsabilità nostra, non dell’algoritmo. Usata con consapevolezza, è uno degli strumenti più versatili nel kit dell’analisi dati per il web marketing.
Per approfondire
L’analisi delle componenti principali è trattata con chiarezza esemplare in An Introduction to Statistical Learning di James, Witten, Hastie e Tibshirani, insieme alle altre tecniche di apprendimento non supervisionato.