Що таке контрастна матриця?


46

Що саме є контрастною матрицею (термін, що стосується аналізу з категоричними предикторами) і як саме вказана контрастна матриця? Тобто, що таке стовпці, що таке рядки, які обмеження в цій матриці і що означає число у стовпці jта рядку i? Я спробував заглянути в документи та в Інтернеті, але, схоже, всі користуються ним, але дефініції ніде немає. Я міг би відкласти інженеру наявні заздалегідь визначені контрасти, але я думаю, що визначення повинно бути доступним без цього.

> contr.treatment(4)
  2 3 4
1 0 0 0
2 1 0 0
3 0 1 0
4 0 0 1
> contr.sum(4)
  [,1] [,2] [,3]
1    1    0    0
2    0    1    0
3    0    0    1
4   -1   -1   -1
> contr.helmert(4)
  [,1] [,2] [,3]
1   -1   -1   -1
2    1   -1   -1
3    0    2   -1
4    0    0    3
> contr.SAS(4)
  1 2 3
1 1 0 0
2 0 1 0
3 0 0 1
4 0 0 0

"Контрастна матриця" використовується для представлення категоричних IV (факторів) в моделюванні. Зокрема, він використовується для перекодування фактора в набір "контрастних змінних" (фіктивні змінні є лише прикладом). Кожен тип змінних контрасту має свою відповідну матрицю контрасту. Дивіться, наприклад, моє власне відповідне запитання , ще не відповіли
ttnphns

5
@ttnphns Вибачте, але ви продовжуєте робити те, що роблять усі документи та веб-сторінки: ви пояснюєте, для чого використовуються контрастні матриці, не звертаючись до питання, що таке матриця контрасту. Це і є метою визначення .
Цікаво

3
Звичайно, це пов'язано, але отримання "того, що це" з "того, що це потрібно" - робота детектива, яка не повинна бути потрібною. Це зворотна інженерія. Речі повинні бути задокументовані.
Цікаво

2
ats.ucla.edu/stat/r/library/contrast_coding.htm - добре Rорієнтований ресурс щодо методів кодування.
whuber

1
@Curious, просто щоб повідомити вам: я нагородив 100 баунтів ttnphns, але я розпочну ще одну винагороду (або попросити когось іншого зробити), щоб також нагородити Gus_est. Я також написав свою власну відповідь, на всякий випадок, якщо ви віддаєте перевагу коротшу :-)
амеба каже: Відновити Моніку

Відповіді:


31

У своїй гарній відповіді @Gus_est взявся за математичне пояснення сутності матриці коефіцієнтів контрасту L (позначений там С ). - основна формула для тестування гіпотез у універсальному загальному лінійному моделюванні (де b - параметри, а k - оцінна функція, що представляє нульову гіпотезу), і ця відповідь показує деякі необхідні формули, що використовуються в сучасних програмах ANOVA.Lb=kbk

Моя відповідь викладена зовсім інакше. Саме аналітик даних бачить себе швидше "інженером", ніж "математиком", тому відповідь буде (поверхневим) "практичним" або "дидактичним" рахунком і зосередиться на тому, щоб відповідати лише на теми (1) що робити коефіцієнти контрасту означають і (2), як вони можуть допомогти виконувати ANOVA за допомогою програми лінійної регресії .

ANOVA як регресія з фіктивними змінними: введення контрастів .

Уявімо собі ANOVA із залежною змінною Y та категоріальним фактором A, що має 3 рівні (групи). Давайте подивимось на ANOVA з точки зору лінійної регресії, тобто - перетворивши фактор у набір манекенів (ака- індикатор, так само лікування, так само гаряче ) бінарних змінних. Це наша незалежна безліч X . (Напевно, всі чули, що зробити ANOVA можна таким чином - як лінійну регресію з манекенами-прогнокторами.)

Оскільки одна з трьох груп є зайвою, у лінійну модель увійдуть лише дві фіктивні змінні. Давайте призначимо Група 3 надлишковою або довідковою. Манекенні прогнози, що складаються з Х , є прикладом контрастних змінних , тобто елементарних змінних, що представляють категорії фактору. Сам X часто називають дизайнерською матрицею. Тепер ми можемо ввести набір даних у кілька лінійних регресійних програм, які будуть центрувати дані та знаходити коефіцієнти (параметри) регресії , де "+" позначає псевдоінверс.b=(XX)1Xy=X+y

Еквівалентним проходом буде не робити центрування, а скоріше додати постійний термін моделі як перший стовпчик 1 с у X , а потім оцінити коефіцієнти так само, як вище . Все йде нормально.b=(XX)1Xy=X+y

Визначимо матрицю C , щоб бути агрегацией (резюмування) від незалежних змінних дизайнів матриці X . Він просто показує нам , схема кодування , що спостерігаються там, - вважає контраст кодування матриці (= базисна матриця): .C=aggrX

C
              Const  A1    A2
Gr1 (A=1)       1     1     0
Gr2 (A=2)       1     0     1
Gr3 (A=3,ref)   1     0     0

Стовпці - це змінні (стовпці) X - елементарні контрастні змінні A1 A2, манекен в цьому випадку, а рядки - всі групи / рівні фактора. Так само була наша матриця кодування C для схеми кодування індикатора або фіктивного контрасту.

Тепер називається матрицею коефіцієнтів контрасту , або L-матрицею. Оскільки С квадратний, L = C + = C - 1 . Отже, контрастна матриця, відповідна нашому C - тобто для індикаторних контрастів нашого прикладу - є:C+=LL=C+=C1

L
          Gr1   Gr2   Gr3
         (A=1) (A=2) (A=3)
Const      0     0     1            => Const = Mean_Gr3
A1         1     0    -1            => Param1 = Mean_Gr1-Mean_Gr3
A2         0     1    -1            => Param2 = Mean_Gr2-Mean_Gr3

