Lösung: die vorhersage einer schlechten ranganpassung kann irreführend sein
Eine häufige Warnung, die Ihnen in R begegnen kann, ist:
Warning message:
In predict.lm(model, df):
prediction from a rank-deficient fit may be misleading
Diese Warnung kann aus zwei Gründen auftreten:
Grund 1 : Zwei Prädiktorvariablen sind perfekt korreliert.
Grund 2 : Sie haben mehr Modellparameter als Beobachtungen im Datensatz.
Die folgenden Beispiele zeigen, wie jedes Problem in der Praxis auftreten kann.
Grund Nr. 1: Zwei Prädiktorvariablen sind perfekt korreliert
Angenommen, wir passen das folgende multiple lineare Regressionsmodell in R ein und versuchen, damit Vorhersagen zu treffen:
#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
Wir erhalten eine Warnmeldung, da die Prädiktorvariablen x1 und x2 perfekt korreliert sind.
Beachten Sie, dass die x2-Werte einfach den x1-Werten multipliziert mit zwei entsprechen. Dies ist ein Beispiel für perfekte Multikollinearität .
Das bedeutet, dass x1 und x2 keine eindeutigen oder unabhängigen Informationen im Regressionsmodell liefern, was zu Problemen bei der Anpassung und Interpretation des Modells führt.
Der einfachste Weg, dieses Problem zu lösen, besteht darin, einfach eine der Prädiktorvariablen aus dem Modell zu entfernen, da es redundant ist, beide Prädiktorvariablen im Modell zu haben.
Grund Nr. 2: Es gibt mehr Modellparameter als Beobachtungen
Angenommen, wir passen das folgende multiple lineare Regressionsmodell in R ein und versuchen, damit Vorhersagen zu treffen:
#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
Wir erhalten eine Warnmeldung, weil wir versucht haben, ein Regressionsmodell mit sieben Gesamtmodellkoeffizienten anzupassen:
- x1
- x2
- x3
- x1*x2
- x1*3
- x2*x3
- x1*x2*x3
Allerdings haben wir insgesamt nur vier Beobachtungen im Datensatz.
Da die Anzahl der Modellparameter größer ist als die Anzahl der Beobachtungen im Datensatz, nennen wir diese hochdimensionalen Daten .
Bei hochdimensionalen Daten wird es unmöglich, ein Modell zu finden, das die Beziehung zwischen den Prädiktorvariablen und der Antwortvariablen beschreiben kann, da wir nicht über genügend Beobachtungen verfügen, anhand derer wir das Modell trainieren können.
Der einfachste Weg, dieses Problem zu lösen, besteht darin, mehr Beobachtungen für unseren Datensatz zu sammeln oder ein einfacheres Modell mit weniger Koeffizienten zur Schätzung zu verwenden.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie man mit anderen häufigen Fehlern in R umgeht:
Vorgehensweise: glm.fit: Der Algorithmus hat nicht konvergiert
Vorgehensweise: glm.fit: Numerisch angepasste Wahrscheinlichkeiten 0 oder 1 sind aufgetreten