R

Язык и среда R

Статистическое программное обеспечение

Previous Entry Поделиться Next Entry
Логлинейный анализ многомерных таблиц сопряженности
alexwin1961 wrote in r_statistics
Логлинейный анализ предназначен для исследования связей в многомерных таблицах сопряженности (т.е. таблиц, образованных более чем двумя переменными). В ходе анализа исследователь строит модели, цель которых состоит в объяснении частот в ячейках многомерной таблицы при помощи набора параметров. Эти параметры характеризуют вклад категорий каждой из переменных, а также их сочетаний в частоты многомерной таблицы. Чем больше переменныз участвует в анализе, тем больше разнообразных сочетаний их категорий можно составить. Например, если таблица образована тремя переменными А, В и С, то модель может содержать взамодействия всех трех переменных (обозначается А:В:С), а также три попарных взаимодействий А:В, А:С, В:С. При построении так называемых "иерархических логлинейных моделей" предполагается, что включение в модель взаимодействия более высокого порядка (например, А:В:С) автоматически влечет за собой необходимость включить в нее все связанные с ней взаимодействия более низкого порядка (т.е., в нашем случае, попарные взаимодействия А:В, А:С и В:С, а также эффекты категорий А, В и С). Поиск наилучшей модели начинают с рассмотрения так называемой "насыщенной" модели, в которой находятся все мыслимые эффекты изучаемых переменных. Поскольку в насыщенной модели количество параметров в точности равно количеству объясняемых частот, она идеально соответствует данным. Отталкиваясь от нее, исследователь старается построить модель с как можно меньшим количеством параметров, которая при этом удовлетворительно объясняет наблюдаемые частоты в многомерной таблице. Рассмотрим пример взаимосвязи трех переменных, приведенный А.Агрести. В опросе 2276 учеников старших классов г. Дейтон (штат Огайо) респондентам задавали вопросы о том, пробовали ли они хоть раз в жизни: курить сигареты (перемееная С), употреблять алкогольные напитки (переменная А) и курить марихуану (переменная М). Данные сведены в следующую таблицу:

    M   C   A count
1 yes yes yes   911
2  no yes yes   538
3 yes  no yes    44
4  no  no yes   456
5 yes yes  no     3
6  no yes  no    43
7 yes  no  no     2
8  no  no  no   279
Как видим, 911 учеников из 2276 попробовали все, что только можно, а примерных мальчиков и девочек набралось лишь 279 человек. Данные для последующего анализа можно ввести в виде многомерного массива, но лучше сделать это при помощи массива данных:
tbl <- data.frame(
  expand.grid(
    M = factor(c(1,2), labels = c("yes","no")),
    C = factor(c(1,2), labels = c("yes","no")),
    A = factor(c(1,2), labels = c("yes","no"))
  ),
  count=c(911, 538, 44, 456, 3, 43, 2, 279)
)
Попробуем сначала оценить параметры насыщенной модели для таблицы tbl при помощи функции loglm из пакета MASS:
library(MASS)
saturated.model <- loglm(count ~ M:C:A, data = tbl)
coefficients(saturated.model)
Как видим, формула, описываюшая нашу модель, содержит только взаимодействие переменных третьего порядка M:C:A. Поскольку строится иерархическая модель, все остальные эффекты, вытекающие из этого взаимодйствия, добавляются в нее автоматически. Функция-экстрактор coefficients() выводит на экран оценки коэффициентов насыщенной модели:
$`(Intercept)`
[1] 4.274157

$M
      yes        no 
-1.176534  1.176534 

$C
       yes         no 
 0.2163966 -0.2163966 

$A
      yes        no 
 1.478114 -1.478114 

$M.C
     C
M           yes        no
  yes  0.642558 -0.642558
  no  -0.642558  0.642558

$M.A
     A
M            yes         no
  yes  0.7236292 -0.7236292
  no  -0.7236292  0.7236292

$C.A
     A
C            yes         no
  yes  0.5825332 -0.5825332
  no  -0.5825332  0.5825332

$M.C.A
, , A = yes

     C
M             yes          no
  yes  0.07368884 -0.07368884
  no  -0.07368884  0.07368884

, , A = no

     C
M             yes          no
  yes -0.07368884  0.07368884
  no   0.07368884 -0.07368884
Как видим, этих коэффициентов существенно больше, чем объясняемых частот, которых всего восемь. Поэтому в логлинейном анализе введены некоторые ограничения на значения коэффициентов, которые становятся очевидными, если внимательно рассмотреть таблицы с эффектами: сумма по строке или столбцу любой таблицы должна равняться нулю. В результате количество независимых параметров можно существенно сократить. Так, у нас остается 1 константа, 3 коэффициента для главных эффектов каждой переменной, 3 коэффициента для их попарных взаимодействий и 1 коэффициент для взаимодействия третьего порядка -- всего 8, ровно столько, сколько и частот. Иными словами, никакой экономии в объяснении не получается. Теперь нужно сказать, каким собственно образом строится это объяснение. Модель логлинейного анализа объясняет логарифм частоты как линейную сумму значений параметров (отсюда, собственно, и происхождение названия метода). Например, логарифм частоты тех, кто попробовал все, что только можно, равняется: LN(911) = 6.814543 = 4.274157 + -1.176534 + 0.2163966 + 1.478114 + 0.642558 + 0.7236292 + 0.5825332 + 0.07368884. Попробуем построить более простую модель, в которую входят только три взаимодействия второго порядка и главные эффекты переменных (всего 7 параметров, на 1 меньше, чем данных):
m1 <- loglm(count ~ M:C + C:A + A:M, data = tbl)
coefficients(m1)
m1
fitted(m1)


