Warum wird der Achsenabschnitt in Statistikpaketen (R, Python) als 1 eingegeben?

7

Wenn Sie eine Statistiksoftware verwenden, warum wird bei der Definition Ihrer linearen Modelle der Achsenabschnitt als 1 eingegeben und nicht als "const" oder "intercept" oder so. Welche Bedeutung hat ich?

Gibt es einen historischen Grund? Oder ist das irgendwie logisch, was ich nicht verstehe? Der Achsenabschnitt könnte sehr gut eine beliebige Zahl sein.

Beispiel aus der Statistikmodellbibliothek in Python:

model = smf.ols('Height ~ 1', data = height_sample_data)

Ich weiß, dass das Lmer-Paket für R sehr ähnlich ist.

Adam B.
quelle
5
Der Achsenabschnitt ist der Koeffizient (der tatsächlich einen beliebigen Wert haben kann), aber was Sie in das Regressionsprogramm eingeben, wenn Sie das Modell anpassen, sind nicht die Koeffizienten, sondern die Dinge, mit denen Sie die Koeffizienten in der Regressionsgleichung multiplizieren (diex's). Womit multiplizieren Sie den Achsenabschnitt in der Regressionsgleichung? (Beachten Sie, dassβ0×1=β0.)
Glen_b -Reinstate Monica

Antworten:

16

Wenn Sie die Matrixnotation berücksichtigen, ist es logisch, dass Ihre Formel intern übersetzt wird. In der Matrix werden die nicht konstanten Prädiktoren in (eine oder mehrere) Spalten übersetzt, und der Achsenabschnitt wird in eine Spalte übersetzt, die vollständig aus Einsen besteht.

Zum Beispiel würden Sie in R ein sehr einfaches OLS schreiben als:

lm(z~1+x+y)

In der Matrixnotation würde dies in ein Modell übersetzt

(z1z2zn)=(1x1y11x2y21xnyn)(β0βxβz)+(ϵ1ϵ2ϵn),

und jetzt siehst du wo die 1 kommt von.


Eigentlich könnten Sie das 1+weglassen, da R immer davon ausgeht, dass Sie einen Achsenabschnitt einschließen möchten, also ist dies völlig gleichbedeutend mit

lm(z~x+y).

Wenn Sie jedoch den Achsenabschnitt unterdrücken möchten , würden Sie so etwas wie schreiben

lm(z~x+y-1),

was in eine Matrix ohne 1 Spalte übersetzt werden würde:

(z1z2zn)=(x1y1x2y2xnyn)(βxβz)+(ϵ1ϵ2ϵn),

Stephan Kolassa
quelle