Mặc dù tôi không thể thực hiện công bằng cho câu hỏi ở đây - điều đó đòi hỏi một chuyên khảo nhỏ - có thể hữu ích để tóm tắt lại một số ý chính.
Câu hỏi
Hãy bắt đầu bằng cách đặt lại câu hỏi và sử dụng thuật ngữ rõ ràng. Các dữ liệu bao gồm một danh sách các cặp có thứ tự . Các hằng số đã biết α 1 và α 2 xác định các giá trị x 1 , i = exp ( α 1 t i ) và x 2 , i = exp ( α 2 t i ) . Chúng tôi đặt ra một mô hình trong đó( tTôi, yTôi) α1α2x1 , tôi= điểm kinh nghiệm( α1tTôi)x2 , tôi= điểm kinh nghiệm( α2tTôi)
yTôi= β1x1 , tôi+ β2x2 , tôi+ εTôi
đối với các hằng số và β 2 được ước tính, ε i là ngẫu nhiên và - dù sao cũng là một xấp xỉ tốt - độc lập và có phương sai chung (ước tính cũng được quan tâm).β1β2εTôi
Bối cảnh: "khớp" tuyến tính
Mosteller và Tukey tham khảo các biến = ( x 1 , 1 , x 1 , 2 , ... ) và x 2 là "quẹt". Chúng sẽ được sử dụng để "khớp" các giá trị của y = ( y 1 , y 2 , Hoài ) theo một cách cụ thể, mà tôi sẽ minh họa. Tổng quát hơn, đặt y và x là hai vectơ bất kỳ trong cùng một không gian vectơ Euclide, với y đóng vai trò là "mục tiêu" và xx1( x1 , 1, x1 , 2, Vách )x2y= ( y1, y2, Vách )yxyxđó là "que diêm". Chúng tôi chiêm nghiệm một cách hệ thống khác nhau hệ số để gần đúng y bởi nhiều λ x . Giá trị gần đúng nhất đạt được khi λ x càng gần y càng tốt. Tương tự, bình phương chiều dài của y - λ x được giảm thiểu.λyλ xλ xyy- λ x
Một cách để hình dung quá trình hợp này là để thực hiện một phân tán của và y trên đó được vẽ đồ thị của x → bước sóng x . Khoảng cách thẳng đứng giữa các điểm phân tán và đồ thị này là các thành phần của vector còn lại y - λ x ; tổng bình phương của chúng là nhỏ nhất có thể. Lên đến một hằng số tỷ lệ, các hình vuông này là các khu vực của các hình tròn được căn giữa tại các điểm ( x i , y i ) với bán kính bằng với phần dư: chúng tôi muốn giảm thiểu tổng diện tích của tất cả các hình tròn này.xyx → bước sóng x y- λ x( xTôi, yTôi)
Dưới đây là một ví dụ cho thấy các giá trị tối ưu của trong bảng điều khiển trung:λ
Các điểm trong biểu đồ tán xạ có màu xanh; đồ thị của là một dòng màu đỏ. Hình minh họa này nhấn mạnh rằng đường màu đỏ bị hạn chế để đi qua gốc ( 0 , 0 ) : đó là trường hợp rất đặc biệt của khớp đường.x → bước sóng x( 0 , 0 )
Nhiều hồi quy có thể thu được bằng cách khớp tuần tự
Quay trở lại các thiết lập của câu hỏi, chúng tôi có một mục tiêu và hai quẹt x 1 và x 2 . Chúng tôi tìm kiếm các số b 1 và b 2 trong đó y gần đúng nhất có thể bởi b 1 x 1 + b 2 x 2 , một lần nữa theo nghĩa khoảng cách nhỏ nhất. Bắt đầu tùy ý với x 1 , Mosteller & Tukey khớp với các biến còn lại x 2 và y với x 1yx1x2b1b2yb1x1+ b2x2x1x2yx1. Viết dư cho những trận đấu như và y ⋅ 1 , tương ứng: các ⋅ 1 chỉ ra rằng x 1 đã được "đưa ra khỏi" biến.x2 ⋅ 1y⋅ 1⋅ 1x1
Chúng tôi có thể viết
y= λ1x1+ y⋅ 1 và x2= λ2x1+ x2 ⋅ 1.
Sau khi chụp ra khỏi x 2 và y , chúng tôi tiến hành để phù hợp với mục tiêu dư y ⋅ 1 đến dư khớp x 2 ⋅ 1 . Phần dư cuối cùng là y ⋅ 12 . Đại số, chúng tôi đã viếtx1x2yy⋅ 1x2 ⋅ 1y⋅ 12
y⋅ 1y= =λ3x2 ⋅1+y⋅12; từ đâu= =λ1x1+ y⋅ 1= =λ1x1+ λ3x2 ⋅ 1+ y⋅ 12= =λ1x1+ λ3(x2- λ2x1) + y⋅ 12= ( λ1- λ3λ2) x1+ λ3x2+ y⋅ 12.
Điều này cho thấy ở bước cuối cùng là hệ số của x 2 trong một kết hợp của x 1 và x 2 với y .λ3x2x1x2y
Chúng ta có thể chỉ cần cũng đã tiến hành bằng cách lấy đầu ra khỏi x 1 và y , sản xuất x 1 ⋅ 2 và y ⋅ 2 , và sau đó dùng x 1 ⋅ 2 ra khỏi y ⋅ 2 , năng suất một bộ khác nhau của dư y ⋅ 21 . Lần này, hệ số của x 1 được tìm thấy ở bước cuối cùng - hãy gọi nó là μ 3 - là hệ số của x 1 trong một kết hợp của x 1 vàx2x1yx1 ⋅ 2y⋅ 2x1 ⋅ 2y⋅ 2y⋅ 21x1μ3x1x1 đến y .x2y
Cuối cùng, để so sánh, chúng ta có thể chạy bội số (hồi quy bình phương nhỏ nhất bình thường) của so với x 1 và x 2 . Đặt các phần dư đó là y ⋅ l m . Nó chỉ ra rằng các hệ số hồi quy trong nhiều này là chính xác hệ số L 3 và λ 3 tìm thấy trước đây và rằng tất cả ba bộ dư, y ⋅ 12 , y ⋅ 21 , và y ⋅ l m , giống hệt nhau.yx1x2y⋅ l mμ3λ3y⋅ 12y⋅ 21y⋅ l m
Mô tả quá trình
Không có gì mới cả: đó là tất cả trong văn bản. Tôi muốn cung cấp một phân tích hình ảnh, sử dụng một ma trận phân tán của tất cả mọi thứ chúng tôi đã thu được cho đến nay.
Bởi vì những dữ liệu được mô phỏng, chúng tôi có sự sang trọng thể hiện các giá trị tiềm ẩn "true" của vào hàng cuối cùng và cột: đó là những giá trị beta 1 x 1 + β 2 x 2 mà không có lỗi được thêm vào trong.yβ1x1+ β2x2
Các biểu đồ tán xạ bên dưới đường chéo đã được trang trí bằng các biểu đồ của các que diêm, chính xác như trong hình đầu tiên. Các biểu đồ có độ dốc bằng không được vẽ bằng màu đỏ: những biểu đồ này cho thấy các tình huống mà trình so khớp cung cấp cho chúng ta không có gì mới; phần dư giống như mục tiêu. Ngoài ra, để tham khảo, nguồn gốc (bất cứ nơi nào nó xuất hiện trong một âm mưu) được hiển thị dưới dạng một vòng tròn màu đỏ mở: nhớ lại rằng tất cả các dòng khớp có thể phải đi qua điểm này.
Nhiều điều có thể được học về hồi quy thông qua việc nghiên cứu cốt truyện này. Một số điểm nổi bật là:
Độ khớp của đến x 1 (hàng 2, cột 1) kém. Đây là một điều tốt : nó chỉ ra rằng x 1 và x 2 đang cung cấp thông tin rất khác nhau; sử dụng cả hai cùng nhau sẽ có khả năng phù hợp với y hơn nhiều so với sử dụng một mình.x2x1x1x2y
Khi một biến đã được đưa ra khỏi mục tiêu, sẽ không tốt nếu bạn cố gắng lấy biến đó ra một lần nữa: dòng khớp tốt nhất sẽ bằng không. Xem tán xạ cho so với x 1 hoặc y ⋅ 1 so với x 1 , ví dụ.x2 ⋅ 1x1y⋅ 1x1
Các giá trị , x 2 , x 1 ⋅ 2 và x 2 ⋅ 1 có tất cả được đưa ra khỏi y ⋅ l m .x1x2x1 ⋅ 2x2 ⋅ 1y⋅ l m
Nhiều hồi quy của đối với x 1 và x 2 có thể đạt được đầu tiên bằng cách tính y ⋅ 1 và x 2 ⋅ 1 . Các biểu đồ phân tán này xuất hiện tại (hàng, cột) = ( 8 , 1 ) và ( 2 , 1 ) , tương ứng. Với những phần dư này trong tay, chúng tôi xem xét sự phân tán của chúng tại ( 4 , 3 ) . Ba biến mộtyx1x2y⋅ 1x2 ⋅ 1( 8 , 1 )( 2 , 1 )( 4 , 3 )hồi quy làm các thủ thuật. Như Mosteller & Tukey giải thích, các lỗi tiêu chuẩn của các hệ số có thể được lấy gần như dễ dàng từ các hồi quy này - nhưng đó không phải là chủ đề của câu hỏi này, vì vậy tôi sẽ dừng ở đây.
Mã
Những dữ liệu này được (tái tạo) được tạo ra R
bằng một mô phỏng. Các phân tích, kiểm tra và lô cũng được sản xuất với R
. Đây là mã.
#
# 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