Vai al contenuto principale

Capire la correlazione: misurare le relazioni nei dati

Impara a identificare le relazioni tra variabili usando la correlazione. Scopri i diversi tipi di coefficienti di correlazione e le loro applicazioni.
Aggiornato 29 set 2026  · 6 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Se hai già esplorato il nostro tutorial sulla covarianza, sai che riguarda il modo in cui due variabili cambiano insieme. La correlazione fa un passo in più standardizzando la misura, così puoi confrontare le relazioni tra dataset diversi.

In questa guida scoprirai cos’è la correlazione (in particolare ci concentreremo su quella più comune, la correlazione di Pearson), in cosa differisce dalla covarianza e come calcolarla e interpretarla con Python e R. Alla fine vedremo anche diversi tipi di correlazione usati in scenari differenti.

Per continuare a rafforzare le tue competenze di statistica, non perdere il nostro skill track Fondamenti di statistica in Python o il corso Introduzione alla statistica in R.

Cos’è la correlazione?

La correlazione misura l’intensità e la direzione di una relazione lineare tra due variabili quantitative. Ti aiuta a capire come i cambiamenti in una variabile sono associati ai cambiamenti in un’altra. 

Una correlazione positiva significa che, all’aumentare di una variabile, tende ad aumentare anche l’altra. Una correlazione negativa significa che, all’aumentare di una variabile, l’altra tende a diminuire.

Ecco le idee principali:

  • La correlazione quantifica il grado in cui due variabili si muovono insieme.
  • Il coefficiente di correlazione varia da -1 a 1.
  • Un valore di 1 indica una relazione lineare perfettamente positiva.
  • Un valore di -1 indica una relazione lineare perfettamente negativa.
  • Un valore di 0 indica assenza di relazione lineare.

Formula del coefficiente di correlazione di Pearson

Come accennato, il coefficiente di correlazione di Pearson misura la relazione lineare tra due variabili continue. Quello che non ho ancora detto: assume dati normalmente distribuiti (più precisamente, assume che le variabili siano congiuntamente normali, noto come normalità bivariata — c’è un po’ di sfumatura), ed è sensibile agli outlier. Il coefficiente di correlazione di Pearson si indica con r.

Formula del coefficiente di correlazione di Pearson

dove xi​ e yi​ sono i punti dati, e x e y​ sono le rispettive medie.

Coefficiente di correlazione di Pearson in Python e R

Vediamo come calcolarlo in Python e R. 

Correlazione in Python

Puoi calcolare il coefficiente di correlazione di Pearson in Python usando la funzione pearsonr() dal modulo scipy.stats:

import numpy as np
from scipy.stats import pearsonr

# Temperature data in Celsius and corresponding Fahrenheit
temperature_celsius = np.array([0, 10, 20, 30, 40])
temperature_fahrenheit = np.array([32, 50, 68, 86, 104])  # Converted from Celsius

# Calculate Pearson correlation coefficient
correlation_coefficient, p_value = pearsonr(temperature_celsius, temperature_fahrenheit)
print("Pearson correlation coefficient:", correlation_coefficient)
Pearson correlation coefficient: 1.0
p-value: 0.0

L’output mostra una relazione lineare perfettamente positiva tra x_values e y_values (dato che abbiamo definito y come 2x). 

Correlazione in R

In R, puoi usare la funzione cor():

temperature_celsius <- c(0, 10, 20, 30, 40)
temperature_fahrenheit <- c(32, 50, 68, 86, 104)  # Converted from Celsius

# Calculate Pearson correlation coefficient
correlation_coefficient <- cor(temperature_celsius, temperature_fahrenheit, method = "pearson")
print(correlation_coefficient)
[1] 1

Anche questo output indica una relazione lineare perfettamente positiva, come prima.

Matrice di correlazione

Una matrice di correlazione mostra i coefficienti di correlazione tra più coppie di variabili in un dataset. È utile per esplorare le relazioni in dati multivariati.

Matrice di correlazione in Python

È comune rappresentare le variabili in formato matriciale, come un DataFrame di pandas, e calcolare direttamente la matrice di correlazione:

import pandas as pd

