Warum sagt ein lineares Regressionsmodell mit null Abschnitten besser voraus als ein Modell mit einem Abschnitt?


8

Viele Lehrbücher und Papiere sagten, dass das Abfangen nicht unterdrückt werden sollte. Kürzlich habe ich einen Trainingsdatensatz verwendet, um ein lineares Regressionsmodell mit oder ohne Achsenabschnitt zu erstellen. Ich war überrascht festzustellen, dass das Modell ohne Achsenabschnitt in einem unabhängigen Validierungsdatensatz eine bessere Vorhersage als das mit einem Achsenabschnitt in Bezug auf rmse liefert. Ist die Vorhersagegenauigkeit einer der Gründe, warum ich Zero-Intercept-Modelle verwenden sollte?


Wie groß waren die Stichprobengrößen für Training und Validierung? Vielleicht war das Modell ohne Unterbrechung zufällig besser.
Mark999

Die Stichprobengröße für das Training betrug 289, während die Stichprobengröße für die Validierung 406 betrug. Wie kann man übrigens die besten Stichprobengrößen für das Training und die Validierung ermitteln?
KuJ

Antworten:


3

Schauen Sie sich genau an, wie die rmse oder eine andere Statistik berechnet wird, wenn Sie No-Intercept-Modelle mit Intercept-Modellen vergleichen. Manchmal unterscheiden sich die Annahmen und Berechnungen zwischen den beiden Modellen, und eines passt möglicherweise schlechter, sieht aber besser aus, weil es durch etwas viel Größeres geteilt wird.

Ohne ein reproduzierbares Beispiel ist es schwierig zu sagen, was dazu beitragen kann.


Rmse wurde gemäß der Formel berechnet (verwendet, um Unterschiede zwischen zwei Dingen zu vergleichen, die variieren können, von denen keines als "Standard" akzeptiert wird), angegeben in: en.wikipedia.org/wiki/Root-mean-square_deviation Also die Annahmen und Die Berechnungen sind zwischen den beiden vom Modell abgeleiteten Schätzern gleich.
KuJ

1
Wie ähnlich sind Ihre Trainings- und Validierungssätze? Sie können eine 10-fache Kreuzvalidierung in Betracht ziehen: Teilen Sie die Daten zufällig in 10 gleiche (oder so gleiche wie möglich) Teile auf, verwenden Sie dann 9 davon, um ein Modell zu trainieren, und den 10. als Validierungsstück, und wiederholen Sie den Vorgang mit jedem der Teile Die anderen 9 Teile sind das Validierungsset. Wiederholen Sie dann den gesamten Vorgang (beginnend mit einer neuen zufälligen Aufteilung) etwa zehnmal.
Greg Snow

Y-Variablen und X-Variablen waren zwischen den Trainings- und Validierungssätzen unterschiedlich (P = 0,01). Allerdings war rmse mit dem Modell ohne Unterbrechung immer noch niedriger, als ich das R-Paket MatchIt verwendete, um die Trainings- und Validierungssätze abzugleichen. Im Gegensatz dazu wurde rmse ähnlich, als ich das DAAG-Paket (cv.lm) verwendete, um den kombinierten Datensatz 10-fach zu validieren. Bedeutet dies, dass eine 10-fache Kreuzvalidierung besser ist als ein einfacher Trainingssatz und ein Validierungssatz?
KuJ

2
Ja, die Kreuzvalidierung ist tendenziell besser. Überprüfen Sie, ob es andere Möglichkeiten gibt, wie Ihr Modell überbestimmt ist. Es ist sehr ungewöhnlich, dass ein Modell ohne Intercept besser passt.
Greg Snow

1
In "Erklären oder vorhersagen?" projecteuclid.org/… Professor Galit Shmueli sagte, dass manchmal ein weniger wahres Modell besser vorhersagen kann als ein wahreres Modell. Ich denke, dies könnte einer der Gründe für diesen Fall sein.
KuJ

9

Ich denke nicht, dass Sie Modelle auswählen sollten, nur weil sie in einer bestimmten Stichprobe besser funktionieren, obwohl es gut ist, dass Sie eine Schulungs- und Validierungsstichprobe verwendet haben.