L-матриця - матриця, що показує коефіцієнти контрасту . Зауважте, що сума коефіцієнтів контрасту у кожному рядку (крім рядка Постійний) дорівнює . Кожен такий ряд називається контрастом . Рядки відповідають контрастним змінним, а стовпці - групам, рівнем факторів.0

Значення коефіцієнтів контрасту полягає в тому, що вони допомагають зрозуміти, що представляє кожен ефект (кожен параметр b, оцінений у регресії з нашим X , кодований таким, який він є) у значенні різниці (групове порівняння). Ми одразу бачимо, слідуючи коефіцієнтам, що розрахункова Константа буде дорівнює середньому значенню Y у референтній групі; що параметр b1 (тобто фіктивна змінна A1) буде дорівнює різниці: Y означає в групі1 мінус Y середнє в групі 3; а параметр b2 - різниця: середнє значення у групі2 мінус середнє в групі3.

Примітка : під «середнім значенням» (вище та нижче) ми маємо на увазі оцінене (передбачене моделлю) середнє для групи, а не середнє, що спостерігається в групі.

Повчальне зауваження : Коли ми робимо регресію за бінарними змінними предиктора, параметр такої змінної говорить про різницю Y між змінною = 1 і змінною = 0 групами. Однак у ситуації, коли бінарні змінні - це набір k-1 фіктивних змінних, що представляють kкоефіцієнт -рівень, значення параметра стає вужчим : він показує різницю Y між змінною = 1 і (не просто змінною = 0, але навіть) reference_variable = 1 група.

Як і (після множення на y ) приносить нам значення b , аналогічно ( a g g r X ) + вносить значення b .X+y(aggrX)+

Добре, ми дали визначення коефіцієнта контрастності матриці L . Оскільки , симетрично C = L + = L - 1 , це означає, що якщо вам дали або побудували контрастну матрицю L на основі категоричного коефіцієнта, - щоб перевірити це L у своєму аналізі, то у вас є підказки, як правильно кодувати ваші змінні предиктора контрасту X , щоб перевірити L за допомогою звичайної регресіїL=C+=C1C=L+=L1 програмне забезпечення (тобто одна обробка просто "безперервних" змінних стандартних способів OLS, і взагалі не визнає категоричних факторів). У нашому теперішньому прикладі кодування було змінними типу індикатора (манекена).

ANOVA як регресія: інші типи контрасту .

Давайте коротко дотримуватися інші типи контрастних (= схеми кодування = стилі параметризації) для категоричного фактора A .

Відхилення або ефект контрастів . Матриці C і L та значення параметра:

C
              Const  A1    A2
Gr1 (A=1)       1     1     0
Gr2 (A=2)       1     0     1
Gr3 (A=3,ref)   1    -1    -1

L
          Gr1   Gr2   Gr3
         (A=1) (A=2) (A=3)
Const     1/3   1/3   1/3      => Const = 1/3Mean_Gr3+1/3Mean_Gr2+1/3Mean_Gr3 = Mean_GU
A1        2/3  -1/3  -1/3      => Param1 = 2/3Mean_Gr1-1/3(Mean_Gr2+Mean_Gr3) = Mean_Gr1-Mean_GU
A2       -1/3   2/3  -1/3      => Param2 = 2/3Mean_Gr2-1/3(Mean_Gr1+Mean_Gr3) = Mean_Gr2-Mean_GU

                                  Parameter for the reference group3 = -(Param1+Param2) = Mean_Gr3-Mean_GU

                                  Mean_GU is grand unweighted mean = 1/3(Mean_Gr1+Mean_Gr2+Mean_Gr3)

Шляхом кодування відхилень кожну групу фактору порівнюють із незваженою великою величиною, тоді як Констант - це велике значення. Це те, що ви отримуєте в регресії з контрастними предикторами X, кодованими у відхиленні або ефектом "способом".

Прості контрасти . Ця схема контрастів / кодування є гібридом індикаторних та відхиляючих типів, вона дає значення Константа як у типу відхилення, так і значення інших параметрів, як у типі індикатора:

C
              Const  A1    A2
Gr1 (A=1)       1   2/3  -1/3
Gr2 (A=2)       1  -1/3   2/3
Gr3 (A=3,ref)   1  -1/3  -1/3

L
          Gr1   Gr2   Gr3
         (A=1) (A=2) (A=3)
Const     1/3   1/3   1/3        => Const = as in Deviation
A1         1     0    -1         => Param1 = as in Indicator
A2         0     1    -1         => Param2 = as in Indicator

Гельмерт протиставляє . Порівняє кожну групу (за винятком посилань) з незваженою середньою кількістю наступних груп, а Констант - невагомим великим значенням. C і L матриці:

C
              Const  A1    A2
Gr1 (A=1)       1   2/3    0
Gr2 (A=2)       1  -1/3   1/2
Gr3 (A=3,ref)   1  -1/3  -1/2

L
          Gr1   Gr2   Gr3
         (A=1) (A=2) (A=3)
Const     1/3   1/3   1/3        => Const = Mean_GU
A1         1   -1/2  -1/2        => Param1 = Mean_Gr1-1/2(Mean_Gr2+Mean_Gr3)
A2         0     1    -1         => Param2 = Mean_Gr2-Mean_Gr3

Різниця або зворотний контраст Гельмерта . Порівняє кожну групу (крім посилань) з незваженою середньою кількістю попередніх груп, а Констант - невагомою великою середньою.

C
              Const  A1    A2
Gr1 (A=1)       1  -1/2  -1/3
Gr2 (A=2)       1   1/2  -1/3
Gr3 (A=3,ref)   1    0    2/3

L
          Gr1   Gr2   Gr3
         (A=1) (A=2) (A=3)
