Stückweise Regression in R

Sheeraz Gul 15 Februar 2024
Stückweise Regression in R

Die stückweise Regression wird verwendet, wenn es klare Haltepunkte in den Daten gibt. Dieses Tutorial zeigt, wie Sie eine stückweise Regression in R durchführen.

Stückweise Regression in R

Wenn es klare Bruchstellen in den Daten gibt, ist die funktionierende Regression die stückweise Regression. Die stückweise Regression ist der schrittweise Prozess, wie unten gezeigt:

  • Erstellen Sie den Datenrahmen.
  • Passen Sie das lineare Regressionsmodell für die Daten an. Wir können dies mit der Methode lm() tun.
  • Passen Sie das stückweise Regressionsmodell an. Die Methode segmented() aus dem Paket segmented wird verwendet, um das stückweise Regressionsmodell anzupassen.
  • Visualisieren Sie das endgültige stückweise Regressionsmodell mit der Methode plot().

Versuchen wir nun ein Beispiel mit den obigen Schritten. Siehe Beispiel:

#Step 1
#create the DataFrame
data<-read.table(text="
Year    Stopped
2015    973
2016    1025
2017    1151
2018    1384
2019    4507
2020    15557
", header=T, sep="")

#first six rows of the data frame
head(data)


#Step2
#fit the simple linear regression model
dput(names(data))
q.lm <- lm(log(Stopped) ~ Year, data)
summary(q.lm)


#Step3
#fit the piecewise regression model to original model,
#estimating a breakpoint at x=14
install.packages('segmented')
library(segmented)

o <- segmented(q.lm, seg.Z = ~Year, psi = 2018)

# view the summary
summary(o)


#Step4
# visulize the piecewise regression model
plot(o)
points(log(Stopped) ~ Year, data)

Der obige Code erstellt ein stückweises Regressionsmodell für die Personen, die das Studium in verschiedenen Jahren abgebrochen haben. Der Code hat einige Ausgaben, die im Folgenden beschrieben werden:

Die Ausgabe für Schritt 1:

  Year Stopped
1 2015     973
2 2016    1025
3 2017    1151
4 2018    1384
5 2019    4507
6 2020   15557

Es zeigt den Kopf der Daten.

Die Ausgabe für Schritt 2:

Call:
lm(formula = log(Stopped) ~ Year, data = data)

Residuals:
       1        2        3        4        5        6
 0.50759  0.03146 -0.38079 -0.72463 -0.07216  0.63853

Coefficients:
              Estimate Std. Error t value Pr(>|t|)
(Intercept) -1057.9257   279.3081  -3.788   0.0193 *
Year            0.5282     0.1384   3.815   0.0189 *
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.5791 on 4 degrees of freedom
Multiple R-squared:  0.7844,	Adjusted R-squared:  0.7305
F-statistic: 14.56 on 1 and 4 DF,  p-value: 0.01886

Dies zeigt die Zusammenfassung für das lineare Regressionsmodell.

Die Ausgabe für Schritt 3:

***Regression Model with Segmented Relationship(s)***

Call:
segmented.lm(obj = q.lm, seg.Z = ~Year, psi = 2018)

Estimated Break-Point(s):
              Est. St.Err
psi1.Year 2017.91  0.039

Meaningful coefficients of the linear terms:
              Estimate Std. Error t value Pr(>|t|)
(Intercept) -162.39260   35.56716  -4.566   0.0448 *
Year           0.08400    0.01764   4.761   0.0414 *
U1.Year        1.12577    0.02495  45.121       NA
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.02495 on 2 degrees of freedom
Multiple R-Squared: 0.9998,  Adjusted R-squared: 0.9995

Boot restarting based on 6 samples. Last fit:
Convergence attained in 1 iterations (rel. change 3.7909e-16)

Dies passt zum stückweisen Regressionsmodell und zeigt die Zusammenfassung für das Modell. Das Modell erkennt einen Breakpoint im Jahr 2017.91.

Die Ausgabe für Schritt 4:

Stückweises Regressionsmodell

Es visualisiert das stückweise Regressionsmodell. Das Diagramm zeigt, dass das stückweise Regressionsmodell recht gut zu den gegebenen Daten passt.

Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Verwandter Artikel - R Regression