Die Situation
Ich habe einen Datensatz mit einem abhängigen und einer unabhängigen Variablen x . Ich möchte eine kontinuierliche stückweise lineare Regression mit k bekannten / festen Haltepunkten anpassen, die bei ( a 1 , a 2 , … , a k ) auftreten . Die Breakpoins sind ohne Unsicherheit bekannt, daher möchte ich sie nicht schätzen. Dann passe ich eine Regression (OLS) der Form y i = β 0 + β 1 x i + β 2 max ( x i - a 1) an Hier ist ein Beispiel in
R
set.seed(123)
x <- c(1:10, 13:22)
y <- numeric(20)
y[1:10] <- 20:11 + rnorm(10, 0, 1.5)
y[11:20] <- seq(11, 15, len=10) + rnorm(10, 0, 2)
Nehmen wir an, dass der Haltepunkt bei 9,6 liegt :
mod <- lm(y~x+I(pmax(x-9.6, 0)))
summary(mod)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 21.7057 1.1726 18.511 1.06e-12 ***
x -1.1003 0.1788 -6.155 1.06e-05 ***
I(pmax(x - 9.6, 0)) 1.3760 0.2688 5.120 8.54e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Der Achsenabschnitt und die Steigung der beiden Segmente sind: und - 1,1 für das erste und 8,5 bzw. 0,27 für das zweite.
Fragen
- Wie kann man den Schnittpunkt und die Steigung jedes Segments einfach berechnen? Kann das Modell erneut repariert werden, um dies in einer Berechnung zu tun?
- Wie berechnet man den Standardfehler jeder Steigung jedes Segments?
- Wie kann man testen, ob zwei benachbarte Steigungen die gleichen Steigungen haben (dh ob der Haltepunkt weggelassen werden kann)?
quelle
x
und benötigenI(pmax(x-9.6,0))
, ist das richtig?Mein naiver Ansatz, der Frage 1 beantwortet:
Ich bin mir jedoch nicht sicher, ob die Statistiken (insbesondere die Freiheitsgrade) korrekt erstellt wurden, wenn Sie dies auf diese Weise tun.
quelle