Моделирование структурными уравнениями (Structural Equation Modeling, SEM) представляет собой мощный статистический метод для моделирования сложных взаимосвязей между наблюдаемыми и латентными переменными. Его история насчитывает более века, начиная с работ по факторному и путевому анализу. В R реализация SEM доступна через такие пакеты как sem, lavaan, seminr, что делает метод доступным и удобным для социальных исследователей.
План
Ограничения классических методов “первого поколения”
О теоретической модели SEM
Рефлективные (Reflective) vs Формирующие (Formative) индикаторы
Моделирование структурными уравнениями в R: основные библиотеки
Пример структурного моделирования в R
Самостоятельная работа
Ограничения классических методов «первого поколения»
Многомерные методы первого поколения, такие как регрессионный анализ, дискриминантный анализ, логистическая регрессия, дисперсионный анализ, а также факторный или кластерный анализ, относятся к основному набору статистических инструментов, которые могут использоваться для выявления или подтверждения теоретических гипотез на основе анализа эмпирических данных.
Многие ученые по всему миру использовали в прошлом и, наверняка, будут использовать эти методы в будущем для создания научных открытий, которые изменили наши представления о мире.
Например, с помощью факторного анализа Ч. Спирмен (1904) обосновал наличие общего фактора интеллекта (g), а Гирт Ховстеде (1980) провел свои знаменитые кросс-культурные измерения, выведя пять факторов, по которым можно различать культуру (в том числе корпоративную) : индивидуализм / коллективизм, дистанция власти, мужественность / женственность и избегание неопределенности. Эдвард Альтман (1968) на основе дискриминантного анализа предложил Z-формулу, учитывающую пять ключевых коэффициентов, описывающих финансовое состояние предприятий, сделавшую прорыв в предсказании их банкротства и устойчивости на рынке.
Однако, у всех этих методов есть три довольно существенных ограничения:
Предположение о простой структуре модели. Например, в регрессионном анализе только одна переменная назначается как зависимая, а другие определяются как независимые, другие отношения не учитываются.
Допущение, что все переменные можно считать наблюдаемыми, то есть полученными в результате реальных экспериментов. Хотя факторный анализ позволяет анализировать латентные переменные, установить взаимосвязи между ними невозможно.
Предположение, что все переменные измеряются без ошибки, что может ограничивать их применимость в некоторых исследовательских ситуациях.
Методология SEM, собственно, и была разработана для преодоления ограничений методов первого поколения, став для них конкурентоспособной альтернативой.
SEM позволяет одновременно моделировать отношения среди множества независимых и зависимых конструктов.
Первые представляют собой переменные, которые не объясняются исследуемой моделью (т.е. всегда выступают в роли независимых переменных), а вторые, напротив, являются переменными, объясняемыми отношениями, содержащимися в модели.
История разработки моделей SEM
Истоки SEM можно найти в работах Карла Пирсона (1901), предложившего основания метода главных компонент, а затем Чарльза Спирмена (1904), разработавшего факторный анализ для выявления общего интеллекта на основе тестовых показателей. Сьюэлл Райт (1918–1934) стал основоположником путевого анализ (path analysis), применяя его к генетике, биологии и экономике. Эти подходы фокусировались на наблюдаемых переменных с ad hoc оценкой параметров через корреляции, без общей формализации.
1960-е и 1970-е можно назвать периодом второго рождения SEM. В 1960-х Х.М. Блэлок (1961–1964) и О.Д. Дункана (1966) популяризировали путевой анализ социальных науках, обобщив статистические методы в единую модель, что стерло границы между эконометрикой, психометрикой и социометрикой. Они продемонстрировали, как общая модель может включать модели одновременных уравнений из эконометрики и социологии, одновременно контролируя ошибки измерения и множественные индикаторы. Факторный анализ был представлен как частный случай той же рамки. Одновременно это обеспечивало структурную или причинную интерпретацию параметров при введении аналитиками причинных предположений. Еще одна тенденция этого периода — распространение SEM по многочисленным дисциплинам. Это способствовало осознанию, что многие традиционные модели подпадают под более общую модель, что открыло возможности для междисциплинарных исследований. Ключевым стал 1973 год: Карл Йореског, Уилли Кислинг и Дэвид Уайли предложили общую нотацию LISREL, объединившую факторный анализ, множественную регрессию и системы одноврвменных уравнений. Программа LISREL (1974) с методом максимального правдоподобия (ML) сделала SEM доступным.
В 1980-х появились правила идентифицируемости (например, Two Indicator Rule, 1979) и индексы подгонки (RMSEA, CFI). Кен Боллен (1989) систематизировал SEM в своем учебном пособии, подчеркнув важность оценки, идентификации и тестирования. Распространение в R началось с пакета sem Джона Фокса (2006), а lavaan (с 2010-х) стал стандартом благодаря интуитивному синтаксису для CFA, path analysis и сложных моделей.
Структура SEM-модели
Мы уже знаем, что SEM может использоваться (и часто используется) для проверки теоретических предположений на эмпирических данных. Поэтому крайне важно иметь представление о том, как теоретические положения связываются с различными частями модели SEM.
Согласно Haenlein and Kaplan (2004) теория может содержать три различных типа концептов:
теоретические концепты, которые представляют собой «абстрактные, ненаблюдаемые свойства или атрибуты социального явления» (например, справедливость, которую нельзя “увидеть”, сложно подобрать индикаторы, существует множественность трактовок и интерпретаций;
эмпирические концепты, которые «относится к свойствам или отношениям, наличие или отсутствие которых может быть установлено посредством прямых наблюдений» (например, доход, частота сердечных сокращений, длительность рабочего дня и т.д.);
производные концепты, которые являются ненаблюдаемыми (как теоретические концепты), но «в отличие от теоретических концептов связаны с какими-либо эмпирическими концептами» (например, дипрессия - это совокупность симптомов, которые можно наблюдать и по их наличию поставить диагноз).
Соответственно, существуют три возможных типа отношений:
ненаблюдаемые гипотезы, которые связывают теоретические концепты с другими теоретическими концептами;
теоретические определения, которые переводят теоретические концепты в производные; и
правила соответствия, которые связывают теоретические или производные концепты с эмпирическими и служат «для предоставления эмпирического значения теоретическим терминам» (то, что социологи обычно называют термином «операционализация»).
Рис 1. Теоретические концепты, используемые в ходе моделирования структурными уравнениями.
Используя эту схему, мы можем разработать исследовательскую модель, которая представляет какую-то определенную теорию, переведя теоретические и производные концепты в ненаблюдаемые (латентные) переменные, а эмпирические концепты в индикаторы, связанные с определенными гипотезами, которые могут касаться ненаблюдаемых гипотез, теоретических определений или правил соответствия.
Представим это все в гипотетической исследовательской модели (рис. 2), используя следующие обозначения:
Модель измерения для эндогенных латентных переменных
Второй блок описывает взаимосвязи между индикаторами эндогенных переменных (y), их ошибками измерения (ε), и соответствеющими им эндогенными латентными переменными (η ):
Где: \(\mathbf{\Lambda}_x\) — матрица факторных нагрузок экзогенных переменных \(\mathbf{\Lambda}_y\) — матрица факторных нагрузок эндогенных переменных \(\mathbf{\xi}\) — латентные экзогенные, \(\mathbf{\eta}\) — латентные эндогенные переменные, \(\mathbf{\Delta}\) — ошибки измерения экзогенных индикаторов \(\mathbf{\epsilon}\) — ошибки измерения эндогенных индикаторов, \(\mathbf{B}\) — матрица эндогенных связей (η влияет на η), \(\mathbf{\Gamma}\) — матрица структурных коэффициентов от экзогенных к эндогенным.
Последнее уравнение (3) представляет как раз ненаблюдаемые гипотезы и теоретические опреления, тогда как первое (1) и второе (2) уравнения являются правилами соответствия.
Рефлективные, отражающие (Reflective) и формирующие (Formative) индикаторы
Наблюдаемые индикаторы могут быть распределены на две группы (и мы уже это обсуждали):
(a) рефлективные, отражающие (reflective) индикаторы, которые зависят от конструкта (например, если рассматривать депрессию как такой конструкт, то симптомы как раз и будут зависеть от ее наличия и выраженности)
(b) формирующие, также известные как причинные индикаторы, которые, напротив, приводят к изменению в ненаблюдаемой (латентной) переменной (Bollen & Lennox, 1991).
Рис 3. Рефлексивные и формирующие индикаторы
Рефлексивные индикаторы могут быть выражены как функция от их латентных переменных, например:
\[
y1 = λy_1 η + ε_1\\
y2 = λy_2 η + ε_2\\
y3 = λy_3 η + ε_3
\]
Тип
Модель
Корреляция индикаторов
Пример
Reflective
\(y_i = \lambda_{yi} \eta_i + \epsilon_i\)
Высокая
“Оперативность”
Formative
\(\xi_i = \beta_{i1}x_1 + \beta_{i2}x_2 + \dots\)
Произвольная
“Стресс”
Формативные индикаторы в SEM не являются следствием латентной переменной, а сами формируют её, поэтому уравнение записывают так:
где \(\gamma_{x_1}\), \(\gamma_{x_2}\), \(\gamma_{x_3}\) — веса (коэффициенты) индикаторов \(x_1\), \(x_2\), \(x_3\), а \(\zeta\) — ошибка уравнения.
Таким образом, если ненаблюдаемая переменная порождает наблюдаемое поведение, как в случае личностных черт или установок, используют рефлективные индикаторы (например, латентная переменная восприятия времени «оперативность» определяется индикаторами выполнение срочных запросов, пунктуальность в соблюдении сроков, скорость ответа на телефонные звонки).
Если же конструкт понимается как комбинация формирующих его индикаторов, применяют формативные индикаторы (например, «стресс» как сочетание потери работы, развода, недавней аварии, смерти близкого).
Еще одно существенное отличие:
- у рефлективных индикаторов ожидается высокая взаимная корреляция,
- у формативных индикаторов корреляции могут быть положительными, отрицательными или нулевыми, и изменение одного индикатора не требует аналогичного изменения других.
В приведенных примерах ожидается, что человек с более высоким уровнем оперативности будет способен выполнять срочные поручения И будет более пунктуальным И будет быстрее отвечать на звонки. С другой стороны, уровень жизненного стресса не обязательно предполагает, что все несчастья (потеря работы, развод и какой-то инцидент) произойдут одновременно.
Моделирование структурными уравнениями в R: основные библиотеки
В R существует несколько библиотек для моделирования структурными уравнениями (SEM), которые различаются по гибкости, синтаксису и методам оценки. Основные — lavaan, sem и OpenMx — охватывают от базовых до продвинутых моделей, включая CFA, path analysis и многоуровневые структуры. Выбор зависит от сложности задачи и предпочтений пользователя.
Основные пакеты
lavaan: Самый популярный и удобный для начинающих, с синтаксисом, похожим на Mplus; поддерживает ML, GLS, WLS и многоуровневые модели.
sem: Классический пакет (с 2001 г.) на базе RAM-подхода для общих линейных моделей, использует 2SLS и FIML; подходит для наблюдаемых и латентных переменных.
OpenMx: Максимально гибкий для сложных моделей (генетические, байесовские), но требует больше кода; расширяется mxsem для lavaan-подобного синтаксиса.
seminr: Современный пакет для PLS-SEM (Partial Least Squares), популярен в маркетинге и бизнес-исследованиях; использует bootstrapping и поддерживает композитные модели.
Дополнительные инструменты
semTools: Расширения для lavaan (индексы подгонки, бутстреп).
plspm/semPLS: Альтернативы для PLS-SEM в маркетинге.
bsem/blavaan: Байесовские варианты для неопределенных моделей.
lavaanExtra: Расширение для lavaan с векторным синтаксисом (write_lavaan()), автоматическим определением индиректных эффектов и возможностями для создания таблиц с результатами моделирования по требованиям научных публикаций/
lavaanExtra: Расширение для lavaan с векторным синтаксисом (write_lavaan()), автоматическим определением индиректных эффектов и публикационно-готовыми таблицами/графиками.
Пакет
Тип SEM
Синтаксис
Методы оценки
Гибкость
Применение
lavaan
CB-SEM
Интуитивный
ML, GLS, многоуровень
Высокая
Социальные науки, CFA [web:83]
sem
CB-SEM
Формульный
2SLS, FIML
Средняя
Базовый SEM [web:22]
OpenMx
CB-SEM
Продвинутый
Полная кастомизация
Максимум
Генетика, сложные модели [web:72]
seminr
PLS-SEM
Простой
Bootstrapping
Высокая
Маркетинг, бизнес [web:37]
Эти библиотеки активно развиваются, с lavaan как стандартом для социальных наук и seminr для PLS-подходов в прикладных исследованиях.
Пример анализа в R
В рамках курса “Введение в моделирование структурными уравнениями” мы уже изучили разные модели, а работа в программе JASP помогла осноить основы синтаксиса, принятого в пакете lavaan.
В данном разделе мы познакомимся с возможностями пакета seminr, синтаксис которого, с одной стороны, довольно сильно отличается от lavaan представлением различных типов латентных и манифестных переменных, структурных уравнений, с другой, имеет свои собственные преимущества, в том числе в части графического представления результатов.
Авторы пакета выделяют следующие преимущества: - Естественный синтаксис: Специфический для предметной области язык для построения и оценки SEM в R. - Высокоуровневые функции: Быстрое определение взаимодействий и сложных структурных моделей. - Модульный дизайн: Модели, способствующие повторному использованию компонентов. - Лучшие практики: Поощряются умными настройками по умолчанию и предупреждениями.
Пример синтаксиса и модульного дизайна в seminr:
Code
# Определение модели измерения через рефлективные и композитные индикаторы, быстрый ввод однотипных индикаторовmeasurements <-constructs(reflective("Image", multi_items("IMAG", 1:5)),composite("Expectation", multi_items("CUEX", 1:3)),composite("Loyalty", multi_items("CUSL", 1:3), weights = mode_B),composite("Complaints", single_item("CUSCO")))# Создание четырех связей (двух регрессий) в одной строчке кодаstructure <-relationships(paths(from =c("Image", "Expectation"), to =c("Complaints", "Loyalty")))# Оценка модели с помощью метода PLS (Consistent PLS для рефлективных индикаторов)pls_model <-estimate_pls(data = mobi, measurements, structure)# Переоценка модели как полностью рефлективной через CBSEMcbsem_model <-estimate_cbsem(data = mobi, as.reflective(measurements), structure)
SEMinR can plot models using the semplot (for CBSEM models) or DiagrammeR (for PLS models) packages with a simple plot method.
Warning: пакет 'seminr' был собран под R версии 4.6.0
Code
plot(pls_model, title ="PLS Model")
Code
save_plot("myfigure.pdf")
NULL
SEMinR поддерживает различные методы оценки конструктов и SEM:
SEM, основанный на ковариациях (CB-SEM)
Оценка SEM на основе ковариаций с использованием популярного пакета Lavaan [attached_file:1].
Поддерживает модели медиации и модерации с конструктами.
Легко задавать взаимодействия между конструктами.
Добавляет извлечение факторных оценок ten Berge для сохранения корреляционных паттернов латентных факторов.
Добавляет VIF и другие оценки валидности.
Конфирматорный факторный анализ (CFA) через Lavaan
Использует пакет Lavaan и возвращает результаты с синтаксисом [attached_file:1].
Добавляет извлечение факторных оценок ten Berge для сохранения корреляционных паттернов латентных факторов.
Моделирование путей методом частичных наименьших квадратов (PLS-PM)
Использует непараметрическую оценку на основе дисперсии для построения композитных и общих факторов.
Автоматически оценивает с помощью Consistent PLS (PLSc) при эмуляции рефлексивных общих факторов.
Корректирует известные смещения во взаимодействиях PLS-моделей.
Постоянно тестируется на соответствие лидерам PLS-PM: SmartPLS, ADANCO, semPLS, matrixpls.
Высокопроизводительный бутстреп с поддержкой многоядерности.
Установим и загрузим пакет:
Code
install.packages("seminr")
Warning: пакет ''seminr'' сейчас используется и не будет установлен
Code
library(seminr)
Для демонстрации возможностей пакета воспользуемся встроенным датасетом mobi, входящим в состав пакета seminr (также доступен в пакете semPLS). Этот датасет содержит результаты исследования European Customer Satisfaction Index (ECSI), адаптированного для рынка мобильных телефонов (Tenenhaus et al. 2005).
Описание и пример содержимого датасета mobi можно увидеть с помощью уже известных нам функций dims() и head():
Описание измерительной модели
SEMinR использует следующие функции для описания измерительных моделей:
constructs() собирает все измерительные модели конструктов
composite() или reflective() определяют режим измерения отдельных конструктов
interaction_term() задает взаимодействия, higher_composite() — конструкты высшего порядка
multi_items() или single_item() определяют одиночные или множественные индикаторы конструкта
Эти функции естественны для практиков SEM и побуждают явно указывать основную природу измерительных моделей: композитная или общий фактор (см. Sarstedt et al., 2016; Henseler et al., 2013 для четких определений).
Примечание: конструкты высшего порядка поддерживаются только для метода PLS-PM.
SEMinR обеспечивает читабельную для человека и явную спецификацию структурной модели с помощью следующих функций:
relationships() собирает все структурные связи между конструктами
paths() задает связи между наборами предикторов и исходов
Пример: для датасета mobi структурная модель может быть описана следующим образом:
Code
mobi_sm <-relationships(paths(from ="Image", to =c("Expectation", "Satisfaction", "Loyalty")),paths(from ="Expectation", to =c("Quality", "Value", "Satisfaction")),paths(from ="Quality", to =c("Value", "Satisfaction")),paths(from ="Value", to =c("Satisfaction")),paths(from ="Satisfaction", to =c("Complaints", "Loyalty")),paths(from ="Complaints", to ="Loyalty"))
Оценка модели
SEMinR может оценивать CFA или полную SEM-модель, включая измерительную и структурную части:
estimate_pls() оценивает параметры PLS-SEM модели
estimate_cfa() оценивает параметры CFA-модели с использованием пакета Lavaan
estimate_cbsem() оценивает параметры CB-SEM модели с использованием пакета Lavaan
Вышеуказанные функции принимают комбинацию следующих параметров:
data: датасет, содержащий индикаторы измерительной модели, указанные в constructs()
structural_model (только для PLS-PM и CB-SEM): структурная модель, описанная функцией paths()
inner_weights (только для PLS-PM): схема взвешивания для оценки путей — либо path_weighting для взвешивания по путям (по умолчанию), либо path_factorial для взвешивания по факторам (Lohmöller 1989)
Существует несколько способов представления результатов оцененной модели. Функция estimate_pls() возвращает объект класса seminr_model, который можно передать базовой функции R summary(). Это можно использовать двумя основными способами.
summary(seminr_model) отображает:
R² и скорректированный R² структурной модели
Коэффициенты путей структурной модели
Метрики надежности конструктов:
rhoC (композитная надежность, Dillon and Goldstein 1987)
AVE (средняя дисперсия извлеченной общности, Fornell and Larcker 1981)
rhoA (Dijkstra and Henseler 2015)
Code
summary(mobi_pls)
Results from package seminr (2.3.7)
Path Coefficients:
Satisfaction
R^2 0.614
AdjR^2 0.606
Image 0.470
Expectation 0.132
Value 0.320
Image*Expectation -0.140
Image*Value 0.023
Reliability:
alpha rhoC AVE rhoA
Image 0.723 0.818 0.478 0.745
Expectation 0.452 0.733 0.481 0.462
Value 0.824 0.918 0.848 0.858
Image*Expectation 0.802 0.833 0.291 1.000
Image*Value 0.810 0.918 0.574 1.000
Satisfaction 0.779 0.871 0.693 0.784
Alpha, rhoC, and rhoA should exceed 0.7 while AVE should exceed 0.5
model_summary <- summary(seminr_model) Возвращает объект класса summary.seminr_model со следующими доступными объектами (могут варьироваться в зависимости от CB-SEM или PLS-модели):
meta — метаданные об оценке и версии
model_summary$iterations (только PLS) — количество итераций для сходимости
model_summary$paths — матрица коэффициентов путей, R² и скорректированный R²
total_effects — общие эффекты структурной модели
total_indirect_effects — общие косвенные эффекты структурной модели
model_summary$loadings — оцененные факторные нагрузки измерительной модели
model_summary$weights — оцененные веса измерительной модели
model_summary$validity$vif_items — VIF для измерительной модели
model_summary$validity$htmt — HTMT для конструктов (дискриминантная валидность)
model_summary$validity$fl_criteria — Fornell-Larcker критерии для конструктов
model_summary$validity$cross_loadings (только PLS) — все возможные нагрузки между конструктами и индикаторами