Const     1/3   1/3   1/3        => Const = Mean_GU
A1        -1     1     0         => Param1 = Mean_Gr2-Mean_Gr1
A2       -1/2  -1/2    1         => Param2 = Mean_Gr3-1/2(Mean_Gr2+Mean_Gr1)

Повторні контрасти . Порівняє кожну групу (крім посилань) із наступною групою, а Констант - невагоме велике значення.

C
              Const  A1    A2
Gr1 (A=1)       1   2/3   1/3
Gr2 (A=2)       1  -1/3   1/3
Gr3 (A=3,ref)   1  -1/3  -2/3

L
          Gr1   Gr2   Gr3
         (A=1) (A=2) (A=3)
Const     1/3   1/3   1/3        => Const = Mean_GU
A1         1    -1     0         => Param1 = Mean_Gr1-Mean_Gr2
A2         0     1    -1         => Param2 = Mean_Gr2-Mean_Gr3

Питання задає питання: how exactly is contrast matrix specified?Подивившись накреслені типи контрастів, можна зрозуміти, як. Кожен тип має свою логіку , як «заповнити» значення в L . Логіка відображає, що означає кожен параметр - які дві комбінації груп планується порівняти.

Поліноміальні контрасти . Це трохи особливі, нелінійні. Перший ефект - лінійний, другий - квадратичний, наступний - кубічний. Я залишаю тут не врахованим питання про те, як мають бути побудовані їх матриці C і L і чи вони зворотні одна одній. Будь ласка, проконсультуйтеся з глибокими поясненнями @Antoni Parellada щодо цього типу контрасту: 1 , 2 .

У збалансованих конструкціях Гельмерт, зворотний Гельмерт та поліноміальні контрасти завжди є ортогональними контрастами . Інші типи, розглянуті вище, не є ортогональними контрастами. Ортогональний (при врівноваженості) - це контраст, де в контрастній матриці сума L у кожному рядку (крім Const) дорівнює нулю, а сума добутків відповідних елементів кожної пари рядків дорівнює нулю.

Ось міри подібності кута (кореляція косинуса та Пірсона) під різними типами контрасту, за винятком полінома, який я не перевіряв. Будемо мати один фактор з kрівнями, і він був перероблений у безліч k-1контрастних змінних конкретного типу. Які значення в кореляційній або косинусовій матриці між цими контрастними змінними?

                     Balanced (equal size) groups     Unbalanced groups
Contrast type             cos        corr              cos        corr

INDICATOR                  0       -1/(k-1)             0         varied
DEVIATION                 .5          .5              varied      varied
SIMPLE                 -1/(k-1)    -1/(k-1)           varied      varied
HELMERT, REVHELMERT        0           0              varied      varied
REPEATED                varied   =  varied            varied      varied

   "=" means the two matrices are same while elements in matrix vary

Я даю таблицю для інформації та залишаю її без коментарів. Це має певне значення для глибшого погляду на загальне лінійне моделювання.

Контрасти, визначені користувачем . Це те, що ми складаємо для перевірки власної гіпотези порівняння. Зазвичай сума в кожному рядку L, крім першого, повинна бути 0, що означає, що в цьому рядку порівнюються дві групи або дві композиції груп (тобто за цим параметром).

Де зрештою параметри моделі ?

Це рядки чи стовпці L ? У всьому тексті вище я говорив, що параметри відповідають рядкам L , оскільки рядки являють собою контрастні змінні, предиктори. Поки стовпці - це рівні фактора, групи. Це може здатися суперечним такому, наприклад, теоретичному блоку з відповіді @Gus_est, де чітко стовпці відповідають параметрам:

H0:[011000011000011][β0β1β2β3β4]=[000]

Власне, суперечності немає і відповідь на "проблему" така: і рядки, і стовпці матриці коефіцієнта контрасту відповідають параметрам! Згадайте лише, що контрасти (контрастні змінні), рядки, спочатку були створені для представлення не що інше, як рівні фактора: вони є рівнями, окрім опущеного опорного. Порівняйте будь-ласка ці два еквівалентні написання L-матриці для простого контрасту:

L
          Gr1   Gr2   Gr3
          A=1   A=2   A=3(reference)
Const     1/3   1/3   1/3 
A1         1     0    -1  
A2         0     1    -1   

L
            b0    b1    b2    b3(redundant)
           Const  A=1   A=2   A=3(reference)
b0  Const   1    1/3   1/3   1/3 
b1  A1      0     1     0    -1  
b2  A2      0     0     1    -1   

Перший - це те, що я показав раніше, другий - більш "теоретичний" (для загальної алгебри лінійної моделі). Просто додано стовпчик, що відповідає постійному терміну. Коефіцієнти параметрів b позначають рядки та стовпці. Параметр b3, як надмірний, буде встановлений на нуль. Ви можете псевдоповернути другий макет, щоб отримати матрицю кодування C , де всередині в правій нижній частині ви знайдете правильні коди для контрастних змінних A1 і A2. Це буде так для будь-якого описаного типу контрасту (за винятком типу індикатора - де псевдоінверсія такого прямокутного макета не дасть правильного результату; тому, мабуть, для простоти був винайдений простий тип контрасту: коефіцієнти контрасту, ідентичні типу індикатора, але для ряд Констант).

Контрастний тип та результати таблиці ANOVA .

(μ1=μ2,μ2=μ3)(μ1=μ23,μ2=μ3)(μ1=μ123,μ2=μ123)(μ1=μ3,μ2=μ3)

Програми ANOVA, реалізовані за допомогою загальної парадигми лінійної моделі, можуть відображати як таблицю ANOVA (комбіновані ефекти: основні, взаємодії), так і таблицю оцінок параметрів (елементарні ефекти b ). Деякі програми можуть виводити відповідник останньої таблиці типу контрасту як пропозицію користувача, але більшість завжди виводить параметри, що відповідають одному типу - часто, типу індикатора, тому що програми ANOVA, засновані на загальній лінійній моделі, параметризують конкретні фіктивні змінні (найбільш зручно робити), а потім переключитися на контрасти за допомогою спеціальних формул "пов'язування" інтерпретації фіксованого фіктивного вводу на (довільний) контраст.

