Vektörler için küçük harfler ve matrisler için büyük harfler kullanacağım.
Formun doğrusal bir modelinde:
y=Xβ+ε
burada a, seviye matris , ve kabul . n × ( k + 1 ) k + 1 ≤ n ε ∼ N ( 0 , σ 2 )Xn×(k+1)k+1≤nε∼N(0,σ2)
Bu tahmin edebilir ile beri tersi var. (X⊤X)-1x⊤yx⊤Xβ^(X⊤X)−1X⊤yX⊤X
Şimdi, ANOVA davası için, biz artık tam rütbeli değil. Bunun anlamı bizde yok ve genelleştirilmiş tersine razı olmak zorundayız .X(X⊤X)−1(X⊤X)−
Bu genelleştirilmiş tersi kullanmanın sorunlarından biri, benzersiz olmamasıdır. Başka bir sorun da için tarafsız bir tahminci bulamıyoruz , çünkü
β
β^=(X⊤X)−X⊤y⟹E(β^)=(X⊤X)−X⊤Xβ.
Dolayısıyla, tahmin edemiyoruz . Fakat 'nin doğrusal bir kombinasyonunu tahmin edebilir miyiz ?ββ
Biz bir doğrusal kombinasyonu olduğu sahip s', ki , olduğu tahmin edilebilir bir vektör mevcutsa şekilde .βg⊤βaE(a⊤y)=g⊤β
Kontrast katsayılarının toplamı olan değerli işlevleri özel bir durumu olan sıfıra eşittir.g
Lineer bir modelde kategorik yordayıcılar bağlamında zıtlıklar ortaya çıkıyor. ( @amoeba tarafından bağlanan kılavuzu kontrol ederseniz, tüm kontrast kodlarının kategorik değişkenlerle ilgili olduğunu görürsünüz). Daha sonra, @Curious ve @amoeba'ya cevap vererek, ANOVA'da ortaya çıktıklarını görüyoruz, ancak sadece sürekli yordayıcılarla "saf" bir regresyon modelinde değil (içinde bazı kategorik değişkenlere sahip olduğumuz için ANCOVA'da zıtlıklar hakkında da konuşabiliriz).
Şimdi, modelde burada tam değildir ve , doğrusal işlev , eğer varsa bir hesap varsa , . Yani, , satırlarının doğrusal bir birleşimidir . Ayrıca, vektör birçok seçenek vardır öyle ki, , aşağıda örnekte görüldüğü gibi.
y=Xβ+ε
XE(y)=X⊤βg⊤βaa⊤X=g⊤g⊤Xaa⊤X=g⊤
örnek 1
Tek yönlü modeli göz önünde bulundurun:
yij=μ+αi+εij,i=1,2,j=1,2,3.
X=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢111111111000000111⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥,β=⎡⎣⎢μτ1τ2⎤⎦⎥
Ve olduğunu varsayalım , bu yüzden değerini tahmin etmek istiyoruz .g⊤=[0,1,−1][0,1,−1]β=τ1−τ2
Bu vektörün farklı seçenekler vardır görebilir akma : çekme ; veya ; veya .aa⊤X=g⊤a⊤=[0,0,1,−1,0,0]a⊤=[1,0,0,0,0,−1]a⊤=[2,−1,0,0,1,−2]
Örnek 2
İki yönlü modeli ele alalım:
.
yij=μ+αi+βj+εij,i=1,2,j=1,2
X=⎡⎣⎢⎢⎢11111100001110100101⎤⎦⎥⎥⎥,β=⎡⎣⎢⎢⎢⎢⎢⎢μα1α2β1β2⎤⎦⎥⎥⎥⎥⎥⎥
Tahmin edilebilir işlevleri, satırlarının doğrusal kombinasyonlarını alarak tanımlayabiliriz .X
Satır 2, 3 ve 4'ten 1. Satırı çıkarma ( ):
X
⎡⎣⎢⎢⎢1000−10−1−10011−1−1−0−10101⎤⎦⎥⎥⎥
Ve 2. ve 3. Satırları dördüncü satırdan alarak:
⎡⎣⎢⎢⎢1000−10−1−00010−1−1−0−00100⎤⎦⎥⎥⎥
Bunun :
β
g⊤1βg⊤2βg⊤3β=μ+α1+β1=β2−β1=α2−α1
Öyleyse, doğrusal olarak bağımsız üç tahmin edilebilir fonksiyonumuz var. Şimdi, yalnızca ve , katsayılarının toplamından (veya satırın toplamından) zıtlıklar olarak kabul edilebilir. İlgili vektörün toplamı ) sıfıra eşittir.g⊤2βg⊤3βg
Tek yönlü dengeli bir modele geri
yij=μ+αi+εij,i=1,2,…,k,j=1,2,…,n.
Ve hipotezini test etmek istediğimizi varsayalım .H0:α1=…=αk
Bu ayarda, matris tam sırada değildir, bu yüzden benzersiz değildir ve tahmin edilemez. Tahmin edilebilir kılmak için ile olduğu sürece . Başka bir deyişle, tahmin edilebilir. .Xβ=(μ,α1,…,αk)⊤βg⊤∑igi=0∑igiαi∑igi=0
Neden bu doğru?
Bunu biliyoruz isimli değerli IFF bir vektör var öyle ki . ve nin farklı satırlarını sonra:
g⊤β=(0,g1,…,gk)β=∑igiαiag⊤=a⊤XXa⊤=[a1,…,ak]
[0,g1,…,gk]=g⊤=a⊤X=(∑iai,a1,…,ak)
Ve sonuç izler.
Belirli bir kontrastı test etmek istiyorsak, hipotezimiz . Örneğin: , , bu nedenle ile ve .H0:∑giαi=0H0:2α1=α2+α3H0:α1=α2+α32α1α2α3
Bu hipotez , burada . Bu durumda, ve bu hipotezi aşağıdaki istatistiklerle test ediyoruz:
H0:g⊤β=0g⊤=(0,g1,g2,…,gk)q=1
F=[g⊤β^]⊤[g⊤(X⊤X)−g]−1g⊤β^SSE/k(n−1).
Eğer olarak ifade , matrisin satırları
karşılıklı ortogonal kontrasttır ( ), o zaman istatistiklerini kullanarak , buradaH0:α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β^.
Örnek 3
Bunu daha iyi anlamak için, kullanalım ve test etmek istediğimizi varsayalım bu, olarak ifade edilebilir.
k=4H0:α1=α2=α3=α4,
H0:⎡⎣⎢α1−α2α1−α3α1−α4⎤⎦⎥=⎡⎣⎢000⎤⎦⎥
Veya, :
H0:Gβ=0
H0:⎡⎣⎢000111−1−0−0−0−1−1−0−0−1⎤⎦⎥G,our contrast matrix⎡⎣⎢⎢⎢⎢⎢⎢μα1α2α3α4⎤⎦⎥⎥⎥⎥⎥⎥=⎡⎣⎢000⎤⎦⎥
Dolayısıyla, kontrast matrisimizin üç sırasının ilgi kontrastlarının katsayıları tarafından tanımlandığını görüyoruz . Her sütun karşılaştırmamızda kullandığımız faktör seviyesini verir.
Yazdığımların çoğu, Rencher & Schaalje'den, “İstatistikte Doğrusal Modeller”, 8. ve 13. bölümlerden (örnekler, teoremlerin ifadeleri, bazı yorumlar) ve “kontrast matrisi” gibi diğer şeylerden kopyalandı (utanmadan). “(ki bu aslında bu kitapta görünmüyor) ve burada verilen tanımı benimkilerdi.
OP'nin kontrast matrisini benim cevabımla ilişkilendirme
OP'nin matrislerinden biri (bu kılavuzda da bulunabilir ) aşağıdaki gibidir:
> contr.treatment(4)
2 3 4
1 0 0 0
2 1 0 0
3 0 1 0
4 0 0 1
Bu durumda ve modeli şu şekilde yazabiliriz: Bu matris formunda şu şekilde yazılabilir:
⎡⎣⎢⎢⎢y11y21y31y41⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢⎢μμμμ⎤⎦⎥⎥⎥⎥+⎡⎣⎢⎢⎢a1a2a3a4⎤⎦⎥⎥⎥+⎡⎣⎢⎢⎢ε11ε21ε31ε41⎤⎦⎥⎥⎥
Veya
⎡⎣⎢⎢⎢y11y21y31y41⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢11111000010000100001⎤⎦⎥⎥⎥X⎡⎣⎢⎢⎢⎢⎢⎢μa1a2a3a4⎤⎦⎥⎥⎥⎥⎥⎥β+⎡⎣⎢⎢⎢ε11ε21ε31ε41⎤⎦⎥⎥⎥
Şimdi, aynı kılavuzdaki sahte kodlama örneği için referans grubu olarak kullanıyorlar . Bu nedenle, Satır 1'i , veren matrisindeki diğer tüm satırlardan :a1XX˜
⎡⎣⎢⎢⎢1000−1−1−1−1010000100001⎤⎦⎥⎥⎥
İşleme (4) matrisindeki satır ve sütunların sayısını gözlemlerseniz, tüm satırları ve yalnızca 2, 3 ve 4 faktörleri ile ilgili sütunları dikkate aldıklarını görürsünüz. Yukarıdaki matris verimi:
⎡⎣⎢⎢⎢010000100001⎤⎦⎥⎥⎥
Bu şekilde, işlem (4) matrisi bize 2, 3 ve 4 faktörlerini 1 faktörü ile karşılaştırdıklarını ve 1. faktörü sabit ile karşılaştırdıklarını söylüyor (bu benim yukarıdakileri benim anlayışım).
Ve, tanımlanması (yani, yukarıdaki matriste 0 alan toplam satırları alarak):
G
⎡⎣⎢000−1−1−1100010001⎤⎦⎥
test edebilir ve zıtlıkların tahminlerini bulabiliriz.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
Ve tahminler aynı.
@Ttnphns'ın cevabını benimkiyle ilişkilendirmek.
İlk örneklerinde, kurulumun üç seviyeli kategorik bir faktör A var. Bunu model olarak yazabiliriz (basitlik açısından, ):
j=1
yij=μ+ai+εij,for i=1,2,3
Ve varsayalım ki veya , referans grubu / faktör olarak ile istiyoruz.H0:a1=a2=a3H0:a1−a3=a2−a3=0a3
Bu, matris formunda şu şekilde yazılabilir:
⎡⎣⎢y11y21y31⎤⎦⎥=⎡⎣⎢μμμ⎤⎦⎥+⎡⎣⎢a1a2a3⎤⎦⎥+⎡⎣⎢ε11ε21ε31⎤⎦⎥
Veya
⎡⎣⎢y11y21y31⎤⎦⎥=⎡⎣⎢111100010001⎤⎦⎥X⎡⎣⎢⎢⎢μa1a2a3⎤⎦⎥⎥⎥β+⎡⎣⎢ε11ε21ε31⎤⎦⎥
Şimdi, Satır 3'ü Satır 1 ve Satır 2'den çıkarırsak, olur ( biz buna :XX˜
X˜=⎡⎣⎢001100010−1−1−1⎤⎦⎥
Yukarıdaki matrisin son 3 sütununu @ttnphns 'matrix . Siparişe rağmen, oldukça benzerler. Gerçekten, eğer çarpın , şunu elde ederiz:LX˜β
⎡⎣⎢001100010−1−1−1⎤⎦⎥⎡⎣⎢⎢⎢μa1a2a3⎤⎦⎥⎥⎥=⎡⎣⎢a1−a3a2−a3μ+a3⎤⎦⎥
Öyleyse, tahmin edilebilir işlevlerimiz var: ; ; .c⊤1β=a1−a3c⊤2β=a2−a3c⊤3β=μ+a3
Yana , biz referans grubu (a_3) için katsayı için sabit karşılaştırarak yukarıda görüldüğü; grup 1'in katsayısı ile grup3 katsayısı; ve grup2'nin grup3'e katsayısı. Veya, @ ttnphs’in söylediği gibi: “Derhal katsayıları takip ederek, referans grubundaki tahmini Constant değerinin Y ortalamasına eşit olacağını; b1 parametresinin (örn. Kukla değişken A1) farkı: Y ortalamanın grup1 eksi olarak eşit olacağını görüyoruz. Grup3'te Y ortalaması ve b2 parametresi farkıdır: grup2'de ortalama eksi grup3'te ortalama. "H0:c⊤iβ=0
Ayrıca, (kontrast tanımını izleyerek: tahmin edilebilir işlev + satır toplamı = 0), ve vektörlerinin kontrast olduğunu gözlemleyin . Ve eğer bir matrisi yaratırsak, şunları yaparız:c1c2G
G=[001001−1−1]
test etmek için kontrast matrisimizH0:Gβ=0
Örnek
@Ttnphns '"Kullanıcı tanımlı kontrast örneği" ile aynı verileri kullanacağız (Burada yazdığım teorinin etkileşimli modelleri dikkate almak için birkaç değişiklik gerektirdiğini belirtmek isterim, bu yüzden bu örneği seçtim. kontrastların tanımları ve - benim ne dediğim - kontrast matrisi aynı kalır).
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
Yani aynı sonuçlara sahibiz.
Sonuç
Bana öyle geliyor ki kontrast matrisinin ne olduğu ile ilgili tek bir kavram yok.
Scheffe (“Varyans Analizi”, sayfa 66) tarafından verilen kontrast tanımını alırsanız, katsayıları sıfıra toplanan tahmin edilebilir bir fonksiyon olduğunu göreceksiniz. Dolayısıyla, kategorik değişkenlerimizin katsayılarının farklı lineer kombinasyonlarını test etmek istiyorsak, matris matrisini kullanırız . Bu, satırların sıfıra toplandığı, bu katsayıları tahmin edilebilir kılmak için katsayılar matrisini çarpmak için kullandığımız bir matristir. Satırları, test ettiğimiz zıtlıkların farklı lineer kombinasyonlarını ve kolonları hangi faktörlerin (katsayılar) karşılaştırıldığını gösterir.G
Yukarıdaki matrisi , her bir satırının bir kontrast vektörü (0'a toplanır) içerecek şekilde yapıldığı için benim için "kontrast matrisi" olarak adlandırmak mantıklıdır ( Monahan - "Doğrusal modellerde bir astar" - ayrıca bu terminolojiyi kullanır).GG
Bununla birlikte, @ tnphns tarafından güzel bir şekilde açıklandığı gibi, yazılımlar "kontrast matrisi" olarak başka bir şey çağırıyor ve ben matris ile SPSS'den yerleşik komutlar / matrisler arasında doğrudan bir ilişki bulamadım (@ttnphns) ) veya R (OP'nin sorusu), sadece benzerlikler. Ancak burada sunulan hoş tartışma / işbirliğinin bu kavram ve tanımları netleştirmeye yardımcı olacağına inanıyorum.G