Vai al contenuto principale

R quadrato aggiustato: una spiegazione chiara con esempi

Scopri come interpretare l’r quadrato aggiustato per valutare le prestazioni dei modelli di regressione. Confronta la differenza tra r quadrato e r quadrato aggiustato con esempi in R e Python.
Aggiornato 3 giu 2026  · 7 min leggi

La regressione lineare è uno strumento potente nell’analisi dei dati e nella data science. Si usa per quantificare la relazione tra una variabile dipendente e una o più variabili indipendenti. Se conosci la regressione lineare, potresti già avere familiarità con la comune misura di bontà dell’adattamento chiamata r quadrato, che indica la quota di varianza della variabile dipendente spiegata dalle variabili indipendenti. Tuttavia, potresti conoscere meno l’r quadrato aggiustato, che si usa spesso con modelli più complessi con più predittori. 

Questo articolo ti darà una comprensione completa dell’r quadrato aggiustato, della sua importanza nella valutazione dei modelli, delle principali differenze rispetto all’r quadrato e delle sue applicazioni negli scenari di regressione multipla, così da padroneggiare a fondo queste statistiche di modello. Per cominciare, ti consiglio vivamente i corsi di DataCamp Introduction to Regression with statsmodels in Python e Introduction to Regression in R per imparare i modelli di regressione e come interpretare le diverse metriche di performance, incluso l’r quadrato aggiustato.

Che cos’è l’R quadrato aggiustato?

L’r quadrato misura la quota di varianza della variabile dipendente spiegata dalla o dalle variabili indipendenti del modello. L’r quadrato aggiustato spiega anch’esso la varianza, ma con una considerazione in più: come suggerisce il nome, aggiusta il valore di r quadrato penalizzando l’inclusione di variabili irrilevanti, ossia altamente collineari. Lo fa tenendo conto sia del numero di predittori sia della dimensione del campione.

Per calcolare l’r quadrato aggiustato, dobbiamo prima calcolare l’r quadrato. Sebbene esistano diversi modi per trovare il valore di r quadrato, la formula seguente è una delle più comuni:

Formula per l’r quadrato

Qui, l’r quadrato è calcolato come uno meno il quoziente tra la somma dei quadrati dei residui e la somma dei quadrati totale.

r-squared formula

Dove:

  • RSS = Somma dei quadrati dei residui (la somma dei quadrati delle differenze tra valori osservati e previsti)
  • TSS = Somma dei quadrati totale (la somma dei quadrati delle differenze tra i valori osservati e la media dei valori osservati)

Formula per l’r quadrato aggiustato

Dopo aver trovato il valore di r quadrato, possiamo ricavare l’r quadrato aggiustato. Lo facciamo inserendo il nostro valore di r quadrato nella formula seguente.

adjusted r-squared formula

Dove:

  • R² = r quadrato del modello
  • n = numero di osservazioni (punti dati)
  • p = numero di predittori (variabili indipendenti)

Per esercitarti, proviamo un esempio. Considera questo scenario: abbiamo un dataset con 30 osservazioni. Creiamo un modello di regressione lineare multipla con cinque predittori. Otteniamo un r quadrato di 0,8. Ecco come possiamo usare queste informazioni per trovare l’r quadrato aggiustato:

Potresti chiederti del -1 presente nell’equazione, sia al numeratore sia al denominatore. Per chiarire, n−1 al numeratore tiene conto dei gradi di libertà, correggendo l’uso della media campionaria nel calcolo della varianza. Questo perché, quando calcoliamo la varianza, usiamo tipicamente la media del campione come stima della media della popolazione. Poiché la media del campione non è la vera media della popolazione, la varianza tende a essere sottostimata. Per correggere questo bias, riduciamo i gradi di libertà di 1. 

Al denominatore, n−p−1 aggiusta per il numero di predittori p nel modello, dove p è il numero di variabili indipendenti. L’ulteriore −1 al denominatore corregge la stima dell’intercetta del modello, che consuma anch’essa un grado di libertà. Dobbiamo ricordare che, in un modello di regressione, stimiamo sia i coefficienti angolari dei predittori sia l’intercetta per tener conto della complessità complessiva.

In cosa l’R quadrato aggiustato differisce dall’R quadrato?