Тоді як у моїй відповіді - показ ANOVA як регресія - "посилання" реалізується ще на рівні входу X , який закликав ввести поняття відповідної схеми кодування даних.

Кілька прикладів, які показують тестування ANOVA контрастує за допомогою звичайної регресії .

Показавши в SPSS запит контрастного типу в ANOVA і отримуючи той же результат за допомогою лінійної регресії. Ми маємо деякий набір даних з Y та факторами A (3 рівні, еталон = останній) та B (4 рівні, посилання = останній); знайти дані нижче згодом.

Приклад відхилення протиставляється прикладу за повною факториальною моделлю (A, B, A * B). Тип відхилення, запитуваний як для А, так і для В (ми можемо вибрати для вашої інформації різний тип для кожного фактора).

Матриця коефіцієнта контрастності L для A і B:

            A=1      A=2      A=3
Const     .3333    .3333    .3333 
dev_a1    .6667   -.3333   -.3333
dev_a2   -.3333    .6667   -.3333

            B=1      B=2      B=3      B=4
Const     .2500    .2500    .2500    .2500
dev_b1    .7500   -.2500   -.2500   -.2500 
dev_b2   -.2500    .7500   -.2500   -.2500 
dev_b3   -.2500   -.2500    .7500   -.2500

Попросіть програму ANOVA ( GLMв SPSS) зробити аналіз дисперсії та вивести явні результати для контрастів відхилень:

введіть тут опис зображення

введіть тут опис зображення

Контрастний тип відхилення порівнював A = 1 проти великої незваженої середньої та A = 2 з тим самим середнім. Червоні еліпси відображають оцінку різниці та їх p-значень. Комбінований ефект над фактором A намальований червоним прямокутником. Що стосується фактора В, все є аналогічно чорним кольором синього кольору. Відображення також таблиці ANOVA. Зауважте, що комбіновані ефекти контрасту дорівнюють основним ефектам в ньому.

введіть тут опис зображення

Давайте тепер створимо фізично контрастні змінні dev_a1, dev_a2, dev_b1, dev_b2, dev_b3 та запустимо регресію. Інвертуйте L -матриці для отримання кодуючих матриць C :

      dev_a1   dev_a2
A=1   1.0000    .0000 
A=2    .0000   1.0000 
A=3  -1.0000  -1.0000

      dev_b1   dev_b2   dev_b3
B=1   1.0000    .0000    .0000 
B=2    .0000   1.0000    .0000 
B=3    .0000    .0000   1.0000 
B=4  -1.0000  -1.0000  -1.0000

X=DCDkk

Створивши контрастні змінні, помножте їх між різними факторами, щоб отримати змінні для відображення взаємодій (наша модель ANOVA була повна факторна): dev_a1b1, dev_a1b2, dev_a1b3, dev_a2b1, dev_a2b2, dev_a2b3. Потім запустіть декілька лінійних регресій з усіма предикторами.

введіть тут опис зображення

Як і очікувалося, dev_a1 - такий же ефект, як і контраст "Рівень 1 проти середнього"; dev_a2 - це те саме, що було "Рівень 2 проти середнього значення" тощо, тощо.

Зауважте, що якщо ми не використовували змінні взаємодії dev_a1b1, dev_a1b2 ..., в регресії результати збігатимуться з результатами контрастного аналізу ANOVA лише для основних ефектів.

Простий контрастний приклад за тією ж повною факторною моделлю (A, B, A * B).

Матриця коефіцієнта контрастності L для A і B:

            A=1      A=2      A=3
Const     .3333    .3333    .3333 
sim_a1   1.0000    .0000  -1.0000
sim_a2    .0000   1.0000  -1.0000

            B=1      B=2      B=3      B=4
Const     .2500    .2500    .2500    .2500
sim_b1   1.0000    .0000    .0000  -1.0000
sim_b2    .0000   1.0000    .0000  -1.0000
sim_b3    .0000    .0000   1.0000  -1.0000

Результати ANOVA для простих контрастів:

введіть тут опис зображення

введіть тут опис зображення

Загальні результати (таблиця ANOVA) такі ж, як і для контрастів відхилень (не відображаються зараз).

Створіть фізично контрастні змінні sim_a1, sim_a2, sim_b1, sim_b2, sim_b3. Матрицями кодування шляхом інвертування L-матриць є (без стовпця Const):

      sim_a1   sim_a2
A=1    .6667   -.3333
A=2   -.3333    .6667
A=3   -.3333   -.3333

      sim_b1   sim_b2   sim_b3
B=1    .7500   -.2500   -.2500
B=2   -.2500    .7500   -.2500
B=3   -.2500   -.2500    .7500
B=4   -.2500   -.2500   -.2500

X=DC

введіть тут опис зображення

Як і раніше, ми бачимо, що результати регресії та ANOVA відповідають. Параметр регресії простої змінної контрасту - це різниця (і тест на значущість) між цим рівнем фактора і референтним (останнім, у нашому прикладі) рівнем цього.

Двофакторні дані, використані в прикладах:

     Y      A      B
 .2260      1      1
 .6836      1      1
-1.772      1      1
-.5085      1      1
1.1836      1      2
 .5633      1      2
 .8709      1      2
 .2858      1      2
 .4057      1      2
-1.156      1      3
1.5199      1      3
-.1388      1      3
 .4865      1      3
-.7653      1      3
 .3418      1      4
-1.273      1      4
1.4042      1      4
-.1622      2      1
 .3347      2      1
-.4576      2      1
 .7585      2      1
 .4084      2      2
