Getting Warning: "'newdata' hatte eine Zeile, aber Variablen gefunden haben 32 Zeilen" auf predicate.lm
Fand ich Besonderheit während der Nutzung Vorhersagen und lm-Funktion in R. ich habe unterschiedliche Ergebnisse für Daten-frame und der Vektor für die gleichen Daten.
DataFrame code:
data(mtcars)
fitCar<-lm(mtcars$mpg~mtcars$wt)
predict(fitCar,
data.frame(x=mean(mtcars$wt)),
interval="confidence")
Ausgabe:
fit lwr upr
1 23.282611 21.988668 24.57655
2 21.919770 20.752751 23.08679
3 24.885952 23.383008 26.38890
4 20.102650 19.003004 21.20230
5 18.900144 17.771469 20.02882
6 18.793255 17.659216 19.92729
7 18.205363 17.034274 19.37645
8 20.236262 19.136179 21.33635
9 20.450041 19.347720 21.55236
10 18.900144 17.771469 20.02882
11 18.900144 17.771469 20.02882
12 15.533127 14.064349 17.00190
13 17.350247 16.104455 18.59604
14 17.083024 15.809403 18.35664
15 9.226650 6.658271 11.79503
16 8.296712 5.547468 11.04596
17 8.718926 6.052112 11.38574
18 25.527289 23.927797 27.12678
19 28.653805 26.519252 30.78836
20 27.478021 25.554415 29.40163
21 24.111004 22.715653 25.50635
22 18.472586 17.319886 19.62529
23 18.926866 17.799465 20.05427
24 16.762355 15.452833 18.07188
25 16.735633 15.423002 18.04826
26 26.943574 25.112491 28.77466
27 25.847957 24.198041 27.49787
28 29.198941 26.963760 31.43412
29 20.343151 19.242185 21.44412
30 22.480940 21.268498 23.69338
31 18.205363 17.034274 19.37645
32 22.427495 21.219818 23.63517
Warnung:
'newdata' hatte 1 Zeile, aber Variablen gefunden haben, die 32 Zeilen
Wenn ich trennen sich beide Daten in Vektor -, bekam ich verschiedene Antworten
Code für vector
predict(fit,data.frame(x=mean(x)), interval="confidence")
Ausgabe:
fit lwr upr
1 20.09 18.99 21.19
Was ist der Grund für diesen Unterschied?
InformationsquelleAutor der Frage Kppatel Patel | 2014-12-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist ein problem, unter verschiedenen Namen zwischen Ihren
data
und Ihrenewdata
und nicht ein problem zwischen der Verwendung von Vektoren oder dataframes.Wenn Sie passen, ein Modell mit der
lm
- Funktion und verwenden Sie dannpredict
Vorhersagen zu machen,predict
versucht zu finden, die die gleichen Namen auf Ihremnewdata
. In Ihrem ersten Fall namex
Konflikte mitmtcars$wt
und damit erhalten Sie die Warnung.Sehen hier eine Abbildung von dem, was ich sage:
Dies ist, was Sie haben und nicht einen Fehler erhalten:
Sehen, dass in diesem Fall Sie passen Ihr Modell mit den Namen x und auch die Vorhersagen mit dem Namen x in Ihrem
newdata
. Auf diese Weise erhalten Sie keine Warnungen und es ist das, was Sie erwarten.Lassen Sie uns sehen, was passiert, wenn ich den Namen ändern, um etwas anderes, wenn ich das Modell passt:
Das einzige, was ich getan habe war, den Namen zu ändern
x
bei der Montage des Modells zub
und dann sagen, mit den Namenx
imnewdata
. Wie Sie sehen, ich habe den gleichen Fehler wie in deiner Frage.Hoffe, das ist jetzt klar!
InformationsquelleAutor der Antwort LyzandeR
Einen Weg, um dieses, ohne Namen zu verwenden, die folgenden:
InformationsquelleAutor der Antwort sbanders
In der Formel für die lm-Funktion beziehen sich nicht auf die Variablen mit den datasetname$variablename Muster. Stattdessen variablename + variablename ...Das wird nicht werfen die Warnung: 'newdata' hatte nrow(test -) Reihe, aber Variablen gefunden haben, nrow(Zug) Zeilen.
InformationsquelleAutor der Antwort Priya