# Create a DataFrame with two perfectly correlated variables and one that isn't
data = pd.DataFrame({
    'temperature_celsius': [0, 10, 20, 30, 40],
    'temperature_fahrenheit': [32, 50, 68, 86, 104],  # Perfect linear transformation
    'ice_cream_sales': [100, 150, 200, 220, 230]      # Roughly increasing, not perfectly
})

# Calculate the Pearson correlation matrix
correlation_matrix = data.corr(method='pearson')
print(correlation_matrix)
                      temperature_celsius  temperature_fahrenheit  ice_cream_sales
temperature_celsius              1.000000                1.000000         0.993858
temperature_fahrenheit           1.000000                1.000000         0.993858
ice_cream_sales                  0.993858                0.993858         1.000000

Questo output mostra:

  • Una correlazione perfettamente positiva tra temperature_celsius e temperature_fahrenheit (come previsto, come prima).

  • Una correlazione forte ma non perfetta tra ice_cream_sales e sia temperature_celsius che temperature_fahrenheit.

Matrice di correlazione in R

In R, puoi ottenere lo stesso risultato con la funzione cor() che abbiamo usato prima, applicata a un data frame o a una matrice:

# Create a data frame with two perfectly correlated variables and one unrelated
data <- data.frame(
  temperature_celsius = c(0, 10, 20, 30, 40),
  temperature_fahrenheit = c(32, 50, 68, 86, 104),  # Perfect conversion from Celsius
  ice_cream_sales = c(100, 150, 200, 220, 230)      # Generally increases, but not perfectly
)

# Calculate the correlation matrix
correlation_matrix <- cor(data, method = "pearson")
print(correlation_matrix)
                      temperature_celsius temperature_fahrenheit ice_cream_sales
temperature_celsius                 1.00                   1.00            0.99
temperature_fahrenheit              1.00                   1.00            0.99
ice_cream_sales                     0.99                   0.99            1.00

Questo output in R rispecchia l’esempio in Python, con:

  • Correlazione perfettamente positiva tra temperature_celsius e temperature_fahrenheit.

  • Forte correlazione negativa tra ice_cream_sales e temperature_celsius o temperature_fahrenheit.

Questo tipo di vista a matrice è particolarmente utile per identificare potenziale multicollinearità nella regressione o per scegliere le variabili per tecniche di riduzione della dimensionalità come la PCA.

Correlazione vs. altre metriche

Abbiamo visto che la correlazione cattura le associazioni lineari. Ora, facciamo attenzione a distinguerla chiaramente da idee simili.

Correlazione vs. covarianza

Sia la correlazione che la covarianza misurano come due variabili cambiano insieme, ma differiscono in due aspetti: scala e interpretabilità.

  • Covarianza indica la direzione di una relazione lineare ma non la sua intensità in modo standardizzato. Il suo valore dipende dalle unità delle variabili, rendendo difficile il confronto tra dataset.

  • Correlazione standardizza la covarianza dividendola per le deviazioni standard delle variabili, producendo un valore senza unità compreso tra -1 e 1.

Correlazione vs. R-quadro

R-quadro (R²), o coefficiente di determinazione, può essere confuso con la correlazione. L’ho visto soprattutto quando si cerca di interpretare le prestazioni di un modello.

  • Correlazione (r di Pearson) misura l’intensità e la direzione di una relazione lineare tra due variabili.

  • R-quadro rappresenta la quota di varianza in una variabile prevedibile da un’altra variabile in un modello di regressione lineare. In regressione lineare semplice, risulta essere il quadrato dell’r di Pearson.

Correlazione vs. causalità

Non confondere correlazione e causalità! È un errore comune. 

  • Correlazione mostra solo che due variabili si muovono insieme. Non spiega perché. Quindi è descrittiva, non esplicativa. La correlazione può essere dovuta a coincidenze, variabili confondenti o causalità inversa.

  • Causalità implica che un cambiamento in una variabile causi direttamente un cambiamento in un’altra. Rimanda la discussione sulla causalità a esperimenti controllati o alle tecniche di inferenza causale. 

Sfide e errori comuni nell’analisi della correlazione

