Tôi sẽ sử dụng chữ cái viết thường cho vectơ và chữ in hoa cho ma trận.
Trong trường hợp mô hình tuyến tính có dạng:
y=Xβ+ε
trong đó là ma trận có thứ hạng và chúng tôi giả sử .Xn×(k+1)k+1≤nε∼N(0,σ2)
Chúng tôi có thể ước tính bằng , kể từ khi nghịch đảo của tồn tại.β^X ⊤ X(X⊤X)−1X⊤yX⊤X
Bây giờ, đối với trường hợp ANOVA, chúng ta có không còn đầy đủ nữa. Hàm ý của điều này là chúng ta không có và chúng ta phải giải quyết cho nghịch đảo tổng quát . ( X ⊤ X ) - 1 ( X ⊤ X ) -X(X⊤X)−1(X⊤X)−
Một trong những vấn đề của việc sử dụng nghịch đảo tổng quát này là nó không phải là duy nhất. Một vấn đề khác là chúng tôi không thể tìm thấy một công cụ ước tính không thiên vị cho , vì
beta = ( X ⊤ X ) - X ⊤ yβ
β^=(X⊤X)−X⊤y⟹E(β^)=(X⊤X)−X⊤Xβ.
Vì vậy, chúng tôi không thể ước tính . Nhưng chúng ta có thể ước tính một tổ hợp tuyến tính của không?βββ
Chúng ta có một sự kết hợp tuyến tính của , giả sử , có thể ước tính được nếu tồn tại một vectơ sao cho .βg⊤βaE(a⊤y)=g⊤β
Sự tương phản là một trường hợp đặc biệt của các hàm ước tính trong đó tổng các hệ số của bằng 0.g
Và, sự tương phản xuất hiện trong bối cảnh của các yếu tố dự đoán phân loại trong một mô hình tuyến tính. (nếu bạn kiểm tra hướng dẫn được liên kết bởi @amoeba, bạn sẽ thấy rằng tất cả mã hóa tương phản của chúng có liên quan đến các biến phân loại). Sau đó, trả lời @Cpered và @amoeba, chúng ta thấy rằng chúng phát sinh trong ANOVA, nhưng không phải trong mô hình hồi quy "thuần túy" chỉ với các yếu tố dự đoán liên tục (chúng ta cũng có thể nói về sự tương phản trong ANCOVA, vì chúng ta có một số biến phân loại trong đó).
Bây giờ, trong mô hình trong đó không phải là toàn hạng và , hàm tuyến tính có thể ước tính iff tồn tại một vectơ sao cho . Nghĩa là, là sự kết hợp tuyến tính của các hàng của . Ngoài ra, có nhiều lựa chọn về vectơ , sao cho , như chúng ta có thể thấy trong ví dụ bên dưới.
y=Xβ+ε
XE(y)=X⊤βg⊤βaa⊤X=g⊤g⊤Xaa⊤X=g⊤
ví dụ 1
Hãy xem xét mô hình một chiều:
yij=μ+αi+εij,i=1,2,j=1,2,3.
X=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢111111111000000111⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥,β=⎡⎣⎢μτ1τ2⎤⎦⎥
Và giả sử , vì vậy chúng tôi muốn ước tính .g⊤=[0,1,−1][0,1,−1]β=τ1−τ2
Chúng ta có thể thấy rằng có nhiều lựa chọn khác nhau về vectơ mang lại : ; hoặc ; hoặc .aa⊤X=g⊤a⊤=[0,0,1,−1,0,0]a⊤=[1,0,0,0,0,−1]a⊤=[2,−1,0,0,1,−2]
Ví dụ 2
Lấy mô hình hai chiều:
.
yij=μ+αi+βj+εij,i=1,2,j=1,2
X=⎡⎣⎢⎢⎢11111100001110100101⎤⎦⎥⎥⎥,β=⎡⎣⎢⎢⎢⎢⎢⎢μα1α2β1β2⎤⎦⎥⎥⎥⎥⎥⎥
Chúng ta có thể xác định các hàm có thể ước tính bằng cách lấy các tổ hợp tuyến tính của các hàng của .X
Trừ hàng 1 từ hàng 2, 3 và 4 (của ):
X
⎡⎣⎢⎢⎢1000−10−1−10011−1−1−0−10101⎤⎦⎥⎥⎥
Và lấy Hàng 2 và 3 từ hàng thứ tư:
⎡⎣⎢⎢⎢1000−10−1−00010−1−1−0−00100⎤⎦⎥⎥⎥
Nhân số này với mang lại:
β
g⊤1βg⊤2βg⊤3β=μ+α1+β1=β2−β1=α2−α1
Vì vậy, chúng ta có ba hàm ước tính độc lập tuyến tính. Bây giờ, chỉ và có thể được coi là tương phản, vì tổng các hệ số của nó (hoặc, hàng tổng của vectơ tương ứng ) bằng 0.g⊤2βg⊤3βg
Quay trở lại mô hình cân bằng một chiều
yij=μ+αi+εij,i=1,2,…,k,j=1,2,…,n.
Và giả sử chúng tôi muốn kiểm tra giả thuyết .H0:α1=…=αk
Trong cài đặt này, ma trận không phải là thứ hạng đầy đủ, vì vậy không phải là duy nhất và không thể ước tính được. Để làm cho nó có thể ước tính, chúng ta có thể nhân với , miễn là . Nói cách khác, có thể ước tính iff .Xβ=(μ,α1,…,αk)⊤βg⊤∑igi=0∑igiαi∑igi=0
Tại sao điều này là đúng?
Chúng tôi biết rằng có thể ước tính được sao cho . Lấy các hàng riêng biệt của và , sau đó:
g⊤β=(0,g1,…,gk)β=∑igiαiag⊤=a⊤XXa⊤=[a1,…,ak]
[0,g1,…,gk]=g⊤=a⊤X=(∑iai,a1,…,ak)
Và kết quả như sau.
Nếu chúng tôi muốn kiểm tra độ tương phản cụ thể, giả thuyết của chúng tôi là . Ví dụ: , có thể được viết là , vì vậy chúng tôi đang so sánh với mức trung bình của và .H0:∑giαi=0H0:2α1=α2+α3H0:α1=α2+α32α1α2α3
Giả thuyết này có thể được biểu thị dưới dạng , trong đó . Trong trường hợp này, và chúng tôi kiểm tra giả thuyết này với thống kê sau:
H0:g⊤β=0g⊤=(0,g1,g2,…,gk)q=1
F=[g⊤β^]⊤[g⊤(X⊤X)−g]−1g⊤β^SSE/k(n−1).
Nếu được biểu thị dưới dạng trong đó các hàng của ma trận
tương phản trực giao lẫn nhau ( ), sau đó chúng tôi có thể kiểm tra bằng cách sử dụng thống kê , trong đóH0:α1=α2=…=αkGβ=0
G=⎡⎣⎢⎢⎢⎢⎢g⊤1g⊤2⋮g⊤k⎤⎦⎥⎥⎥⎥⎥
g⊤igj=0H0:Gβ=0F=SSHrank(G)SSEk(n−1)SSH=[Gβ^]⊤[G(X⊤X)−1G⊤]−1Gβ^.
Ví dụ 3
Để hiểu rõ hơn về điều này, hãy sử dụng và giả sử chúng tôi muốn kiểm tra có thể được biểu thị là
k=4H0:α1=α2=α3=α4,
H0:⎡⎣⎢α1−α2α1−α3α1−α4⎤⎦⎥=⎡⎣⎢000⎤⎦⎥
Hoặc, như :
H0:Gβ=0
H0:⎡⎣⎢000111−1−0−0−0−1−1−0−0−1⎤⎦⎥G,our contrast matrix⎡⎣⎢⎢⎢⎢⎢⎢μα1α2α3α4⎤⎦⎥⎥⎥⎥⎥⎥=⎡⎣⎢000⎤⎦⎥
Vì vậy, chúng ta thấy rằng ba hàng của ma trận tương phản của chúng ta được xác định bởi các hệ số của độ tương phản quan tâm. Và mỗi cột đưa ra mức yếu tố mà chúng tôi đang sử dụng trong so sánh của chúng tôi.
Gần như tất cả những gì tôi đã viết đã được lấy \ sao chép (không biết xấu hổ) từ Rencher & Schaalje, "Mô hình tuyến tính trong thống kê", chương 8 và 13 (ví dụ, từ ngữ của định lý, một số diễn giải), nhưng những thứ khác như thuật ngữ "ma trận tương phản "(Mà, thực sự, không xuất hiện trong cuốn sách này) và định nghĩa của nó được đưa ra ở đây là của riêng tôi.
Liên quan ma trận tương phản của OP với câu trả lời của tôi
Một trong những ma trận của OP (cũng có thể được tìm thấy trong hướng dẫn này ) là:
> contr.treatment(4)
2 3 4
1 0 0 0
2 1 0 0
3 0 1 0
4 0 0 1
Trong trường hợp này, yếu tố của chúng tôi có 4 cấp độ và chúng tôi có thể viết mô hình như sau: Điều này có thể được viết dưới dạng ma trận như:
⎡⎣⎢⎢⎢y11y21y31y41⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢⎢μμμμ⎤⎦⎥⎥⎥⎥+⎡⎣⎢⎢⎢a1a2a3a4⎤⎦⎥⎥⎥+⎡⎣⎢⎢⎢ε11ε21ε31ε41⎤⎦⎥⎥⎥
Hoặc
⎡⎣⎢⎢⎢y11y21y31y41⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢11111000010000100001⎤⎦⎥⎥⎥X⎡⎣⎢⎢⎢⎢⎢⎢μa1a2a3a4⎤⎦⎥⎥⎥⎥⎥⎥β+⎡⎣⎢⎢⎢ε11ε21ε31ε41⎤⎦⎥⎥⎥
Bây giờ, đối với ví dụ mã hóa giả trên cùng một hướng dẫn, họ sử dụng làm nhóm tham chiếu. Do đó, chúng tôi trừ Hàng 1 khỏi mọi hàng khác trong ma trận , tạo ra :a1XX˜
⎡⎣⎢⎢⎢1000−1−1−1−1010000100001⎤⎦⎥⎥⎥
Nếu bạn quan sát số lượng của các hàng và cột trong ma trận contr.treatment (4), bạn sẽ thấy rằng họ xem xét tất cả các hàng và chỉ các cột liên quan đến các yếu tố 2, 3 và 4. Nếu chúng ta làm tương tự trong ma trận trên mang lại:
⎡⎣⎢⎢⎢010000100001⎤⎦⎥⎥⎥
Theo cách này, ma trận contr.treatment (4) đang cho chúng ta biết rằng họ đang so sánh các yếu tố 2, 3 và 4 với yếu tố 1 và so sánh yếu tố 1 với hằng số (đây là cách hiểu của tôi về điều trên).
Và, xác định (nghĩa là chỉ lấy các hàng có tổng bằng 0 trong ma trận trên):
G
⎡⎣⎢000−1−1−1100010001⎤⎦⎥
Chúng tôi có thể kiểm tra và tìm ước tính của độ tương phản.H0:Gβ=0
hsb2 = read.table('http://www.ats.ucla.edu/stat/data/hsb2.csv', header=T, sep=",")
y<-hsb2$write
dummies <- model.matrix(~factor(hsb2$race)+0)
X<-cbind(1,dummies)
# Defining G, what I call contrast matrix
G<-matrix(0,3,5)
G[1,]<-c(0,-1,1,0,0)
G[2,]<-c(0,-1,0,1,0)
G[3,]<-c(0,-1,0,0,1)
G
[,1] [,2] [,3] [,4] [,5]
[1,] 0 -1 1 0 0
[2,] 0 -1 0 1 0
[3,] 0 -1 0 0 1
# Estimating Beta
X.X<-t(X)%*%X
X.y<-t(X)%*%y
library(MASS)
Betas<-ginv(X.X)%*%X.y
# Final estimators:
G%*%Betas
[,1]
[1,] 11.541667
[2,] 1.741667
[3,] 7.596839
Và các ước tính là như nhau.
Liên quan câu trả lời của @ttnphns với tôi.
Trong ví dụ đầu tiên của họ, thiết lập có yếu tố phân loại A có ba cấp độ. Chúng ta có thể viết mô hình này dưới dạng mô hình (giả sử, vì đơn giản, ):
j=1
yij=μ+ai+εij,for i=1,2,3
Và giả sử chúng tôi muốn kiểm tra hoặc , với là nhóm / yếu tố tham chiếu của chúng tôi.H0:a1=a2=a3H0:a1−a3=a2−a3=0a3
Điều này có thể được viết dưới dạng ma trận như:
⎡⎣⎢y11y21y31⎤⎦⎥=⎡⎣⎢μμμ⎤⎦⎥+⎡⎣⎢a1a2a3⎤⎦⎥+⎡⎣⎢ε11ε21ε31⎤⎦⎥
Hoặc
⎡⎣⎢y11y21y31⎤⎦⎥=⎡⎣⎢111100010001⎤⎦⎥X⎡⎣⎢⎢⎢μa1a2a3⎤⎦⎥⎥⎥β+⎡⎣⎢ε11ε21ε31⎤⎦⎥
Bây giờ, nếu chúng ta trừ Hàng 3 khỏi Hàng 1 và Hàng 2, chúng ta sẽ có trở thành (tôi sẽ gọi nó là :XX˜
X˜=⎡⎣⎢001100010−1−1−1⎤⎦⎥
So sánh 3 cột cuối cùng của ma trận trên với ma trận của @ttnphns . Mặc dù có thứ tự, chúng khá giống nhau. Thật vậy, nếu nhân , chúng tôi nhận được:LX˜β
⎡⎣⎢001100010−1−1−1⎤⎦⎥⎡⎣⎢⎢⎢μa1a2a3⎤⎦⎥⎥⎥=⎡⎣⎢a1−a3a2−a3μ+a3⎤⎦⎥
Vì vậy, chúng tôi có các hàm ước tính: ; ; .c⊤1β=a1−a3c⊤2β=a2−a3c⊤3β=μ+a3
Vì , chúng tôi thấy ở trên chúng tôi đang so sánh hằng số của chúng tôi với hệ số cho nhóm tham chiếu (a_3); hệ số của nhóm1 đến hệ số của nhóm 3; và hệ số của nhóm2 đến nhóm3. Hoặc, như @ttnphns nói: "Chúng tôi thấy ngay lập tức, theo các hệ số, hằng số ước tính sẽ bằng giá trị trung bình Y trong nhóm tham chiếu; tham số b1 (tức là biến giả A1) sẽ bằng hiệu số: Y có nghĩa là trong nhóm1 trừ Y có nghĩa là trong nhóm 3 và tham số b2 là sự khác biệt: trung bình trong nhóm2 trừ trung bình trong nhóm 3. "H0:c⊤iβ=0
Hơn nữa, hãy quan sát rằng (theo định nghĩa về độ tương phản: hàm ước tính + hàng tổng = 0), rằng các vectơ và là tương phản. Và, nếu chúng ta tạo một ma trận của các cách hiểu, chúng ta có:c1c2G
G=[001001−1−1]
Ma trận tương phản của chúng tôi để kiểm traH0:Gβ=0
Thí dụ
Chúng tôi sẽ sử dụng cùng một dữ liệu như "Ví dụ tương phản do người dùng xác định" của @ttnphns (Tôi muốn đề cập rằng lý thuyết mà tôi đã viết ở đây yêu cầu một vài sửa đổi để xem xét các mô hình có tương tác, đó là lý do tại sao tôi chọn ví dụ này. , các định nghĩa về độ tương phản và - cái mà tôi gọi là - ma trận tương phản vẫn giống nhau).
Y<-c(0.226,0.6836,-1.772,-0.5085,1.1836,0.5633,0.8709,0.2858,0.4057,-1.156,1.5199,
-0.1388,0.4865,-0.7653,0.3418,-1.273,1.4042,-0.1622,0.3347,-0.4576,0.7585,0.4084,
1.4165,-0.5138,0.9725,0.2373,-1.562,1.3985,0.0397,-0.4689,-1.499,-0.7654,0.1442,
-1.404,-0.2201,-1.166,0.7282,0.9524,-1.462,-0.3478,0.5679,0.5608,1.0338,-1.161,
-0.1037,2.047,2.3613,0.1222)
F_<-c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,
5,5,5,5,5,5,5,5,5,5,5)
dummies.F<-model.matrix(~as.factor(F_)+0)
X_F<-cbind(1,dummies.F)
G_F<-matrix(0,4,6)
G_F[1,]<-c(0,3,3,-2,-2,-2)
G_F[2,]<-c(0,1,-1,0,0,0)
G_F[3,]<-c(0,0,0,2,-1,-1)
G_F[4,]<-c(0,0,0,0,1,-1)
G
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 0 3 3 -2 -2 -2
[2,] 0 1 -1 0 0 0
[3,] 0 0 0 2 -1 -1
[4,] 0 0 0 0 1 -1
# Estimating Beta
X_F.X_F<-t(X_F)%*%X_F
X_F.Y<-t(X_F)%*%Y
Betas_F<-ginv(X_F.X_F)%*%X_F.Y
# Final estimators:
G_F%*%Betas_F
[,1]
[1,] 0.5888183
[2,] -0.1468029
[3,] 0.6115212
[4,] -0.9279030
Vì vậy, chúng tôi có kết quả tương tự.
Phần kết luận
Dường như với tôi rằng không có một khái niệm xác định nào về ma trận tương phản là gì.
Nếu bạn lấy định nghĩa về độ tương phản, được đưa ra bởi Scheffe ("Phân tích phương sai", trang 66), bạn sẽ thấy đó là một hàm ước tính có hệ số tổng bằng không. Vì vậy, nếu chúng tôi muốn kiểm tra các kết hợp tuyến tính khác nhau của các hệ số của các biến phân loại, chúng tôi sử dụng ma trận . Đây là một ma trận trong đó các hàng tổng bằng 0, chúng tôi sử dụng để nhân ma trận hệ số của chúng tôi để làm cho các hệ số đó có thể ước tính được. Các hàng của nó chỉ ra các kết hợp tuyến tính tương phản khác nhau mà chúng tôi đang thử nghiệm và các cột của nó cho biết các yếu tố (hệ số) nào đang được so sánh.G
Vì ma trận ở trên được xây dựng theo cách mà mỗi hàng của nó được tạo bởi một vectơ tương phản (tổng bằng 0), nên đối với tôi, gọi là "ma trận tương phản" ( Monahan - "Một mồi trên các mô hình tuyến tính" - cũng sử dụng thuật ngữ này).GG
Tuy nhiên, như được giải thích tuyệt vời bởi @ttnphns, phần mềm đang gọi một thứ khác là "ma trận tương phản" và tôi không thể tìm thấy mối quan hệ trực tiếp giữa ma trận và các lệnh / ma trận tích hợp từ SPSS (@ttnphns ) hoặc R (câu hỏi của OP), chỉ những điểm tương đồng. Nhưng tôi tin rằng các cuộc thảo luận / hợp tác tốt đẹp được trình bày ở đây sẽ giúp làm rõ các khái niệm và định nghĩa như vậy.G