Sebbene sia l’r quadrato sia l’r quadrato aggiustato valutino le prestazioni dei modelli di regressione, esiste una differenza chiave tra le due metriche. Il valore di r quadrato aumenta sempre o rimane invariato quando si aggiungono più predittori al modello, anche se quei predittori non migliorano in modo significativo il potere esplicativo del modello. Questo problema può creare un’impressione fuorviante dell’efficacia del modello.

L’r quadrato aggiustato modifica il valore di r quadrato per tenere conto del numero di variabili indipendenti nel modello. Il valore di r quadrato aggiustato può diminuire se un nuovo predittore non migliora l’adattamento del modello, rendendolo una misura più affidabile dell’accuratezza del modello. Per questo motivo, l’r quadrato aggiustato può essere usato come strumento dagli analisti per decidere quali predittori includere.

Quando usare l’R quadrato aggiustato

Capire quando usare l’r quadrato aggiustato al posto dell’r quadrato è importante per costruire modelli affidabili. Ecco alcuni scenari in cui è appropriato usare l’r quadrato aggiustato per valutare i modelli.

  • Regressione multipla: In generale, l’r quadrato aggiustato è una metrica più affidabile perché tiene conto del numero di predittori, garantendo una valutazione migliore delle prestazioni del modello.
  • Confronto tra modelli: L’r quadrato aggiustato è utile quando si confrontano modelli con numeri diversi di predittori per scegliere quelli con prestazioni migliori.
  • Per prevenire l’overfitting: L’r quadrato aggiustato aiuta penalizzando l’inclusione di predittori irrilevanti per assicurarsi che vengano inclusi solo quelli che migliorano le prestazioni del modello.

In generale, sebbene l’r quadrato aggiustato sia preferito all’r quadrato nei modelli di regressione multipla perché tiene conto del numero di predittori e penalizza l’aggiunta di variabili irrilevanti, ci sono alcuni scenari in cui potrebbe essere comunque appropriato usare l’r quadrato:

  • Confronti semplici tra modelli: Se stai confrontando modelli con lo stesso numero di predittori, l’r quadrato può essere usato per misurare la bontà complessiva dell’adattamento senza preoccuparsi dell’overfitting, dato che entrambi i modelli hanno pari complessità.
  • Focus sulla capacità esplicativa: Se il tuo obiettivo è semplicemente capire quanta parte della variazione della variabile dipendente è spiegata dalle variabili indipendenti, a prescindere dal numero di predittori, l’r quadrato offre un’interpretazione più diretta.

Interpretare l’R quadrato aggiustato nella pratica

Consideriamo un esempio in cui entrano in gioco le sfumature tra r quadrato e r quadrato aggiustato. Supponiamo di avere questi due modelli di regressione:

  • Modello 1 ha un r quadrato di 0,9 e un r quadrato aggiustato di 0,75.
  • Modello 2 ha un r quadrato di 0,85 e un R quadrato aggiustato di 0,8.

Potremmo dire che il modello 1 sembra spiegare una quota maggiore della varianza complessiva nei dati perché ha un valore di r quadrato più alto. Ma dobbiamo anche considerare che il modello 2 potrebbe spiegare meglio la relazione di fondo tra le variabili perché tiene conto dei predittori irrilevanti. Il r quadrato aggiustato più alto del modello 2 suggerisce che fornisce un adattamento più affidabile penalizzando la complessità non necessaria, e potrebbe anche essere meno incline all’overfitting. Personalmente, e in assenza di altre informazioni, sceglierei il modello 2.

R quadrato aggiustato in R e Python

Esploriamo esempi pratici di calcolo dell’r quadrato aggiustato in R e Python. Useremo il dataset “Fish Market” di Kaggle, utile per stimare il peso di un pesce in base alla specie e alle sue misure fisiche. Per semplicità, arrotonderemo l’output a cinque cifre decimali.

R quadrato aggiustato in R

Scarica il dataset e salvalo nella tua directory di lavoro. Usa il codice seguente per adattare un modello lineare che prevede il peso del pesce in funzione di alcune variabili, tra cui Length1, Height, Width e Length3, che si riferiscono rispettivamente alla lunghezza verticale del pesce, all’altezza del pesce, alla larghezza diagonale del pesce e alla lunghezza trasversale del pesce.