Schauen Sie sich vielmehr an, was die Modelle über Ihre Situation sagen. In einigen Fällen ist ein Null-Intercept-Modell sinnvoll. Wenn der DV 0 sein soll, wenn alle IVs 0 sind, verwenden Sie ein Null-Intercept-Modell. Sonst nicht.

Inhaltliches Wissen sollte die Statistik leiten, nicht umgekehrt


2
Der in Ihrem zweiten Absatz angegebene Grund ist zwar intuitiv, aber oft nicht stark genug, um das Abfangen in vielen solchen Situationen zu unterdrücken. Dieser Punkt wird in einigen anderen Fragen auf dieser Site ausführlicher behandelt.
Kardinal

4
In Methoden- (oder Instrumenten-) Vergleichsstudien (z. B. Vergleich von Oximeter A und Oximeter B) sollte der DV (Sauerstoffgehalt) 0 sein, wenn alle IVs (Sauerstoffwerte) 0 sind. Der Achsenabschnitt sollte jedoch nicht ignoriert werden, wenn Ich möchte Oximeter A mit Oximter B kalibrieren (oder austauschen).
KuJ

5

Ein No-Intercept-Modell kann sinnvoll sein, wenn zwei Bedingungen erfüllt sind. Erstens sollte es eine vernünftige Erwartung des Fachwissens geben, dass der Achsenabschnitt Null ist. Zweitens sollte es eine vernünftige Erwartung des Fachwissens geben, dass die Regressionslinie eine gerade Linie bleibt, wenn Sie sich Null nähern. Selbst wenn beide Bedingungen erfüllt sind, ist es ratsam, eine Analyse mit einem Intercept-Term durchzuführen und sicherzustellen, dass sich der Intercept nicht wesentlich von Null unterscheidet.

(Ich gehe davon aus, dass Sie von einem kontinuierlichen Y und einem kontinuierlichen X sprechen.)


4

Dies wäre verständlich, wenn der von Ihnen erhaltene Abschnitt lediglich Rauschen wäre - kein Sig. anders als Null. (Habe ich Recht, dass die standardisierten Regressionskoeffizienten in beiden Modellen nahezu gleich waren?) Wenn ja, sollten Sie dieses Beispiel nicht verallgemeinern. Wenn Abschnitte sig sind. und wesentlich, sie fügen etwas Sinnvolles zur Vorhersagegenauigkeit hinzu.


1. Die standardisierten Regressionskoeffizienten waren für das Modell mit und ohne Achsenabschnitt nicht gleich (0,91 und 1,02). 2. Der Achsenabschnitt betrug 9,5 (se 1,7, p <0,001). 3. Soweit ich weiß, schlagen viele Artikel vor, den Achsenabschnitt nicht zu unterdrücken, selbst wenn der Achsenabschnitt von Null nicht signifikant war.
KuJ

Wenn die Regression Dummy-Variablen enthält, stellt der Achsenabschnitt dann nicht den Wert dar, wenn alle Dummies für diese Beobachtung 0-codiert sind? Ich bin mir nicht sicher, ob dies hier zutrifft.
Michelle

Nein, es gab keine Dummy-Variablen.
KuJ

2

In der linearen Regression passen Sie:

y=f(β,X)=β0+β1x1+β2x2+

β(X,Y)β0

ich(yich- -f(β,X.ich))2

β0+10000β0

X.β0β0β0

Randnotiz: Die logistische Regression von scikit reguliert standardmäßig den Achsenabschnitt. Weiß jemand warum: http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html ? Ich denke nicht, dass es eine gute Idee ist .


Erneut lernen, den Achsenabschnitt zu regulieren: Dies ist nur dann der Fall, wenn der liblineare Löser verwendet wird, und sie stellen ausdrücklich fest, dass er schlecht ist ( scikit-learn.org/stable/modules/… ). Ich denke, der Parameter intercept_scaling ist in LogisticRegression enthalten, um dies zu mildern.
Erobert

Die Skalierung hilft nicht, wenn Sie die Parameter als Quotenverhältnisse interpretieren möchten.
user48956

Ich bin froh, dass sie die Dokumente aktualisiert haben. Viele Stunden hier verloren.
user48956
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.