Je vais utiliser des lettres minuscules pour les vecteurs et des majuscules pour les matrices.
Dans le cas d'un modèle linéaire de la forme:
y=Xβ+ε
Xn×(k+1)k+1≤nε∼N(0,σ2)
β^(X⊤X)−1X⊤yX⊤X
X(X⊤X)−1(X⊤X)−
β
β^=(X⊤X)−X⊤y⟹E(β^)=(X⊤X)−X⊤Xβ.
ββ
βg⊤βaE(a⊤y)=g⊤β
g
Et les contrastes apparaissent dans le contexte des prédicteurs catégoriques dans un modèle linéaire. (Si vous consultez le manuel lié à @amoeba, vous verrez que tous les codes de contraste sont liés à des variables catégorielles). Puis, en répondant à @Curious et @amoeba, nous voyons qu'elles apparaissent dans ANOVA, mais pas dans un modèle de régression "pur" avec uniquement des prédicteurs continus (nous pouvons aussi parler de contrastes dans ANCOVA, car nous avons des variables catégoriques).
y=Xβ+ε
XE(y)=X⊤βg⊤βaa⊤X=g⊤g⊤Xaa⊤X=g⊤, comme on peut le voir dans l'exemple ci-dessous.
Exemple 1
yij=μ+αi+εij,i=1,2,j=1,2,3.
X=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢111111111000000111⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥,β=⎡⎣⎢μτ1τ2⎤⎦⎥
g⊤=[0,1,−1][0,1,−1]β=τ1−τ2
aa⊤X=g⊤a⊤=[0,0,1,−1,0,0]a⊤=[1,0,0,0,0,−1]a⊤=[2,−1,0,0,1,−2]
Exemple 2
yij=μ+αi+βj+εij,i=1,2,j=1,2
X=⎡⎣⎢⎢⎢11111100001110100101⎤⎦⎥⎥⎥,β=⎡⎣⎢⎢⎢⎢⎢⎢μα1α2β1β2⎤⎦⎥⎥⎥⎥⎥⎥
X
X
⎡⎣⎢⎢⎢1000−10−1−10011−1−1−0−10101⎤⎦⎥⎥⎥
⎡⎣⎢⎢⎢1000−10−1−00010−1−1−0−00100⎤⎦⎥⎥⎥
β
g⊤1βg⊤2βg⊤3β=μ+α1+β1=β2−β1=α2−α1
g⊤2βg⊤3βg
yij=μ+αi+εij,i=1,2,…,k,j=1,2,…,n.
H0:α1=…=αk
Xβ=(μ,α1,…,αk)⊤βg⊤∑igi=0∑igiαi∑igi=0
Pourquoi c'est vrai?
g⊤β=(0,g1,…,gk)β=∑igiαiag⊤=a⊤XXa⊤=[a1,…,ak]
[0,g1,…,gk]=g⊤=a⊤X=(∑iai,a1,…,ak)
Et le résultat suit.
H0:∑giαi=0H0:2α1=α2+α3H0:α1=α2+α32α1α2α3
H0:g⊤β=0g⊤=(0,g1,g2,…,gk)q=1
F=[g⊤β^]⊤[g⊤(X⊤X)−g]−1g⊤β^SSE/k(n−1).
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β^
Exemple 3
k=4H0:α1=α2=α3=α4,
H0:⎡⎣⎢α1−α2α1−α3α1−α4⎤⎦⎥=⎡⎣⎢000⎤⎦⎥
H0:Gβ=0
H0:⎡⎣⎢000111−1−0−0−0−1−1−0−0−1⎤⎦⎥G,our contrast matrix⎡⎣⎢⎢⎢⎢⎢⎢μα1α2α3α4⎤⎦⎥⎥⎥⎥⎥⎥=⎡⎣⎢000⎤⎦⎥
Nous voyons donc que les trois lignes de notre matrice de contraste sont définies par les coefficients des contrastes d’intérêt. Et chaque colonne donne le niveau de facteur que nous utilisons dans notre comparaison.
Presque tout ce que j'ai écrit a été pris \ copié (sans vergogne) dans Rencher & Schaalje, "Linear Models in Statistics", chapitres 8 et 13 (exemples, formulation de théorèmes, quelques interprétations), mais d'autres éléments comme le terme "matrice de contraste" "(qui, en effet, ne figure pas dans ce livre) et sa définition donnée ici était la mienne.
Relier la matrice de contraste d'OP à ma réponse
L'une des matrices de OP (que l'on peut également trouver dans ce manuel ) est la suivante:
> contr.treatment(4)
2 3 4
1 0 0 0
2 1 0 0
3 0 1 0
4 0 0 1
⎡⎣⎢⎢⎢y11y21y31y41⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢⎢μμμμ⎤⎦⎥⎥⎥⎥+⎡⎣⎢⎢⎢a1a2a3a4⎤⎦⎥⎥⎥+⎡⎣⎢⎢⎢ε11ε21ε31ε41⎤⎦⎥⎥⎥
⎡⎣⎢⎢⎢y11y21y31y41⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢11111000010000100001⎤⎦⎥⎥⎥X⎡⎣⎢⎢⎢⎢⎢⎢μa1a2a3a4⎤⎦⎥⎥⎥⎥⎥⎥β+⎡⎣⎢⎢⎢ε11ε21ε31ε41⎤⎦⎥⎥⎥
a1XX˜
⎡⎣⎢⎢⎢1000−1−1−1−1010000100001⎤⎦⎥⎥⎥
⎡⎣⎢⎢⎢010000100001⎤⎦⎥⎥⎥
De cette façon, la matrice de traitement (4) nous dit qu’ils comparent les facteurs 2, 3 et 4 au facteur 1 et comparent le facteur 1 à la constante (c’est ce que je comprends de ce qui précède).
G
⎡⎣⎢000−1−1−1100010001⎤⎦⎥
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
Et les estimations sont les mêmes.
Relier la réponse de @ttnphns à la mienne.
j=1
yij=μ+ai+εij,for i=1,2,3
H0:a1=a2=a3H0:a1−a3=a2−a3=0a3
⎡⎣⎢y11y21y31⎤⎦⎥=⎡⎣⎢μμμ⎤⎦⎥+⎡⎣⎢a1a2a3⎤⎦⎥+⎡⎣⎢ε11ε21ε31⎤⎦⎥
⎡⎣⎢y11y21y31⎤⎦⎥=⎡⎣⎢111100010001⎤⎦⎥X⎡⎣⎢⎢⎢μa1a2a3⎤⎦⎥⎥⎥β+⎡⎣⎢ε11ε21ε31⎤⎦⎥
XX˜
X˜=⎡⎣⎢001100010−1−1−1⎤⎦⎥
LX˜β
⎡⎣⎢001100010−1−1−1⎤⎦⎥⎡⎣⎢⎢⎢μa1a2a3⎤⎦⎥⎥⎥=⎡⎣⎢a1−a3a2−a3μ+a3⎤⎦⎥
c⊤1β=a1−a3c⊤2β=a2−a3c⊤3β=μ+a3
H0:c⊤iβ=0
c1c2G
G=[001001−1−1]
H0:Gβ=0
Exemple
Nous utiliserons les mêmes données que "Exemple de contraste défini par l'utilisateur" de @ttnphns (je voudrais mentionner que la théorie que j'ai écrite ici nécessite quelques modifications pour prendre en compte les modèles avec interactions, c'est pourquoi j'ai choisi cet exemple. , les définitions des contrastes et - ce que j’appelle - matrice de contraste restent les mêmes).
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
Donc, nous avons les mêmes résultats.
Conclusion
Il me semble qu'il n'y a pas un concept de définition de ce qu'est une matrice de contraste est.
G
GG
G