Vai al contenuto principale

R-quadro spiegato: quanto bene si adatta il tuo modello di regressione?

Scopri cosa significa R-quadro nell’analisi di regressione, come calcolarlo e quando usarlo per valutare le prestazioni del modello. Confrontalo con metriche correlate con esempi in R e Python.
Aggiornato 3 giu 2026  · 8 min leggi

Alla base, R-quadro spiega la quota di varianza nella variabile dipendente attribuibile alla variabile (o alle variabili) indipendente. Possiamo considerarlo come una misura di quanto bene il nostro modello cattura la storia nei dati e quanto resta come rumore non spiegato. La sua semplicità e l’interpretazione diretta lo rendono molto diffuso nella diagnostica della regressione lineare, soprattutto nella regressione lineare semplice e multipla.

In questo articolo parleremo del significato, del calcolo, dell’interpretazione e delle insidie comuni legate a R-quadro, così da usarlo con sicurezza e attenzione. Inoltre, daremo un’occhiata ad alcuni esempi di snippet di codice per calcolare R-quadro in R e Python.

Che cos’è R-quadro?

R-quadro, indicato come R², è una misura statistica della bontà di adattamento nei modelli di regressione. Ci dice quanta parte della variazione nella variabile dipendente può essere spiegata dal modello.

Il valore di R-quadro è compreso tra 0 e 1:

  • R² = 0 significa che il modello non spiega alcuna variabilità;
  • R² = 1 significa che il modello la spiega tutta.

Sebbene il concetto sia lineare, la sua interpretazione richiede un approccio sfumato, soprattutto passando dalla teoria alla pratica.

Come calcolare R-quadro

Esistono diversi modi matematicamente equivalenti per calcolare R-quadro, ognuno dei quali offre una prospettiva diversa su cosa significhi davvero “adattamento”, a seconda del contesto — regressione semplice, multipla, algebra matriciale o modellazione bayesiana. Vediamo gli approcci più usati.

1. Utilizzando la somma dei quadrati dei residui e la somma totale dei quadrati

Questa è la formula più standard e diffusa:

formula di R-quadro con 1 - (RSS / TSS)

dove:

  • RSS è la somma dei quadrati dei residui, che misura la variazione non spiegata dal modello,
  • TSS è la somma totale dei quadrati, che misura la variazione complessiva nei dati.

In altre parole, R-quadro rappresenta la frazione della variazione totale che il modello spiega. 

Questo approccio evidenzia quanto il modello di regressione sia migliore rispetto a limitarsi a predire la media della risposta.

2. Utilizzando la somma dei quadrati spiegata e la somma totale dei quadrati

R-quadro può anche essere espresso direttamente in termini di varianza spiegata:

formula di R-quadro con ESS/ TSS

dove:

  • ESS è la somma dei quadrati spiegata, che misura quanta varianza è catturata dal modello,
  • TSS è la somma totale dei quadrati, che misura la variazione complessiva nei dati.

Si vede che questa versione enfatizza quanta parte della variazione totale dell’esito è catturata dalle previsioni del modello. In altre parole, qui l’attenzione passa da ciò che non abbiamo spiegato (RSS) a ciò che abbiamo spiegato (ESS), offrendo un inquadramento più ottimistico.

Per approfondire i tre componenti della somma dei quadrati, leggi Understanding Sum of Squares: A Guide to SST, SSR, and SSE.

3. Utilizzando la somma dei quadrati spiegata e la somma dei quadrati dei residui

Nel contesto di una tabella ANOVA, R-quadro emerge naturalmente dalla scomposizione della variabilità totale: 

formula di R-quadro con ESS / (ESS + RSS)

dove:

  • ESS è la somma dei quadrati spiegata, che misura quanta varianza è catturata dal modello,
  • RSS è la somma dei quadrati dei residui, che misura la variazione non spiegata dal modello.

Questa formulazione mostra quanta parte della varianza totale è intercettata dal modello e quanta rimane non spiegata.

Questa prospettiva è un po’ particolare perché collega R-quadro al test d’ipotesi. Questo perché il rapporto tra ESS e RSS è usato per calcolare la statistica F, rendendo R-quadro una parte importante dei test di significatività nei report in stile ANOVA.

4. Utilizzando il coefficiente di correlazione nella regressione lineare semplice

Le tre precedenti erano tutte formule algebricamente equivalenti derivate dalla scomposizione della regressione. Ora, ecco una nuova prospettiva:

Nella regressione lineare semplice con un solo predittore, R-quadro ha una scorciatoia:

R-quadro è la correlazione al quadrato

dove

  • r è il coefficiente di correlazione di Pearson tra x e y.

Questa formula mostra come una forte relazione lineare tra due variabili si traduca direttamente in un R-quadro elevato. 

Per capire la teoria alla base della regressione lineare semplice, passa per Simple Linear Regression: Everything You Need to Know.

5. Utilizzando l’errore quadratico medio e la varianza dell’esito