1.4165      2      2
-.5138      2      2
 .9725      2      2
 .2373      2      2
-1.562      2      2
1.3985      2      3
 .0397      2      3
-.4689      2      3
-1.499      2      3
-.7654      2      3
 .1442      2      3
-1.404      2      3
-.2201      2      4
-1.166      2      4
 .7282      2      4
 .9524      2      4
-1.462      2      4
-.3478      3      1
 .5679      3      1
 .5608      3      2
1.0338      3      2
-1.161      3      2
-.1037      3      3
2.0470      3      3
2.3613      3      3
 .1222      3      4

Приклад контрасту, визначений користувачем . Будемо мати один фактор F з 5 рівнями. Я створитиму і випробую набір спеціальних ортогональних контрастів, як у ANOVA, так і в регресії.

введіть тут опис зображення

LL

Надамо матрицю до процедури ANOVA SPSS для перевірки контрастів. Ну, ми можемо подати навіть будь-який один рядок (контраст) з матриці, але ми подамо всю матрицю, оскільки - як і в попередніх прикладах - ми хочемо отримувати ті самі результати за допомогою регресії, і програма регресії потребує повного набір змінних контрасту (щоб бути в курсі, що вони належать разом до одного фактора!). Ми додамо постійний рядок до L, як і раніше, хоча, якщо нам не потрібно тестувати перехоплення, ми можемо його безпечно опустити.

UNIANOVA Y BY F
  /METHOD=SSTYPE(3)
  /INTERCEPT=INCLUDE
  /CONTRAST (F)= special
       (.2 .2 .2 .2 .2
         3  3 -2 -2 -2
         1 -1  0  0  0
         0  0  2 -1 -1
         0  0  0  1 -1)
  /DESIGN=F.

Equivalently, we might also use this syntax (with a more flexible /LMATRIX subcommand)
if we omit the Constant row from the matrix.
UNIANOVA Y BY F
  /METHOD=SSTYPE(3)
  /INTERCEPT=INCLUDE
  /LMATRIX= "User contrasts"
       F  3  3 -2 -2 -2;
       F  1 -1  0  0  0;
       F  0  0  2 -1 -1;
       F  0  0  0  1 -1
  /DESIGN=F.

введіть тут опис зображення

Загальний ефект контрасту (внизу зображення) не такий, як очікуваний загальний ефект ANOVA:

введіть тут опис зображення

але це просто артефакт нашого постійного додавання до матриці L. Адже SPSS вже має на увазі постійну, коли задаються користувачем контрасти. Видаліть постійний рядок з L, і ми отримаємо однакові результати контрастів (матриця K на малюнку вище), за винятком того, що контраст L0 не відображатиметься. І загальний ефект контрасту буде відповідати загальній ANOVA:

введіть тут опис зображення

C=L+X=DC

C
      use_f1   use_f2   use_f3   use_f4
F=1    .1000    .5000    .0000    .0000
F=2    .1000   -.5000    .0000    .0000
F=3   -.0667    .0000    .3333    .0000
F=4   -.0667    .0000   -.1667    .5000
F=5   -.0667    .0000   -.1667   -.5000

введіть тут опис зображення

Поспостерігайте за ідентичністю результатів. Дані, використані в цьому прикладі:

     Y      F
 .2260      1
 .6836      1
-1.772      1
-.5085      1
1.1836      1
 .5633      1
 .8709      1
 .2858      1
 .4057      1
-1.156      1
1.5199      2
-.1388      2
 .4865      2
-.7653      2
 .3418      2
-1.273      2
1.4042      2
-.1622      3
 .3347      3
-.4576      3
 .7585      3
 .4084      3
1.4165      3
-.5138      3
 .9725      3
 .2373      3
-1.562      3
1.3985      3
 .0397      4
-.4689      4
-1.499      4
-.7654      4
 .1442      4
-1.404      4
-.2201      4
-1.166      4
 .7282      4
 .9524      5
-1.462      5
-.3478      5
 .5679      5
 .5608      5
1.0338      5
-1.161      5
-.1037      5
2.0470      5
2.3613      5
 .1222      5

Контрасти в інших, ніж (M) аналізах ANOVA .

Де б не з'явилися номінальні предиктори, виникає питання контрасту (який тип контрасту вибрати для якого предиктора). Деякі програми вирішують це за межами сцени внутрішньо, коли загальні результати омнібусів не залежатимуть від обраного типу. Якщо ви хочете, щоб певний тип бачив більше "елементарних" результатів, вам доведеться вибрати. Ви вибираєте (а точніше, складаєте) контраст також під час тестування гіпотези користувацького порівняння.

(M) ANOVA та Loglinear аналіз, змішане та інколи узагальнене лінійне моделювання містять варіанти лікування предикторів за допомогою різних типів контрастів. Але, як я намагався показати, можна створити контрасти як змінні контрасту прямо і вручну. Тоді, якщо у вас немає під рукою пакету ANOVA, ви можете зробити це - багато в чому з такою удачею - з багаторазовою регресією.


1
будь-ласка, не обмежуйте цю відповідь лише anova, якщо це можливо. Тег [anova] додав @amoeba до того часу, коли ви відповіли на моє запитання, але я не хочу, щоб відповідь була обмежена лише anova.
Цікаво

CLCL

@amoeba, я не знайомий з "контрастною матрицею" і майже впевнений, що вона означає "матрицю коефіцієнтів контрасту" або L-матрицю, яка є офіційним або принаймні широким терміном поширення в (M) ANOVA / GLM. Термін "контрастна матриця кодування" набагато менше згадується, оскільки це просто агрегований вигляд проектної матриці X; Я бачив слово "базисна матриця", яке використовується у документах одного з старших статистиків SPSS Дейва Ніколса. Абсолютно, матриці L (офіційна мітка) і C (довільна мітка?) Настільки тісно пов'язані, що навряд чи можна обговорити одну без іншої. Я припускаю, що "контрастну матрицю" слід розглядати як цю пару.
ttnphns