$`(Intercept)`
[1] 4.25154

$M
      yes        no 
-1.196040  1.196040 

$C
       yes         no 
 0.2822646 -0.2822646 

$A
      yes        no 
 1.503998 -1.503998 

$M.C
     C
M            yes         no
  yes  0.7119615 -0.7119615
  no  -0.7119615  0.7119615

$M.A
     A
M           yes        no
  yes  0.746507 -0.746507
  no  -0.746507  0.746507

$C.A
     A
C            yes         no
  yes  0.5136326 -0.5136326
  no  -0.5136326  0.5136326
Теперь, когда модель стала ненасыщенной, она уже не будет один-в-один соответствовать наблюдаемым данным, и появляется необходимость сравнить, насколько наблюдаемые ("эмпирические") частоты отличаются от предсказанных моделью ("теоретических"). Для этой цели служит знакомая статистика хи-квадрат (точнее, ее версия под названием "хи-квадрат максимального правдоподобия":
Statistics:
                       X^2 df  P(> X^2)
Likelihood Ratio 0.3739859  1 0.5408396
Pearson          0.4010946  1 0.5265245
Логика проверки гипотезы такова. Нулевая гипотеза: наблюдаемые частоты не отличаются от ожидаемых. Альтернативная гипотеза: они отличаются. Как видим, значение хи-квадрат равно 0.3739859 при одной степени свободы (помните, мы исключили из модели 1 параметр?). Вероятность наблюдать такое значение критерия, когда верна нулевая гипотеза, составляет 0.5408396. Таким образом, мы не можем отбросить нулевую гипотезу, более простая модель обеспечивает такое воспроизведение данных, которое не отличается значимо от наблюдаемой картины. А вот и сами воспроизведеннве данные:
1> fitted(m1)
Re-fitting to get fitted values
, , A = yes

     C
M          yes        no
  yes 910.3816  44.61841
  no  538.6184 455.38162

, , A = no

     C
M           yes         no
  yes  3.616797   1.383203
  no  42.383540 279.616460
как видим, действительно, различия несущественные. Так, умудренных опытом школьников (укуренных и упитых) 910.4 человека вместо 911, а паинек 279.6 при реально наблюдаемых 276. Дальнейшие эксперименты показывают, что еще более более простые модели значимо отличаются от наблюдаемых данных. Иными словами, модель count ~ M:C + C:A + A:M является наилучшей из возможных.

  • 1
Великолепно. Но не хватает по моему интерпретации получившихся значений коэффициентов с точки зрения прикладной области.

Наверное вот так?

http://spitswww.uvt.nl/~vermunt/esbs2005c.pdf


The one-variable parameters λA , λB , and λC indicate the relative number of cases at the various levels of A, B, and C as deviations from the mean. More precisely, they describe the partial skewness of a variable, that is, the skewness within the combined categories of the other variables. The two-variable interaction terms λAB , λAC , and λBC indicate the strength of the partial association between A and B, A and C, and B and C, respectively. The partial association can be interpreted as the mean association between two variables within the levels of the third variable. And finally, the three-factor interaction parameters λABC indicate how much the conditional two-variable interactions differ from one another within the categories of the third variable.



PS Пакет логлинеар анализа для крайне симпатичного, увы не свободного пакета ViSta http://socionet.ru/publication.xml?h=repec:jss:jstsof:07:i06

Самый лучший (и притом бесплатный) софт для логлинейного анализа -- LEM, который написан цитируемым Вами автором

Увы "бесплатный"!="свободный". ViSta может быть скачана и использована абсолютно бесплатно, вот развивать её уже некому. Автор уже покинул нас, не передав права сообществу. А пакет просто поражал всех любителей графического интерфейса и визуализации стат процедур еще лет 15 назад. Даже сейчас это наверное лучшее учебное пособие по статистике несмотря на существование R.

А NCSS для этой цели не пробовали?

Пробовал работать с этим пакетом, но очень давно и не с логшинейным анализом. Судя по перечню возможностей этой процедуры на сайте пакета -- стандартный набор, похожий на то, что предалагает SPSS

программа за последние 6 лет практически не эволюционировала

Продолжение следует. Тема слишком объемная для одного поста

http://www.mathpsyc.uni-bonn.de/doc/cristant/node39.html

интересный графический подход к интерпретации результатов

да, это распространенный подход к визуализации результатов логлинейного анализа. На русском языке описан в переводной монографии Аптона "Анализ таблиц сопряженности"

  • 1
?

Log in

No account? Create an account