R-quadro può essere calcolato come misura normalizzata dell’errore del modello: 

formula di R-quadro con 1 - MSE / var(y)

dove:

  • MSE è l’errore quadratico medio del modello,
  • Var(y) è la varianza del vero esito.

Questa impostazione è particolarmente utile quando si confrontano modelli su scale o unità diverse, perché normalizza l’errore del modello rispetto alla dispersione complessiva dei dati.

6. Utilizzando la varianza dei valori previsti

Assumendo che i residui non siano correlati con le previsioni, R-quadro può anche essere interpretato come la frazione di varianza catturata dal modello:

formula di R-quadro che coinvolge la varianza dei valori previsti

dove:

  • Var(ŷ) è la varianza delle previsioni del modello,
  • Var(y) è la varianza del vero esito.

Questa versione mette in evidenza quanto bene le previsioni riflettano la dispersione dei dati reali.

Interpretare R-quadro

Come abbiamo accennato, R-quadro è facile da calcolare ma un po’ più difficile da interpretare in modo significativo.

  • Un R-quadro alto significa che il modello spiega una grande parte della varianza. Tuttavia, non significa necessariamente che il nostro modello sia corretto o utile.
  • Un R-quadro basso significa che il modello spiega poca varianza. Questo non è sempre un male, soprattutto nelle scienze sociali o con dati rumorosi, dove un R-quadro basso è spesso previsto.

È importante ricordare che R-quadro misura la correlazione, ma non misura la causalità. Il fatto che i nostri predittori spieghino l’esito non significa che lo causino, perché la correlazione non implica causalità. Inoltre, R-quadro non indica se le previsioni sono accurate.

Ecco due risorse utili su argomenti più avanzati legati alla regressione lineare: 

Quando usare R-quadro

R-quadro può essere molto utile se usato nelle situazioni giuste. È appropriato per:

  • Confrontare modelli con lo stesso numero di predittori.
  • Spiegare quanta varianza in un dataset è spiegata dal modello.

D’altra parte, R-quadro può essere fuorviante nei seguenti scenari:

  • Aggiungere predittori irrilevanti, con conseguente overfitting. In questo caso, R-quadro aumenta sempre anche se le prestazioni predittive del modello non migliorano.
  • Confrontare modelli con numeri diversi di predittori, cioè con complessità diverse. Qui, R-quadro corretto è una scelta migliore. Parlerò più avanti di R-quadro corretto.

Esempi di R-quadro in R e Python

Ora illustriamo il concetto di R-quadro in R e Python usando il dataset Kaggle Fish Market. In entrambi i linguaggi costruiremo due modelli:

  • Modello 1: Predire il peso dei pesci usando quattro predittori.
  • Modello 2: Aggiungere un predittore casuale e irrilevante.

Esempio in R

Iniziamo con R.

Modello 1

# Load data
fish <- read.csv("Fish.csv")

# Model 1
model1 <- lm(Weight ~ Length1 + Length2 + Height + Width, data=fish)
summary(model1)$r.squared

Output:

[1] 0.8673

Modello 2

# Model 2 with an irrelevant predictor
fish$random_noise <- rnorm(nrow(fish))
model2 <- lm(Weight ~ Length1 + Length2 + Height + Width + random_noise, data=fish)
summary(model2)$r.squared

Output:

[1] 0.8679

Come si vede, R-quadro aumenta leggermente dopo aver aggiunto un predittore irrilevante (Modello 2). Tuttavia, ciò non significa che il modello sia migliorato. Dopotutto, abbiamo solo aggiunto rumore casuale.

Per ulteriori letture sull’argomento, vedi i seguenti tutorial:

E ricorda di iscriverti al nostro corso dedicato:

Esempio in Python

Ora, proviamo in Python.

Modello 1

import pandas as pd
import statsmodels.api as sm
import numpy as np

# Load data
fish = pd.read_csv('Fish.csv')
X1 = fish[['Length1', 'Length2', 'Height', 'Width']]
y = fish['Weight']

# Model 1
X1 = sm.add_constant(X1)
model1 = sm.OLS(y, X1).fit()
print(model1.rsquared)

Output:

0.8673

Modello 2

# Model 2 with an irrelevant predictor
fish['random_noise'] = np.random.randn(len(fish))
X2 = fish[['Length1', 'Length2', 'Height', 'Width', 'random_noise']]
X2 = sm.add_constant(X2)
model2 = sm.OLS(y, X2).fit()
print(model2.rsquared)

Output:

0.8679

Anche qui osserviamo un lieve aumento del valore di R-quadro, ma sta solo catturando rumore casuale.

Per continuare a imparare, iscriviti ai nostri corsi:

R-quadro vs metriche correlate

Ora confronteremo brevemente R-quadro con due metriche correlate: R-quadro corretto e R-quadro predetto.

R-quadro vs R-quadro corretto

