Burada soruya adalet yapamasam da - bu küçük bir monograf gerektirecekti - bazı temel fikirleri tekrar özetlemek yardımcı olabilir.
Soru
Soruyu yeniden yazarak ve açık bir terminoloji kullanarak başlayalım. Veri sipariş çiftlerinin bir listesini içerir . Adı sabit a 1 ve α 2 değerlerini belirlemek x 1 , i = exp ( α 1 t i ) ve x 2 , i = exp ( α 2 T i ) . İçinde bir model(ti,yi) α1α2x1,i=exp(α1ti)x2,i=exp(α2ti)
yi=β1x1,i+β2x2,i+εi
için sabit ve β 2 , tahmin edilecek ε I rasgele ve - iyi bir yaklaşım için yine de - bağımsız ve (bunun tahmini ilgi de), ortak bir varyansa sahip.β1β2εi
Arka plan: doğrusal "eşleme"
Mosteller ve Tukey = ( x 1 , 1 , x 1 , 2 , … ) ve x 2 değişkenlerini "eşleştirici" olarak adlandırır. Y = ( y 1 , y 2 , … ) değerlerini açıklayacağım belirli bir şekilde "eşleştirmek" için kullanılacaktır . Daha genel olarak, y ve x aynı Öklid vektör uzayında herhangi bir iki vektör olsun, y "hedef" ve x rolünü oynarx1(x1,1,x1,2,…)x2y=(y1,y2,…)yxyx"eşleştirici" nin. Y'yi katsayı λ x ile yaklaşık olarak tahmin etmek için sistematik olarak bir katsayıyı değiştirmeyi düşünüyoruz . En iyi yaklaşık λ x y'ye mümkün olduğunca yakın olduğunda elde edilir . Eşdeğer olarak, y - λ x'in kare uzunluğu en aza indirilir.λyλxλxyy−λx
Bu eşleştirme işlemi görselleştirmek için bir yolu, bir dağılım grafiğini yapmaktır ve y grafiğini çizildiği X → A, X . Dağılım grafiği noktaları ile bu grafik arasındaki dikey mesafeler, artık y - λ x vektörünün bileşenleridir ; karelerinin toplamı mümkün olduğunca küçük olmalıdır. Orantılılık sabitine kadar, bu kareler noktalara ( x i , y i ) merkezlenmiş dairelerin yarıçapı artıklara eşit olan alanlarıdır: tüm bu dairelerin alanlarının toplamını en aza indirmek istiyoruz.xyx→λx y−λx(xi,yi)
Orta panelde optimal değerini gösteren bir örnek :λ
Dağılım grafiğindeki noktalar mavidir; grafiği kırmızı bir çizgidir. Bu resimde kırmızı çizginin başlangıç noktasından ( 0 , 0 ) geçmesi kısıtlandığı vurgulanmaktadır : bu çok özel bir hat bağlantısı örneğidir.x→λx(0,0)
Ardışık eşleme ile çoklu regresyon elde edilebilir
Sorunun ayarına dönersek, bir hedef ve iki eşleştirici x 1 ve x 2 var . Bu numara arama b , 1 ve b 2 olan Y ile mümkün olduğu kadar yakın yaklaşılır b 1 x 1 + b 2 x 2 daha az mesafeli anlamda. Keyfi ile başlayan x 1 , Mosteller ve Tukey eşleşen diğer değişkenler x 2 ve y için x 1yx1x2b1b2yb1x1+b2x2x1x2yx1. Bu eşleşmelerin kalıntılarını sırasıyla ve y ⋅ 1 olarak yazın: ⋅ 1 , x 1'in değişkenten "çıkarıldığı" anlamına gelir.x2⋅1y⋅1⋅1x1
Yazabiliriz
y=λ1x1+y⋅1 and x2=λ2x1+x2⋅1.
Alınmış olması arasında out x 2 ve y , hedef artığı eşleşecek şekilde devam y ⋅ 1 eşleştirici artıklardan için x 2 ⋅ 1 . Nihai artıklar y ⋅ 12'dir . Cebirsel olarak yazdıkx1x2yy⋅1x2⋅1y⋅12
y⋅1y=λ3x2⋅1+y⋅12; whence=λ1x1+y⋅1=λ1x1+λ3x2⋅1+y⋅12=λ1x1+λ3(x2−λ2x1)+y⋅12=(λ1−λ3λ2)x1+λ3x2+y⋅12.
This shows that the λ3 in the last step is the coefficient of x2 in a matching of x1 and x2 to y.
We could just as well have proceeded by first taking x2 out of x1 and y, producing x1⋅2 and y⋅2, and then taking x1⋅2 out of y⋅2, yielding a different set of residuals y⋅21. This time, the coefficient of x1 found in the last step--let's call it μ3--is the coefficient of x1 in a matching of x1 and x2 to y.
Finally, for comparison, we might run a multiple (ordinary least squares regression) of y against x1 and x2. Let those residuals be y⋅lm. It turns out that the coefficients in this multiple regression are precisely the coefficients μ3 and λ3 found previously and that all three sets of residuals, y⋅12, y⋅21, and y⋅lm, are identical.
Depicting the process
None of this is new: it's all in the text. I would like to offer a pictorial analysis, using a scatterplot matrix of everything we have obtained so far.
Because these data are simulated, we have the luxury of showing the underlying "true" values of y on the last row and column: these are the values β1x1+β2x2 without the error added in.
The scatterplots below the diagonal have been decorated with the graphs of the matchers, exactly as in the first figure. Graphs with zero slopes are drawn in red: these indicate situations where the matcher gives us nothing new; the residuals are the same as the target. Also, for reference, the origin (wherever it appears within a plot) is shown as an open red circle: recall that all possible matching lines have to pass through this point.
Much can be learned about regression through studying this plot. Some of the highlights are:
The matching of x2 to x1 (row 2, column 1) is poor. This is a good thing: it indicates that x1 and x2 are providing very different information; using both together will likely be a much better fit to y than using either one alone.
Once a variable has been taken out of a target, it does no good to try to take that variable out again: the best matching line will be zero. See the scatterplots for x2⋅1 versus x1 or y⋅1 versus x1, for instance.
The values x1, x2, x1⋅2, and x2⋅1 have all been taken out of y⋅lm.
Multiple regression of y against x1 and x2 can be achieved first by computing y⋅1 and x2⋅1. These scatterplots appear at (row, column) = (8,1) and (2,1), respectively. With these residuals in hand, we look at their scatterplot at (4,3). These three one-variable regressions do the trick. As Mosteller & Tukey explain, the standard errors of the coefficients can be obtained almost as easily from these regressions, too--but that's not the topic of this question, so I will stop here.
Code
These data were (reproducibly) created in R
with a simulation. The analyses, checks, and plots were also produced with R
. This is the code.
#
# Simulate the data.
#
set.seed(17)
t.var <- 1:50 # The "times" t[i]
x <- exp(t.var %o% c(x1=-0.1, x2=0.025) ) # The two "matchers" x[1,] and x[2,]
beta <- c(5, -1) # The (unknown) coefficients
sigma <- 1/2 # Standard deviation of the errors
error <- sigma * rnorm(length(t.var)) # Simulated errors
y <- (y.true <- as.vector(x %*% beta)) + error # True and simulated y values
data <- data.frame(t.var, x, y, y.true)
par(col="Black", bty="o", lty=0, pch=1)
pairs(data) # Get a close look at the data
#
# Take out the various matchers.
#
take.out <- function(y, x) {fit <- lm(y ~ x - 1); resid(fit)}
data <- transform(transform(data,
x2.1 = take.out(x2, x1),
y.1 = take.out(y, x1),
x1.2 = take.out(x1, x2),
y.2 = take.out(y, x2)
),
y.21 = take.out(y.2, x1.2),
y.12 = take.out(y.1, x2.1)
)
data$y.lm <- resid(lm(y ~ x - 1)) # Multiple regression for comparison
#
# Analysis.
#
# Reorder the dataframe (for presentation):
data <- data[c(1:3, 5:12, 4)]
# Confirm that the three ways to obtain the fit are the same:
pairs(subset(data, select=c(y.12, y.21, y.lm)))
# Explore what happened:
panel.lm <- function (x, y, col=par("col"), bg=NA, pch=par("pch"),
cex=1, col.smooth="red", ...) {
box(col="Gray", bty="o")
ok <- is.finite(x) & is.finite(y)
if (any(ok)) {
b <- coef(lm(y[ok] ~ x[ok] - 1))
col0 <- ifelse(abs(b) < 10^-8, "Red", "Blue")
lwd0 <- ifelse(abs(b) < 10^-8, 3, 2)
abline(c(0, b), col=col0, lwd=lwd0)
}
points(x, y, pch = pch, col="Black", bg = bg, cex = cex)
points(matrix(c(0,0), nrow=1), col="Red", pch=1)
}
panel.hist <- function(x, ...) {
usr <- par("usr"); on.exit(par(usr))
par(usr = c(usr[1:2], 0, 1.5) )
h <- hist(x, plot = FALSE)
breaks <- h$breaks; nB <- length(breaks)
y <- h$counts; y <- y/max(y)
rect(breaks[-nB], 0, breaks[-1], y, ...)
}
par(lty=1, pch=19, col="Gray")
pairs(subset(data, select=c(-t.var, -y.12, -y.21)), col="Gray", cex=0.8,
lower.panel=panel.lm, diag.panel=panel.hist)
# Additional interesting plots:
par(col="Black", pch=1)
#pairs(subset(data, select=c(-t.var, -x1.2, -y.2, -y.21)))
#pairs(subset(data, select=c(-t.var, -x1, -x2)))
#pairs(subset(data, select=c(x2.1, y.1, y.12)))
# Details of the variances, showing how to obtain multiple regression
# standard errors from the OLS matches.
norm <- function(x) sqrt(sum(x * x))
lapply(data, norm)
s <- summary(lm(y ~ x1 + x2 - 1, data=data))
c(s$sigma, s$coefficients["x1", "Std. Error"] * norm(data$x1.2)) # Equal
c(s$sigma, s$coefficients["x2", "Std. Error"] * norm(data$x2.1)) # Equal
c(s$sigma, norm(data$y.12) / sqrt(length(data$y.12) - 2)) # Equal