1
Так, я згоден. На сьогодні я переконаний, що "контрастна матриця" - це термін, який використовується лише у спільноті R і відноситься до схеми кодування. Я перевірив підручник, на який посилається Gus_est, і вони ніколи не використовують термін "контрастна матриця", вони говорять лише про "контрасти" (див. Мій останній коментар під його відповіддю). ОП явно запитувала про "контрастну матрицю" в сенсі R.
Амеба каже, що повернемо Моніку

1
That L will determine what are you going to test, you aren't free anymore to choose what to testβi=0β1β2/2β3/2=0

17

Я буду використовувати малі літери для векторів і великі літери для матриць.

У випадку лінійної моделі форми:

y=Xβ+ε

де - матриця рангу , і ми припускаємо .Xn×(k+1)k+1nεN(0,σ2)

Ми можемо оцінити по , оскільки інверсія існує.β^(XX)1XyXX

Тепер для випадку ANOVA ми маємо, що вже не є повноцінним. Очевидність цього полягає в тому, що у нас немає і ми повинні погодитися на узагальнену інверсію .X(XX)1(XX)

Однією з проблем використання цього узагальненого зворотного є те, що він не є унікальним. Інша проблема полягає в тому, що ми не можемо знайти об'єктивного оцінювача для , оскільки β

β^=(XX)XyE(β^)=(XX)XXβ.

Отже, ми не можемо оцінити . Але чи можна оцінити лінійну комбінацію ?ββ

У нас є , що лінійна комбінація «s, скажімо , є поважним , якщо існує вектор таке , що .βgβaE(ay)=gβ


У контрасти являють собою особливий випадок , оцінюваних функцій , в яких сума коефіцієнтів дорівнює нулю.g

І, контрасти виникають у контексті категоричних провісників у лінійній моделі. (якщо ви перевірите посібник, пов’язаний з @amoeba, ви побачите, що всі їх контрастні кодування пов'язані з категоричними змінними). Тоді, відповідаючи @Curious та @amoeba, ми бачимо, що вони виникають в ANOVA, але не в «чистій» регресійній моделі з лише безперервними прогнозами (ми можемо також говорити про контрасти в ANCOVA, оскільки в ній є деякі категоричні змінні).


Тепер у моделі де не є повноцінним, а , лінійна функція є оцінною, якщо існує вектор такий, що . Тобто є лінійною комбінацією рядків . Також є багато варіантів вектора , такий, що , як ми бачимо в прикладі нижче.

y=Xβ+ε
XE(y)=XβgβaaX=ggXaaX=g

Приклад 1

Розглянемо однобічну модель:

yij=μ+αi+εij,i=1,2,j=1,2,3.

X=[110110110101101101],β=[μτ1τ2]

І припустимо, , тому ми хочемо оцінити .g=[0,1,1][0,1,1]β=τ1τ2

Ми можемо бачити, що існують різні варіанти вектора які дають : take ; або ; або .aaX=ga=[0,0,1,1,0,0]a=[1,0,0,0,0,1]a=[2,1,0,0,1,2]


Приклад 2

Візьміть двосторонню модель: .

yij=μ+αi+βj+εij,i=1,2,j=1,2

X=[11010110011011010101],β=[μα1α2β1β2]

Ми можемо визначити оціночні функції, взявши лінійні комбінації рядків .X

Віднімання рядка 1 з рядків 2, 3 і 4 (з ): X

[11010000110110001111]

І взявши рядки 2 і 3 з четвертого ряду:

[11010000110110000000]

Помноживши це на виходить: β

g1β=μ+α1+β1g2β=β2β1g3β=α2α1

Отже, у нас є три лінійно незалежні оціночні функції. Тепер лише та можна вважати контрастами, оскільки сума його коефіцієнтів (або рядок сума відповідного вектора ) дорівнює нулю.g2βg3βg


Повернення до однобічної збалансованої моделі

yij=μ+αi+εij,i=1,2,,k,j=1,2,,n.

І припустимо, ми хочемо перевірити гіпотезу .H0:α1==αk

У цьому налаштуванні матриця не є повноцінною, тому не є унікальним і не піддається оцінці. Щоб зробити його оцінним, ми можемо помножити на , доки . Іншими словами, є оцінним iff .Xβ=(μ,α1,,αk)βgigi=0igiαiigi=0

Чому це правда?

Ми знаємо, що є оцінним, якщо існує вектор такий, що . Взявши окремі рядки і , тоді: gβ=(0,g1,,gk)β=igiαiag=aXXa=[a1,,ak]

[0,g1,,gk]=g=aX=(iai,a1,,ak)

І результат випливає.


Якщо ми хотіли б перевірити конкретний контраст, наша гіпотеза . Наприклад: , які можна записати як , тому ми порівнюємо із середнім значенням та .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(XX)g]1gβ^SSE/k(n1).

Якщо виражається як де рядки матриці є взаємно ортогональними контрастами ( ), тоді ми можемо перевірити використовуючи статистику , деH0:α1=α2==αkGβ=0

G=[g1g2gk]
gigj=0H0:Gβ=0F=SSHrank(G)SSEk(n1)SSH=[Gβ^][G(XX)1G]1Gβ^.

Приклад 3

Щоб краще зрозуміти це, скористаємося , і припустимо, ми хочемо протестувати яке можна виразити як k=4H0:α1=α2=α3=α4,

H0:[α1α2α1α3α1α4]=[000]

Або як : H0:Gβ=0

