R에서 조각별 회귀를 수행하는 방법(단계별)
조각별 회귀는 데이터 세트에 명확한 “중단점”이 있을 때 자주 사용하는 회귀 방법입니다.
다음 단계별 예제에서는 R에서 조각별 회귀를 수행하는 방법을 보여줍니다.
1단계: 데이터 생성
먼저 다음 데이터 프레임을 만들어 보겠습니다.
#view DataFrame df <- data. frame (x=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), y=c(2, 4, 5, 6, 8, 10, 12, 13, 15, 19, 24, 28, 31, 34, 39, 44)) #view first six rows of data frame head(df) xy 1 1 2 2 2 4 3 3 5 4 4 6 5 5 8 6 6 10
2단계: 데이터 시각화
다음으로, 데이터를 시각화하기 위한 산점도를 만들어 보겠습니다.
#create scatterplot of x vs. y plot(df$x, df$y, pch= 16 , col=' steelblue ')
x와 y 사이의 관계가 x = 9 부근에서 갑자기 변하는 것처럼 보이는 것을 볼 수 있습니다.
3단계: 조각별 회귀 모델 피팅
R의 분할된 패키지에 있는 분할() 함수를 사용하여 조각별 회귀 모델을 데이터 세트에 맞출 수 있습니다.
library (segmented) #fit simple linear regression model fit <- lm(y ~ x, data=df) #fit piecewise regression model to original model, estimating a breakpoint at x=9 segmented. fit <- segmented(fit, seg.Z = ~x, psi= 9 ) #view summary of segmented model summary( segmented.fit ) Call: segmented.lm(obj = fit, seg.Z = ~x, psi = 9) Estimated Break-Point(s): East. St.Err psi1.x 8.762 0.26 Meaningful coefficients of the linear terms: Estimate Std. Error t value Pr(>|t|) (Intercept) 0.32143 0.48343 0.665 0.519 x 1.59524 0.09573 16.663 1.16e-09 *** U1.x 2.40476 0.13539 17.762 NA --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 0.6204 on 12 degrees of freedom Multiple R-Squared: 0.9983, Adjusted R-squared: 0.9978 Convergence achieved in 2 iter. (rel. changes 0)
Segmented() 함수는 x = 8.762에서 중단점을 감지합니다.
적합 조각별 회귀 모델은 다음과 같습니다.
x ≤ 8.762인 경우: y = 0.32143 + 1.59524*(x)
x > 8.762인 경우: y = 0.32143 + 1.59524*(8.762) + (1.59524+2.40476)*(x-8.762)
예를 들어 x = 5 값이 있다고 가정합니다. 예상 값은 다음과 같습니다.
- y = 0.32143 + 1.59524*(x)
- y = 0.32143 + 1.59524*(5)
- 와이 = 8.297
또는 x = 12 값이 있다고 가정합니다. 예상 값은 다음과 같습니다.
- y = 0.32143 + 1.59524*(8.762) + (1.59524+2.40476)*(12-8.762)
- 와이 = 27.25
4단계: 최종 조각별 회귀 모델 시각화
다음 코드를 사용하여 원본 데이터 위에 최종 조각별 회귀 모델을 시각화할 수 있습니다.
#plot original data plot(df$x, df$y, pch= 16 , col=' steelblue ') #add segmented regression model plot(segmented. fit , add= T )
조각별 회귀 모델이 데이터에 매우 잘 맞는 것으로 보입니다.
추가 리소스
다음 튜토리얼은 R의 회귀 모델에 대한 추가 정보를 제공합니다.
R에서 단순 선형 회귀를 수행하는 방법
R에서 다중 선형 회귀를 수행하는 방법
R에서 로지스틱 회귀를 수행하는 방법
R에서 분위수 회귀를 수행하는 방법
R에서 가중 회귀를 수행하는 방법