Я буду использовать строчные буквы для векторов и прописные буквы для матриц.
В случае линейной модели формы:
y = X β+ε
Иксn × ( k + 1 )k + 1 ≤ nε ∼ N( 0 , σ2)
β^( X⊤Х )- 1Икс⊤YИкс⊤Икс
Икс( X⊤Х )- 1( X⊤Х )-
β
β^= ( X⊤Х )-Икс⊤Y⟹Е( β^) = ( X⊤Х )-Икс⊤X β.
Итак, мы не можем оценить ββ
βграмм⊤βaЕ( а⊤у )= г⊤β
грамм
И контрасты возникают в контексте категориальных предикторов в линейной модели. (если вы посмотрите руководство, связанное с @amoeba, вы увидите, что все их контрастное кодирование связано с категориальными переменными). Затем, отвечая на @Curious и @amoeba, мы видим, что они возникают в ANOVA, но не в «чистой» регрессионной модели с только непрерывными предикторами (мы также можем говорить о контрастах в ANCOVA, поскольку в нем есть некоторые категориальные переменные).
y = X β+ε
ИксЕ( у ) = х⊤βграмм⊤βaa⊤X = г⊤грамм⊤Иксaa⊤X = г⊤, как мы можем видеть в примере ниже.
Пример 1
Yя ж= μ + αя+ εя ж,я = 1 , 2, j = 1 , 2 , 3.
X = ⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢111111111000000111⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥,β = ⎡⎣⎢μτ1τ2⎤⎦⎥
грамм⊤= [ 0 , 1 , - 1 ][ 0 , 1 , - 1 ] β = τ1- τ2
aa⊤X = г⊤a⊤= [ 0 , 0 , 1 , - 1 , 0 , 0 ]a⊤= [ 1 , 0 , 0 , 0 , 0 , - 1 ]a⊤= [ 2 , - 1 , 0 , 0 , 1 , - 2 ]
Пример 2
Yя ж= μ + αя+ βJ+ εя ж,я = 1 , 2 ,j = 1 , 2
X = ⎡⎣⎢⎢⎢11111100001110100101⎤⎦⎥⎥⎥,β = ⎡⎣⎢⎢⎢⎢⎢⎢μα1α2β1β2⎤⎦⎥⎥⎥⎥⎥⎥
Икс
Икс
⎡⎣⎢⎢⎢1000- 10- 1- 10011- 1- 1- 0- 10101⎤⎦⎥⎥⎥
⎡⎣⎢⎢⎢1000- 10- 1- 00010- 1- 1- 0- 00100⎤⎦⎥⎥⎥
β
грамм⊤1βграмм⊤2βграмм⊤3β= μ + α1+ β1= β2- β1= α2- α1
грамм⊤2βграмм⊤3βграмм
Yя ж= μ + αя+ εя ж,я = 1 , 2 , … , к, j = 1 , 2 , … , n .
ЧАС0: α1= … = ΑК
Иксβ = ( µ , α1, … , ΑК)⊤βграмм⊤Σяграммя= 0ΣяграммяαяΣяграммя= 0 .
Почему это правда?
грамм⊤β = ( 0 , г1, … , ГК) β = ∑яграммяαяaграмм⊤= а⊤ИксИксa⊤= [ а1, ... ,К]
[ 0 , г1, … , ГК] = г⊤= а⊤X = ( ∑яaя,1, ... ,К)
И результат следует.
ЧАС0: ∑ гяαя= 0ЧАС0: 2 α1= α2+ α3ЧАС0: α1= α2+ α32α1α2α3
ЧАС0: г⊤β = 0грамм⊤= ( 0 , г1, г2, … , ГК)Q= 1
Fзнак равно[ г⊤β^]⊤[ г⊤( X⊤Х )-г ]- 1грамм⊤β^SSЕ/ k(n-1),
Если ЧАС0: α1= α2= … = ΑКG β=0
G = ⎡⎣⎢⎢⎢⎢⎢грамм⊤1грамм⊤2⋮грамм⊤К⎤⎦⎥⎥⎥⎥⎥
грамм⊤яграммJ= 0ЧАС0: G β = 0Fзнак равноSSHранг ( G )SSEk ( n - 1 )SSH = [ G β^]⊤[ G ( X⊤Х )- 1грамм⊤]- 1G β^
Пример 3
к = 4ЧАС0: α1= α2= α3= α4,
ЧАС0: ⎡⎣⎢α1- α2α1- α3α1- α4⎤⎦⎥= ⎡⎣⎢000⎤⎦⎥
ЧАС0: G β = 0
ЧАС0: ⎡⎣⎢000111- 1- 0- 0- 0- 1- 1- 0- 0- 1⎤⎦⎥G ,наша контрастная матрица⎡⎣⎢⎢⎢⎢⎢⎢μα1α2α3α4⎤⎦⎥⎥⎥⎥⎥⎥= ⎡⎣⎢000⎤⎦⎥
Итак, мы видим, что три строки нашей контрастной матрицы определяются коэффициентами контрастов интереса. И каждый столбец дает уровень фактора, который мы используем в нашем сравнении.
Практически все, что я написал, было взято \ скопировано (беззастенчиво) из Rencher & Schaalje, «Линейные модели в статистике», главы 8 и 13 (примеры, формулировка теорем, некоторые интерпретации), но других вещей, таких как термин «контрастная матрица» "(который, действительно, не фигурирует в этой книге) и его определение, данное здесь, были моими собственными.
Относительно контрастной матрицы ОП к моему ответу
Одна из матриц ОП (которую также можно найти в этом руководстве ) заключается в следующем:
> 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⎤⎦⎥⎥⎥Икс⎡⎣⎢⎢⎢⎢⎢⎢μa1a2a3a4⎤⎦⎥⎥⎥⎥⎥⎥β+ ⎡⎣⎢⎢⎢ε11ε21ε31ε41⎤⎦⎥⎥⎥
a1ИксИкс~
⎡⎣⎢⎢⎢1000- 1- 1- 1- 1010000100001⎤⎦⎥⎥⎥
⎡⎣⎢⎢⎢010000100001⎤⎦⎥⎥⎥
Таким образом, матрица contr.treatment (4) говорит нам, что они сравнивают факторы 2, 3 и 4 с фактором 1 и сравнивают фактор 1 с константой (это мое понимание вышеизложенного).
грамм
⎡⎣⎢000- 1- 1- 1100010001⎤⎦⎥
ЧАС0: 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
И оценки одинаковы.
Относительно ответа @ttnphns на мой.
J = 1
Yя ж= μ + aя+ εя ж,для i=1,2,3
ЧАС0:1= а2= а3ЧАС0:1- а3= а2- а3= 0a3 в нашем справочнике группы / фактор.
Это может быть записано в матричной форме как:
⎡⎣⎢Y11Y21Y31⎤⎦⎥= ⎡⎣⎢μμμ⎤⎦⎥+ ⎡⎣⎢a1a2a3⎤⎦⎥+ ⎡⎣⎢ε11ε21ε31⎤⎦⎥
⎡⎣⎢Y11Y21Y31⎤⎦⎥= ⎡⎣⎢111100010001⎤⎦⎥Икс⎡⎣⎢⎢⎢μa1a2a3⎤⎦⎥⎥⎥β+ ⎡⎣⎢ε11ε21ε31⎤⎦⎥
ИксИкс~
Икс~= ⎡⎣⎢001100010- 1- 1- 1⎤⎦⎥
LИкс~β
⎡⎣⎢001100010- 1- 1- 1⎤⎦⎥⎡⎣⎢⎢⎢μa1a2a3⎤⎦⎥⎥⎥= ⎡⎣⎢a1- а3a2- а3μ + a3⎤⎦⎥
с⊤1β = а1- а3с⊤2β = а2- а3с⊤3β = μ + a3
ЧАС0: c⊤яβ = 0 , из вышесказанного видно, что мы сравниваем нашу константу с коэффициентом для контрольной группы (a_3); коэффициент group1 к коэффициенту group3; и коэффициент группы2 к группе3. Или, как сказал @ttnphns: «После коэффициентов сразу видно, что оценочная константа будет равна среднему значению Y в контрольной группе; параметр b1 (т.е. фиктивная переменная A1) будет равняться разнице: среднее значение Y в группе1 минус Y означает в группе 3, а параметр b2 - это разница: среднее в группе 2 минус среднее в группе 3 ".
с1с2грамм
G = [ 001001- 1- 1]
ЧАС0: G β = 0
пример
Мы будем использовать те же данные, что и @ttnphns "Пользовательский пример контраста" (я хотел бы отметить, что теория, которую я здесь написал, требует нескольких модификаций для рассмотрения моделей с взаимодействиями, поэтому я выбрал этот пример. Однако определения контрастов и - что я называю - контрастной матрицы остаются прежними).
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
Итак, у нас одинаковые результаты.
Заключение
Мне кажется, что нет единого определяющего понятия, что такое контрастная матрица.
Если вы возьмете определение контраста, данное Шеффе («Анализ отклонений», стр. 66), вы увидите, что это оценочная функция, коэффициенты которой суммируются с нулем. Итак, если мы хотим проверить различные линейные комбинации коэффициентов наших категориальных переменных, мы используем матрицуграмм, Это матрица, в которой строки суммируются в ноль, которую мы используем для умножения нашей матрицы коэффициентов, чтобы сделать эти коэффициенты оценочными. Его строки указывают на различные линейные комбинации контрастов, которые мы тестируем, а столбцы указывают, какие факторы (коэффициенты) сравниваются.
Как матрица грамм выше построено таким образом, что каждая из его строк состоит из вектора контраста (сумма которого равна 0), для меня имеет смысл назвать грамм «контрастная матрица» (Монахан - «Учебник по линейным моделям» - также использует эту терминологию).
Однако, как прекрасно объясняет @ttnphns, программные средства называют что-то еще «контрастной матрицей», и я не смог найти прямой связи между матрицей грамми встроенные команды / матрицы из SPSS (@ttnphns) или R (вопрос OP), только сходства. Но я считаю, что представленная здесь хорошая дискуссия / колористика поможет прояснить такие понятия и определения.