문제의 모델을 작성할 수 있습니다
y=p(x)+(x−x1)⋯(x−xd)(β0+β1x+⋯+βpxp)+ε
여기서 는 미리 결정된 포인트 통과하는 차수의 다항식 이며 은 임의입니다. ( Lagrange 보간 다항식을 사용하십시오 .) Writing 사용하면이 모델을 다음과 같이 다시 작성할 수 있습니다.p(xi)=yid−1(x1,y1),…,(xd,yd)ε(x−x1)⋯(x−xd)=r(x)
y−p(x)=β0r(x)+β1r(x)x+β2r(x)x2+⋯+βpr(x)xp+ε,
이것은 독립 변수가 수량 인 원본과 동일한 오류 구조를 갖는 표준 OLS 다중 회귀 문제 입니다 . 이러한 변수를 간단히 계산하고 익숙한 회귀 소프트웨어를 실행하여 상수 항이 포함되지 않도록하십시오. 항이없는 회귀에 대한 일반적인주의 사항이 적용됩니다. 특히, 는 인위적으로 높을 수 있고; 일반적인 해석은 적용되지 않습니다.p+1r(x)xi, i=0,1,…,pR2
(실제로 원점을 통한 회귀는 , 및 인이 구성의 특수한 경우 이므로 모델은 )d=1(x1,y1)=(0,0)p(x)=0y=β0x+⋯+βpxp+1+ε.
여기 (에 가공 한 예입니다 R
)
# Generate some data that *do* pass through three points (up to random error).
x <- 1:24
f <- function(x) ( (x-2)*(x-12) + (x-2)*(x-23) + (x-12)*(x-23) ) / 100
y0 <-(x-2) * (x-12) * (x-23) * (1 + x - (x/24)^2) / 10^4 + f(x)
set.seed(17)
eps <- rnorm(length(y0), mean=0, 1/2)
y <- y0 + eps
data <- data.frame(x,y)
# Plot the data and the three special points.
plot(data)
points(cbind(c(2,12,23), f(c(2,12,23))), pch=19, col="Red", cex=1.5)
# For comparison, conduct unconstrained polynomial regression
data$x2 <- x^2
data$x3 <- x^3
data$x4 <- x^4
fit0 <- lm(y ~ x + x2 + x3 + x4, data=data)
lines(predict(fit0), lty=2, lwd=2)
# Conduct the constrained regressions
data$y1 <- y - f(x)
data$r <- (x-2)*(x-12)*(x-23)
data$z0 <- data$r
data$z1 <- data$r * x
data$z2 <- data$r * x^2
fit <- lm(y1 ~ z0 + z1 + z2 - 1, data=data)
lines(predict(fit) + f(x), col="Red", lwd=2)
고정 된 세 점은 빨간색으로 표시되며 데이터의 일부가 아닙니다. 제한되지 않은 4 차 다항식 최소 제곱 피팅은 검은 색 점선으로 표시됩니다 (5 개의 매개 변수가 있음). 구속 된 맞춤 (순서 5 개이지만 3 개의 자유 매개 변수 만 있음)이 빨간색 선으로 표시됩니다.
최소 제곱 출력 ( summary(fit0)
및 summary(fit)
)을 검사하는 것이 도움이 될 수 있습니다. 관심있는 독자에게 맡깁니다.