H0:[011000101001011]G,our contrast matrix[μα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

У цьому випадку наш коефіцієнт має 4 рівні, і ми можемо записати модель наступним чином: Це може бути записано в матричній формі у вигляді:

[y11y21y31y41]=[μμμμ]+[a1a2a3a4]+[ε11ε21ε31ε41]

Або

[y11y21y31y41]=[11000101001001010001]X[μa1a2a3a4]β+[ε11ε21ε31ε41]

Тепер для прикладу кодування манекенів у тому ж посібнику вони використовують як референтну групу. Таким чином, ми віднімаємо рядок 1 з кожного другого рядка в матриці , що дає :a1XX~

[11000011000101001001]

Якщо ви спостерігаєте за нумерацією рядків та стовпців у матриці contr.tretment (4), ви побачите, що вони враховують усі рядки та лише стовпці, пов'язані з факторами 2, 3 та 4. Якщо ми робимо те саме в наведені вище показники матриці:

[000100010001]

Таким чином, матриця contr.treatment (4) говорить нам про те, що вони порівнюють коефіцієнти 2, 3 і 4 з фактором 1 і порівнюють фактор 1 з постійним (це моє розуміння вище).

І, визначаючи (тобто беручи лише ті рядки, які дорівнює 0, у вищевказаній матриці): G

[011000101001001]

Ми можемо перевірити і знайти оцінки контрастів.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

І оцінки однакові.


Відношення @ttnphns відповідь моє.

На їх першому прикладі налаштування має категоричний фактор A, який має три рівні. Ми можемо записати це як модель (припустимо, для простоти, що ): j=1

yij=μ+ai+εij,for i=1,2,3

І припустимо, ми хочемо перевірити , або , при цьому є нашою референтною групою / фактором.H0:a1=a2=a3H0:a1a3=a2a3=0a3

Це може бути записано у матричній формі у вигляді:

[y11y21y31]=[μμμ]+[a1a2a3]+[ε11ε21ε31]

Або

[y11y21y31]=[110010101001]X[μa1a2a3]β+[ε11ε21ε31]

Тепер, якщо відняти рядок 3 від рядка 1 і рядка 2, у нас вийде, що стає (я називатиму його :XX~

X~=[010100111001]

Порівняйте останні 3 стовпці вищевказаної матриці з матрицею @ttnphns . Незважаючи на порядок, вони досить схожі. Дійсно, якщо помножити , отримаємо:LX~β

[010100111001][μa1a2a3]=[a1a3a2a3μ+a3]

Отже, ми маємо оціночні функції: ; ; .c1β=a1a3c2β=a2a3c3β=μ+a3

Оскільки , ми бачимо з вищесказаного, що ми порівнюємо нашу константу з коефіцієнтом для референтної групи (a_3); коефіцієнт групи1 до коефіцієнта групи 3; і коефіцієнт групи2 до групи3. Або, як сказав @ttnphns: "Ми одразу бачимо, слідуючи коефіцієнтам, що розрахункова Константа буде дорівнює середньому значенню Y у референтній групі; цей параметр b1 (тобто фіктивна змінна A1) буде дорівнює різниці: Y означає в групі1 мінус Y означає в групі 3; параметр b2 - різниця: середнє значення у групі2 мінус середнє в групі 3 ".H0:ciβ=0

Більше того, зауважте, що (дотримуючись визначення контрасту: функція оцінювання + сума рядків = 0), що вектори та є контрастами. І якщо ми створимо матрицю обмежень, ми маємо:c1c2G

G=[01010011]

Наша контрастна матриця для тестуванняH0: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

Отже, у нас однакові результати.


Висновок

Мені здається, що не існує однієї визначальної концепції того, що таке контрастна матриця.

Якщо ви візьмете визначення контрасту, яке дано Scheffe ("Аналіз варіації", стор. 66), ви побачите, що це оцінна функція, коефіцієнти якої дорівнюють нулю. Отже, якщо ми хочемо протестувати різні лінійні комбінації коефіцієнтів наших категоричних змінних, використовуємо матрицю . Це матриця, в якій рядки дорівнюють нулю, яку ми використовуємо для множення нашої матриці коефіцієнтів на, щоб зробити ці коефіцієнти оцінюваними. Її рядки вказують на різні лінійні комбінації контрастів, які ми тестуємо, а його стовпці вказують, які фактори (коефіцієнти) порівнюються.G

Оскільки матриця побудована таким чином, що кожен її рядок складається з контрастного вектора (який дорівнює 0), для мене є сенс називати "контрастною матрицею" ( Монахан - «Буквар на лінійних моделях» - також використовує цю термінологію).GG

Однак, як прекрасно пояснив @ttnphns, програмне забезпечення називає щось інше як "контрастна матриця", і я не зміг знайти прямий зв’язок між матрицею та вбудованими командами / матрицями від SPSS (@ttnphns ) або R (питання ОП), лише схожість. Але я вважаю, що приємна дискусія / співпраця, представлена ​​тут, допоможе прояснити такі поняття та визначення.G


будь-ласка, не обмежуйте цю відповідь лише anova, якщо це можливо. Тег [anova] додав @amoeba до того часу, коли ви відповіли на моє запитання, але я не хочу, щоб відповідь була обмежена лише anova.
Цікаво

Дякую за таке велике оновлення. Я видалив деякі мої коментарі, які вже були застарілими (ви можете видалити деякі ваші, наприклад, перший). Однак на сьогодні мені зрозуміло, що "контрастна матриця" у вашому (і Монаханському) сенсі - це щось зовсім інше, ніж "контрастна матриця" в тому сенсі, що вона використовується в цьому посібнику з R, а також в оригінальному запитанні тут (що називає ttnphns C-матриця). Я думаю, це було б сенсом, якщо ви зробите замітку десь у своїй відповіді про цю різницю.
амеба каже, що повернеться до Моніки

У мене виникають проблеми з розумінням, починаючи прямо з Example1. Що у вашій нотації ? Що таке і що представляють стовпці od ? Це постійний термін (стовпець з них) і дві манекенні змінні? ijyijaiX
ttnphns

@ttnphns: - група індексування (у Прикладі 1 є дві групи), - індексація точки даних всередині кожної групи. - це константа і - константи для кожної групи, такі що це групові засоби (так може бути середнім значенням, а може бути відхиленням засобів групи від загальної середньої величини). Стовпці це постійний термін і дві манекени, так. ijμαiμ+αiμαiX
Амеба каже, що повернемо Моніку

Дякую за цю відповідь, але я, мабуть, ніколи не зможу і не встигну це зрозуміти. І я вивчав математику :-) Я очікував дуже простого визначення як відповідь :-)
Цікаво