# Load the dataset
data <- read.csv("data/Fish.csv")

# Remove rows with missing values
data <- na.omit(data)

# Model 1: Using 4 predictors ('Length1', 'Height', 'Width', 'Length3')
model1 <- lm(Weight ~ Length1 + Height + Width + Length3, data = data)

Ora controlliamo i valori di r quadrato e r quadrato aggiustato, e vediamo quanto segue. L’r quadrato aggiustato è molto vicino al valore di r quadrato, solo leggermente più basso.

r_squared_model1 <- round(summary(model1)$r.squared, 4)
r_squared_model1 <- round(summary(model1)$adj.r.squared, 4)
0.88527
0.88229

E se provassimo ora a creare un altro modello aggiungendo un altro predittore? Questa volta creiamo un secondo modello e aggiungiamo Length2, che si riferisce alla lunghezza diagonale del pesce. Come prima, possiamo controllare i valori di r quadrato e r quadrato aggiustato del nuovo modello.

# Model 2: Adding one more predictor ('Length2')
model2 <- lm(Weight ~ Length1 + Height + Width + Length3 + Length2, data = data)
r_squared_model2 <- round(summary(model1)$r.squared, 4)
r_squared_model2 <- round(summary(model1)$adj.r.squared, 4)
0.88529
0.88154

Per il modello 2, vediamo che il valore di r quadrato è aumentato a malapena rispetto al modello 1. Inoltre, notiamo che il valore di r quadrato aggiustato è diminuito, e la diminuzione dell’r quadrato aggiustato è stata maggiore dell’aumento dell’r quadrato. Questo ci dice che il predittore aggiunto non era una buona scelta. 

Se ci pensiamo, Length2, che si riferisce alla lunghezza diagonale del pesce, probabilmente era fortemente correlata con altre variabili nel modello o con una combinazione lineare delle altre variabili. In particolare, ci aspettiamo che la lunghezza diagonale del pesce sia altamente correlata con la lunghezza del pesce e la lunghezza trasversale del pesce. Quindi vediamo che la nuova variabile non ha aggiunto informazioni nuove e rilevanti.

Per completezza, possiamo anche mostrare come trovare a mano l’r quadrato aggiustato. Usiamo il valore di r quadrato e i parametri del modello, seguendo la formula mostrata in precedenza.

# Save R-squared as a variable
r_squared_model2 <- summary(model2)$r.squared

# Get the number of observations (n) for both models
n <- nrow(data)  # Same for both models

# Get the number of predictors (excluding intercept) for each model
p_model1 <- length(coef(model1)) - 1
p_model2 <- length(coef(model2)) - 1

# Adjusted r-squared formula for Model 1
adjusted_r_squared_model1 <- 1 - ((1 - r_squared_model1) * (n - 1)) / (n - p_model1 - 1)

# Adjusted r-squared formula for Model 2
adjusted_r_squared_model2 <- 1 - ((1 - r_squared_model2) * (n - 1)) / (n - p_model2 - 1)

# Print R-squared values for both models
cat("R-Squared for Model 1:", r_squared_model1, "\n")
cat("R-Squared for Model 2:", r_squared_model2, "\n")

# Print the Adjusted R-Squared values for both models
cat("Adjusted R-Squared for Model 1:", adjusted_r_squared_model1, "\n")
cat("Adjusted R-Squared for Model 2:", adjusted_r_squared_model2, "\n")

R quadrato aggiustato in Python

Il codice seguente mostra l’implementazione dello stesso esempio in Python.

# Import requied libraries
import pandas as pd
import statsmodels.api as sm

# Load the dataset
data = pd.read_csv('data/Fish.csv')

# Drop rows with missing values if any exist
data = data.dropna()

# Define predictors for Model 1 (4 variables)
X1 = data[['Length1', 'Height', 'Width', 'Length3']]

# Add a constant (intercept)
X1 = sm.add_constant(X1)

# Define the target variable 'Weight'
y = data['Weight']

# Fit Model 1
model1 = sm.OLS(y, X1).fit()

# Define predictors for Model 2 (5 variables)
X2 = data[['Length1', 'Height', 'Width', 'Length3', 'Length2']]

