Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara R-Quadro | Scelta del Modello Migliore
Regressione Lineare con Python

R-Quadro

Scorri per mostrare il menu

Cos'è R-quadro

Abbiamo già trattato MSE, RMSE e MAE. Questi aiutano a confrontare i modelli, ma un singolo punteggio è difficile da valutare senza contesto. Potresti non sapere se il valore è “abbastanza buono” per il tuo dataset.

R-quadro risolve questo problema misurando quanta parte della varianza del target viene spiegata dal modello. Il suo valore varia da 0 a 1, rendendo l'interpretazione immediata.

RSquaredFormulaSimple

Il problema è che non possiamo calcolare subito la varianza spiegata. Tuttavia, possiamo calcolare la varianza non spiegata, quindi trasformeremo l'equazione sopra in:

RSquaredFormula

Varianza totale

La varianza totale è semplicemente la varianza del target, e possiamo calcolare la varianza del target utilizzando la formula della varianza campionaria dalla Statistica ( è la media del target):

TotalVariation

Nell'esempio, le differenze tra i valori reali e la media del target (linee arancioni) vengono elevate al quadrato e sommate, poi divise per m−1, ottenendo una varianza totale di 11,07.

TotalVariationGraph

Varianza non spiegata

Successivamente calcoliamo la varianza che il modello non spiega. Se le previsioni fossero perfette, tutti i punti si troverebbero esattamente sulla retta di regressione. Usiamo la stessa formula della varianza, ma sostituiamo con i valori previsti.

VarianzaNonSpiegata

Ecco un esempio con visualizzazione:

UnexplainedVariationGraph

Ora abbiamo tutto il necessario per calcolare l'R-quadro:

R2Example

Abbiamo ottenuto un valore di R-quadro pari a 0,92, che è vicino a 1, quindi il modello è ottimo. Calcoleremo anche il valore di R-quadro per un altro modello.

R2Example2

Il valore di R-quadro è più basso poiché il modello sottostima leggermente i dati.

R-quadro in Python

La classe sm.OLS calcola per noi il valore di R-quadro. Possiamo trovarlo nella tabella summary() qui.

Sommario

R-quadro varia da 0 a 1, e valori più alti sono migliori (a meno che il modello non sia sovradattato). L'output summary() di sm.OLS include il punteggio R-quadro.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 4. Capitolo 3
some-alt