7

"Контрастна матриця" не є стандартним терміном у статистичній літературі. Він може мати [принаймні] два споріднених за різними значеннями:

  1. Матриця, що визначає конкретну нульову гіпотезу в регресії ANOVA (не пов'язаної зі схемою кодування), де кожен рядок є контрастом . Це не стандартне вживання цього терміна. Я використовував повнотекстовий пошук у відповідях на площину Крістенсена на складні запитання , Резерфорд, представляючи ANOVA та ANCOVA; Підхід GLM та лінійні моделі Ренчера та Шаале в статистиці . Всі вони багато говорять про "контрасти", але ніколи не згадують термін "контрастна матриця". Однак, як @Gus_est знайшов, цей термін буде використовуватися в Монахен в якості грунтовки на лінійних моделях .

  2. Матриця, що визначає схему кодування для матриці проектування в регресії ANOVA. Так використовується термін "контрастна матриця" у спільноті R (див., Наприклад, цей посібник чи цю довідкову сторінку ).

Відповідь @Gus_est досліджує перше значення. Відповідь @ttnphns досліджує друге значення (він називає його "контрастною кодуючою матрицею", а також обговорює "матрицю коефіцієнта контрасту", що є стандартним терміном в літературі SPSS).


Я розумію, що ви запитували про значення №2, тому тут іде визначення:

«Contrast матриця» в тому сенсі , R є матриці , де є число груп, визначаючи , як членство в групі кодується в матриці . Зокрема, якщо -те спостереження належить до групи то .k×kCkXmiXmj=Cij

Примітка: зазвичай перший стовпчик - це стовпець усіх (відповідає стовпцю перехоплення в матриці проектування). Коли ви викликаєте такі команди R , ви отримуєте матрицю без цього першого стовпця.Ccontr.treatment(4)C


Я планую поширити цю відповідь, щоб зробити розширений коментар щодо того, як відповіді @ttnphns та @Gus_est зближуються.


The answer by @Gus_est explores the first meaning. The answer by @ttnphns explores the second meaning.Я протестую. (І я здивований, почувши - після того, як ми обоє вели довгу розмову щодо визначень у коментарях до mty відповіді.) Я запропонував два терміни: матриця коефіцієнта контрасту (де рядки - це контрасти, лінійна комбінація засобів) aka L-матриця, і контрастна матриця схеми кодування, відома також матриця C. Обидва пов'язані, я обговорював і те, і інше.
ttnphns

(Продовження.) Контраст Коефіцієнт L матриця є стандартним терміном в ANOVA / загальної лінійної моделі, що використовуються в текстах , і в SPSS документи, наприклад . Схеми кодування дивіться тут .
ttnphns

You were asking about meaning #2Ми фактично не впевнені, яке значення термін "ОП" мав на увазі. ОП показав кілька прикладів схем контрастного кодування, - це не обов'язково означає, що він / його не цікавили матриці L.
ttnphns

1
Я щасливий, що ми ніби зараз говоримо тією ж мовою. Здається, щонайменше. Було б чудово для всіх, особливо для читачів відвідувачів, якщо ви виконаєте свою відповідь, показуючи, як звіти Гаса та ttnphns перетворюють на один і той же результат. Якщо ви хочете виконати.
ttnphns

1
(продовження.) Звичайно, матриця L в обох "підходах" однакова (і жодна загадкова матриця G не потрібна). Покажіть, що два еквівалентні шляхи (L довільний, X - манекени): L -> XC -> regression -> resultі X -> [regression -> adjusting to test for L] -> resultзалиште однаковий результат. 2-й шлях - це те, як буде працювати програма ANOVA (бракована частина []); 1-й шлях - це дидактична демонстрація того, як контрасти вирішуються лише за допомогою програми регресії.
ttnphns

3

Контраст порівнює дві групи, порівнюючи їх різницю з нулем. У контрастній матриці рядки є контрастами і повинні дорівнювати нулю, стовпці - це групи. Наприклад:

Скажімо, у вас є 4 групи A, B, C, D, які ви хочете порівняти, тоді матриця контрасту буде такою:

Група: ABCD
A проти B: 1 -1 0 0
C проти D: 0 0 -1 1
A, B проти D, C: 1 1 -1 -1

Перефразовуючи розуміння промислового експерименту :

Якщо є група k об'єктів, які потрібно порівняти, із середніми підгрупами k, на цьому наборі k об'єктів визначається контраст будь-яким набором k коефіцієнтів, [c1, c2, c3, ... cj, ..., ck ] що сума до нуля.

Нехай тоді C - контраст,

C=c1μ1+c2μ2+...cjμj+...ckμk

C=j=1kcjμj

з обмеженням

j=1kcj=0

Ті підгрупи, яким призначено коефіцієнт нуля, будуть виключені з порівняння. (*)

Саме знаки коефіцієнтів фактично визначають порівняння, а не вибрані значення. Абсолютні значення коефіцієнтів можуть бути будь-якими, доки сума коефіцієнтів дорівнює нулю.

(*) Кожне статистичне програмне забезпечення має різний спосіб вказати, які підгрупи будуть виключені / включені.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.