Saya akan menggunakan huruf kecil untuk vektor dan huruf besar untuk matriks.
Dalam hal model linier bentuk:
y=Xβ+ε
di mana adalah matriks peringkat , dan kami mengasumsikan .Xn×(k+1)k+1≤nε∼N(0,σ2)
Kita dapat memperkirakan oleh , karena kebalikan dari ada.β^(X⊤X)−1X⊤yX⊤X
Sekarang, untuk kasus ANOVA, kami memiliki bukan peringkat penuh lagi. Implikasinya adalah kita tidak memiliki dan kita harus puas dengan invers yang digeneralisasi .X(X⊤X)−1(X⊤X)−
Salah satu masalah menggunakan invers umum ini adalah bahwa itu tidak unik. Masalah lain adalah bahwa kita tidak dapat menemukan penaksir yang tidak bias untuk , karena
β
β^=(X⊤X)−X⊤y⟹E(β^)=(X⊤X)−X⊤Xβ.
Jadi, kami tidak dapat memperkirakan . Tetapi bisakah kita memperkirakan kombinasi linear dari ?ββ
Kami memiliki kombinasi linear dari 's, misalkan , dapat diperkirakan jika ada vektor sedemikian rupa sehingga .βg⊤βaE(a⊤y)=g⊤β
The kontras adalah kasus khusus dari fungsi diduga di mana jumlah dari koefisien adalah sama dengan nol.g
Dan, kontras muncul dalam konteks prediktor kategori dalam model linier. (jika Anda memeriksa manual yang dihubungkan oleh @amoeba, Anda melihat bahwa semua pengkodean kontras mereka terkait dengan variabel kategori) Kemudian, menjawab @Curious dan @amoeba, kita melihat bahwa mereka muncul dalam ANOVA, tetapi tidak dalam model regresi "murni" dengan hanya prediktor kontinu (kita juga dapat berbicara tentang perbedaan dalam ANCOVA, karena kita memiliki beberapa variabel kategori di dalamnya).
Sekarang, dalam model mana tidak peringkat penuh, dan , fungsi linear dapat diperkirakan jika ada vektor sedemikian rupa sehingga . Yaitu, adalah kombinasi linear dari baris . Juga, ada banyak pilihan vektor , sedemikian rupa sehingga , seperti yang dapat kita lihat pada contoh di bawah ini.
y=Xβ+ε
XE(y)=X⊤βg⊤βaa⊤X=g⊤g⊤Xaa⊤X=g⊤
Contoh 1
Pertimbangkan model satu arah:
yij=μ+αi+εij,i=1,2,j=1,2,3.
X=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢111111111000000111⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥,β=⎡⎣⎢μτ1τ2⎤⎦⎥
Dan misalkan , jadi kami ingin memperkirakan .g⊤=[0,1,−1][0,1,−1]β=τ1−τ2
Kita dapat melihat bahwa ada berbagai pilihan vektor yang menghasilkan : take ; atau ; atau .aa⊤X=g⊤a⊤=[0,0,1,−1,0,0]a⊤=[1,0,0,0,0,−1]a⊤=[2,−1,0,0,1,−2]
Contoh 2
Ambil model dua arah:
.
yij=μ+αi+βj+εij,i=1,2,j=1,2
X=⎡⎣⎢⎢⎢11111100001110100101⎤⎦⎥⎥⎥,β=⎡⎣⎢⎢⎢⎢⎢⎢μα1α2β1β2⎤⎦⎥⎥⎥⎥⎥⎥
Kita dapat mendefinisikan fungsi yang dapat diperkirakan dengan mengambil kombinasi linear dari baris .X
Mengurangkan Baris 1 dari Baris 2, 3, dan 4 (dari ):
X
⎡⎣⎢⎢⎢1000−10−1−10011−1−1−0−10101⎤⎦⎥⎥⎥
Dan mengambil Baris 2 dan 3 dari baris keempat:
⎡⎣⎢⎢⎢1000−10−1−00010−1−1−0−00100⎤⎦⎥⎥⎥
Mengalikan ini dengan menghasilkan:
β
g⊤1βg⊤2βg⊤3β=μ+α1+β1=β2−β1=α2−α1
Jadi, kami memiliki tiga fungsi yang dapat diperkirakan secara linear independen. Sekarang, hanya dan dapat dianggap sebagai kontras, karena jumlah koefisiennya (atau, barisnya jumlah masing-masing vektor ) sama dengan nol.g⊤2βg⊤3βg
Kembali ke model seimbang satu arah
yij=μ+αi+εij,i=1,2,…,k,j=1,2,…,n.
Dan anggaplah kita ingin menguji hipotesis .H0:α1=…=αk
Dalam pengaturan ini, matriks bukan peringkat penuh, jadi tidak unik dan tidak dapat diperkirakan. Untuk membuatnya dapat diperkirakan, kita dapat mengalikan dengan , selama . Dengan kata lain, dapat iff .Xβ=(μ,α1,…,αk)⊤βg⊤∑igi=0∑igiαi∑igi=0
Kenapa ini benar?
Kita tahu bahwa dapat jika ada vektor sedemikian rupa sehingga . Mengambil baris berbeda dari dan , lalu:
g⊤β=(0,g1,…,gk)β=∑igiαiag⊤=a⊤XXa⊤=[a1,…,ak]
[0,g1,…,gk]=g⊤=a⊤X=(∑iai,a1,…,ak)
Dan hasilnya berikut.
Jika kami ingin menguji kontras tertentu, hipotesis kami adalah . Misalnya: , yang dapat ditulis sebagai , jadi kami membandingkan dengan rata-rata dan .H0:∑giαi=0H0:2α1=α2+α3H0:α1=α2+α32α1α2α3
Hipotesis ini dapat dinyatakan sebagai , di mana . Dalam kasus ini, dan kami menguji hipotesis ini dengan statistik berikut:
H0:g⊤β=0g⊤=(0,g1,g2,…,gk)q=1
F=[g⊤β^]⊤[g⊤(X⊤X)−g]−1g⊤β^SSE/k(n−1).
Jika dinyatakan sebagai mana baris matriks
adalah kontras ortogonal yang saling menguntungkan ( ), maka kita dapat menguji menggunakan statistik , di manaH0:α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β^.
Contoh 3
Untuk memahami ini lebih baik, mari kita gunakan , dan anggaplah kita ingin menguji yang dapat dinyatakan sebagai
k=4H0:α1=α2=α3=α4,
H0:⎡⎣⎢α1−α2α1−α3α1−α4⎤⎦⎥=⎡⎣⎢000⎤⎦⎥
Atau, seperti :
H0:Gβ=0
H0:⎡⎣⎢000111−1−0−0−0−1−1−0−0−1⎤⎦⎥G,our contrast matrix⎡⎣⎢⎢⎢⎢⎢⎢μα1α2α3α4⎤⎦⎥⎥⎥⎥⎥⎥=⎡⎣⎢000⎤⎦⎥
Jadi, kita melihat bahwa tiga baris matriks kontras kita ditentukan oleh koefisien dari perbedaan kepentingan. Dan setiap kolom memberikan tingkat faktor yang kami gunakan dalam perbandingan kami.
Hampir semua yang saya tulis diambil \ disalin (tanpa malu-malu) dari Rencher & Schaalje, "Model Linear dalam Statistik", bab 8 dan 13 (contoh, kata-kata teorema, beberapa interpretasi), tetapi hal-hal lain seperti istilah "matriks kontras "(yang, memang, tidak muncul dalam buku ini) dan definisi yang diberikan di sini adalah milik saya.
Mengaitkan matriks kontras OP dengan jawaban saya
Salah satu matriks OP (yang juga dapat ditemukan dalam manual ini ) adalah sebagai berikut:
> contr.treatment(4)
2 3 4
1 0 0 0
2 1 0 0
3 0 1 0
4 0 0 1
Dalam hal ini, faktor kami memiliki 4 level, dan kami dapat menulis model sebagai berikut: Ini dapat ditulis dalam bentuk matriks sebagai:
⎡⎣⎢⎢⎢y11y21y31y41⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢⎢μμμμ⎤⎦⎥⎥⎥⎥+⎡⎣⎢⎢⎢a1a2a3a4⎤⎦⎥⎥⎥+⎡⎣⎢⎢⎢ε11ε21ε31ε41⎤⎦⎥⎥⎥
Atau
⎡⎣⎢⎢⎢y11y21y31y41⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢11111000010000100001⎤⎦⎥⎥⎥X⎡⎣⎢⎢⎢⎢⎢⎢μa1a2a3a4⎤⎦⎥⎥⎥⎥⎥⎥β+⎡⎣⎢⎢⎢ε11ε21ε31ε41⎤⎦⎥⎥⎥
Sekarang, untuk contoh pengkodean dummy pada manual yang sama, mereka menggunakan sebagai grup referensi. Dengan demikian, kita mengurangi Baris 1 dari setiap baris lain dalam matriks , yang menghasilkan :a1XX˜
⎡⎣⎢⎢⎢1000−1−1−1−1010000100001⎤⎦⎥⎥⎥
Jika Anda mengamati penomoran baris dan kolom dalam matriks contr.treatment (4), Anda akan melihat bahwa mereka mempertimbangkan semua baris dan hanya kolom yang terkait dengan faktor 2, 3, dan 4. Jika kita melakukan hal yang sama dalam matriks di atas menghasilkan:
⎡⎣⎢⎢⎢010000100001⎤⎦⎥⎥⎥
Dengan cara ini, contr.treatment (4) matrix memberitahu kita bahwa mereka membandingkan faktor 2, 3 dan 4 dengan faktor 1, dan membandingkan faktor 1 dengan konstanta (ini adalah pemahaman saya tentang hal di atas).
Dan, mendefinisikan (yaitu hanya mengambil baris yang berjumlah 0 dalam matriks di atas):
G
⎡⎣⎢000−1−1−1100010001⎤⎦⎥
Kita dapat menguji dan menemukan perkiraan kontrasnya.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
Dan perkiraannya sama.
Menghubungkan jawaban @ttnphns dengan saya.
Pada contoh pertama mereka, pengaturan memiliki faktor kategori A yang memiliki tiga level. Kita dapat menulis ini sebagai model (misalkan, untuk kesederhanaan, bahwa ):
j=1
yij=μ+ai+εij,for i=1,2,3
Dan misalkan kita ingin menguji , atau , dengan sebagai grup / faktor referensi kami.H0:a1=a2=a3H0:a1−a3=a2−a3=0a3
Ini dapat ditulis dalam bentuk matriks sebagai:
⎡⎣⎢y11y21y31⎤⎦⎥=⎡⎣⎢μμμ⎤⎦⎥+⎡⎣⎢a1a2a3⎤⎦⎥+⎡⎣⎢ε11ε21ε31⎤⎦⎥
Atau
⎡⎣⎢y11y21y31⎤⎦⎥=⎡⎣⎢111100010001⎤⎦⎥X⎡⎣⎢⎢⎢μa1a2a3⎤⎦⎥⎥⎥β+⎡⎣⎢ε11ε21ε31⎤⎦⎥
Sekarang, jika kita mengurangi Baris 3 dari Baris 1 dan Baris 2, kita memiliki menjadi (Saya akan menyebutnya :XX˜
X˜=⎡⎣⎢001100010−1−1−1⎤⎦⎥
Bandingkan 3 kolom terakhir dari matriks di atas dengan @ttnphns 'matrix . Terlepas dari urutannya, mereka sangat mirip. Memang, jika multiply , kita mendapatkan:LX˜β
⎡⎣⎢001100010−1−1−1⎤⎦⎥⎡⎣⎢⎢⎢μa1a2a3⎤⎦⎥⎥⎥=⎡⎣⎢a1−a3a2−a3μ+a3⎤⎦⎥
Jadi, kami memiliki fungsi yang dapat diperkirakan: ; ; .c⊤1β=a1−a3c⊤2β=a2−a3c⊤3β=μ+a3
Karena , kita melihat dari atas bahwa kita membandingkan konstanta kita dengan koefisien untuk grup referensi (a_3); koefisien group1 ke koefisien group3; dan koefisien group2 ke grup3. Atau, seperti yang dikatakan @ttnphns: "Kita segera melihat, mengikuti koefisien, bahwa estimasi Constant akan sama dengan rata-rata Y dalam kelompok referensi; parameter b1 (yaitu dari variabel dummy A1) akan sama dengan perbedaan: Y berarti dalam group1 dikurangi Rata-rata Y di group3; dan parameter b2 adalah perbedaan: rata-rata di group2 dikurangi rata-rata di group3. "H0:c⊤iβ=0
Selain itu, perhatikan bahwa (mengikuti definisi kontras: fungsi yang dapat diperkirakan + jumlah baris = 0), bahwa vektor dan adalah kontras. Dan, jika kita membuat matriks dari konstrast, kita memiliki:c1c2G
G=[001001−1−1]
Matriks kontras kami untuk mengujiH0:Gβ=0
Contoh
Kami akan menggunakan data yang sama dengan @ttnphns '"Contoh kontras yang ditentukan pengguna" (Saya ingin menyebutkan bahwa teori yang saya tulis di sini memerlukan beberapa modifikasi untuk mempertimbangkan model dengan interaksi, itu sebabnya saya memilih contoh ini. Namun , definisi kontras dan - apa yang saya sebut - matriks kontras tetap sama).
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
Jadi, kami memiliki hasil yang sama.
Kesimpulan
Sepertinya saya bahwa tidak ada satu konsep yang mendefinisikan apa itu matriks kontras.
Jika Anda mengambil definisi kontras, yang diberikan oleh Scheffe ("The Analysis of Variance", halaman 66), Anda akan melihat bahwa itu adalah fungsi yang dapat diperkirakan yang koefisiennya dijumlahkan menjadi nol. Jadi, jika kita ingin menguji kombinasi linear yang berbeda dari koefisien variabel kategorikal kita, kita menggunakan matriks . Ini adalah matriks di mana jumlah baris menjadi nol, yang kita gunakan untuk melipatgandakan matriks koefisien kita dengan maksud agar koefisien tersebut dapat diestimasi. Barisnya menunjukkan kombinasi linier yang berbeda dari kontras yang kami uji dan kolomnya menunjukkan faktor mana (koefisien) yang sedang dibandingkan.G
Karena matriks atas dikonstruksi sedemikian rupa sehingga setiap barisnya disusun oleh vektor kontras (yang berjumlah 0), bagi saya masuk akal untuk memanggil sebagai "matriks kontras" ( Monahan - "A primer pada model linear" - juga menggunakan terminologi ini).GG
Namun, seperti dijelaskan dengan indah oleh @ttnphns, perangkat lunak memanggil sesuatu yang lain sebagai "matriks kontras", dan saya tidak dapat menemukan hubungan langsung antara matriks dan perintah / matriks bawaan dari SPSS (@ttnphns ) atau R (pertanyaan OP), hanya kesamaan. Tetapi saya percaya bahwa diskusi / kolaborasi yang disajikan di sini akan membantu memperjelas konsep dan definisi tersebut.G