# Add a constant (intercept)
X2 = sm.add_constant(X2)

# Fit Model 2
model2 = sm.OLS(y, X2).fit()

# Save r-squared as a variable
r_squared_model1 = model1.rsquared  # R-Squared for Model 1
r_squared_model2 = model2.rsquared  # R-Squared for Model 2

# Get the number of observations
n = X1.shape[0]  # Same for both models

# Get the number of predictors (excluding intercept) for each model
p_model1 = X1.shape[1] - 1  # Number of predictors for Model 1
p_model2 = X2.shape[1] - 1  # Number of predictors for Model 2

# Adjusted R-Squared formula for Model 1
adjusted_r_squared_model1 = 1 - ((1 - r_squared_model1) * (n - 1)) / (n - p_model1 - 1)

# Adjusted R-Squared formula for Model 2
adjusted_r_squared_model2 = 1 - ((1 - r_squared_model2) * (n - 1)) / (n - p_model2 - 1)

# Print R-squared for both models
print("R-Squared for Model 1:", r_squared_model1)
print("R-Squared for Model 2:", r_squared_model2)

# Print the Adjusted R-Squared values for both models
print("Adjusted R-Squared for Model 1:", adjusted_r_squared_model1)
print("Adjusted R-Squared for Model 2:", adjusted_r_squared_model2)

Possiamo anche usare funzioni in Python per ottenere i valori di r quadrato e r quadrato aggiustato dei modelli di regressione:

# Model 1
print("Model 1 R-Squared:", model1.rsquared)
print("Model 1 Adjusted R-Squared:", model1.rsquared_adj)

# Model 2
print("Model 2 R-Squared:", model2.rsquared)
print("Model 2 Adjusted R-Squared:", model2.rsquared_adj)

Se hai avuto difficoltà con le sezioni di codice qui sopra, dai un’occhiata ai nostri tutorial su Essentials of Linear Regression in Python e How to Do Linear Regression in R per seguire la guida passo passo all’implementazione e all’interpretazione delle diverse metriche del modello di regressione. Se Excel è il tuo strumento di analisi preferito, consulta il nostro tutorial su Linear Regression in Excel: A Comprehensive Guide For Beginners per imparare a implementare e visualizzare modelli di regressione lineare in Excel.

R quadrato aggiustato, R quadrato e R quadrato predetto

Quando consideriamo l’r quadrato aggiustato, è bene tenere in ordine i termini. Ci sono termini che sembrano simili ma hanno scopi diversi. Qui ho creato una tabella che confronta alcune idee dal suono simile ma distinte: r quadrato, r quadrato aggiustato e r quadrato predetto.

Metrica Misura Uso Punti di forza Limitazioni
R quadrato Quota di varianza spiegata dal modello Comprendere quanto bene il modello si adatta ai dati di training Semplice da interpretare e fornisce rapidamente l’adattamento del modello Fuorviante quando si confrontano modelli con predittori diversi, vulnerabile all’overfitting
R quadrato aggiustato Quota di varianza spiegata, aggiustata per il numero di predittori Confrontare modelli con numeri diversi di predittori Penalizza l’aggiunta di variabili irrilevanti, previene l’overfitting Non indica la performance predittiva su nuovi dati
R quadrato predetto Quanto bene il modello predice nuovi dati Valutare le prestazioni del modello su dati non visti Indica quanto bene il modello generalizza a nuovi dati Richiede cross-validation o un dataset di holdout, computazionalmente costoso

Falsi miti comuni sull’R quadrato aggiustato

Infine, vediamo alcuni errori comuni perché ci sono frequenti fraintendimenti sul suo uso nella regressione.

  • Un r quadrato aggiustato basso significa che il modello è scarso: Un r quadrato aggiustato basso non significa necessariamente che il modello sia cattivo o irrilevante. Il valore basso può indicare che le variabili indipendenti nel modello non spiegano una grande quota della varianza della variabile dipendente, ma a seconda del dominio, ciò potrebbe essere atteso.
  • L’R quadrato aggiustato non può essere negativo: Tecnicamente l’r quadrato aggiustato può essere negativo quando il modello spiega una quota estremamente bassa della varianza della variabile dipendente e allo stesso tempo usa molti predittori, con penalizzazioni che portano a un valore negativo.
  • L’R quadrato aggiustato diminuisce sempre quando si aggiungono variabili: L’r quadrato aggiustato diminuirà se la nuova variabile non migliora le prestazioni del modello, ma aumenterà se la nuova variabile aggiunge valore reale al modello. Immagina un modello con un pessimo predittore e poi ne aggiungi uno buono; l’r quadrato aggiustato aumenterà.

