Come risolvere il problema: prevedere uno scarso aggiustamento del ranking può essere fuorviante
Un avviso comune che potresti incontrare in R è:
Warning message:
In predict.lm(model, df):
prediction from a rank-deficient fit may be misleading
Questo avviso può verificarsi per due motivi:
Motivo 1 : due variabili predittive sono perfettamente correlate.
Motivo 2 : nel set di dati sono presenti più parametri del modello che osservazioni.
Gli esempi seguenti mostrano come ciascun problema potrebbe presentarsi nella pratica.
Motivo n. 1: due variabili predittive sono perfettamente correlate
Supponiamo di adattare il seguente modello di regressione lineare multipla in R e di provare a utilizzarlo per fare previsioni:
#create data frame
df <- data. frame (x1=c(1, 2, 3, 4),
x2=c(2, 4, 6, 8),
y=c(6, 10, 19, 26))
#fit multiple linear regression model
model <- lm(y~x1+x2, data=df)
#use model to make predictions
predict(model, df)
1 2 3 4
4.9 11.8 18.7 25.6
Warning message:
In predict.lm(model, df):
prediction from a rank-deficient fit may be misleading
Riceviamo un messaggio di avviso perché le variabili predittive x1 e x2 sono perfettamente correlate .
Nota che i valori x2 sono semplicemente uguali ai valori x1 moltiplicati per due. Questo è un esempio di multicollinearità perfetta .
Ciò significa che x1 e x2 non forniscono informazioni univoche o indipendenti nel modello di regressione, il che causa problemi durante l’adattamento e l’interpretazione del modello.
Il modo più semplice per risolvere questo problema è rimuovere semplicemente una delle variabili predittive dal modello, poiché è ridondante avere entrambe le variabili predittive nel modello.
Motivo n. 2: ci sono più parametri del modello che osservazioni
Supponiamo di adattare il seguente modello di regressione lineare multipla in R e di provare a utilizzarlo per fare previsioni:
#create data frame
df <- data. frame (x1=c(1, 2, 3, 4),
x2=c(3, 3, 8, 12),
x3=c(4, 6, 3, 11),
y=c(6, 10, 19, 26))
#fit multiple linear regression model
model <- lm(y~x1*x2*x3, data=df)
#use model to make predictions
predict(model, df)
1 2 3 4
6 10 19 26
Warning message:
In predict.lm(model, df):
prediction from a rank-deficient fit may be misleading
Riceviamo un messaggio di avviso perché abbiamo tentato di adattare un modello di regressione con sette coefficienti del modello totale:
- x1
- x2
- x3
- x1*x2
- x1*3
- x2*x3
- x1*x2*x3
Tuttavia, abbiamo solo quattro osservazioni in totale nel set di dati.
Poiché il numero di parametri del modello è maggiore del numero di osservazioni nel set di dati, li chiamiamo dati ad alta dimensione .
Con dati ad alta dimensione diventa impossibile trovare un modello in grado di descrivere la relazione tra le variabili predittive e la variabile di risposta perché non disponiamo di osservazioni sufficienti su cui addestrare il modello.
Il modo più semplice per risolvere questo problema è raccogliere più osservazioni per il nostro set di dati o utilizzare un modello più semplice con meno coefficienti da stimare.
Risorse addizionali
I seguenti tutorial spiegano come gestire altri errori comuni in R:
Come gestire: glm.fit: l’algoritmo non converge
Come gestire: glm.fit: si sono verificate probabilità corrette numericamente 0 o 1