Показати/Сховати код
htmltools::tags$audio(
src = "https://raw.githubusercontent.com/socio-pixel/my-audio/main/Populist-orientations-scale.mp3",
controls = "controls",
style = "width: 100%;"
)htmltools::tags$audio(
src = "https://raw.githubusercontent.com/socio-pixel/my-audio/main/Populist-orientations-scale.mp3",
controls = "controls",
style = "width: 100%;"
)Вимірювання популістських орієнтацій є важливим кроком для глибшого розуміння сучасних політичних процесів. Методика вивчення популістських орієнтації, яка запропонована О. Резніком (2024) та апробована у трьох всеукраїнських соціологічних опитуваннях у липні 2023, березні 2024 та червні - липні 2024 року, є переспективним підходом до вивчення цього складного соціально-політичного явища.
Для відображення основних елементів популістської ідеології було використано систему показників, які фіксують віру в народний суверенітет, протиставлення еліті та маніхейське світосприйняття політичної реальності, що виражається через моралістичну дихотомію “добра” і “зла” у політичному процесі. Вимірювання здійснювалося за допомогою шкали Лікерта, де респондентам пропонувалося оцінити свій рівень згоди із сімома твердженнями за п’ятибальною шкалою, де 1 відповідає повній незгоді, а 5 - повній згоді з запропонованим твердженням.
Факторний аналіз, проведений за методом головних компонент із Varimax-обертанням на даних кожного соціологічного опитування, продемонстрував наявність двох факторів. Перший об’єднав популістські ідеї як народоцентризму, так і антиелітаризму, тоді як другий чітко виокремив ідеї маніхейської безкомпромісності. Хоча факторний аналіз виявив двофакторну структуру, для подальшого аналізу було вирішено використовувати єдиний адитивний індекс, що включав сім запитань. За результатами вивчення громадської думки 2023 року коефіцієнт альфа Кронбаха для усереднений сумарний індексу популістських орієнтацій становив 0,67.
Метою цього дослідження полягала в аналізі психометричних властивостей шкали популістських орієнтацій, що включає:
(a) визначення розмірності шкали;
(б) зіставлення конкуруючих моделей факторної структури шкали;
(в) оцінювання надійності - внутрішньої узгодженості шкали;
(г) дослідження інваріантності вимірювання шкали за статтю; (д) аналіз властивостей пунктів шкали.
Такий комплексний підхід дає змогу комплексно з’ясувати, наскільки коректно та стабільно шкала відбиває заданий конструкт.
Емпіричною базою дослідження слугували результати всеукраїнського опитування, реалізованого компанією «Група «Рейтинг» за фінансової підтримки Проєкту USAID «Трансформація комунікацій». Польовий етап тривав з 27 червня по 6 липня 2024 року. Опитування охопило підконтрольну територію України (за винятком тимчасово окупованих територій та районів без українського мобільного зв’язку) і було проведено з використанням комбінованої методології CATI-CAWI (n = 4101).
У дослідженні 2024 року опитувальник містив такі популістські орієнтації.
Народоцентризм (віра у народний суверенітет): «Народ набагато мудріший за політиків, тому політики повинні слідувати тільки волі народу» (pm1) та «Часто думка простих людей важливіша, ніж думка професійних політиків та експертів» (pm3).
Антиелітизм (протистояння еліті): «Політичні розбіжності між елітою та народом більші, ніж розбіжності у самому народі» (pm2) та «Нашою країною повинні керувати люди з народу, а не представники правлячої еліти» (pm4); «Я хотів би, щоб мене у політиці представляв пересічний громадянин, а не професійний політик» (pm5).
Маніхейський світогляд щодо «добра» і «зла» в політиці: «У політиці важливішим є результат, навіть отриманий з порушенням процедур законодавства» (pm6) та «Компроміс у політиці – це насправді торгівля власними принципами» (pm7).
Шкала запитань, що відбивали популістські орієнтації, є порядковою. Отже, застосування поліхоричних кореляцій, на відміну від коефіцієнтів кореляції Пірсона, забезпечило точнішу оцінку взаємозв’язків між змінними. Відповідно порядкова природа шкали врахована в конфірматорному факторному аналізі (КФА) та моделі градуйованої відповіді (GRM).
Дослідження включало аналіз розподілів змінних, кореляційний та експлораторний графовий аналіз.
За допомогою КФА перевірено однофакторна, модифікована однофакторна та двофакторна моделі. Як естіматор використовувався Maximum Likelihood з робастними стандартними похибками (WLSMV) через його стійкість до порушень нормальності розподілу даних.
Якість моделей конфірматорного факторного аналізу оцінювалася за комплексом показників допасованості. Значущість χ² (p-value scaled) розглядалася як не основний показник з огляду на її чутливість до розміру вибірки. Показник середньоквадратичної похибки апроксимації (RMSEA) менший за 0,08 вказував на задовільну узгодженість моделі з емпіричними даними. Водночас порівняльний індекс відповідності (CFI) мав перевищувати 0,95, що підтверджувало адекватність специфікації моделі. Стандартизований корінь середньоквадратичного залишку (SRMR) мав бути меншим за 0,08, що вказувало б на мінімальні розбіжності між емпіричною та теоретичною матрицями коваріацій. Референтним значенням показника зваженого кореню середньоквадратичного залишку (WRMR) є значення менше 1.0. Індекс парсимонії (PNFI scaled) мав перевищувати 0,50, що свідчило би про прийнятну збалансованість між складністю та якістю допасованості моделей. В аналізі застосовувалися робастні або масштабовані версії відповідних показників.
Додатково аналізувалися стандартизовані факторні навантаження, які мали перевищувати порогове значення 0,40, що забезпечувало суттєвий внесок кожного індикатора у формування латентного конструкту. Середньоквадратичне значення вилученої дисперсії (Average Variance Extracted, AVE) для кожного фактора мало бути більшим за 0,50, що підтверджувало внутрішню конвергентну валідність вимірювальної моделі.
Надійність вимірювального інструменту оцінювалася через показники внутрішньої узгодженості: коефіцієнт альфа Кронбаха, коефіцієнт порядкової альфа, та коефіцієнт категоріальної омега мали перевищувати 0,70, що свідчило про достатню стабільність вимірювань. Перевага надавалася коефіцієнту омега, оскільки він не потребує виконання припущення про тау-еквівалентність індикаторів та надає більш точні оцінки надійності для факторних моделей.
Слід зазначити, що можуть бути винятки із загальних правил, як-от менші значення окремих факторних навантажень або значення AVE понад 0.40 за адекватної композитної надійності шкали.
Перевірку інваріантності здійснюють за допомогою багатогрупового конфірматорного факторного аналізу (БГКФА). Розрізняють кілька рівнів інваріантності: конфігураційна, метрична, скалярна інваріантність та ін. Конфігураційна інваріантність означає, що факторна структура шкали (кількість факторів та зв’язок пунктів з факторами) є однаковою для різних груп. Метрична інваріантність, на додаток до конфігураційної, вимагає рівності факторних навантажень, тобто пункти шкали однаково вимірюють відповідний фактор в різних групах. Скалярна інваріантність, є найсуворішим рівнем і, крім рівності факторних навантажень, передбачає рівність порогів пунктів, що дозволяє коректно порівнювати середні значення за шкалою між групами.
При послідовному тестуванні моделей — спочатку від конфігураційної до метричної (слабкої) інваріантності, а потім від метричної до скалярної (сильної). Інваріантність не підтримується при різниці значень показників допасування Δ CFI< -0.01 та ΔRMSEA>0.015. Для великих вибірок рекомендовано застосовувати менше референтне значення (Δ RMSEA > 0.010).
GRM, що входить до арсеналу сучасної теорії тестування (IRT), враховує порядковий рівень виміру запитань. Ця модель дозволяє визначити точність вимірювання латентної змінної, отримати детальні параметри, такі як дискримінаційні коефіцієнти та порогові значення.
При оцінці моделі GRM зазначені показники (M2, RMSEA, SRMSR, TLI і CFI) використовуються для визначення загальної відповідності моделі даним. Ідеальна модель характеризується незначущим значенням M2 (p > 0,05), RMSEA менше 0,08 (з вузьким довірчим інтервалом), SRMSR менше 0.08, а також TLI і CFI, що перевищують 0.95. Ці критерії дозволяють досліднику об’єктивно оцінити, наскільки добре модель відображає структуру даних.
Аналіз проводився на зважених даних, крім БГКФА та GRM.
# Очищення глобального середовища
rm(list=ls())
# Завантаження необхідних пакетів
library(here) # Шлях до файлу
library(haven) # Імпорт даних з різних форматів
library(dplyr) # Маніпулювання даними
library(sjmisc) # Описова статистика
library(ggcorrplot) # Візуалізація кореляційних матриць
library(EGAnet) # Exploratory Graph Analysis (дослідження структури даних)
library(lavaan) # Конфірматорний факторний аналіз
library(semTools) # Розширення функціональності lavaan (перевірка інваріантності вимірювання)
library(lavaanExtra) # Розширення функціональності lavaan (візуалізація)
library(knitr) # Генерація звітів
library(kableExtra) # Покращення таблиць у звітах knitr
library(mirt) # IRT
# Завантаження даних
dataset <- read_sav(here("Monitoring2024.sav"))
cat("Перевірка кількості пропущених значень")Перевірка кількості пропущених значень
missings <- colSums(is.na(dataset[c(28:34,2, 432)]))
print(missings) pm1 pm2 pm3 pm4 pm5 pm6 pm7 Dsex1
0 0 0 0 0 0 0 0
wt_UA4101
0
# Обробка пропущених значень (якщо потрібно) та відбір змінних
df<- na.omit(dataset[c(28:34,2, 432)])Описова статистика опитування виявляє помірний рівень популістських орієнтацій серед респондентів. Найбільш вираженою є згода з твердженнями, що підкреслюють розрив між елітою та народом (pm2) та важливість думки “простих людей” (pm3). Респонденти демонструють схильність вважати, що політики повинні слідувати волі народу (pm1) та що країною мають керувати “люди з народу” (pm4). Проте, спостерігається менша підтримка ідеї представництва “пересічними громадянами” замість професійних політиків (pm5) та виражене відхилення від думки, що політичний результат виправдовує порушення законності (pm6). Ставлення до політичного компромісу (pm7) є відносно нейтральним, але з тенденцією до сприйняття його як потенційної “торгівлі принципами”.
Загалом, отримані дані свідчать про поширення певних популістських настроїв, зокрема недовіри до еліт та акцентування на важливості голосу народу. Водночас, результати вказують на неоднозначне ставлення до деяких радикальних аспектів популізму, таких як відмова від професіоналізму в політиці та ігнорування законності заради досягнення політичних цілей. Це може свідчити про наявність “помірного” або “латентного” популізму, який поєднується з прихильністю до базових принципів демократії та верховенства права.
# Зважені дані
# Отримання описової статистики
frq(df[1:7], weights=df$wt_UA4101)Народ набагато мудріший за політиків, тому політики повинні слідувати тільки волі народу (pm1) <numeric>
# total N=4101 valid N=4101 mean=3.60 sd=1.21
Value | Label | N | Raw % | Valid % | Cum. %
---------------------------------------------------------------------
1 | Зовсім не згодні | 210 | 5.12 | 5.12 | 5.12
2 | Скоріше не згодні | 714 | 17.41 | 17.41 | 22.53
3 | Важко сказати, згодні чи ні | 749 | 18.26 | 18.26 | 40.79
4 | Скоріше згодні | 1268 | 30.92 | 30.92 | 71.71
5 | Цілком згодні | 1160 | 28.29 | 28.29 | 100.00
<NA> | <NA> | 0 | 0.00 | <NA> | <NA>
Політичні розбіжності між елітою та народом більші, ніж розбіжності у самому народі (pm2) <numeric>
# total N=4100 valid N=4100 mean=3.97 sd=1.06
Value | Label | N | Raw % | Valid % | Cum. %
---------------------------------------------------------------------
1 | Зовсім не згодні | 145 | 3.54 | 3.54 | 3.54
2 | Скоріше не згодні | 294 | 7.17 | 7.17 | 10.71
3 | Важко сказати, згодні чи ні | 623 | 15.20 | 15.20 | 25.90
4 | Скоріше згодні | 1496 | 36.49 | 36.49 | 62.39
5 | Цілком згодні | 1542 | 37.61 | 37.61 | 100.00
<NA> | <NA> | 0 | 0.00 | <NA> | <NA>
Часто думка простих людей важливіша, ніж думка професійних політиків та експертів (pm3) <numeric>
# total N=4101 valid N=4101 mean=3.45 sd=1.20
Value | Label | N | Raw % | Valid % | Cum. %
---------------------------------------------------------------------
1 | Зовсім не згодні | 271 | 6.61 | 6.61 | 6.61
2 | Скоріше не згодні | 780 | 19.02 | 19.02 | 25.63
3 | Важко сказати, згодні чи ні | 748 | 18.24 | 18.24 | 43.87
4 | Скоріше згодні | 1431 | 34.89 | 34.89 | 78.76
5 | Цілком згодні | 871 | 21.24 | 21.24 | 100.00
<NA> | <NA> | 0 | 0.00 | <NA> | <NA>
Нашою країною повинні керувати люди з народу, а не представники правлячої еліти (pm4) <numeric>
# total N=4101 valid N=4101 mean=3.68 sd=1.19
Value | Label | N | Raw % | Valid % | Cum. %
---------------------------------------------------------------------
1 | Зовсім не згодні | 217 | 5.29 | 5.29 | 5.29
2 | Скоріше не згодні | 565 | 13.78 | 13.78 | 19.07
3 | Важко сказати, згодні чи ні | 799 | 19.48 | 19.48 | 38.55
4 | Скоріше згодні | 1264 | 30.82 | 30.82 | 69.37
5 | Цілком згодні | 1256 | 30.63 | 30.63 | 100.00
<NA> | <NA> | 0 | 0.00 | <NA> | <NA>
Я хотів би, щоб мене у політиці представляв пересічний громадянин, а не професійний політик (pm5) <numeric>
# total N=4101 valid N=4101 mean=2.80 sd=1.28
Value | Label | N | Raw % | Valid % | Cum. %
---------------------------------------------------------------------
1 | Зовсім не згодні | 778 | 18.97 | 18.97 | 18.97
2 | Скоріше не згодні | 1058 | 25.80 | 25.80 | 44.77
3 | Важко сказати, згодні чи ні | 965 | 23.53 | 23.53 | 68.30
4 | Скоріше згодні | 822 | 20.04 | 20.04 | 88.34
5 | Цілком згодні | 478 | 11.66 | 11.66 | 100.00
<NA> | <NA> | 0 | 0.00 | <NA> | <NA>
У політиці важливішим є результат, навіть отриманий з порушенням процедур законодавства (pm6) <numeric>
# total N=4101 valid N=4101 mean=2.26 sd=1.31
Value | Label | N | Raw % | Valid % | Cum. %
---------------------------------------------------------------------
1 | Зовсім не згодні | 1601 | 39.04 | 39.04 | 39.04
2 | Скоріше не згодні | 1014 | 24.73 | 24.73 | 63.76
3 | Важко сказати, згодні чи ні | 610 | 14.87 | 14.87 | 78.64
4 | Скоріше згодні | 558 | 13.61 | 13.61 | 92.25
5 | Цілком згодні | 318 | 7.75 | 7.75 | 100.00
<NA> | <NA> | 0 | 0.00 | <NA> | <NA>
Компроміс у політиці – це насправді торгівля власними принципами (pm7) <numeric>
# total N=4101 valid N=4101 mean=3.23 sd=1.19
Value | Label | N | Raw % | Valid % | Cum. %
---------------------------------------------------------------------
1 | Зовсім не згодні | 391 | 9.53 | 9.53 | 9.53
2 | Скоріше не згодні | 792 | 19.31 | 19.31 | 28.85
3 | Важко сказати, згодні чи ні | 1012 | 24.68 | 24.68 | 53.52
4 | Скоріше згодні | 1314 | 32.04 | 32.04 | 85.56
5 | Цілком згодні | 592 | 14.44 | 14.44 | 100.00
<NA> | <NA> | 0 | 0.00 | <NA> | <NA>
# Кодування змінної статі
df$sex<-factor(df$Dsex1, levels=c(1, 2), labels=c("Male", "Female"))
# Перевірка частот статі
frq(df$sex, weights=df$wt_UA4101)xw <categorical>
# total N=4101 valid N=4101 mean=1.55 sd=0.50
Value | N | Raw % | Valid % | Cum. %
----------------------------------------
Male | 1857 | 45.28 | 45.28 | 45.28
Female | 2244 | 54.72 | 54.72 | 100.00
<NA> | 0 | 0.00 | <NA> | <NA>
Аналіз кореляційної матриці виявляє певну структуру взаємозв’язків між змінними. Можна виділити кластер помірно корельованих змінних, що включає pm1, pm3, pm4 та pm5, де коефіцієнти кореляції варіюють від 0,46 до 0,60. Найсильніший зв’язок спостерігається між pm1 та pm4 (r = 0,60). Змінні pm2, pm6 та pm7 демонструють слабші кореляції з іншими показниками. Особливо це помітно для pm6, яка має найнижчі кореляції з усіма іншими змінними (від 0,05 до 0,20), що може вказувати на її відносну незалежність від основного конструкту. Змінна pm7 також демонструє переважно слабкі кореляції (від 0,20 до 0,28) з іншими показниками.
# Зважені дані
# Обчислення кореляційної матриці з вагами
cor_matrix <- lavCor(df[c("pm1", "pm2",
"pm3", "pm4", "pm5", "pm6" , "pm7",
"wt_UA4101")], ordered=T,
sampling.weights="wt_UA4101")
pl<-ggcorrplot(cor_matrix, type="lower", hc.order=T, hc.method= "average", lab = TRUE)
plcor_matrix pm1 pm2 pm3 pm4 pm5 pm6 pm7
pm1 1.000
pm2 0.345 1.000
pm3 0.553 0.299 1.000
pm4 0.602 0.334 0.494 1.000
pm5 0.460 0.204 0.467 0.522 1.000
pm6 0.159 0.046 0.199 0.190 0.199 1.000
pm7 0.279 0.232 0.245 0.277 0.254 0.195 1.000
На основі результатів експлораторного графового аналізу (EGA) можна зробити такі висновки. Аналіз із використанням алгоритму GLASSO (графічного LASSO) з параметром регуляризації EBIC (γ = 0.5) виявив високу щільність зв’язків між змінними (edge density = 0.857), що відображається у 18 ненульових ребрах між 7 вершинами графу. Застосування алгоритму виявлення спільнот Louvain визначило всі змінні (pm1-pm7) як такі, що належать до однієї спільноти, що свідчить про одновимірну структуру досліджуваного конструкту.
Для перевірки стабільності отриманого рішення було проведено бутстраповану версію EGA з 500 параметричними повторами. Результати бутстрапування підтвердили одновимірність структури - медіанна кількість вимірів становить 1, з 95% довірчим інтервалом [0.88, 1.12]. Це свідчить про високу надійність одновимірного рішення, оскільки довірчий інтервал не включає значення 2 і більше. Додатково, аналіз TEFI (Total Entropy Fit Index using Von Neumman’s entropy) також підтверджує одномірність моделі (TEFI = 0).
Отже, попри деяку гетерогенність кореляційних зв’язків, графовий аналіз вказує на одновимірну структуру досліджуваного конструкту.
# Зважені дані
pl1 <- EGA(data = cor_matrix, n = 4101, plot.EGA = T)pl1Model: GLASSO (EBIC with gamma = 0.5)
Correlations: auto
Lambda: 0.0601980331847116 (n = 100, ratio = 0.1)
Number of nodes: 7
Number of edges: 18
Edge density: 0.857
Non-zero edge weights:
M SD Min Max
0.124 0.089 0.034 0.337
----
Algorithm: Louvain
Number of communities: 1
pm1 pm2 pm3 pm4 pm5 pm6 pm7
1 1 1 1 1 1 1
----
Unidimensional Method: Louvain
Unidimensional: Yes
----
TEFI: 0
bootEGA(data = cor_matrix, n = 4101, seed = 123)Model: GLASSO (EBIC)
Correlations: auto
Algorithm: Louvain
Unidimensional Method: Louvain
----
EGA Type: EGA
Bootstrap Samples: 500 (Parametric)
1 2
Frequency: 0.996 0.004
Median dimensions: 1 [0.88, 1.12] 95% CI
Масштабована статистика χ² (χ²scaled) та її рівень значущості (p-value) використовувалися для початкової оцінки моделей, хоча цей критерій чутливий до розміру вибірки. Робастний показник середньоквадратичної похибки апроксимації (Robust RMSEA) для всіх моделей був в межах 0.061-0.066, що свідчить про прийнятну якість відтворення коваріаційної структури даних, при цьому верхня межа 90% довірчого інтервалу не перевищувала 0.075. Робастний порівняльний індекс відповідності (Robust CFI) для модифікованої однофакторної та двофакторної моделей становив 0.971, а для однофакторної - 0.964, що вказує на хорошу узгодженість. Стандартизований корінь середньоквадратичного залишку (SRMR) був меншим за 0.034, демонструючи мінімальні розбіжності між емпіричною та теоретичною матрицями коваріацій. Додатково розраховувався масштабований індекс парсимонії (PNFI scaled), значення якого перевищували 0.61, що свідчить про прийнятну збалансованість між складністю та якістю допасованості моделей. Показник WRMR для всіх моделей перевищував рекомендоване значення 1.0.
Альтернативні до однофакторної моделі показали кращу відповідність даним.
Порівняльний аналіз моделей показав, що модифікована однофакторна та двофакторна моделі демонструють ідентичні показники допасованості (χ²scaled = 125.461, df = 13, p < 0.001, robust RMSEA = 0.061 90% ДІ [0.051; 0.070], Robust CFI = 0.971, SRMR = 0.028, PNFI scaled = 0.610) та кращу якість відтворення даних порівняно з початковою однофакторною моделлю (χ²scaled = 163.747, df = 14, p < 0.001, robust RMSEA = 0.066 90% ДІ [0.057; 0.075], robust CFI = 0.964, SRMR = 0.034, PNFI scaled = 0.654).
Втім, попри формально однакову якість допасованості, аналіз психометричних властивостей виявляє суттєві відмінності між моделями. Двофакторна модель логічно розділяє елементи: перший фактор (Popul_l) охоплює pm1–pm5 з високими навантаженнями (0.43-0.77), а другий (Popul_2) – pm6 і pm7, для яких навантаження підвищуються (0.36 та 0.55 порівняно з 0.25 та 0.38 у модифікованій однофакторній моделі). Двофакторна модель демонструє дещо кращі показники надійності для першого фактора (ω = 0.77, AVE = 0.45), але характеризується проблематичною структурою другого фактора з низькою надійністю (ω = 0.30) та недостатньою конвергентною валідністю (AVE = 0.21). Другий фактор включає лише два індикатори, що зменшує надійність вимірювання порівняно з трьома - чотирма індикаторами.
Натомість модифікована однофакторна модель, попри дещо нижчі показники надійності (ω = 0.73) та середньої вилученої дисперсії (AVE = 0.35), пропонує більш парсимонічне рішення. Специфікація коваріації залишків між індикаторами pm6 та pm7 (0.102, p<0.001) виявляється більш економним способом врахування їхньої спільної дисперсії порівняно з виокремленням окремого фактора. Модель з однією латентною змінною є простішою в інтерпретації та подальшій роботі. Таким чином, попри формально однакову якість відтворення даних, теоретичні та практичні міркування схиляють до прийняття модифікованої однофакторної моделі як більш обґрунтованого рішення. Водночас, відносно низькі факторні навантаження окремих індикаторів та загальний показник AVE нижче рекомендованого порогу 0.50 вказують на потребу подальшого вдосконалення цього вимірювального інструменту.
# Зважені дані
m1 <- "Popul =~ pm1 + pm2 + pm3 + pm4 + pm5 + pm6 + pm7"
fit.m1 <- cfa (m1, data = df, ordered = T,
sampling.weights = "wt_UA4101", std.lv = TRUE, se = "robust")
fit.measures.m1 <- fitMeasures(fit.m1, c("chisq.scaled", "df.scaled", "pvalue.scaled", "rmsea.robust", "rmsea.ci.lower.robust", "rmsea.ci.upper.robust", "cfi.robust", "srmr", "wrmr", "pnfi.scaled"))
tabl1<-kable(round(fit.measures.m1, digits = 3), col.names = "Показники", format = "markdown") %>% kable_styling(bootstrap_options = "striped", full_width = F)
tabl1| Показники | |
|---|---|
| chisq.scaled | 163.747 |
| df.scaled | 14.000 |
| pvalue.scaled | 0.000 |
| rmsea.robust | 0.066 |
| rmsea.ci.lower.robust | 0.057 |
| rmsea.ci.upper.robust | 0.075 |
| cfi.robust | 0.964 |
| srmr | 0.034 |
| wrmr | 1.422 |
| pnfi.scaled | 0.654 |
pl_fit.measures.m1<-nice_lavaanPlot(
model = fit.m1,
coefs = TRUE,
stand = TRUE,
covs = TRUE,
stars = c("coefs", "covs", "latent")
)
pl_fit.measures.m1summary(fit.m1, fit.measures = TRUE, standardized = TRUE)lavaan 0.6-19 ended normally after 9 iterations
Estimator DWLS
Optimization method NLMINB
Number of model parameters 35
Number of observations 4101
Sampling weights variable wt_UA4101
Model Test User Model:
Standard Scaled
Test Statistic 99.130 163.747
Degrees of freedom 14 14
P-value (Chi-square) 0.000 0.000
Scaling correction factor 0.608
Shift parameter 0.740
simple second-order correction
Model Test Baseline Model:
Test statistic 11694.846 8371.399
Degrees of freedom 21 21
P-value 0.000 0.000
Scaling correction factor 1.398
User Model versus Baseline Model:
Comparative Fit Index (CFI) 0.993 0.982
Tucker-Lewis Index (TLI) 0.989 0.973
Robust Comparative Fit Index (CFI) 0.964
Robust Tucker-Lewis Index (TLI) 0.946
Root Mean Square Error of Approximation:
RMSEA 0.039 0.051
90 Percent confidence interval - lower 0.032 0.044
90 Percent confidence interval - upper 0.046 0.058
P-value H_0: RMSEA <= 0.050 0.996 0.385
P-value H_0: RMSEA >= 0.080 0.000 0.000
Robust RMSEA 0.066
90 Percent confidence interval - lower 0.057
90 Percent confidence interval - upper 0.075
P-value H_0: Robust RMSEA <= 0.050 0.002
P-value H_0: Robust RMSEA >= 0.080 0.005
Standardized Root Mean Square Residual:
SRMR 0.034 0.034
Parameter Estimates:
Parameterization Delta
Standard errors Robust.sem
Information Expected
Information saturated (h1) model Unstructured
Latent Variables:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
Popul =~
pm1 0.773 0.010 75.006 0.000 0.773 0.773
pm2 0.425 0.017 24.787 0.000 0.425 0.425
pm3 0.693 0.013 54.564 0.000 0.693 0.693
pm4 0.766 0.011 70.366 0.000 0.766 0.766
pm5 0.644 0.013 48.425 0.000 0.644 0.644
pm6 0.265 0.020 13.171 0.000 0.265 0.265
pm7 0.388 0.016 24.112 0.000 0.388 0.388
Thresholds:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
pm1|t1 -1.634 0.036 -45.336 0.000 -1.634 -1.634
pm1|t2 -0.754 0.026 -28.910 0.000 -0.754 -0.754
pm1|t3 -0.233 0.024 -9.818 0.000 -0.233 -0.233
pm1|t4 0.574 0.025 22.531 0.000 0.574 0.574
pm2|t1 -1.808 0.043 -41.680 0.000 -1.808 -1.808
pm2|t2 -1.242 0.029 -42.880 0.000 -1.242 -1.242
pm2|t3 -0.646 0.026 -25.201 0.000 -0.646 -0.646
pm2|t4 0.316 0.024 13.235 0.000 0.316 0.316
pm3|t1 -1.506 0.033 -45.747 0.000 -1.506 -1.506
pm3|t2 -0.655 0.025 -25.836 0.000 -0.655 -0.655
pm3|t3 -0.154 0.024 -6.544 0.000 -0.154 -0.154
pm3|t4 0.798 0.027 30.000 0.000 0.798 0.798
pm4|t1 -1.617 0.040 -40.675 0.000 -1.617 -1.617
pm4|t2 -0.876 0.028 -30.917 0.000 -0.876 -0.876
pm4|t3 -0.291 0.024 -12.140 0.000 -0.291 -0.291
pm4|t4 0.506 0.025 20.473 0.000 0.506 0.506
pm5|t1 -0.879 0.030 -29.576 0.000 -0.879 -0.879
pm5|t2 -0.132 0.024 -5.565 0.000 -0.132 -0.132
pm5|t3 0.476 0.024 19.735 0.000 0.476 0.476
pm5|t4 1.192 0.031 38.428 0.000 1.192 1.192
pm6|t1 -0.278 0.024 -11.571 0.000 -0.278 -0.278
pm6|t2 0.352 0.024 14.542 0.000 0.352 0.352
pm6|t3 0.794 0.026 30.489 0.000 0.794 0.794
pm6|t4 1.423 0.036 39.579 0.000 1.423 1.423
pm7|t1 -1.308 0.031 -42.155 0.000 -1.308 -1.308
pm7|t2 -0.558 0.026 -21.745 0.000 -0.558 -0.558
pm7|t3 0.089 0.023 3.772 0.000 0.089 0.089
pm7|t4 1.061 0.029 36.948 0.000 1.061 1.061
Variances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
.pm1 0.403 0.403 0.403
.pm2 0.820 0.820 0.820
.pm3 0.520 0.520 0.520
.pm4 0.414 0.414 0.414
.pm5 0.586 0.586 0.586
.pm6 0.930 0.930 0.930
.pm7 0.850 0.850 0.850
Popul 1.000 1.000 1.000
mod_indices_m1 <- modificationIndices(fit.m1, minimum.value = 10, sort = TRUE)
cat("Рекомендовані модифікації для моделі m1:\n")Рекомендовані модифікації для моделі m1:
mod_indices_m1 lhs op rhs mi epc sepc.lv sepc.all sepc.nox
79 pm6 ~~ pm7 25.723 -0.102 -0.102 -0.115 -0.115
67 pm2 ~~ pm5 17.546 0.088 0.088 0.128 0.128
69 pm2 ~~ pm7 17.437 -0.078 -0.078 -0.094 -0.094
70 pm3 ~~ pm4 15.461 0.086 0.086 0.184 0.184
68 pm2 ~~ pm6 12.078 0.074 0.074 0.084 0.084
62 pm1 ~~ pm5 11.436 0.073 0.073 0.151 0.151
# Розрахунок надійності
reliability_m1 <- round(semTools::reliability(fit.m1), 2)For constructs with categorical indicators, Zumbo et al.`s (2007) "ordinal alpha" is calculated in addition to the standard alpha, which treats ordinal variables as numeric. See Chalmers (2018) for a critique of "alpha.ord" and the response by Zumbo & Kroc (2019). Likewise, average variance extracted is calculated from polychoric (polyserial) not Pearson correlations.
# Виведення таблиці
kable(reliability_m1, format = "html", caption = "Оцінка надійності шкали") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))| Popul | |
|---|---|
| alpha | 0.73 |
| alpha.ord | 0.76 |
| omega | 0.74 |
| omega2 | 0.74 |
| omega3 | 0.74 |
| avevar | 0.35 |
cat ("Категориальна омега")Категориальна омега
round(compRelSEM(fit.m1),2)Popul
0.74
# Зважені дані
m2 <- "Popul =~ pm1 + pm2 + pm3 + pm4 + pm5 + pm6 + pm7
pm6 ~~ pm7"
fit.m2 <- cfa (m2, data = df, ordered = T,
sampling.weights = "wt_UA4101", std.lv = TRUE, se = "robust")
fit.measures.m2 <- fitMeasures(fit.m2, c("chisq.scaled", "df.scaled", "pvalue.scaled", "rmsea.robust", "rmsea.ci.lower.robust", "rmsea.ci.upper.robust", "cfi.robust", "srmr", "wrmr", "pnfi.scaled"))
tabl2<-kable(round(fit.measures.m2, digits = 3), col.names = "Показники", format = "markdown") %>% kable_styling(bootstrap_options = "striped", full_width = F)
tabl2| Показники | |
|---|---|
| chisq.scaled | 125.461 |
| df.scaled | 13.000 |
| pvalue.scaled | 0.000 |
| rmsea.robust | 0.061 |
| rmsea.ci.lower.robust | 0.051 |
| rmsea.ci.upper.robust | 0.070 |
| cfi.robust | 0.971 |
| srmr | 0.028 |
| wrmr | 1.224 |
| pnfi.scaled | 0.610 |
pl_fit.measures.m2<-nice_lavaanPlot(
model = fit.m2,
coefs = TRUE,
stand = TRUE,
covs = TRUE,
stars = c("coefs", "covs", "latent")
)
lavaanPlot::save_png(
plot = pl_fit.measures.m2,
path = "plot_fit_measures.m2.png", # Змінив назву, щоб не перезаписати
width = 1350, # <<< Зменшене значення ширини
height = 1417 # <<< Висоту поки залишаємо
)
pl_fit.measures.m2summary(fit.m2, fit.measures = TRUE, standardized = TRUE)lavaan 0.6-19 ended normally after 11 iterations
Estimator DWLS
Optimization method NLMINB
Number of model parameters 36
Number of observations 4101
Sampling weights variable wt_UA4101
Model Test User Model:
Standard Scaled
Test Statistic 73.401 125.461
Degrees of freedom 13 13
P-value (Chi-square) 0.000 0.000
Scaling correction factor 0.588
Shift parameter 0.630
simple second-order correction
Model Test Baseline Model:
Test statistic 11694.846 8371.399
Degrees of freedom 21 21
P-value 0.000 0.000
Scaling correction factor 1.398
User Model versus Baseline Model:
Comparative Fit Index (CFI) 0.995 0.987
Tucker-Lewis Index (TLI) 0.992 0.978
Robust Comparative Fit Index (CFI) 0.971
Robust Tucker-Lewis Index (TLI) 0.954
Root Mean Square Error of Approximation:
RMSEA 0.034 0.046
90 Percent confidence interval - lower 0.026 0.039
90 Percent confidence interval - upper 0.041 0.053
P-value H_0: RMSEA <= 0.050 1.000 0.808
P-value H_0: RMSEA >= 0.080 0.000 0.000
Robust RMSEA 0.061
90 Percent confidence interval - lower 0.051
90 Percent confidence interval - upper 0.070
P-value H_0: Robust RMSEA <= 0.050 0.030
P-value H_0: Robust RMSEA >= 0.080 0.000
Standardized Root Mean Square Residual:
SRMR 0.028 0.028
Parameter Estimates:
Parameterization Delta
Standard errors Robust.sem
Information Expected
Information saturated (h1) model Unstructured
Latent Variables:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
Popul =~
pm1 0.774 0.010 75.094 0.000 0.774 0.774
pm2 0.425 0.017 24.816 0.000 0.425 0.425
pm3 0.693 0.013 54.597 0.000 0.693 0.693
pm4 0.766 0.011 70.407 0.000 0.766 0.766
pm5 0.644 0.013 48.374 0.000 0.644 0.644
pm6 0.247 0.020 12.157 0.000 0.247 0.247
pm7 0.379 0.016 23.513 0.000 0.379 0.379
Covariances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
.pm6 ~~
.pm7 0.102 0.018 5.673 0.000 0.102 0.114
Thresholds:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
pm1|t1 -1.634 0.036 -45.336 0.000 -1.634 -1.634
pm1|t2 -0.754 0.026 -28.910 0.000 -0.754 -0.754
pm1|t3 -0.233 0.024 -9.818 0.000 -0.233 -0.233
pm1|t4 0.574 0.025 22.531 0.000 0.574 0.574
pm2|t1 -1.808 0.043 -41.680 0.000 -1.808 -1.808
pm2|t2 -1.242 0.029 -42.880 0.000 -1.242 -1.242
pm2|t3 -0.646 0.026 -25.201 0.000 -0.646 -0.646
pm2|t4 0.316 0.024 13.235 0.000 0.316 0.316
pm3|t1 -1.506 0.033 -45.747 0.000 -1.506 -1.506
pm3|t2 -0.655 0.025 -25.836 0.000 -0.655 -0.655
pm3|t3 -0.154 0.024 -6.544 0.000 -0.154 -0.154
pm3|t4 0.798 0.027 30.000 0.000 0.798 0.798
pm4|t1 -1.617 0.040 -40.675 0.000 -1.617 -1.617
pm4|t2 -0.876 0.028 -30.917 0.000 -0.876 -0.876
pm4|t3 -0.291 0.024 -12.140 0.000 -0.291 -0.291
pm4|t4 0.506 0.025 20.473 0.000 0.506 0.506
pm5|t1 -0.879 0.030 -29.576 0.000 -0.879 -0.879
pm5|t2 -0.132 0.024 -5.565 0.000 -0.132 -0.132
pm5|t3 0.476 0.024 19.735 0.000 0.476 0.476
pm5|t4 1.192 0.031 38.428 0.000 1.192 1.192
pm6|t1 -0.278 0.024 -11.571 0.000 -0.278 -0.278
pm6|t2 0.352 0.024 14.542 0.000 0.352 0.352
pm6|t3 0.794 0.026 30.489 0.000 0.794 0.794
pm6|t4 1.423 0.036 39.579 0.000 1.423 1.423
pm7|t1 -1.308 0.031 -42.155 0.000 -1.308 -1.308
pm7|t2 -0.558 0.026 -21.745 0.000 -0.558 -0.558
pm7|t3 0.089 0.023 3.772 0.000 0.089 0.089
pm7|t4 1.061 0.029 36.948 0.000 1.061 1.061
Variances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
.pm1 0.401 0.401 0.401
.pm2 0.819 0.819 0.819
.pm3 0.519 0.519 0.519
.pm4 0.413 0.413 0.413
.pm5 0.585 0.585 0.585
.pm6 0.939 0.939 0.939
.pm7 0.857 0.857 0.857
Popul 1.000 1.000 1.000
mod_indices_m2 <- modificationIndices(fit.m2, minimum.value = 10, sort = TRUE)
cat("Рекомендовані модифікації для моделі m2:\n")Рекомендовані модифікації для моделі m2:
mod_indices_m2 lhs op rhs mi epc sepc.lv sepc.all sepc.nox
70 pm2 ~~ pm7 19.245 -0.082 -0.082 -0.098 -0.098
68 pm2 ~~ pm5 17.990 0.090 0.090 0.129 0.129
71 pm3 ~~ pm4 16.688 0.089 0.089 0.193 0.193
63 pm1 ~~ pm5 12.332 0.076 0.076 0.158 0.158
reliability_m2 <- round(semTools::reliability(fit.m2),2)
# Виведення таблиці
kable(reliability_m2, format = "html", caption = "Оцінка надійності шкали") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))| Popul | |
|---|---|
| alpha | 0.73 |
| alpha.ord | 0.76 |
| omega | 0.73 |
| omega2 | 0.73 |
| omega3 | 0.73 |
| avevar | 0.35 |
cat ("Категориальна омега")Категориальна омега
round(compRelSEM(fit.m2),2)Popul
0.73
# Зважені дані
m3 <- "Popul_l =~ pm1 + pm2 + pm3 + pm4 + pm5
Popul_2 =~ pm6 + pm7"
fit.m3 <- cfa (m3, data = df, ordered=T, std.lv = TRUE,
sampling.weights = "wt_UA4101", se = "robust")
fit.measures.m3 <- fitMeasures(fit.m3, c("chisq.scaled", "df.scaled", "pvalue.scaled", "rmsea.robust", "rmsea.ci.lower.robust", "rmsea.ci.upper.robust", "cfi.robust", "srmr", "wrmr", "pnfi.scaled"))
tabl3<-kable(round(fit.measures.m3, digits = 3), col.names = "Показники", format = "markdown") %>% kable_styling(bootstrap_options = "striped", full_width = F)
tabl3| Показники | |
|---|---|
| chisq.scaled | 125.461 |
| df.scaled | 13.000 |
| pvalue.scaled | 0.000 |
| rmsea.robust | 0.061 |
| rmsea.ci.lower.robust | 0.051 |
| rmsea.ci.upper.robust | 0.070 |
| cfi.robust | 0.971 |
| srmr | 0.028 |
| wrmr | 1.224 |
| pnfi.scaled | 0.610 |
pl_fit.measures.m3<-nice_lavaanPlot(
model = fit.m3,
coefs = TRUE,
stand = TRUE,
covs = TRUE,
stars = c("coefs", "covs", "latent")
)
pl_fit.measures.m3# Виведення результатів
summary(fit.m3, fit.measures = TRUE, standardized = TRUE)lavaan 0.6-19 ended normally after 18 iterations
Estimator DWLS
Optimization method NLMINB
Number of model parameters 36
Number of observations 4101
Sampling weights variable wt_UA4101
Model Test User Model:
Standard Scaled
Test Statistic 73.401 125.461
Degrees of freedom 13 13
P-value (Chi-square) 0.000 0.000
Scaling correction factor 0.588
Shift parameter 0.630
simple second-order correction
Model Test Baseline Model:
Test statistic 11694.846 8371.399
Degrees of freedom 21 21
P-value 0.000 0.000
Scaling correction factor 1.398
User Model versus Baseline Model:
Comparative Fit Index (CFI) 0.995 0.987
Tucker-Lewis Index (TLI) 0.992 0.978
Robust Comparative Fit Index (CFI) 0.971
Robust Tucker-Lewis Index (TLI) 0.954
Root Mean Square Error of Approximation:
RMSEA 0.034 0.046
90 Percent confidence interval - lower 0.026 0.039
90 Percent confidence interval - upper 0.041 0.053
P-value H_0: RMSEA <= 0.050 1.000 0.808
P-value H_0: RMSEA >= 0.080 0.000 0.000
Robust RMSEA 0.061
90 Percent confidence interval - lower 0.051
90 Percent confidence interval - upper 0.070
P-value H_0: Robust RMSEA <= 0.050 0.030
P-value H_0: Robust RMSEA >= 0.080 0.000
Standardized Root Mean Square Residual:
SRMR 0.028 0.028
Parameter Estimates:
Parameterization Delta
Standard errors Robust.sem
Information Expected
Information saturated (h1) model Unstructured
Latent Variables:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
Popul_l =~
pm1 0.774 0.010 75.094 0.000 0.774 0.774
pm2 0.425 0.017 24.816 0.000 0.425 0.425
pm3 0.693 0.013 54.597 0.000 0.693 0.693
pm4 0.766 0.011 70.407 0.000 0.766 0.766
pm5 0.644 0.013 48.374 0.000 0.644 0.644
Popul_2 =~
pm6 0.357 0.025 14.291 0.000 0.357 0.357
pm7 0.548 0.032 17.300 0.000 0.548 0.548
Covariances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
Popul_l ~~
Popul_2 0.692 0.039 17.858 0.000 0.692 0.692
Thresholds:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
pm1|t1 -1.634 0.036 -45.336 0.000 -1.634 -1.634
pm1|t2 -0.754 0.026 -28.910 0.000 -0.754 -0.754
pm1|t3 -0.233 0.024 -9.818 0.000 -0.233 -0.233
pm1|t4 0.574 0.025 22.531 0.000 0.574 0.574
pm2|t1 -1.808 0.043 -41.680 0.000 -1.808 -1.808
pm2|t2 -1.242 0.029 -42.880 0.000 -1.242 -1.242
pm2|t3 -0.646 0.026 -25.201 0.000 -0.646 -0.646
pm2|t4 0.316 0.024 13.235 0.000 0.316 0.316
pm3|t1 -1.506 0.033 -45.747 0.000 -1.506 -1.506
pm3|t2 -0.655 0.025 -25.836 0.000 -0.655 -0.655
pm3|t3 -0.154 0.024 -6.544 0.000 -0.154 -0.154
pm3|t4 0.798 0.027 30.000 0.000 0.798 0.798
pm4|t1 -1.617 0.040 -40.675 0.000 -1.617 -1.617
pm4|t2 -0.876 0.028 -30.917 0.000 -0.876 -0.876
pm4|t3 -0.291 0.024 -12.140 0.000 -0.291 -0.291
pm4|t4 0.506 0.025 20.473 0.000 0.506 0.506
pm5|t1 -0.879 0.030 -29.576 0.000 -0.879 -0.879
pm5|t2 -0.132 0.024 -5.565 0.000 -0.132 -0.132
pm5|t3 0.476 0.024 19.735 0.000 0.476 0.476
pm5|t4 1.192 0.031 38.428 0.000 1.192 1.192
pm6|t1 -0.278 0.024 -11.571 0.000 -0.278 -0.278
pm6|t2 0.352 0.024 14.542 0.000 0.352 0.352
pm6|t3 0.794 0.026 30.489 0.000 0.794 0.794
pm6|t4 1.423 0.036 39.579 0.000 1.423 1.423
pm7|t1 -1.308 0.031 -42.155 0.000 -1.308 -1.308
pm7|t2 -0.558 0.026 -21.745 0.000 -0.558 -0.558
pm7|t3 0.089 0.023 3.772 0.000 0.089 0.089
pm7|t4 1.061 0.029 36.948 0.000 1.061 1.061
Variances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
.pm1 0.401 0.401 0.401
.pm2 0.819 0.819 0.819
.pm3 0.519 0.519 0.519
.pm4 0.413 0.413 0.413
.pm5 0.585 0.585 0.585
.pm6 0.873 0.873 0.873
.pm7 0.700 0.700 0.700
Popul_l 1.000 1.000 1.000
Popul_2 1.000 1.000 1.000
mod_indices_m3 <- modificationIndices(fit.m3, minimum.value = 10, sort = TRUE)
cat("Рекомендовані модифікації для моделі m3:\n")Рекомендовані модифікації для моделі m3:
mod_indices_m3 lhs op rhs mi epc sepc.lv sepc.all sepc.nox
79 pm2 ~~ pm7 19.245 -0.082 -0.082 -0.109 -0.109
77 pm2 ~~ pm5 17.990 0.090 0.090 0.129 0.129
80 pm3 ~~ pm4 16.688 0.089 0.089 0.193 0.193
72 pm1 ~~ pm5 12.332 0.076 0.076 0.158 0.158
# Показники відповідності моделі
reliability_m3 <- round(semTools::reliability(fit.m3),2)For constructs with categorical indicators, Zumbo et al.`s (2007) "ordinal alpha" is calculated in addition to the standard alpha, which treats ordinal variables as numeric. See Chalmers (2018) for a critique of "alpha.ord" and the response by Zumbo & Kroc (2019). Likewise, average variance extracted is calculated from polychoric (polyserial) not Pearson correlations.
# Виведення таблиці
kable(reliability_m3, format = "html", caption = "Оцінка надійності шкал") %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))| Popul_l | Popul_2 | |
|---|---|---|
| alpha | 0.76 | 0.30 |
| alpha.ord | 0.79 | 0.33 |
| omega | 0.77 | 0.30 |
| omega2 | 0.77 | 0.30 |
| omega3 | 0.78 | 0.30 |
| avevar | 0.45 | 0.21 |
cat ("Категориальна омега")Категориальна омега
round(compRelSEM(fit.m3),2)Popul_l Popul_2
0.78 0.30
# Зважені дані
tabl1 <- round(fit.measures.m1, digits = 3)
tabl2 <- round(fit.measures.m2, digits = 3)
tabl3 <- round(fit.measures.m3, digits = 3)
combined_df <- data.frame( "Однофакторна" = tabl1,
"Модифікована однофакторна" = tabl2,
"Двофакторна" = tabl3, check.names = FALSE )
transposed_df <- t(combined_df) %>% as.data.frame()
final_table <- kable(transposed_df, format = "markdown", caption = "Порівняння показників узгодженості моделей", align = "c") %>% kable_styling(bootstrap_options = "striped", full_width = FALSE)
final_table| chisq.scaled | df.scaled | pvalue.scaled | rmsea.robust | rmsea.ci.lower.robust | rmsea.ci.upper.robust | cfi.robust | srmr | wrmr | pnfi.scaled | |
|---|---|---|---|---|---|---|---|---|---|---|
| Однофакторна | 163.747 | 14 | 0 | 0.066 | 0.057 | 0.075 | 0.964 | 0.034 | 1.422 | 0.654 |
| Модифікована однофакторна | 125.461 | 13 | 0 | 0.061 | 0.051 | 0.070 | 0.971 | 0.028 | 1.224 | 0.610 |
| Двофакторна | 125.461 | 13 | 0 | 0.061 | 0.051 | 0.070 | 0.971 | 0.028 | 1.224 | 0.610 |
Аналіз інваріантності вимірювання продемонстрував відмінну відповідність даних для всіх протестованих моделей. Конфігураційна модель, що є базовою для оцінки інваріантності, показала високі значення масштабованого CFI (0.983) та прийнятний масштабованого RMSEA (0.062). Послідовне введення обмежень для перевірки метричної, скалярної інваріантності та інваріантності середніх значень призвело до покращення відповідності моделей за індексом RMSEA. Так, значення RMSEA послідовно зменшувалися від 0.062 для конфігураційної моделі до 0.040 для моделі інваріантності середніх значень, що є нетиповим явищем. При цьому, значення масштабованого CFI залишалися стабільно високими для всіх моделей, варіюючись в межах 0.982-0.987. Хоча спостерігалося незначне зниження масштабованого CFI при переході від метричної моделі до скалярної (0.005), та від скалярної до моделі інваріантності середніх значень (0.004), ці зміни є мізерними та не свідчать про суттєве погіршення відповідності. Дельти CFI для всіх послідовних моделей залишалися значно нижчими за загальноприйнятий поріг в 0.01.
Відповідно до прийнятих критеріїв, всі зміни індексів знаходяться в межах допустимих значень. Дані підтримують як метричну, так і скалярну інваріантність вимірювальної моделі, що дозволяє коректно порівнювати як кореляції, так і латентні середні між групами.
# Незважені дані
measurementInvarianceCat(model = m2,
data = df,
estimator = "WLSMV",
ordered = T,
group = "sex"
)Warning in measurementInvarianceCat(model = m2, data = df, estimator = "WLSMV",
: The measurementInvarianceCat function is deprecated, and it will cease to be
included in future versions of semTools. See help('semTools-deprecated) for
details.
Measurement invariance models:
Model 1 : fit.configural
Model 2 : fit.loadings
Model 3 : fit.thresholds
Model 4 : fit.means
Scaled Chi-Squared Difference Test (method = "satorra.2000")
lavaan->lavTestLRT():
lavaan NOTE: The "Chisq" column contains standard test statistics, not the
robust test that should be reported per model. A robust difference test is
a function of two standard (not robust) statistics.
Df AIC BIC Chisq Chisq diff Df diff Pr(>Chisq)
fit.configural 26 128.14
fit.loadings 32 131.60 3.275 6 0.77366
fit.thresholds 52 229.30 102.609 20 4.286e-13 ***
fit.means 53 245.15 2.822 1 0.09298 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Fit measures:
cfi.scaled rmsea.scaled cfi.scaled.delta rmsea.scaled.delta
fit.configural 0.983 0.062 NA NA
fit.loadings 0.987 0.049 0.004 0.013
fit.thresholds 0.982 0.046 0.005 0.003
fit.means 0.986 0.040 0.004 0.006
cat("У таблиці подані абсолютні значення зміни показників допасування")У таблиці подані абсолютні значення зміни показників допасування
Аналіз факторних навантажень показав, що пункти pm1, pm3 та pm4 мають високі значення як за показником F1, так і h², що свідчить про їх суттєвий внесок у прогнозну здатність моделі. У той же час, значно нижчі результати для pm2, pm6 та pm7 вказують на необхідність подальшої оптимізації або переосмислення їх ролі в структурі моделі. Пояснена диспрерсія на рівні 38.9% показує, що модель потребує удосконалення.
Попри значущий результат тесту M2 (p = 0), більшості інших індексів, зокрема RMSEA (0,053 з 95% довірчим інтервалом 0,046–0,060), SRMSR (0,0437), TLI (0,970) та CFI (0,980), свідчать про добру відповідність моделі даним. Це дозволяє зробити висновок, що модель стабільно інтерпретує структуру даних.
Аналіз показників якості пунктів у GRM-моделі демонструє, що, незважаючи на статистично значущі результати тестів S_X2 (що обумовлено чутливістю критерію до великого обсягу даних), значення RMSEA для кожного пункту є дуже низькими (менше 0.03), що свідчить про практично безпомилкове узгодження моделі з даними. Таким чином, отримані індекси вказують на прийнятний рівень відповідності окремих пунктів моделі, що забезпечує її належну валідність і стабільність оцінок.
Отримані параметри пунктів у GRM показують, що не всі пункти рівномірно сприяють вимірюванню латентної змінної. Пункти pm1, pm3 та pm4 демонструють високі значення дискримінації та логічно зростаючу послідовність порогів, що забезпечує надійну диференціацію респондентів за рівнями досліджуваного конструкту. У противагу, пункти pm2 та pm7 мають нижчу дискримінацію, що зменшує їх здатність розрізняти суб’єктів. Особливо примітним є пункт pm6, який характеризується дуже низьким значенням дискримінації поряд із екстремально високими пороговими значеннями, що вказує на його обмежену інформативність для широкої популяції.
На представлених графіках відображено характеристичні криві (trace lines) для семи пунктів (pm1-pm7) шкали. Більшість пунктів (pm1, pm3, pm4, pm5) демонструють чітку диференціацію між категоріями відповідей, що відображається у виразних, добре розділених кривих з піками в різних точках континууму вимірюваної риси (θ). Це свідчить про високу дискримінативну здатність цих пунктів.
Особливу увагу привертають пункти pm2, pm6 та pm7, які показують дещо відмінні патерни. У них спостерігається менш чітка диференціація між категоріями відповідей, що може вказувати на певні проблеми з розрізнювальною здатністю цих пунктів. Зокрема, у пункті pm6 криві є більш пласкими та перекриваються значною мірою, що може свідчити про меншу ефективність цього пункту у вимірюванні досліджуваного конструкту.
Графіки інформації пунктів (Item Information Curves) демонструють варіативність у внеску окремих пунктів у загальну інформацію тесту. Видно, що пункти pm1, pm3, pm4 та pm5 забезпечують найбільшу інформацію у середньому діапазоні латентної ознаки (𝜃), що свідчить про їхню ефективність у диференціації респондентів із середніми значеннями 𝜃. Водночас, пункти pm2, pm6 і pm7 надають обмежену інформацію.
Графік тестової інформаційної функції (Test Information Function, TIF) показує, наскільки добре шкала вимірює латентну змінну 𝜃 у різних її значеннях. Шкала добре працює для осіб із середніми значеннями 𝜃,але слабко вимірює дуже низькі та дуже високі рівні латентної ознаки. Це типова ситуація для GRM, яка ефективна для середніх рівнів латентної змінної, але може потребувати додаткових пунктів для кращого охоплення крайніх значень.
# Побудова однофакторної моделі градуйованих відповідей
mod_mirt <- mirt(df[, 1:7], 1, itemtype = "graded")
Iteration: 1, Log-Lik: -40629.641, Max-Change: 0.63932
Iteration: 2, Log-Lik: -40037.828, Max-Change: 0.51505
Iteration: 3, Log-Lik: -39770.129, Max-Change: 0.41754
Iteration: 4, Log-Lik: -39673.305, Max-Change: 0.10940
Iteration: 5, Log-Lik: -39652.477, Max-Change: 0.08157
Iteration: 6, Log-Lik: -39646.052, Max-Change: 0.07358
Iteration: 7, Log-Lik: -39642.772, Max-Change: 0.05080
Iteration: 8, Log-Lik: -39640.924, Max-Change: 0.02924
Iteration: 9, Log-Lik: -39640.334, Max-Change: 0.01396
Iteration: 10, Log-Lik: -39640.142, Max-Change: 0.01101
Iteration: 11, Log-Lik: -39639.978, Max-Change: 0.00627
Iteration: 12, Log-Lik: -39639.916, Max-Change: 0.00436
Iteration: 13, Log-Lik: -39639.864, Max-Change: 0.00307
Iteration: 14, Log-Lik: -39639.853, Max-Change: 0.00142
Iteration: 15, Log-Lik: -39639.850, Max-Change: 0.00122
Iteration: 16, Log-Lik: -39639.847, Max-Change: 0.00026
Iteration: 17, Log-Lik: -39639.846, Max-Change: 0.00048
Iteration: 18, Log-Lik: -39639.846, Max-Change: 0.00017
Iteration: 19, Log-Lik: -39639.846, Max-Change: 0.00014
Iteration: 20, Log-Lik: -39639.846, Max-Change: 0.00025
Iteration: 21, Log-Lik: -39639.845, Max-Change: 0.00012
Iteration: 22, Log-Lik: -39639.845, Max-Change: 0.00010
Iteration: 23, Log-Lik: -39639.845, Max-Change: 0.00021
Iteration: 24, Log-Lik: -39639.845, Max-Change: 0.00034
Iteration: 25, Log-Lik: -39639.845, Max-Change: 0.00017
Iteration: 26, Log-Lik: -39639.845, Max-Change: 0.00029
Iteration: 27, Log-Lik: -39639.845, Max-Change: 0.00012
Iteration: 28, Log-Lik: -39639.845, Max-Change: 0.00009
# Загальна інформація про модель
cat("Загальна інформація про модель IRT\n\n") Загальна інформація про модель IRT
summary(mod_mirt) F1 h2
pm1 0.810 0.6560
pm2 0.458 0.2094
pm3 0.735 0.5409
pm4 0.801 0.6408
pm5 0.676 0.4569
pm6 0.242 0.0587
pm7 0.398 0.1583
SS loadings: 2.721
Proportion Var: 0.389
Factor correlations:
F1
F1 1
# M2 тест
cat("\nM2 тест для оцінки адекватності моделі\n\n")
M2 тест для оцінки адекватності моделі
M2_results <- M2(mod_mirt, type = "C2", calcNULL = FALSE)
print(M2_results) M2 df p RMSEA RMSEA_5 RMSEA_95 SRMSR TLI
stats 172.5485 14 0 0.05255635 0.04569583 0.05970546 0.04368452 0.970347
CFI
stats 0.9802313
# Показники якості пунктів (Item Fit)
cat("\nПоказники якості пунктів (Item Fit)\n\n")
Показники якості пунктів (Item Fit)
fit_stats <- itemfit(mod_mirt)
# Створення таблиці для Item Fit статистики
kable(fit_stats, caption = "Показники якості пунктів (Item Fit)") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = FALSE)| item | S_X2 | df.S_X2 | RMSEA.S_X2 | p.S_X2 |
|---|---|---|---|---|
| pm1 | 135.03669 | 60 | 0.0174650 | 0.0000001 |
| pm2 | 118.61924 | 72 | 0.0125668 | 0.0004500 |
| pm3 | 126.86459 | 64 | 0.0154782 | 0.0000049 |
| pm4 | 96.12257 | 62 | 0.0115860 | 0.0035595 |
| pm5 | 147.99399 | 64 | 0.0178913 | 0.0000000 |
| pm6 | 325.29047 | 73 | 0.0290333 | 0.0000000 |
| pm7 | 171.89117 | 74 | 0.0179624 | 0.0000000 |
# Параметри пунктів у форматі IRT
cat("\nПараметри пунктів у форматі IRT\n\n")
Параметри пунктів у форматі IRT
item_params <- coef(mod_mirt, IRTpars = TRUE, simplify = TRUE)
# Створення таблиці для параметрів пунктів
item_params_df <- as.data.frame(item_params$items)
kable(item_params_df, caption = "Параметри пунктів IRT") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = FALSE)| a | b1 | b2 | b3 | b4 | |
|---|---|---|---|---|---|
| pm1 | 2.3504788 | -2.001082 | -0.8818753 | -0.2472264 | 0.7465805 |
| pm2 | 0.8758385 | -4.210972 | -2.6334530 | -1.3305359 | 0.7279639 |
| pm3 | 1.8472731 | -2.029795 | -0.8745003 | -0.2025273 | 1.0928575 |
| pm4 | 2.2734685 | -2.030390 | -1.0636836 | -0.3377831 | 0.6599490 |
| pm5 | 1.5609642 | -1.330469 | -0.2039681 | 0.6579840 | 1.7902998 |
| pm6 | 0.4251403 | -1.116818 | 1.3816069 | 3.1649826 | 6.1516919 |
| pm7 | 0.7381592 | -3.363936 | -1.3751441 | 0.2083219 | 2.6682635 |
Графіки Trace для пунктів На рисунку представлені криві ймовірностей відповідей для пунктів тесту, оцінених за допомогою моделі градуйованої відповіді (GRM) у рамках теорії відповідей на тестові завдання (IRT). Вісь абсцис (θ) відображає рівень латентної риси респондентів, а вісь ординат (P(θ)) – ймовірність вибору певної категорії відповіді.
Аналіз отриманих кривих дозволяє оцінити, наскільки добре кожен пункт диференціює респондентів із різними рівнями θ. Зокрема, пункти pm1, pm3, pm4 та pm5 демонструють чітке розділення відповідей за рівнем латентної риси, що свідчить про їх високу диференційну здатність. Це проявляється у крутому нахилі кривих переходу між категоріями відповідей та їх чітко виражених піках.
Натомість пункт pm6 має менш чітко розмежовані криві, що свідчить про слабшу розрізнювальну здатність цього пункту. Відповідно, він менш ефективно диференціює респондентів за рівнем θ, оскільки ймовірності вибору різних категорій розподілені більш рівномірно і не мають виразних переходів. Подібна ситуація спостерігається і для пункту pm7, де спостерігається значне перекриття між кривими відповідей.
Таким чином, результати моделі GRM дозволяють не лише оцінити відповідність пунктів тесту до вимог IRT, але й ідентифікувати ті, що мають високу диференційну здатність, а також виявити менш ефективні пункти, що можуть потребувати перегляду або корекції у майбутніх дослідженнях.
# Графіки Trace для пунктів
cat("\nГрафік Trace для пунктів\n\n")
Графік Trace для пунктів
plot(
mod_mirt,
type = "trace",
which.item = 1:7,
facet_items = TRUE,
as.table = TRUE,
auto.key = list(
points = FALSE,
lines = TRUE,
columns = 4,
space = "top",
cex = 0.8
),
main = "Графіки Trace для пунктів"
)Item Information Curves Цей рисунок показує інформаційні криві для кожного пункту (pm1-pm7). Вісь X (θ) знову відображає рівень латентної риси, а вісь Y (I(θ)) показує, скільки інформації дає кожен пункт на різних рівнях θ. Вищі значення на кривій означають, що пункт надає більше інформації (більш точно вимірює) на відповідному рівні здібності. На рисунку Item Information Curves видно, які пункти найкраще диференціюють латентну рису.
Найінформативніші пункти. Пункти pm1, pm3, pm4 та pm5 мають чітко виражені піки, що свідчить про їх високу диференційну здатність у певному діапазоні значень 𝜃.
Зокрема, pm1 має найвищий пік, що означає, що він забезпечує найбільше інформації про латентну рису в межах значень 𝜃 від приблизно −2 до 2.
Пункти pm3, pm4 та pm5 також ефективні, хоча їх інформація розподілена дещо інакше, що може вказувати на різний рівень складності або дискримінації. Менш інформативні пункти pm6 та pm7 мають майже плоскі криві, що вказує на їхню низьку ефективність у розрізненні респондентів за рівнем латентної риси. pm2 також має низьку інформацію, що означає, що він погано диференціює осіб за 𝜃.
Діапазон вимірювання.
Кожен пункт найкраще працює у певному діапазоні значень 𝜃. Наприклад, pm1, pm3 і pm4 є найбільш ефективними у межах −3 до 2, що означає, що тест краще працює для осіб із середнім та трохи нижчим рівнем латентної риси.
Пункти pm1, pm3, pm4 і pm5 є найбільш корисними для вимірювання латентної риси.
Пункти pm6 і pm7 слід переглянути, оскільки вони майже не дають інформації і можуть бути виключені або переформульовані.
Шкала найбільш ефективно вимірює респондентів у діапазоні від −3 до 2, а отже, може мати обмежену точність для осіб із дуже високими значеннями 𝜃.
# Графіки інформації пунктів (Item Information Curves)
plot(mod_mirt, type = "infotrace", which.items = 1:7, main = "Item Information Curves")Test Information Function
Цей рисунок представляє загальну інформаційну функцію тесту/шкали (синя суцільна лінія, шкала ліворуч) та стандартну похибку вимірювання SE(θ) (червона пунктирна лінія, шкала праворуч). Інформаційна функція показує, наскільки точно тест/шкали вимірює латентну рису на різних рівнях θ. Стандартна похибка вимірювання є зворотньою до квадратного кореня з інформації і показує рівень помилки на різних рівнях θ.
Найбільша інформація тесту
Пік функції інформації (синя лінія) знаходиться в межах значень 𝜃від приблизно −2 до 2. Це означає, що тест найбільш точно вимірює латентну рису в цьому діапазоні. Максимальне значення інформації тесту перевищує 5, що свідчить про високу точність у цій області.
Границі вимірюваного діапазону
На краях діапазону (𝜃<−4 та 𝜃>4) інформація тесту різко падає, тобто шкала менш ефективна для осіб із дуже низьким або дуже високим рівнем латентної риси. Стандартна похибка (SE) та її зв’язок з інформацією
Червона пунктирна лінія (SE) має мінімальне значення в діапазоні 𝜃∈[−2, 2], що вказує на найбільшу точність вимірювання в цій області.
На краях графіка SE стрімко зростає, що означає велику невизначеність оцінювання для осіб із крайніми значеннями 𝜃. Змістовні висновки
Шкала добре розрізняє респондентів із середнім рівнем латентної риси, але менш ефективний для дуже низьких або високих значень.
Якщо метою тесту є оцінка людей із крайніми рівнями , його потрібно доповнити іншими пунктами, які краще диференціюють саме ці групи.
Висока інформація в центральному діапазоні означає, що шкала є надійною для більшості респондентів, що може бути корисним у практичному застосуванні.
# Тест інформаційної функції
plot(mod_mirt, type = "infoSE", main = "Test Information Function")Перевірка інваріантності GRM за статтю
# Конфігураційна інваріантність (базова модель без обмежень інваріантності)
model_configural <- multipleGroup(df[, 1:7], 1, itemtype = "graded", group = df$sex)
Iteration: 1, Log-Lik: -40629.641, Max-Change: 0.83900
Iteration: 2, Log-Lik: -39862.988, Max-Change: 0.42427
Iteration: 3, Log-Lik: -39650.551, Max-Change: 0.28906
Iteration: 4, Log-Lik: -39568.896, Max-Change: 0.20747
Iteration: 5, Log-Lik: -39537.309, Max-Change: 0.11189
Iteration: 6, Log-Lik: -39527.213, Max-Change: 0.06157
Iteration: 7, Log-Lik: -39524.254, Max-Change: 0.03890
Iteration: 8, Log-Lik: -39523.117, Max-Change: 0.02797
Iteration: 9, Log-Lik: -39522.465, Max-Change: 0.01722
Iteration: 10, Log-Lik: -39522.159, Max-Change: 0.01149
Iteration: 11, Log-Lik: -39522.030, Max-Change: 0.00785
Iteration: 12, Log-Lik: -39521.968, Max-Change: 0.00534
Iteration: 13, Log-Lik: -39521.919, Max-Change: 0.00313
Iteration: 14, Log-Lik: -39521.918, Max-Change: 0.00228
Iteration: 15, Log-Lik: -39521.910, Max-Change: 0.00104
Iteration: 16, Log-Lik: -39521.909, Max-Change: 0.00042
Iteration: 17, Log-Lik: -39521.909, Max-Change: 0.00056
Iteration: 18, Log-Lik: -39521.908, Max-Change: 0.00022
Iteration: 19, Log-Lik: -39521.908, Max-Change: 0.00019
Iteration: 20, Log-Lik: -39521.908, Max-Change: 0.00042
Iteration: 21, Log-Lik: -39521.908, Max-Change: 0.00071
Iteration: 22, Log-Lik: -39521.908, Max-Change: 0.00019
Iteration: 23, Log-Lik: -39521.907, Max-Change: 0.00042
Iteration: 24, Log-Lik: -39521.907, Max-Change: 0.00014
Iteration: 25, Log-Lik: -39521.907, Max-Change: 0.00061
Iteration: 26, Log-Lik: -39521.907, Max-Change: 0.00023
Iteration: 27, Log-Lik: -39521.907, Max-Change: 0.00052
Iteration: 28, Log-Lik: -39521.907, Max-Change: 0.00032
Iteration: 29, Log-Lik: -39521.907, Max-Change: 0.00014
Iteration: 30, Log-Lik: -39521.906, Max-Change: 0.00029
Iteration: 31, Log-Lik: -39521.906, Max-Change: 0.00018
Iteration: 32, Log-Lik: -39521.906, Max-Change: 0.00040
Iteration: 33, Log-Lik: -39521.906, Max-Change: 0.00014
Iteration: 34, Log-Lik: -39521.906, Max-Change: 0.00012
Iteration: 35, Log-Lik: -39521.906, Max-Change: 0.00025
Iteration: 36, Log-Lik: -39521.906, Max-Change: 0.00049
Iteration: 37, Log-Lik: -39521.906, Max-Change: 0.00012
Iteration: 38, Log-Lik: -39521.906, Max-Change: 0.00025
Iteration: 39, Log-Lik: -39521.906, Max-Change: 0.00010
# Метрична інваріантність (обмежуємо нахили (дискримінацію) елементів бути рівними між групами)
model_metric <- multipleGroup(df[, 1:7], 1, itemtype = "graded", group = df$sex,
invariance = c('slopes'))
Iteration: 1, Log-Lik: -40629.641, Max-Change: 0.70506
Iteration: 2, Log-Lik: -39873.987, Max-Change: 0.63614
Iteration: 3, Log-Lik: -39622.624, Max-Change: 0.31596
Iteration: 4, Log-Lik: -39553.590, Max-Change: 0.18040
Iteration: 5, Log-Lik: -39541.356, Max-Change: 0.16088
Iteration: 6, Log-Lik: -39535.311, Max-Change: 0.05927
Iteration: 7, Log-Lik: -39532.876, Max-Change: 0.05245
Iteration: 8, Log-Lik: -39532.074, Max-Change: 0.01816
Iteration: 9, Log-Lik: -39531.694, Max-Change: 0.00762
Iteration: 10, Log-Lik: -39531.616, Max-Change: 0.00671
Iteration: 11, Log-Lik: -39531.547, Max-Change: 0.00561
Iteration: 12, Log-Lik: -39531.491, Max-Change: 0.00310
Iteration: 13, Log-Lik: -39531.434, Max-Change: 0.00312
Iteration: 14, Log-Lik: -39531.422, Max-Change: 0.00121
Iteration: 15, Log-Lik: -39531.417, Max-Change: 0.00160
Iteration: 16, Log-Lik: -39531.410, Max-Change: 0.00093
Iteration: 17, Log-Lik: -39531.407, Max-Change: 0.00022
Iteration: 18, Log-Lik: -39531.406, Max-Change: 0.00049
Iteration: 19, Log-Lik: -39531.406, Max-Change: 0.00028
Iteration: 20, Log-Lik: -39531.406, Max-Change: 0.00057
Iteration: 21, Log-Lik: -39531.406, Max-Change: 0.00023
Iteration: 22, Log-Lik: -39531.406, Max-Change: 0.00019
Iteration: 23, Log-Lik: -39531.406, Max-Change: 0.00042
Iteration: 24, Log-Lik: -39531.405, Max-Change: 0.00015
Iteration: 25, Log-Lik: -39531.405, Max-Change: 0.00062
Iteration: 26, Log-Lik: -39531.405, Max-Change: 0.00025
Iteration: 27, Log-Lik: -39531.405, Max-Change: 0.00053
Iteration: 28, Log-Lik: -39531.405, Max-Change: 0.00034
Iteration: 29, Log-Lik: -39531.405, Max-Change: 0.00014
Iteration: 30, Log-Lik: -39531.405, Max-Change: 0.00029
Iteration: 31, Log-Lik: -39531.404, Max-Change: 0.00019
Iteration: 32, Log-Lik: -39531.404, Max-Change: 0.00040
Iteration: 33, Log-Lik: -39531.404, Max-Change: 0.00014
Iteration: 34, Log-Lik: -39531.404, Max-Change: 0.00012
Iteration: 35, Log-Lik: -39531.404, Max-Change: 0.00025
Iteration: 36, Log-Lik: -39531.404, Max-Change: 0.00051
Iteration: 37, Log-Lik: -39531.404, Max-Change: 0.00013
Iteration: 38, Log-Lik: -39531.404, Max-Change: 0.00028
Iteration: 39, Log-Lik: -39531.404, Max-Change: 0.00011
Iteration: 40, Log-Lik: -39531.404, Max-Change: 0.00048
Iteration: 41, Log-Lik: -39531.404, Max-Change: 0.00017
Iteration: 42, Log-Lik: -39531.403, Max-Change: 0.00036
Iteration: 43, Log-Lik: -39531.404, Max-Change: 0.00025
Iteration: 44, Log-Lik: -39531.403, Max-Change: 0.00011
Iteration: 45, Log-Lik: -39531.403, Max-Change: 0.00023
Iteration: 46, Log-Lik: -39531.403, Max-Change: 0.00013
Iteration: 47, Log-Lik: -39531.403, Max-Change: 0.00027
Iteration: 48, Log-Lik: -39531.403, Max-Change: 0.00011
Iteration: 49, Log-Lik: -39531.403, Max-Change: 0.00009
# Скалярна інваріантність (обмежуємо нахили та перехвати (складність) елементів бути рівними між групами)
model_scalar <- multipleGroup(df[, 1:7], 1, itemtype = "graded", group = df$sex,
invariance = c('slopes', 'intercepts'))
Iteration: 1, Log-Lik: -40629.641, Max-Change: 0.63932
Iteration: 2, Log-Lik: -40037.828, Max-Change: 0.51505
Iteration: 3, Log-Lik: -39770.129, Max-Change: 0.41754
Iteration: 4, Log-Lik: -39673.305, Max-Change: 0.10940
Iteration: 5, Log-Lik: -39652.477, Max-Change: 0.08157
Iteration: 6, Log-Lik: -39646.052, Max-Change: 0.07358
Iteration: 7, Log-Lik: -39642.772, Max-Change: 0.05080
Iteration: 8, Log-Lik: -39640.924, Max-Change: 0.02924
Iteration: 9, Log-Lik: -39640.334, Max-Change: 0.01396
Iteration: 10, Log-Lik: -39640.142, Max-Change: 0.01101
Iteration: 11, Log-Lik: -39639.978, Max-Change: 0.00627
Iteration: 12, Log-Lik: -39639.916, Max-Change: 0.00436
Iteration: 13, Log-Lik: -39639.864, Max-Change: 0.00307
Iteration: 14, Log-Lik: -39639.853, Max-Change: 0.00142
Iteration: 15, Log-Lik: -39639.850, Max-Change: 0.00122
Iteration: 16, Log-Lik: -39639.847, Max-Change: 0.00026
Iteration: 17, Log-Lik: -39639.846, Max-Change: 0.00048
Iteration: 18, Log-Lik: -39639.846, Max-Change: 0.00017
Iteration: 19, Log-Lik: -39639.846, Max-Change: 0.00014
Iteration: 20, Log-Lik: -39639.846, Max-Change: 0.00025
Iteration: 21, Log-Lik: -39639.845, Max-Change: 0.00012
Iteration: 22, Log-Lik: -39639.845, Max-Change: 0.00010
Iteration: 23, Log-Lik: -39639.845, Max-Change: 0.00021
Iteration: 24, Log-Lik: -39639.845, Max-Change: 0.00034
Iteration: 25, Log-Lik: -39639.845, Max-Change: 0.00017
Iteration: 26, Log-Lik: -39639.845, Max-Change: 0.00029
Iteration: 27, Log-Lik: -39639.845, Max-Change: 0.00012
Iteration: 28, Log-Lik: -39639.845, Max-Change: 0.00009
# Перевірка інваріантності за допомогою ANOVA
# Порівняння метричної моделі з конфігураційною моделлю (перевірка метричної інваріантності)
anova_metric_configural <- anova(model_metric, model_configural)
print("ANOVA між метричною та конфігураційною моделями:")[1] "ANOVA між метричною та конфігураційною моделями:"
print(anova_metric_configural) AIC SABIC HQ BIC logLik X2 df p
model_metric 79188.81 79386.71 79329.74 79586.90 -39531.40
model_configural 79183.81 79403.71 79340.41 79626.14 -39521.91 18.995 7 0.008
# Порівняння скалярної моделі з метричною моделлю (перевірка скалярної інваріантності)
anova_scalar_metric <- anova(model_scalar, model_metric)
print("ANOVA між скалярною та метричною моделями:")[1] "ANOVA між скалярною та метричною моделями:"
print(anova_scalar_metric) AIC SABIC HQ BIC logLik X2 df p
model_scalar 79349.69 79459.64 79427.99 79570.85 -39639.85
model_metric 79188.81 79386.71 79329.74 79586.90 -39531.40 216.884 28 0
# Порівняння всіх моделей відразу
anova_all_models <- anova(model_scalar, model_metric, model_configural)
print("ANOVA для всіх моделей (скалярна, метрична, конфігураційна):")[1] "ANOVA для всіх моделей (скалярна, метрична, конфігураційна):"
print(anova_all_models) AIC SABIC HQ BIC logLik X2 df p
model_scalar 79349.69 79459.64 79427.99 79570.85 -39639.85
model_metric 79188.81 79386.71 79329.74 79586.90 -39531.40 216.884 28 0
model_configural 79183.81 79403.71 79340.41 79626.14 -39521.91 18.995 7 0.008
У статті представлено результати аналізу даних, отриманих за допомогою методики вимірювання популістських орієнтацій (автор - О. Резнік). В межах КФА модифіковане однофакторне рішення виявило суттєві переваги щодо практичного застосування та інтерпретації результатів. Воно забезпечує цілісніший вимірювальний конструкт і вищу надійність порівняно з двофакторною моделлю. Додатковою перевагою модифікованої однофакторної моделі є її інваріантність за статтю, що підтверджує універсальність застосування.
Результати GRM засвідчили, що загальна відповідність моделі даним є хорошою. Більшості пунктів шкали мали задовільну якість. Проте деякі твердження потребують перегляду чи уточнення формулювань для підвищення їхньої дискримінативної здатності.
Перспективи подальшого використання та вдосконалення інструменту можуть включати розроблення скороченої версії шкали з фокусом на найбільш валідних індикаторах (pm1, pm3, pm4, pm5) або розширення методики через розроблення додаткових індикаторів для посилення потенційного другого фактору, зокрема через поглиблення та конкретизацію змінних pm6 та pm7. З огляду на вищезазначене, у подальших соціологічних опитуваннях рекомендовано використовувати одновимірну модель як валідний та практичний інструмент вимірювання, з можливістю її подальшої оптимізації відповідно до специфіки дослідницьких завдань.
Посилання на цю роботу:
Для цитування в BibTeX:
@online{бова2025,
author = {Бова, Андрій},
title = {Психометричні властивості шкали популістських орієнтацій (за результатами всеукраїнського соціологічного опитування)},
date = {2025-02-02},
url = {https://www.rpubs.com/abova/populist-orientations-scale},
langid = {uk}
}