Considerazioni finali sull’R quadrato aggiustato

L’r quadrato aggiustato è una metrica importante per valutare le prestazioni dei modelli di regressione, soprattutto quando si hanno più variabili indipendenti. Rispetto alla metrica r quadrato, fornisce una misura più realistica e affidabile dell’accuratezza del modello quando sono coinvolti più predittori. 

Se ti incuriosisce come R e Python trovano i coefficienti dei modelli di regressione lineare, dai un’occhiata ai seguenti tutorial: Normal Equation for Linear Regression Tutorial e QR Decomposition in Machine Learning: A Detailed Guide.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Technical writer di Data Science con esperienza pratica in data analytics, business intelligence e data science. Scrivo contenuti pratici e orientati al settore su SQL, Python, Power BI, Databricks e data engineering, basati su lavoro di analytics reale. La mia scrittura unisce profondità tecnica e impatto sul business, aiutando i professionisti a trasformare i dati in decisioni sicure.

Domande frequenti su R quadrato aggiustato

In cosa l’r quadrato aggiustato differisce dall’r quadrato?

Mentre l’r quadrato misura la quota di varianza della variabile dipendente spiegata dalle variabili indipendenti, aumenta sempre quando si aggiungono più predittori. L’r quadrato aggiustato tiene conto del numero di predittori e diminuisce se le variabili aggiuntive non contribuiscono alla significatività del modello.

Quando dovrei usare l’r quadrato aggiustato?

L’r quadrato aggiustato è utile quando confronti la bontà dell’adattamento di modelli di regressione con un numero diverso di predittori o quando temi l’overfitting.

Il valore di r quadrato aggiustato può essere negativo?

L’r quadrato aggiustato può essere negativo quando il modello spiega pochissima varianza della variabile dipendente e include molti predittori, portando a penalizzazioni che risultano in un valore negativo.

Perché il valore di r quadrato aggiustato è sempre uguale o inferiore al valore di r quadrato?

L’r quadrato aggiustato è sempre uguale o inferiore all’r quadrato perché è progettato per aggiungere una penalizzazione all’aggiunta di predittori non necessari nel modello.

Quando dovrei usare l’r quadrato predetto invece dell’r quadrato aggiustato?

L’r quadrato predetto è utile per valutare quanto bene il modello si comporta su nuovi dati non visti.

Qual è la differenza tra l’f quadrato aggiustato e altre metriche di valutazione dei modelli di regressione lineare come l’RMSE?

L’r quadrato aggiustato misura la quota di varianza spiegata dal modello tenendo conto del numero di predittori, mentre l’RMSE (Root Mean Squared Error) quantifica la differenza media tra valori osservati e previsti. In altre parole, l’RMSE si concentra sull’errore di previsione, mentre l’r quadrato aggiustato si concentra sull’adattamento del modello.

L’r quadrato aggiustato si applica solo alla regressione lineare?

Sì, l’r quadrato aggiustato è associato principalmente ai modelli di regressione lineare multipla. Per modelli non lineari come funzioni esponenziali e logaritmiche, di solito si usano altre metriche come AIC o BIC per penalizzare la complessità del modello e valutarne la bontà dell’adattamento.

Cosa significa se i valori di r quadrato e r quadrato aggiustato di un modello di regressione lineare sono molto diversi?

Una grande differenza tra r quadrato e r quadrato aggiustato suggerisce che il modello includa predittori irrilevanti. L’r quadrato aggiustato penalizza le variabili non necessarie, quindi se vedi una grande differenza tra i due, potresti avere predittori fortemente correlati.

L’r quadrato e l’r quadrato aggiustato sono uguali nella regressione lineare semplice?

Nella regressione lineare semplice, ossia una regressione con una variabile dipendente e una sola variabile indipendente, r quadrato e r quadrato aggiustato coincidono.

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

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

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

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