Embora eu não possa fazer justiça à questão aqui - isso exigiria uma pequena monografia - pode ser útil recapitular algumas idéias-chave.
A questão
Vamos começar reafirmando a pergunta e usando terminologia inequívoca. Os dados consistem em uma lista de pares ordenados . As constantes conhecidas α 1 e α 2 determinam os valores x 1 , i = exp ( α 1 t i ) e x 2 , i = exp ( α 2 t i ) . Nós postulamos um modelo em que(ti,yi) α1α2x1,i=exp(α1ti)x2,i=exp(α2ti)
yi=β1x1,i+β2x2,i+εi
para que as constantes e β 2 sejam estimadas, ε i é aleatório e - para uma boa aproximação de qualquer maneira - independente e com uma variação comum (cuja estimativa também é interessante).β1β2εi
Segundo plano: "correspondência" linear
Mosteller e Tukey referem-se às variáveis = ( x 1 , 1 , x 1 , 2 , ... ) e x 2 como "matchers." Eles serão usados para "combinar" os valores de y = ( y 1 , y 2 , ... ) de uma maneira específica, que ilustrarei. De modo mais geral, vamos y e x haver quaisquer dois vetores no mesmo espaço vetor, com y desempenhando o papel de "target" e xx1(x1,1,x1,2,…)x2y=(y1,y2,…)yxyxo de "matcher". Contemplamos sistematicamente variar um coeficiente para aproximar y pelo múltiplo λ x . A melhor aproximação é obtida quando λ x é o mais próximo possível de y . Equivalentemente, o comprimento ao quadrado de y - λ x é minimizado.λyλxλxyy−λx
Uma maneira de visualizar este processo de correspondência é fazer com que um conjunto disperso de e y na qual está desenhado o gráfico de X → X x . As distâncias verticais entre os pontos do gráfico de dispersão e este gráfico são os componentes do vetor residual y - λ x ; a soma de seus quadrados deve ser feita o menor possível. Até uma constante de proporcionalidade, esses quadrados são as áreas dos círculos centralizados nos pontos ( x i , y i ) com raios iguais aos resíduos: desejamos minimizar a soma das áreas de todos esses círculos.xyx→λx y−λx(xi,yi)
Aqui está um exemplo que mostra o valor ideal de no painel do meio:λ
Os pontos no gráfico de dispersão são azuis; o gráfico de é uma linha vermelha. Esta ilustração enfatiza que a linha vermelha é forçada a passar pela origem ( 0 , 0 ) : é um caso muito especial de ajuste de linha.x→λx(0,0)
A regressão múltipla pode ser obtida por correspondência sequencial
Voltando ao cenário da pergunta, temos um alvo e dois marcadores x 1 e x 2 . Buscamos os números b 1 e b 2 para os quais y seja o mais próximo possível de b 1 x 1 + b 2 x 2 , novamente no sentido de menor distância. Arbitrariamente começando com x . Escreva os resíduos para essas correspondências como x 2 ⋅ 1 e y ⋅ 1yx1x2b1b2yb1x1+b2x2 , Mosteller e Tukey correspondem às variáveis restantes x 2 e y a x 1x1x2yx1x2⋅1y⋅1 , respectivamente: o ⋅ 1 indica que x 1 foi "retirado" da variável.⋅1x1
Nós podemos escrever
y=λ1x1+y⋅1 and x2=λ2x1+x2⋅1.
Tendo tirado de x 2 e y , passamos a corresponder os resíduos alvo y ⋅ 1 aos resíduos correspondentes x 2 ⋅ 1 . Os resíduos finais são y ⋅ 12 . Algebricamente, escrevemosx1x2yy⋅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.
Isso mostra que o na última etapa é o coeficiente de x 2 em uma correspondência de x 1 e x 2 para y .λ3x2x1x2y
Poderíamos igualmente ter procedido pela primeira tomada de X 1 e Y , produzindo x 1 ⋅ 2 e y ⋅ 2 , e, em seguida, tomando x 1 ⋅ 2 de y ⋅ 2 , obtendo-se um conjunto diferente de resíduos y ⋅ 21 . Desta vez, o coeficiente de x 1 encontrado na última etapa - vamos chamá-lo μ 3 - é o coeficiente de x 1 em uma combinação de x 1 ex2x1yx1⋅2y⋅2x1⋅2y⋅2y⋅21x1μ3x1x1 para y .x2y
Finalmente, para comparação, podemos executar uma múltipla (regressão de mínimos quadrados ordinários) de contra x 1 e x 2 . Deixe aqueles resíduos ser y ⋅ l m . Acontece que os coeficientes nesta regressão múltipla são, precisamente, os coeficientes u 3 e λ 3 encontrado anteriormente e que todos os três conjuntos de resíduos, y ⋅ 12 , y ⋅ 21 , e y ⋅ l m , são idênticos.yx1x2y⋅lmμ3λ3y⋅12y⋅21y⋅lm
Descrevendo o processo
Nada disso é novo: está tudo no texto. Eu gostaria de oferecer uma análise pictórica, usando uma matriz de dispersão de tudo o que obtivemos até agora.
Como esses dados são simulados, temos o luxo de mostrar os valores "verdadeiros" subjacentes de na última linha e coluna: esses são os valores β 1 x 1 + β 2 x 2 sem o erro adicionado.yβ1x1+β2x2
Os gráficos de dispersão abaixo da diagonal foram decorados com os gráficos dos correspondentes, exatamente como na primeira figura. Os gráficos com inclinação zero são desenhados em vermelho: indicam situações em que o jogador não nos dá nada de novo; os resíduos são os mesmos que o alvo. Além disso, para referência, a origem (onde quer que apareça em um gráfico) é mostrada como um círculo vermelho aberto: lembre-se de que todas as linhas correspondentes possíveis precisam passar por esse ponto.
Muito pode ser aprendido sobre regressão através do estudo deste enredo. Alguns dos destaques são:
x2x1x1x2y
x2⋅1x1y⋅1x1
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