A differenza di R-quadro, R-quadro corretto tiene conto del numero di predittori. In particolare, penalizza il modello per l’inclusione di predittori inutili:

formula per R-quadro corretto

dove:

  • n è il numero di osservazioni,
  • p è il numero di predittori.

Questa metrica aumenta solo se un nuovo predittore migliora davvero il modello in modo significativo e può diminuire nel caso opposto. Leggi il nostro tutorial per saperne di più su questa importante estensione: Adjusted R-Squared: A Clear Explanation with Examples.

R-quadro vs R-quadro predetto

Mentre il normale R-quadro mostra quanto bene il modello si comporta sui dati di training, R-quadro predetto ci dice quanto bene si comporta su nuovi dati, non visti. Quindi, questa metrica valuta la capacità di generalizzazione del modello.

R-quadro predetto si calcola usando la cross-validation o tenendo da parte una porzione dei dati di training per test successivi. Può essere significativamente più basso del normale R-quadro se il modello è sovradattato. Pertanto, uno scenario in cui otteniamo un valore alto di R-quadro normale ma un valore basso di R-quadro predetto può indicare molto probabilmente overfitting del modello.

Falsi miti comuni su R-quadro

Diamo un’occhiata ad alcuni miti diffusi su R-quadro, insieme alla realtà dei fatti: 

  • “Un R-quadro alto significa sempre un buon modello.” Non necessariamente. R-quadro può essere alto per un modello sovradattato o basato su correlazioni spurie. In entrambi i casi, è chiaro che il modello non può essere definito buono.
  • “R-quadro misura il potere predittivo.” In realtà misura solo l’adattamento del modello sui dati di training e non dice nulla sui dati non visti. Per valutare le prestazioni future del modello, servono altre metriche come il già citato R-quadro predetto.
  • “Bisogna sempre puntare a un R-quadro alto.” Beh, non sempre. Dipende dal dominio e anche dalla qualità dei dati. Come accennato in questo articolo, per le scienze sociali come psicologia o storia il valore di R-quadro può essere molto basso (0,1 o anche meno) e comunque significativo. Lo stesso vale per dati rumorosi, dove un valore basso di R-quadro è altamente previsto.

Conclusione

In sintesi, abbiamo visto cos’è R-quadro, come calcolare questa metrica (sia matematicamente che in R e Python), quando usarla e quando evitarla, e come interpretarne i risultati. Inoltre, abbiamo toccato due metriche correlate e alcuni fraintendimenti diffusi su R-quadro. 

In poche parole, R-quadro è una misura utile, intuitiva e lineare dell’aderenza di un modello di regressione. È un ottimo punto di partenza per la valutazione dei modelli, ma va usata con giudizio, interpretata insieme ad altre metriche e non scambiata per l’intero quadro. Questo è particolarmente vero nella regressione multipla e nei contesti di selezione dei modelli.


Elena Kosourova's photo
Author
Elena Kosourova
LinkedIn

Data Scientist certificato IBM (2020), in precedenza geologo/geonumerico petrolifero con esperienza in campi oil & gas a livello mondiale e oltre 12 anni di lavoro internazionale. Competente in Python, R e SQL. Aree di competenza: data cleaning, manipolazione dei dati, visualizzazione dei dati, analisi dei dati, modellazione dei dati, statistica, storytelling, machine learning. Ampia esperienza nella gestione di community di data science e nella scrittura/revisione di articoli e tutorial su data science e temi di carriera.

Domande frequenti su R-quadro

Che cos’è R-quadro?

R-quadro, indicato come R², è una misura statistica della bontà di adattamento nei modelli di regressione e mostra quanta parte della variazione nella variabile dipendente può essere spiegata dal modello.

Come si calcola R-quadro?

La formula più comune per calcolare R-quadro è: R2=1-RSS/TSS, dove RSS è la somma dei quadrati dei residui e TSS è la somma totale dei quadrati.

Quali valori può assumere R-quadro?

Il valore di R-quadro è compreso tra 0 e 1, dove R²=0 significa che il modello non spiega alcuna variabilità e R²=1 significa che il modello la spiega tutta.

Come interpretare R-quadro?

Un R-quadro alto significa che il modello spiega una grande parte della varianza nei dati di training, mentre un R-quadro basso significa che il modello spiega poca varianza. R-quadro non misura la causalità e non dice nulla sulla correttezza o l’utilità del modello.

Quando si usa R-quadro?

R-quadro può aiutare a confrontare modelli con lo stesso numero di predittori o a spiegare quanta varianza in un dataset è spiegata dal modello.

Argomenti

Impara con DataCamp

Corso

Supervised Learning in R: Regression

4 h
46.4K
In questo corso imparerai come prevedere cosa succederà usando la regressione lineare, i modelli additivi generalizzati, le foreste casuali e xgboost.
Vedi dettagliRight Arrow
Inizia il corso
Mostra altroRight Arrow
Correlato

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

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

Mostra altroMostra altro