È importante conoscere le cose che più spesso gli analisti sbagliano: 

  • La correlazione non implica causalità. Ne abbiamo parlato. 
  • Gli outlier possono distorcere i coefficienti di correlazione.
  • Le relazioni non lineari possono non essere ben catturate dal coefficiente di Pearson.
  • I coefficienti di correlazione sono anche sensibili all’intervallo dei dati.

Altri tipi di coefficienti di correlazione

In questo articolo abbiamo trattato il coefficiente di correlazione di Pearson, poiché è la versione di correlazione costruita direttamente sul concetto di covarianza ed è la misura più usata in pratica. Ma ora vediamo altri tipi. 

Coefficiente di correlazione di rango di Spearman (ρ)

La correlazione di rango di Spearman valuta l’intensità e la direzione di una relazione monotona usando i ranghi. È non parametrica e funziona bene con dati ordinali o con andamenti non lineari ma coerenti.

Formula del coefficiente di correlazione di rango di Spearman

Dove:

  • di​ = la differenza tra i ranghi di ciascuna osservazione
  • n = il numero di osservazioni

Coefficiente tau di Kendall (τ)

Il coefficiente tau di Kendall misura anch’esso relazioni monotone usando i ranghi, ma si basa sul numero di coppie concordanti e discordanti. È più robusto in presenza di ex aequo e campioni piccoli.

Formula del coefficiente tau di Kendall

Dove:

  • C = numero di coppie concordanti (coppie classificate nello stesso ordine in entrambe le variabili)
  • D = numero di coppie discordanti (coppie classificate in ordini diversi)
  • n = numero di osservazioni

Conclusione

Spero che questo articolo ti sia stato utile. Come hai visto, la correlazione è uno strumento fondamentale di analisi dei dati per comprendere le relazioni tra variabili. 

Assicurati di seguire i nostri corsi per continuare a imparare. Ti consiglio lo skill track Fondamenti di statistica in Python o il corso Introduzione alla statistica in R come ottimi prossimi passi. 


Josef Waples's photo
Author
Josef Waples

Sono uno scrittore e editor di data science, con contributi a articoli di ricerca su riviste scientifiche. Sono particolarmente interessato ad algebra lineare, statistica, R e affini. Inoltre, gioco anche parecchio a scacchi! 

FAQ sulla correlazione

Qual è la differenza tra correlazione e covarianza?

La covarianza misura come due variabili cambiano insieme, mentre la correlazione standardizza questa misura, consentendo confronti tra dataset diversi. La correlazione fornisce sia l’intensità sia la direzione della relazione ed è compresa tra -1 e 1.

Quale coefficiente di correlazione dovrei usare: Pearson, Spearman o Kendall?

Usa Pearson quando i tuoi dati sono continui e normalmente distribuiti con una relazione lineare. Scegli Spearman per dati ordinali o quando la relazione è monotona ma non necessariamente lineare. Kendall è ideale per dataset piccoli con molti ex aequo o quando vuoi una misura non parametrica più robusta.

Come calcolo il coefficiente di correlazione di Pearson in Python e R?

In Python, usa pearsonr() da scipy.stats. In R, usa la funzione cor() con method = "pearson". Entrambe le funzioni restituiscono un valore tra -1 e 1.

Un coefficiente di correlazione può indicare causalità tra variabili?

No, la correlazione non implica causalità. Anche se due variabili sono fortemente correlate, non significa che una causi l’altra. Variabili confondenti o coincidenze possono generare correlazioni elevate.

Quali sono gli errori comuni da evitare nell’analisi della correlazione?

Gli errori più comuni includono presumere la causalità, ignorare l’effetto degli outlier, usare la correlazione di Pearson per relazioni non lineari e interpretare correlazioni deboli come significative. È anche importante considerare l’intervallo e la scala dei dati.

Argomenti
Data Science
Analisi dei dati

Impara con DataCamp

Corso

Introduzione alla statistica in Python

4 ore
199.2K
Migliora le tue abilità statistiche e impara a raccogliere, analizzare e trarre conclusioni precise dai dati usando Python.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

Mostra AltroMostra Altro