Obwohl ich der hier gestellten Frage nicht gerecht werden kann - das würde eine kleine Monographie erfordern -, kann es hilfreich sein, einige Schlüsselideen zusammenzufassen.
Die Frage
Beginnen wir damit, die Frage neu zu formulieren und eine eindeutige Terminologie zu verwenden. Die Daten bestehen aus einer Liste geordneter Paare . Bekannte Konstanten und bestimmen die Werte und . Wir stellen ein Modell auf, in demα 1 α 2 x 1 , i = exp ( α 1 t i ) x 2 , i = exp ( α 2 t i )( tich, yich) α1α2x1,i=exp(α1ti)x2,i=exp(α2ti)
yi=β1x1,i+β2x2,i+εi
für die zu schätzenden Konstanten und ist zufällig und - zumindest in guter Näherung - unabhängig und hat eine gemeinsame Varianz (deren Schätzung ebenfalls von Interesse ist).β 2 ε iβ1β2εi
Hintergrund: lineares "Matching"
Mosteller und Tukey bezeichnen die Variablen = und als "Matcher". Sie werden verwendet, um die Werte von auf eine bestimmte Weise "abzugleichen" , die ich veranschaulichen werde. Allgemeiner gesagt, seien und beliebige zwei Vektoren im selben euklidischen Vektorraum, wobei die Rolle des "Ziels" und die des "Matchers" spielt. Wir überlegen, systematisch einen Koeffizienten variieren, um durch das Vielfache zu approximieren . ( x 1 , 1 , x 1 , 2 , ... ) , x 2 y = ( y 1 , y 2 , ... ) y x y x λ y λ x λ x y y - λ xx1(x1,1,x1,2,…)x2y=(y1,y2,…)yxyxλyλxλxy wie möglich. Entsprechend wird die quadratische Länge von minimiert.y−λx
Eine Möglichkeit, diesen Übereinstimmungsprozess zu visualisieren, besteht darin, ein Streudiagramm von und zu erstellen, auf dem der Graph von gezeichnet ist . Die vertikalen Abstände zwischen den Streudiagrammpunkten und diesem Graphen sind die Komponenten des Restvektors ; Die Summe ihrer Quadrate soll so klein wie möglich sein. Bis auf eine Proportionalitätskonstante sind diese Quadrate die Flächen von Kreisen, die an den Punkten zentriert sind und deren Radien den Residuen entsprechen. Wir möchten die Summe der Flächen aller dieser Kreise minimieren.y x → λ x y - λ x ( x i , y i )xyx→λx y−λx(xi,yi)
Hier ist ein Beispiel, das den optimalen Wert von im mittleren Bereich zeigt:λ
Die Punkte im Streudiagramm sind blau. der Graph von ist eine rote Linie. In dieser Abbildung wird hervorgehoben, dass die rote Linie nur durch den Ursprung : Es handelt sich um einen ganz besonderen Fall der Linienanpassung.( 0 , 0 )x→λx(0,0)
Multiple Regression kann durch sequentielles Matching erhalten werden
Zurück zur Einstellung der Frage, wir haben ein Ziel und zwei Matcher und . Wir suchen Zahlen und für die durch wieder im kleinsten Abstandssinn so genau wie möglich angenähert wird . Beliebig beginnend mit stimmen Mosteller & Tukey die verbleibenden Variablen und mit überein . Schreiben Sie die Residuen für diese Übereinstimmungen als bzw. : Das gibt dies anx 1 x 2 b 1 b 2 y b 1 x 1 + b 2 x 2 x 1 x 2 y x 1 x 2 ≤ 1 y ≤ 1 ≤ 1 x 1yx1x2b1b2yb1x1+b2x2x1x2yx1x2⋅1y⋅1⋅1x1 wurde aus der Variablen "herausgenommen".
Wir können schreiben
y=λ1x1+y⋅1 and x2=λ2x1+x2⋅1.
Nachdem wir aus und , werden wir fortfahren, die Ziel-Residuen mit den Matcher-Residuen abzugleichen . Die endgültigen Residuen sind . Algebraisch haben wir geschriebenx 2 y y ≤ 1 x 2 ≤ 1 y ≤ 12x1x2yy⋅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.
Dies zeigt, dass im letzten Schritt der Koeffizient von bei einer Übereinstimmung von und mit .x 2 x 1 x 2 yλ3x2x1x2y
Wir hätten genauso gut vorgehen können, indem wir zuerst aus und , und und dann aus , was eine andere Menge von Residuen ergibt . Diesmal ist der im letzten Schritt gefundene Koeffizient von - nennen wir ihn - der Koeffizient von in einer Übereinstimmung von und mit .x 1 y x 1 ⋅ 2x2x1yx1 ⋅ 2 x 1 ≤ 2 y ≤ 2 y ≤ 21 x 1 μ 3 x 1 x 1 x 2 yy⋅ 2x1 ⋅ 2y⋅ 2y⋅ 21x1μ3x1x1x2y
Zum Vergleich können wir schließlich ein Vielfaches (gewöhnliche Regression der kleinsten Quadrate) von gegen und ausführen . Diese Residuen seien . Es zeigt sich, dass die Koeffizienten in dieser multiplen Regression genau die zuvor gefundenen Koeffizienten und sind und dass alle drei Mengen von Residuen , und , sind identisch.yx 2 y ≤ l m μ 3 λ 3 y ≤ 12 y ≤ 21 y ≤ l mx1x2y⋅ l mμ3λ3y⋅ 12y⋅ 21y⋅ l m
Darstellung des Prozesses
Nichts davon ist neu: es steht alles im Text. Ich möchte eine bildliche Analyse unter Verwendung einer Streudiagramm-Matrix von allem, was wir bisher erhalten haben, anbieten.
Da diese Daten simuliert werden, haben wir den Luxus, die zugrunde liegenden "wahren" Werte von in der letzten Zeile und Spalte : Dies sind die Werte ohne den hinzugefügten Fehler.β 1 x 1 + β 2 x 2yβ1x1+ β2x2
Die Streudiagramme unter der Diagonale wurden genau wie in der ersten Abbildung mit den Diagrammen der Streichhölzer verziert. Graphen mit einer Steigung von Null sind rot gezeichnet: Diese zeigen Situationen an, in denen der Matcher uns nichts Neues gibt. Die Residuen sind die gleichen wie das Ziel. Außerdem wird der Ursprung (wo immer er in einem Diagramm erscheint) als offener roter Kreis angezeigt: Denken Sie daran, dass alle möglichen übereinstimmenden Linien durch diesen Punkt verlaufen müssen.
Durch das Studium dieser Handlung kann viel über Regression gelernt werden. Einige der Highlights sind:
Die Übereinstimmung von mit (Zeile 2, Spalte 1) ist schlecht. Dies ist eine gute Sache: Es zeigt an, dass und sehr unterschiedliche Informationen liefern. Wenn Sie beide zusammen verwenden, passt dies wahrscheinlich besser zu als wenn Sie nur einen verwenden .x 1 x 1 x 2 yx2x1x1x2y
Sobald eine Variable aus einem Ziel entfernt wurde, ist es nicht sinnvoll, diese Variable erneut zu entfernen: Die am besten passende Linie ist Null. Siehe beispielsweise die Streudiagramme für gegen oder gegen . x 1 y ≤ 1 x 1x2 ⋅ 1x1y⋅ 1x1
Die Werte , , und wurden alle aus .x 2 x 1 ≤ 2 x 2 ≤ 1 y ≤ l mx1x2x1 ⋅ 2x2 ⋅ 1y⋅ l m
Eine mehrfache Regression von gegen und kann zuerst erreicht werden, indem und berechnet werden . Diese Streudiagramme erscheinen bei (Zeile, Spalte) = bzw. . Mit diesen Residuen betrachten wir ihr Streudiagramm bei . Diese drei einvariablen Regressionen machen den Trick. Wie Mosteller & Tukey erläutern, lassen sich die Standardfehler der Koeffizienten auch aus diesen Regressionen fast genauso leicht ermitteln - aber das ist nicht das Thema dieser Frage, deshalb werde ich hier aufhören.x 1 x 2 y ≤ 1 x 2 ≤ 1 ( 8 , 1 ) ( 2 , 1 ) ( 4 , 3 )yx1x2y⋅ 1x2 ⋅ 1( 8 , 1 )( 2 , 1 )( 4 , 3 )
Code
Diese Daten wurden (reproduzierbar) R
mit einer Simulation erstellt. Die Analysen, Kontrollen und Diagramme wurden ebenfalls mit erstellt R
. Das ist der 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