Diese Frage ist eher theoretisch. Ich bin mir nicht sicher, ob dies der richtige Ort ist, versuche es aber trotzdem.
Ich habe zwei Variablen - direkte Kosten und indirekte Kosten. Wenn Verkäufer ein Verkaufsgespräch mit einem Kunden führen, wissen sie über die direkten Kosten Bescheid, die ihnen für diesen Service entstehen, aber sie wissen nicht viel über die indirekten Kosten (sie werden in späteren Phasen davon erfahren). Eine Schätzung der indirekten Kosten in dieser Phase ist für Verkäufer wertvoll.
Ich versuche, indirekte Kosten als Funktion der direkten Kosten vorherzusagen. Ich mache das über eine einfache lineare Regression. Ich habe ein Streudiagramm zwischen direkten und indirekten Kosten aufgezeichnet und sehe eine gute lineare Beziehung zwischen ihnen. Ich sehe auch, dass direkte und indirekte Kosten mit einem Korrelationskoeffizienten von 0,98 stark miteinander korrelieren, daher habe ich eine sehr gute Vorhersagegenauigkeit erwartet. Aber überraschenderweise ist meine Vorhersagegenauigkeit nicht so gut. Ich habe ungefähr 200.000 Punkte in meinen Trainingsdaten und der durchschnittliche Vorhersagefehler bei Trainingsdaten beträgt 17%. Der angepasste R-Quadrat-Wert beträgt jedoch 0,97. Ich benutze die lm()
Funktion von R.
Meine Frage ist, ob wir im Falle einer einfachen linearen Regression im Allgemeinen eine bessere Vorhersagegenauigkeit erwarten sollten, wenn abhängige und unabhängige Variablen stark korrelieren, oder ist es mein Missverständnis? Wenn wir eine gute Genauigkeit erwarten, fehlt mir hier etwas. Bitte beachten Sie, dass ich auch versucht habe, diese Variablen um den Mittelwert zu zentrieren.
quelle
predict
Funktion oder versuchen Sie, die Koeffizienten manuell zu verwenden? Haben Sie einen Abschnitt in Ihrem Modell? Wenn Sie Ihre Daten nicht veröffentlichen möchten, sollten Sie ein Paar stark korrelierter Variablen simulieren, eine ähnliche Analyse durchführen und prüfen, ob Sie dasselbe Problem finden, wenn Sie genau denselben Prozess ausführen.Antworten:
In einer linearen Regression versuchen Sie, die beste Anpassung eines Satzes von Ausgang als lineare Funktion von Eingang , dh Sie möchten das und , das die kleinsten Residuen ergibt:Y=(Y1,…,Yn) X=(X1,…,Xn) a b
wenn es das ist, was du getan hast und du es formell bekommst (wenn du immer noch mit den gleichen Beobachtungen arbeitest)n
Sie sagen nicht, wie Sie Ihre Fehler berechnen, aber wenn Sie berechnen , ist dies gleich Wenn Sie also die Fehler durch normalisieren, dann Sie habenvar(Y−ax) (1−R2)∗var(Y) var(Y)
was in Ihrem Fall 0,03 sein sollte (weil 0,97 ist). Aber was Sie getan haben (ich denke :)) ist, dass Sie den mittleren Mittelwertfehler geteilt durch die Standardabweichung der Ausgabe berechnet haben, die genau (gemäß meiner Definition).R2 Error−−−−−√
Ihre Ergebnisse sind vollkommen korrekt und entsprechen der Theorie, weil
nichts überraschendes!
CQFD
quelle
Ich glaube ich weiß was los ist. Intuitiv scheint Ihre Methode zur Berechnung des Vorhersagefehlers in Ordnung zu sein. Sie nehmen den Restwert (dh den Fehler) und sehen, wie groß er relativ zu Ihren Daten ist (dh entweder relativ zum vorhergesagten Wert oder zum Wert Ihrer abhängigen Variablen), indem Sie durch dividieren dieser Wert. Es gibt jedoch mindestens ein Problem mit der Berechnung von Fehlern auf diese Weise, das ich mir vorstellen kann: Wenn Sie durch den Wert der abhängigen Variablen dividieren, erwarten Sie, dass der Divisor nicht nahe Null ist - wenn dies der Fall ist, Ihr Residuum / (Ist) Wert) kann sehr groß werden, einfach weil der tatsächliche Wert ein Bruchteil sein kann (dh nahe Null ... z. B. 0,005). Ich habe die folgenden Simulationen durchgeführt und meinen Verdacht bestätigt:
Wie Sie in der folgenden Darstellung sehen können, erhöht sich Ihre Fehlermethode nicht in Abhängigkeit von Rsquared (was an sich ein Problem ist, obwohl ich nicht 100% sicher bin, warum dies geschieht) ... Das Problem, das ich habe fokussiert auf hatte mit den Ausreißern in der folgenden Grafik zu tun.
... Diese Punkte treten im Allgemeinen auf, wenn der Mittelwert der Prädiktorvariablen nahe Null liegt, wie in der folgenden Grafik dargestellt:
Abschließend schlage ich vor, dass Sie eine Standardversion des Modellanpassungs- / Vorhersagefehlers verwenden, z. B. den mittleren quadratischen Fehler (MSE) oder den quadratischen Fehler.
quelle