Мета та завдання

Мета - дослідження емоційних та когнітивних факторів страху перед злочинами серед студентської молоді м. Києва
Основні завдання роботи.
1. Визначити вплив афективних чинників, таких як сприйняття страху в громадських місцях у денний та нічний час, на емоційну реакцію страху перед злочиністю (окремими злочинами) київських студентів. 2. Оцінити роль когнітивного фактора — сприймаємого ризику постраждати від злочину (зазнати кримінальної віктимізації) — як медіатора між сприйняттям загроз та відчуттям безпеки і страхом перед злочиністю. 3. Дослідити зв’язок між суб’єктивною оцінкою ситуації з безпекою у районі проживання та суб’єктивним ризиком віктимізації. 4. Перевірити обґрунтовану модель взаємозв’язків між емоційними та когнітивними чинниками страху перед злочиністю на еквівалентність у групах юнаків та дівчат київських ЗВО.

Дані та методи вимірювання

Для емпіричного аналізу використано дані соціологічного опитування “Безпекова ситуація в м. Києві — 2016” (дивись “Додаткові матеріали”). Збір первинної інформації здійснювався методом самозаповнення анкети серед київських студентів протягом жовтня-листопада 2016 року. Опитування проводилося українською мовою за принципом зручної вибірки, до якої увійшло 512 респондентів з п’яти столичних закладів вищої освіти. Застосування зручної вибірки не дозволяє екстраполювати отримані результати на генеральну сукупність, однак забезпечує достатню якість емпіричних даних для ілюстративного аналізу та пілотних розвідок.
Змінні
Ендогенна (залежна) змінна
- Сприйняття страху перед злочиністю (FC) — емоційна реакція.

Екзогенні (незалежні) змінні
- Відчуття безпеки в громадських місцях в світлий період доби (SAFD) — афективна оцінка безпеки в громадських місцях.
- Відчуття безпеки в громадських місцях в темний період доби (SAFN) — афективна оцінка безпеки в громадських місцях.
Два близьких за змістом конструктів (SAFD та SAFN) були об’єднані в конструкт другого порядку - Відчуття безпеки в громадських місцях (SAF).
- Сприйняття проблем безпеки у районі проживання (SP) — суб’єктивна оцінка ситуації.

Медіатор
- Суб’єктивна оцінка ризику віктимізації (PRBC) — когнітивна оцінка ймовірності віктимізації.
PRBC виступала незалежною змінною по відношенню до страху перед злочиністю. Своєю чергою PRBC була залежною змінною по відношенню до відчуття безпеки в громадських місцях (в світлий та темний період доби), сприйняття проблем безпеки у районі проживання.

Тип шкали
Лікерт-подібна шкала (Likert-type scale) з 4-бальним діапазоном відповідей. Шкала деяких змінних була перекодована, аби більший бал за шкалою відповідав більшому страху перед злочиністю, більшій суб’єктивній занепокоєності постраждати від злочинів, більшому страху, що викликає міське середовище, більшій проблемі з безпекою у районі. При оцінюванні прогностичної точності моделі конструкт другого порядку був замінений середнім значенням з двох конструктів першого порядку.

Категоріальна змінна
- Стать респондента: чоловіча, жіноча.

Дослідницькі питання

Гіпотези перевірялися за допомогою моделювання структурними рівняннями за методом часткових найменших квадратів (PLS-SEM) та мультигрупового аналізу за методом часткових найменших квадратів (PLS-MGA).

Використання PLS-SEM та оцінювання конструктів

Метод часткових найменших квадратів (PLS) — це багатовимірний статистичний метод, який використовується для побудови прогнозних моделей та/або виявлення взаємозв’язків між латентними конструктами. PLS поєднує елементи регресійного аналізу та аналізу головних компонент для зменшення розмірності даних і максимізації варіації залежних змінних, яку можна пояснити набором незалежних змінних. Цей метод широко застосовується в моделюванні структурними рівняннями (PLS-SEM), де він дає змогу одночасно оцінювати та перевіряти складні моделі з латентними змінними і є особливо корисним, коли дані мають невелику вибірку або не відповідають нормальному розподілу. Для перевірки медіації необхідно оцінити значущість прямих та непрямих ефектів за допомогою бутстреп-методу.

Конструкти можуть бути оцінені за допомогою підходу спільних факторів та за допомогою композитів, які є зваженою сумою своїх індикаторів. На відміну від факторів у коваріаційному структурному моделюванні, композити в PLS-SEM не припускають існування істинної вимірюваної змінної, а радше наближення до неї. Конструкт можуть бути рефлективними або формативними.

Рефлективний конструкт — передбачається, що індикатори є наслідками, відображеннями або проявами композиту. Зміни в конструкті призводять до змін в індикаторах.

Формативний конструкт — індикатори розглядаються як причини або визначальні характеристики латентної змінної. Зміни в індикаторах призводять до змін в конструкті. Такі моделі називаються каузальні формативні моделі (causal formative model).

У цьому дослідженні всі конструкти розглядалися як рефлективні.

Одновимірність

Існує три основні інструменти для перевірки одновимірності: аналіз головних компонент (PCA), α Кронбаха, коефіцієнт rho Діллона-Голдштейна.

Надійність

Надійність показує стабільність результатів вимірювань. Вона може перевірятися на рівні одного індикаторіа або системи індикаторів.

В рефлективній моделі “індикаторні навантаження” (indicator loadings) або “зовнішні навантаження”(outer loadings) є коефіцієнтамии кореляції між конструктами та їхніми індикаторами (стандартизовані коефіцієнти парної регресії). В літературі використовується термін Значення навантажень вище 0.708 вказують на достатню надійність латентного конструкту. Вважається також доцільним зберігати в моделі індикатори, значення навантажень яких дорівнює 0.4 або вище.

У процесі оцінювання внутрішньої узгодженості конструктів у PLS-SEM застосовуються різноманітні показники надійності, зокрема, коефіцієнт альфа Кронбаха та коефіцієнти, що але враховують структуру латентної змінної (ρA та ρС).
Альфа Кронбаха вважається досить консервативною мірою, тоді як композитна надійність може бути занадто ліберальною.
Таким чином, справжня надійність конструкту, імовірно, знаходиться між цими двома граничними значеннями. Як альтернативу, на основі досліджень запропоновано використовувати точний (або консистентний) коефіцієнт надійності ρA.
Цей коефіцієнт зазвичай набуває проміжних значень між консервативною альфою Кронбаха та ліберальною композитною надійністю, тому його вважають прийнятним компромісом між вказаними показниками [1, с.78].

Конвергентна валідність

Для оцінки конвергентної валідності конструкту, що моделюється як рефлективний, використовується показник середньої вилученої дисперсії (Average Variance Extracted, AVE) та значення зовнішніх навантажень. Значення AVE має бути вище 0.5, що свідчить про те, що конструкт пояснює більше половини дисперсії своїх індикаторів.

Дискримінантна валідність

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

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

Для оцінки дискримінантної валідності конструктів можна застосувати метод аналізу парних коефіцієнтів кореляції та їх 95% довірчих інтервалів. Згідно з загальноприйнятими критеріями, абсолютні значення коефіцієнтів кореляції між конструктами, включаючи межі їх 95% довірчих інтервалів, не повинні перевищувати порогове значення 0.9.

Критерій Форнелла-Ларкера полягає у порівнянні квадратного кореня з середньої видобутої дисперсії (AVE) для кожного конструкту з кореляціями між цим конструктом та іншими конструктами в моделі.
Якщо квадратний корінь з AVE для певного конструкту є більшим, ніж його кореляції з іншими конструктами, це свідчить про те, що конструкт емпірично відрізняється від інших конструктів у моделі, демонструючи достатню дискримінантну валідність.

Коефіцієнт співвідношення гетеро-моноознак (Heterotrait-Monotrait Ratio, HTMT) оцінює співвідношення між кореляціями індикаторів, що вимірюють різні конструкти (гетероознаки-гетерометод кореляції), та кореляціями індикаторів в межах одного й того ж конструкту (моноознаки-гетерометод кореляції).
Значення HTMT < 0.85 вказує на задовільну дискримінантну валідність.

Критерій Форнелла-Ларкера та нова метрика HTMT розроблені для оцінювання дискримінантної валідності між конструктами першого порядку. Коли модель включає латентні змінні другого порядку, застосування цих методів може бути ускладненим і не завжди показовим.

Діагностика мультиколінеарності

Мультиколінеарність може спричинити низку негативних наслідків у статистичному аналізі.
Нестабільність оцінок коефіцієнтів. Високий рівень мультиколінеарності може призвести до значної варіативності оцінок коефіцієнтів регресії, що ускладнює їх інтерпретацію через підвищену чутливість до незначних флуктуацій у вхідних даних.
Зниження статистичної точності. Присутність мультиколінеарності може негативно вплинути на точність (precision) оцінок коефіцієнтів через збільшення їх стандартних помилок, що може призвести до розширення довірчих інтервалів та зниження статистичної значущості оцінок.
Ускладнення інтерпретації результатів. Висока кореляція між предикторами (незалежними змінними) ускладнює процес ізоляції та кількісної оцінки індивідуального впливу кожної змінної на залежну змінну, що може призвести до некоректних висновків щодо причинно-наслідкових зв’язків у моделі

Якість прогнозування

Величина ефекту
Величина ефекту демонструє міру важливості певного предиктора для пояснення залежної змінної. Коефіцієнт детермінації (R²) репрезентує варіацію екзогенної латентної змінної, пояснену ендогенними конструктами, і є показником пояснювальної здатності моделі, відомим також як передбачувальна сила для вибірки. Значення R² варіюється від 0 до 1, причому вищі значення вказують на більшу пояснювальну здатність. Загальноприйнятими орієнтирами для інтерпретації R² у багатьох соціальних науках є значення 0.75, 0.50 та 0.25, які вважаються відповідно значними, помірними та слабкими. Однак прийнятні значення R² залежать від контексту дослідження, і в деяких дисциплінах значення 0.10 може вважатися задовільним [1, c. 118].

В PLS-SEM для оцінки ефекту певної незалежної змінної на залежну змінну в моделі використовується показник f². Згідно з Дж. Коеном інтерпретація значень f² здійснюється за такими референтними значеннями:
f² = 0.02 — малий ефект;
f² = 0.15 — помірний ефект;
f² = 0.35 — великий ефект.

Підключення пакетів

library(haven)       # Імпорт даних у форматах SPSS
library(dplyr)       # Обробка та маніпуляція з датафреймами
library(sjmisc)      # Аналіз одновимірних розподілів та обробка даних
library(plspm)       # Перевірка одновимірності блоків змінних
library(correlation) # Розширений кореляційний аналіз
library(knitr)       # Створення динамічних звітів та форматування таблиць
library(kableExtra)  # Розширене форматування таблиць
library(seminr)      # Моделювання структурними рівняннями
library(ggcorrplot)  # Візуалізація кореляційних матриць за допомогою теплових карт
setwd("D:/Lichnoe/FOC2016/FOC2016_PLS-SEM")

# setwd("E:/DNDI/DNDI/2016/FOC2016/FOC2016_PLS-SEM")

dataset <- read_sav("sub_SAFE2016.sav")

df=na.omit(dataset)

Одновимірні розподіли індикаторів

FC

Сприйняття страху перед злочиністю
Номер, після якого наводиться скорочене формулювання запитання, відповідає порядкові розташування в анкеті.

frq(df[1:6])
## 23. Наскільки Ви боїтеся ... здiйснить крадiжку з Вашого помешкання (fc1) <numeric> 
## # total N=475 valid N=475 mean=2.43 sd=0.89
## 
## Value |            Label |   N | Raw % | Valid % | Cum. %
## ---------------------------------------------------------
##   -99 |  Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 |  Зовсiм не боюся |  68 | 14.32 |   14.32 |  14.32
##     2 | Скорiше не боюся | 197 | 41.47 |   41.47 |  55.79
##     3 |    Скорiше боюся | 147 | 30.95 |   30.95 |  86.74
##     4 |       Дуже боюся |  63 | 13.26 |   13.26 | 100.00
##  <NA> |             <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 24. Наскільки Ви боїтеся ... чiплятиметься до Вас i ображатиме (fc2) <numeric> 
## # total N=475 valid N=475 mean=2.24 sd=0.92
## 
## Value |            Label |   N | Raw % | Valid % | Cum. %
## ---------------------------------------------------------
##   -99 |  Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 |  Зовсiм не боюся | 109 | 22.95 |   22.95 |  22.95
##     2 | Скорiше не боюся | 187 | 39.37 |   39.37 |  62.32
##     3 |    Скорiше боюся | 133 | 28.00 |   28.00 |  90.32
##     4 |       Дуже боюся |  46 |  9.68 |    9.68 | 100.00
##  <NA> |             <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 25. Наскільки Ви боїтеся ... нападе та застосує фiзичну силу (fc3) <numeric> 
## # total N=475 valid N=475 mean=2.48 sd=0.92
## 
## Value |            Label |   N | Raw % | Valid % | Cum. %
## ---------------------------------------------------------
##   -99 |  Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 |  Зовсiм не боюся |  72 | 15.16 |   15.16 |  15.16
##     2 | Скорiше не боюся | 171 | 36.00 |   36.00 |  51.16
##     3 |    Скорiше боюся | 163 | 34.32 |   34.32 |  85.47
##     4 |       Дуже боюся |  69 | 14.53 |   14.53 | 100.00
##  <NA> |             <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 26. Наскільки Ви боїтеся ... вiдбере погрозою або силою якусь Вашу рiч (телефон) (fc4) <numeric> 
## # total N=475 valid N=475 mean=2.49 sd=0.90
## 
## Value |            Label |   N | Raw % | Valid % | Cum. %
## ---------------------------------------------------------
##   -99 |  Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 |  Зовсiм не боюся |  71 | 14.95 |   14.95 |  14.95
##     2 | Скорiше не боюся | 164 | 34.53 |   34.53 |  49.47
##     3 |    Скорiше боюся | 178 | 37.47 |   37.47 |  86.95
##     4 |       Дуже боюся |  62 | 13.05 |   13.05 | 100.00
##  <NA> |             <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 27. Наскільки Ви боїтеся ... поцупить Ваші особистi речi (у транспортi, на вулицi) (fc5) <numeric> 
## # total N=475 valid N=475 mean=2.71 sd=0.87
## 
## Value |            Label |   N | Raw % | Valid % | Cum. %
## ---------------------------------------------------------
##   -99 |  Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 |  Зовсiм не боюся |  44 |  9.26 |    9.26 |   9.26
##     2 | Скорiше не боюся | 140 | 29.47 |   29.47 |  38.74
##     3 |    Скорiше боюся | 203 | 42.74 |   42.74 |  81.47
##     4 |       Дуже боюся |  88 | 18.53 |   18.53 | 100.00
##  <NA> |             <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 29. Наскільки Ви боїтеся ... заволодiє Вашим майном чи грошима шляхом обману (fc6) <numeric> 
## # total N=475 valid N=475 mean=2.31 sd=0.93
## 
## Value |            Label |   N | Raw % | Valid % | Cum. %
## ---------------------------------------------------------
##   -99 |  Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 |  Зовсiм не боюся | 102 | 21.47 |   21.47 |  21.47
##     2 | Скорiше не боюся | 173 | 36.42 |   36.42 |  57.89
##     3 |    Скорiше боюся | 149 | 31.37 |   31.37 |  89.26
##     4 |       Дуже боюся |  51 | 10.74 |   10.74 | 100.00
##  <NA> |             <NA> |   0 |  0.00 |    <NA> |   <NA>

PRBC

Суб’єктивна оцінка віктимізації
Номер, після якого наводиться скорочене формулювання запитання, відповідає порядкові розташування в анкеті.

frq(df[7:12])
## 32. Як Ви оцінюєте потенційний ризик ... здiйснить крадiжку з Вашого помешкання (prbc1) <numeric> 
## # total N=475 valid N=475 mean=2.02 sd=0.72
## 
## Value |             Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------------------
##   -99 |   Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 | Зовсiм неймовiрно | 106 | 22.32 |   22.32 |  22.32
##     2 |  Не дуже iмовiрно | 265 | 55.79 |   55.79 |  78.11
##     3 |          iмовiрно |  92 | 19.37 |   19.37 |  97.47
##     4 |     Дуже iмовiрно |  12 |  2.53 |    2.53 | 100.00
##  <NA> |              <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 33. Як Ви оцінюєте потенційний ризик ... чiплятиметься до Вас i ображатиме (prbc2) <numeric> 
## # total N=475 valid N=475 mean=2.11 sd=0.73
## 
## Value |             Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------------------
##   -99 |   Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 | Зовсiм неймовiрно |  93 | 19.58 |   19.58 |  19.58
##     2 |  Не дуже iмовiрно | 243 | 51.16 |   51.16 |  70.74
##     3 |          iмовiрно | 131 | 27.58 |   27.58 |  98.32
##     4 |     Дуже iмовiрно |   8 |  1.68 |    1.68 | 100.00
##  <NA> |              <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 34. Як Ви оцінюєте потенційний ризик ... нападе на Вас та застосує фiзичну силу (prbc3) <numeric> 
## # total N=475 valid N=475 mean=2.13 sd=0.70
## 
## Value |             Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------------------
##   -99 |   Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 | Зовсiм неймовiрно |  76 | 16.00 |   16.00 |  16.00
##     2 |  Не дуже iмовiрно | 275 | 57.89 |   57.89 |  73.89
##     3 |          iмовiрно | 110 | 23.16 |   23.16 |  97.05
##     4 |     Дуже iмовiрно |  14 |  2.95 |    2.95 | 100.00
##  <NA> |              <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 35. Як Ви оцінюєте потенційний ризик ... вiдбере погрозою або силою у Вас якусь рiч (телефон) (prbc4) <numeric> 
## # total N=475 valid N=475 mean=2.17 sd=0.76
## 
## Value |             Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------------------
##   -99 |   Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 | Зовсiм неймовiрно |  88 | 18.53 |   18.53 |  18.53
##     2 |  Не дуже iмовiрно | 236 | 49.68 |   49.68 |  68.21
##     3 |          iмовiрно | 135 | 28.42 |   28.42 |  96.63
##     4 |     Дуже iмовiрно |  16 |  3.37 |    3.37 | 100.00
##  <NA> |              <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 36. Як Ви оцінюєте потенційний ризик ... поцупить Ваші особистi речi (у транспортi, на вулицi) (prbc5) <numeric> 
## # total N=475 valid N=475 mean=2.43 sd=0.81
## 
## Value |             Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------------------
##   -99 |   Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 | Зовсiм неймовiрно |  57 | 12.00 |   12.00 |  12.00
##     2 |  Не дуже iмовiрно | 195 | 41.05 |   41.05 |  53.05
##     3 |          iмовiрно | 184 | 38.74 |   38.74 |  91.79
##     4 |     Дуже iмовiрно |  39 |  8.21 |    8.21 | 100.00
##  <NA> |              <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 38. Як Ви оцінюєте потенційний ризик ... заволодiє Вашим майном чи грошима шляхом обману (prbc6) <numeric> 
## # total N=475 valid N=475 mean=1.97 sd=0.77
## 
## Value |             Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------------------
##   -99 |   Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 | Зовсiм неймовiрно | 131 | 27.58 |   27.58 |  27.58
##     2 |  Не дуже iмовiрно | 245 | 51.58 |   51.58 |  79.16
##     3 |          iмовiрно |  83 | 17.47 |   17.47 |  96.63
##     4 |     Дуже iмовiрно |  16 |  3.37 |    3.37 | 100.00
##  <NA> |              <NA> |   0 |  0.00 |    <NA> |   <NA>

SAFD

Відчуття безпеки в громадських місцях в світлий період доби
Номер, після якого наводиться скорочене формулювання запитання, відповідає порядкові розташування в анкеті.

frq(df[13:16])
## 13. Наскільки безпечно Ви почуваєтесь ... у свiтлий час доби йдучи в районi, де Ви мешкаєте (safd1) <numeric> 
## # total N=475 valid N=475 mean=1.70 sd=0.67
## 
## Value |             Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------------------
##     1 |   Зовсім безпечно | 195 | 41.05 |   41.05 |  41.05
##     2 |          Безпечно | 234 | 49.26 |   49.26 |  90.32
##     3 |        Небезпечно |  41 |  8.63 |    8.63 |  98.95
##     4 | Зовсім небезпечно |   5 |  1.05 |    1.05 | 100.00
##  <NA> |              <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 14. Наскільки безпечно Ви почуваєтесь ... у свiтлий час доби у магазинах, аптеках (safd2) <numeric> 
## # total N=475 valid N=475 mean=1.46 sd=0.58
## 
## Value |             Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------------------
##     1 |   Зовсім безпечно | 275 | 57.89 |   57.89 |  57.89
##     2 |          Безпечно | 185 | 38.95 |   38.95 |  96.84
##     3 |        Небезпечно |  12 |  2.53 |    2.53 |  99.37
##     4 | Зовсім небезпечно |   3 |  0.63 |    0.63 | 100.00
##  <NA> |              <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 15. Наскільки безпечно Ви почуваєтесь ... у свiтлий час доби у мiсцях вiдпочинку, дозвiлля, розваг (safd3) <numeric> 
## # total N=475 valid N=475 mean=1.69 sd=0.66
## 
## Value |             Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------------------
##     1 |   Зовсім безпечно | 194 | 40.84 |   40.84 |  40.84
##     2 |          Безпечно | 240 | 50.53 |   50.53 |  91.37
##     3 |        Небезпечно |  36 |  7.58 |    7.58 |  98.95
##     4 | Зовсім небезпечно |   5 |  1.05 |    1.05 | 100.00
##  <NA> |              <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 16. Наскільки безпечно Ви почуваєтесь ... у свiтлий час доби користуючись громадським транспортом (safd4) <numeric> 
## # total N=475 valid N=475 mean=2.15 sd=0.78
## 
## Value |             Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------------------
##     1 |   Зовсім безпечно |  97 | 20.42 |   20.42 |  20.42
##     2 |          Безпечно | 226 | 47.58 |   47.58 |  68.00
##     3 |        Небезпечно | 134 | 28.21 |   28.21 |  96.21
##     4 | Зовсім небезпечно |  18 |  3.79 |    3.79 | 100.00
##  <NA> |              <NA> |   0 |  0.00 |    <NA> |   <NA>

SAFN

Відчуття безпеки в громадських місцях в темний період доби

frq(df[17:20])
## 18. Наскільки безпечно Ви почуваєтесь ... у темний час доби пiсля 22 години йдучи в районi, де Ви мешкаєте (safn1) <numeric> 
## # total N=475 valid N=475 mean=2.39 sd=0.82
## 
## Value |             Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------------------
##     1 |   Зовсім безпечно |  63 | 13.26 |   13.26 |  13.26
##     2 |          Безпечно | 201 | 42.32 |   42.32 |  55.58
##     3 |        Небезпечно | 172 | 36.21 |   36.21 |  91.79
##     4 | Зовсім небезпечно |  39 |  8.21 |    8.21 | 100.00
##  <NA> |              <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 19. Наскільки безпечно Ви почуваєтесь ... у темний час доби пiсля 22 години у магазинах, аптеках (safn2) <numeric> 
## # total N=475 valid N=475 mean=1.85 sd=0.73
## 
## Value |             Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------------------
##     1 |   Зовсім безпечно | 157 | 33.05 |   33.05 |  33.05
##     2 |          Безпечно | 239 | 50.32 |   50.32 |  83.37
##     3 |        Небезпечно |  70 | 14.74 |   14.74 |  98.11
##     4 | Зовсім небезпечно |   9 |  1.89 |    1.89 | 100.00
##  <NA> |              <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 20. Наскільки безпечно Ви почуваєтесь ... у темний час доби пiсля 22 години у мiсцях вiдпочинку, дозвілля, розваг (safn3) <numeric> 
## # total N=475 valid N=475 mean=2.28 sd=0.80
## 
## Value |             Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------------------
##     1 |   Зовсім безпечно |  76 | 16.00 |   16.00 |  16.00
##     2 |          Безпечно | 215 | 45.26 |   45.26 |  61.26
##     3 |        Небезпечно | 157 | 33.05 |   33.05 |  94.32
##     4 | Зовсім небезпечно |  27 |  5.68 |    5.68 | 100.00
##  <NA> |              <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 21. Наскільки безпечно Ви почуваєтесь ... у темний час доби пiсля 22 години користуючись громадським транспортом (safn4) <numeric> 
## # total N=475 valid N=475 mean=2.50 sd=0.86
## 
## Value |             Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------------------
##     1 |   Зовсім безпечно |  58 | 12.21 |   12.21 |  12.21
##     2 |          Безпечно | 179 | 37.68 |   37.68 |  49.89
##     3 |        Небезпечно | 179 | 37.68 |   37.68 |  87.58
##     4 | Зовсім небезпечно |  59 | 12.42 |   12.42 | 100.00
##  <NA> |              <NA> |   0 |  0.00 |    <NA> |   <NA>
# Використання функції frq для створення таблиці частот
frq_results <- frq(df[17:20])

SP

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

frq(df[21:27])
## 42. Наскільки проблемою у районі ... вандалiзм, пошкодження майна або автомобiлiв (sp1) <numeric> 
## # total N=475 valid N=475 mean=1.97 sd=0.86
## 
## Value |                Label |   N | Raw % | Valid % | Cum. %
## -------------------------------------------------------------
##   -99 |      Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 |  Не проблема взагалi | 159 | 33.47 |   33.47 |  33.47
##     2 |   Незначна  проблема | 194 | 40.84 |   40.84 |  74.32
##     3 |      Велика проблема |  98 | 20.63 |   20.63 |  94.95
##     4 | Дуже велика проблема |  24 |  5.05 |    5.05 | 100.00
##  <NA> |                 <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 43. Наскільки проблемою у районі ... люди, якi вживають або поширюють наркотики (sp2) <numeric> 
## # total N=475 valid N=475 mean=2.17 sd=1.00
## 
## Value |                Label |   N | Raw % | Valid % | Cum. %
## -------------------------------------------------------------
##   -99 |      Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 |  Не проблема взагалi | 148 | 31.16 |   31.16 |  31.16
##     2 |   Незначна  проблема | 153 | 32.21 |   32.21 |  63.37
##     3 |      Велика проблема | 118 | 24.84 |   24.84 |  88.21
##     4 | Дуже велика проблема |  56 | 11.79 |   11.79 | 100.00
##  <NA> |                 <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 44. Наскільки проблемою у районі ... хулiгани та п'яницi у громадських мiсцях (sp3) <numeric> 
## # total N=475 valid N=475 mean=2.51 sd=0.87
## 
## Value |                Label |   N | Raw % | Valid % | Cum. %
## -------------------------------------------------------------
##   -99 |      Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 |  Не проблема взагалi |  63 | 13.26 |   13.26 |  13.26
##     2 |   Незначна  проблема | 165 | 34.74 |   34.74 |  48.00
##     3 |      Велика проблема | 189 | 39.79 |   39.79 |  87.79
##     4 | Дуже велика проблема |  58 | 12.21 |   12.21 | 100.00
##  <NA> |                 <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 46. Наскільки проблемою у районі ... крадiжки з помешкань (sp4) <numeric> 
## # total N=475 valid N=475 mean=2.35 sd=0.92
## 
## Value |                Label |   N | Raw % | Valid % | Cum. %
## -------------------------------------------------------------
##   -99 |      Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 |  Не проблема взагалi |  89 | 18.74 |   18.74 |  18.74
##     2 |   Незначна  проблема | 186 | 39.16 |   39.16 |  57.89
##     3 |      Велика проблема | 144 | 30.32 |   30.32 |  88.21
##     4 | Дуже велика проблема |  56 | 11.79 |   11.79 | 100.00
##  <NA> |                 <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 47. Наскільки проблемою у районі ... крадiжки особистих речей (у транспортi, на вулицi) (sp5) <numeric> 
## # total N=475 valid N=475 mean=2.41 sd=0.92
## 
## Value |                Label |   N | Raw % | Valid % | Cum. %
## -------------------------------------------------------------
##   -99 |      Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 |  Не проблема взагалi |  82 | 17.26 |   17.26 |  17.26
##     2 |   Незначна  проблема | 174 | 36.63 |   36.63 |  53.89
##     3 |      Велика проблема | 159 | 33.47 |   33.47 |  87.37
##     4 | Дуже велика проблема |  60 | 12.63 |   12.63 | 100.00
##  <NA> |                 <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 48. Наскільки проблемою у районі ... напади, побиття (sp6) <numeric> 
## # total N=475 valid N=475 mean=2.22 sd=0.92
## 
## Value |                Label |   N | Raw % | Valid % | Cum. %
## -------------------------------------------------------------
##   -99 |      Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 |  Не проблема взагалi | 114 | 24.00 |   24.00 |  24.00
##     2 |   Незначна  проблема | 188 | 39.58 |   39.58 |  63.58
##     3 |      Велика проблема | 128 | 26.95 |   26.95 |  90.53
##     4 | Дуже велика проблема |  45 |  9.47 |    9.47 | 100.00
##  <NA> |                 <NA> |   0 |  0.00 |    <NA> |   <NA>
## 
## 49. Наскільки проблемою у районі ... агресивнi водiї, порушення правил дорожнього руху (sp7) <numeric> 
## # total N=475 valid N=475 mean=2.40 sd=0.94
## 
## Value |                Label |   N | Raw % | Valid % | Cum. %
## -------------------------------------------------------------
##   -99 |      Немає відповіді |   0 |  0.00 |    0.00 |   0.00
##     1 |  Не проблема взагалi |  86 | 18.11 |   18.11 |  18.11
##     2 |   Незначна  проблема | 177 | 37.26 |   37.26 |  55.37
##     3 |      Велика проблема | 146 | 30.74 |   30.74 |  86.11
##     4 | Дуже велика проблема |  66 | 13.89 |   13.89 | 100.00
##  <NA> |                 <NA> |   0 |  0.00 |    <NA> |   <NA>

Перевірка одновимірності

FC_PRBC_SAFD_SAFN_SP = list(
  FC =1:6,
  PRBC =7:12,
  SAFD=13:16,
  SAFN=17:20,
  SP=21:27)

un<-unidim(df, FC_PRBC_SAFD_SAFN_SP)

# Округлення числових значень до двох знаків після крапки
un_rounded <- lapply(un, function(x) {
  if (is.numeric(x)) {
    round(x, 2)
  } else {
    x
  }
})

# Застосування `round` до кожного стовпця
if (is.data.frame(un)) {
  un_rounded <- as.data.frame(lapply(un, function(x) {
    if (is.numeric(x)) {
      round(x, 2)
    } else {
      x
    }
  }))
}

# Використання kable для форматування результату
kable(un_rounded, format = "html", table.attr = "class='table table-striped table-hover'")
Block MVs C.alpha DG.rho eig.1st eig.2nd
FC 6 0.87 0.90 3.62 0.70
PRBC 6 0.85 0.89 3.46 0.70
SAFD 4 0.81 0.87 2.54 0.58
SAFN 4 0.81 0.88 2.56 0.60
SP 7 0.85 0.88 3.65 0.88

Вимірювальна модель

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

measurment_FOC <- constructs(
  composite("FC", multi_items("fc", 1:6), weights = mode_A),  # Композитний конструкт "FC" з 6 змінними, зважений за режимом A
  composite("PRBC", multi_items("prbc", 1:6), weights = mode_A),  # Композитний конструкт "PRBC" з 6 змінними, зважений за режимом A
  composite("SP", multi_items("sp", 1:7), weights = mode_A),  # Композитний конструкт "SP" з 7 змінними, зважений за режимом A
  composite("SAFD", multi_items("safd", 1:4), weights = mode_A),  # Композитний конструкт "SAFD" з 4 змінними, зважений за режимом A
  composite("SAFN", multi_items("safn", 1:4), weights = mode_A),  # Композитний конструкт "SAFN" з 4 змінними, зважений за режимом A
  higher_composite(
    "SAF",  # Композитний конструкт вищого рівня "SAF"
    dimensions = c("SAFD", "SAFN"),  # складається з підконструктів "SAFD" та "SAFN"
    weights = mode_A  # зважений за режимом A
  )
)
# Відображення вимірювальної моделі
plot (measurment_FOC)

Режим зваження індикаторів для формування композитних змінних, що відповідають латентним конструктам моделі, за схемою “A” характеризується такими ключовими особливостями.
1. Лінійна комбінація індикаторів. Латентні конструкти формуються як лінійні комбінації своїх індикаторів, використовуючи зважені зв’язки індикаторів.
2. Визначення зовнішніх ваг. Зовнішні ваги індикаторів визначаються на основі кореляцій між індикаторами та відповідним латентним конструктом. Кожна вага обчислюється як коефіцієнт кореляції між індикатором та конструктом.
3. Застосування в рефлективних моделях.  Режим “A” переважно використовується в рефлективних моделях, де індикатори розглядаються як прояви або відображення латентного конструкту.
Індикатори вважаються взаємозамінними та мають демонструвати високу кореляцію між собою.

Стуруктурна модель

Структурну модель визначає зв’язки (шляхи) між різними конструктами у моделі. Вона містить потенційний медіаційний шлях.

structural_FOC <- relationships(
  paths(from = c("SP", "SAF"), to = c("PRBC", "FC")),  # Визначення шляхів від конструктів "SP" та "SAF" до конструктів "PRBC" та "FC"
  paths(from = c("PRBC"), to = c("FC"))  # Визначення шляху від конструктів "PRBC" до конструктів "FC"
)

Шляхова діаграма

Структурна модель включає один потенційний медіатор (PRBC).

library(DiagrammeR)
## Warning: package 'DiagrammeR' was built under R version 4.4.2
## 
## Attaching package: 'DiagrammeR'
## The following object is masked from 'package:plspm':
## 
##     get_paths
# Відображення структурної моделі
grViz("
digraph structural_model {

  # Визначення вузлів (конструктів)
  node [shape = hexagon, style = filled, fillcolor = lightblue]
  SAF [label = 'SAF']  
  SP [label = 'SP']
  PRBC [label = 'PRBC']
  FC [label = 'FC']

  # Визначення ребер (зв'язків між конструктами)
  SP -> PRBC
  SP -> FC
  SAF -> PRBC
  SAF -> FC
  PRBC -> FC

  # Поворот діаграми на 90 градусів проти годинникової стрілки
  rankdir = LR
}
")
# Центрування діаграми на сторінці
knitr::opts_chunk$set(fig.align = 'center')

Оцінки вимірювальної та структурної моделей за методом часткових найменших квадратів (PLS).

Усі латентні змінні пояснуювали понад понад половини загальної дисперсії (total variance).
Усі конструкти мали значення композитної надійності (Composite Reliability) та альфа Кронбаха вище 0.7, що свідчило про високу внутрішню узгодженість.
Значення фактора інфляції дисперсії (variance inflation factor, VIF) менше ніж 5 свідчить про відсутність мультиколінеарності.

df <- as.data.frame(lapply(df, function(x) { 
  if (is.labelled(x)) {
    x <- as.vector(x)
  }
  return(x)
}))
FOC <- estimate_pls(
  data = df,  # Вхідні дані для моделі.
  measurement_model = measurment_FOC,  # Визначена модель вимірювання, яка описує зв'язок між латентними конструктами та їх індикаторами.
  structural_model = structural_FOC  # Визначена структурна модель, яка описує зв'язки між латентними конструктами.
)

# Створення зведення результатів оціненої моделі
model_FOC <- summary(FOC)

# Збіжність моделі
cat("Кількість ітерацій")
## Кількість ітерацій
model_FOC$iterations
## [1] 7
# Оцінки шляхів між конструктами в моделі,
# включаючи значення коефіцієнтів та їх статистичну значущість.
cat("Оцінки шляхів та коефіцієнт детермінації R²")
## Оцінки шляхів та коефіцієнт детермінації R²
model_FOC$paths%>% as.data.frame() %>% round (2) %>% kable(format = "html", table.attr = "class='table table-striped table-hover'")
PRBC FC
R^2 0.23 0.33
AdjR^2 0.23 0.33
SP 0.24 0.12
SAF 0.35 0.15
PRBC NA 0.43
# Величина ефекту
cat("Величина ефекту f²")
## Величина ефекту f²
model_FOC$fSquare %>% 
  as.data.frame() %>%  
  select("PRBC", "FC") %>%  
  round(2) %>% 
  kable(format = "html", 
        table.attr = "class='table table-striped table-hover'", 
        digits = 2)
PRBC FC
SP 0.07 0.02
SAF 0.14 0.03
PRBC 0.00 0.21
FC 0.00 0.00
cat("Конструктна валідність та надійність")
## Конструктна валідність та надійність
# Отримання показників надійності
model_FOC$reliability %>% as.data.frame() %>% round (2) %>% kable ( format = "html", table.attr = "class='table table-striped table-hover'")
alpha rhoC AVE rhoA
SP 0.85 0.88 0.52 0.87
SAF 0.81 0.91 0.84 0.81
PRBC 0.85 0.89 0.58 0.86
FC 0.87 0.90 0.60 0.87
SAFD 0.81 0.87 0.63 0.81
SAFN 0.81 0.87 0.64 0.82
# Показники надійності включають такі значення, як альфа 
# Кронбаха та композитна надійність.
# AVE  є показниками конвергнентної валідності

# Графік зі значеннями коефіцієнтів надійності - 
# внутрішньої узгодженості
plot(model_FOC$reliability)

# Індикаторні навантаження
cat("Індикаторні навантаження")
## Індикаторні навантаження
model_FOC$loadings %>%
  as.data.frame() %>%
  round(2) %>%
  mutate(across(everything(), ~replace(., . == 0, ""))) %>%
  kable(format = "html", 
        table.attr = "class='table table-striped table-hover'")
SP SAF PRBC FC SAFD SAFN
fc1 0.68
fc2 0.81
fc3 0.85
fc4 0.85
fc5 0.79
fc6 0.65
prbc1 0.67
prbc2 0.78
prbc3 0.81
prbc4 0.83
prbc5 0.79
prbc6 0.65
sp1 0.64
sp2 0.6
sp3 0.72
sp4 0.76
sp5 0.82
sp6 0.8
sp7 0.67
SAFD 0.91
SAFN 0.92
safd1 0.77
safd2 0.82
safd3 0.8
safd4 0.8
safn1 0.78
safn2 0.81
safn3 0.77
safn4 0.83
cat ("Дискримінантна валідність")
## Дискримінантна валідність
cat("Крос-навантаження")
## Крос-навантаження
# Крос-навантаження
model_FOC$validity$cross_loadings %>%
  as.data.frame() %>%
 round (2) %>% kable ( format = "html", table.attr = "class='table table-striped table-hover'")
SP SAF PRBC FC SAFD SAFN
fc1 0.30 0.26 0.36 0.68 0.23 0.25
fc2 0.22 0.35 0.43 0.81 0.29 0.34
fc3 0.21 0.30 0.42 0.85 0.25 0.30
fc4 0.24 0.29 0.46 0.85 0.23 0.29
fc5 0.31 0.34 0.46 0.79 0.27 0.35
fc6 0.24 0.20 0.39 0.65 0.18 0.19
prbc1 0.31 0.27 0.67 0.36 0.26 0.24
prbc2 0.30 0.38 0.78 0.41 0.33 0.36
prbc3 0.26 0.30 0.81 0.43 0.26 0.29
prbc4 0.26 0.33 0.83 0.48 0.29 0.31
prbc5 0.24 0.35 0.79 0.46 0.32 0.32
prbc6 0.25 0.31 0.65 0.30 0.33 0.24
sp1 0.64 0.23 0.17 0.18 0.20 0.21
sp2 0.60 0.11 0.10 0.10 0.10 0.10
sp3 0.72 0.27 0.24 0.25 0.20 0.29
sp4 0.76 0.25 0.30 0.26 0.22 0.24
sp5 0.82 0.28 0.36 0.32 0.25 0.27
sp6 0.80 0.25 0.26 0.27 0.23 0.23
sp7 0.67 0.23 0.23 0.17 0.21 0.21
safd1 0.24 0.68 0.32 0.28 0.77 0.49
safd2 0.20 0.72 0.31 0.23 0.82 0.51
safd3 0.21 0.72 0.28 0.20 0.80 0.53
safd4 0.27 0.77 0.33 0.29 0.80 0.61
safn1 0.33 0.69 0.36 0.33 0.48 0.78
safn2 0.24 0.76 0.31 0.25 0.58 0.81
safn3 0.23 0.72 0.25 0.24 0.53 0.77
safn4 0.23 0.77 0.31 0.35 0.58 0.83
SAFD 0.29 0.91 0.39 0.32 1.00 0.67
SAFN 0.32 0.92 0.39 0.37 0.67 1.00
cat("Показники фактора інфляції дисперсії")  
## Показники фактора інфляції дисперсії
# Перегляд VIF (показників фактора інфляції дисперсії)

cat("Фактор інфляції дисперсії для предикторів SP та SAF, що впливають на PRBC")
## Фактор інфляції дисперсії для предикторів SP та SAF, що впливають на PRBC
model_FOC$vif_antecedents$PRBC %>%
  as.data.frame() %>%
  setNames("PRBC") %>%
  round(1)
##     PRBC
## SP   1.1
## SAF  1.1
cat("Фактор інфляції дисперсії для предикторів SP, SAF та PRBC що впливають на FC")
## Фактор інфляції дисперсії для предикторів SP, SAF та PRBC що впливають на FC
model_FOC$vif_antecedents$FC%>%
  as.data.frame() %>%
  setNames("FC") %>%
 round (1) 
##       FC
## SP   1.2
## SAF  1.3
## PRBC 1.3
# Це допомагає оцінити мультиколінеарність

cat("Описова статистика для індикаторів")
## Описова статистика для індикаторів
# Перегляд описової статистики для індикаторів
# Включає середні значення, стандартні відхилення та інші описові статистики.
model_FOC$descriptives$statistics$items %>%
  as.data.frame() %>%
  select("Mean",    "Median",   "Min",  "Max",  "Std.Dev.", "Kurtosis", "Skewness") %>% 
 round (2) %>% kable ( format = "html", table.attr = "class='table table-striped table-hover'")
Mean Median Min Max Std.Dev. Kurtosis Skewness
fc1 2.43 2 1 4 0.89 2.28 0.16
fc2 2.24 2 1 4 0.92 2.23 0.26
fc3 2.48 2 1 4 0.92 2.17 0.03
fc4 2.49 3 1 4 0.90 2.23 -0.04
fc5 2.71 3 1 4 0.87 2.37 -0.22
fc6 2.31 2 1 4 0.93 2.14 0.15
prbc1 2.02 2 1 4 0.72 3.02 0.38
prbc2 2.11 2 1 4 0.73 2.47 0.09
prbc3 2.13 2 1 4 0.70 3.11 0.33
prbc4 2.17 2 1 4 0.76 2.59 0.17
prbc5 2.43 2 1 4 0.81 2.50 0.01
prbc6 1.97 2 1 4 0.77 2.98 0.51
sp1 1.97 2 1 4 0.86 2.51 0.53
sp2 2.17 2 1 4 1.00 2.01 0.36
sp3 2.51 3 1 4 0.87 2.32 -0.08
sp4 2.35 2 1 4 0.92 2.21 0.17
sp5 2.41 2 1 4 0.92 2.18 0.07
sp6 2.22 2 1 4 0.92 2.24 0.29
sp7 2.40 2 1 4 0.94 2.13 0.13
safd1 1.70 2 1 4 0.67 3.23 0.65
safd2 1.46 1 1 4 0.58 4.10 1.03
safd3 1.69 2 1 4 0.66 3.37 0.65
safd4 2.15 2 1 4 0.78 2.51 0.20
safn1 2.39 2 1 4 0.82 2.48 0.07
safn2 1.85 2 1 4 0.73 2.93 0.52
safn3 2.28 2 1 4 0.80 2.51 0.12
safn4 2.50 3 1 4 0.86 2.35 0.00
cat("Описова статистика для конструктів")
## Описова статистика для конструктів
# Перегляд описової статистики для конструктів
model_FOC$descriptives$statistics$constructs %>%
  as.data.frame() %>%
  select("Mean",    "Median",   "Min",  "Max",  "Std.Dev.", "Kurtosis", "Skewness") %>%
 round (2) %>% kable ( format = "html", table.attr = "class='table table-striped table-hover'")
Mean Median Min Max Std.Dev. Kurtosis Skewness
SP 0 0.01 -1.97 2.50 1 2.61 0.11
SAF 0 0.03 -1.84 3.78 1 2.77 0.23
PRBC 0 -0.16 -2.01 3.26 1 3.20 0.03
FC 0 0.05 -2.07 2.20 1 2.50 0.02
# Включає середні значення, стандартні відхилення та інші описові статистики для кожного конструкта.
cat("Коефіцієнти кореляції для індикаторів та двох конструктів першого порядку")
## Коефіцієнти кореляції для індикаторів та двох конструктів першого порядку
# Округлення кореляцій між індикаторами до двох десяткових знаків
cor_matrix <- model_FOC$descriptives$correlations$items %>% as.data.frame %>% round(2)

cat("Коефіцієнти кореляції між індикаторами та ")
## Коефіцієнти кореляції між індикаторами та
# Теплова карта для коефіцієнтів кореляції Піросна
ggcorrplot(cor_matrix,
           hc.order = F,
           type = "lower",
           lab = F)

# Заміна значень вище діагоналі на NA
cor_matrix[upper.tri(cor_matrix)] <- ""

# Відображення кореляційної матриці з прихованими значеннями вище діагоналі
cor_matrix %>% 
  kable(format = "html", table.attr = "class='table table-striped table-hover'") %>%
  kable_styling(full_width = F) %>%
  column_spec(which(colnames(cor_matrix) == ""), width = "0.5cm") # Зміна ширини колонок (опційно)
fc1 fc2 fc3 fc4 fc5 fc6 prbc1 prbc2 prbc3 prbc4 prbc5 prbc6 sp1 sp2 sp3 sp4 sp5 sp6 sp7 safd1 safd2 safd3 safd4 safn1 safn2 safn3 safn4 SAFD SAFN
fc1 1.00
fc2 0.44 1
fc3 0.49 0.74 1
fc4 0.49 0.64 0.73 1
fc5 0.44 0.51 0.55 0.63 1
fc6 0.37 0.4 0.44 0.43 0.46 1
prbc1 0.48 0.24 0.22 0.27 0.26 0.2 1
prbc2 0.20 0.41 0.33 0.36 0.33 0.29 0.43 1
prbc3 0.24 0.34 0.44 0.36 0.33 0.29 0.42 0.62 1
prbc4 0.29 0.37 0.38 0.47 0.4 0.32 0.42 0.58 0.66 1
prbc5 0.27 0.34 0.31 0.38 0.52 0.29 0.45 0.5 0.54 0.63 1
prbc6 0.18 0.19 0.2 0.21 0.25 0.4 0.37 0.38 0.42 0.43 0.45 1
sp1 0.20 0.11 0.11 0.12 0.15 0.17 0.18 0.16 0.09 0.12 0.1 0.16 1
sp2 0.09 0.07 0.05 0.07 0.09 0.11 0.11 0.14 0.08 0.04 0.01 0.08 0.46 1
sp3 0.19 0.2 0.2 0.19 0.22 0.15 0.2 0.21 0.21 0.18 0.14 0.15 0.48 0.53 1
sp4 0.35 0.16 0.13 0.17 0.21 0.19 0.34 0.23 0.21 0.2 0.21 0.17 0.4 0.36 0.4 1
sp5 0.23 0.21 0.17 0.27 0.37 0.21 0.27 0.3 0.23 0.3 0.31 0.23 0.39 0.33 0.44 0.58 1
sp6 0.24 0.15 0.19 0.2 0.25 0.21 0.21 0.2 0.24 0.21 0.15 0.2 0.4 0.42 0.46 0.53 0.59 1
sp7 0.14 0.15 0.13 0.1 0.16 0.1 0.17 0.22 0.15 0.15 0.16 0.2 0.33 0.36 0.4 0.37 0.49 0.51 1
safd1 0.24 0.25 0.24 0.21 0.2 0.14 0.24 0.25 0.22 0.22 0.25 0.28 0.2 0.06 0.2 0.14 0.18 0.23 0.17 1
safd2 0.16 0.22 0.17 0.16 0.19 0.17 0.2 0.29 0.23 0.22 0.24 0.26 0.14 0.06 0.1 0.17 0.17 0.15 0.17 0.49 1
safd3 0.14 0.19 0.17 0.13 0.15 0.14 0.19 0.24 0.19 0.19 0.21 0.29 0.1 0.09 0.15 0.18 0.17 0.16 0.16 0.45 0.64 1
safd4 0.18 0.26 0.22 0.24 0.3 0.11 0.2 0.28 0.2 0.27 0.29 0.24 0.19 0.11 0.18 0.22 0.26 0.18 0.18 0.46 0.5 0.53 1
safn1 0.23 0.3 0.28 0.26 0.29 0.15 0.27 0.3 0.28 0.33 0.27 0.16 0.25 0.09 0.33 0.23 0.25 0.25 0.18 0.5 0.31 0.31 0.38 1
safn2 0.18 0.26 0.17 0.18 0.23 0.14 0.21 0.27 0.25 0.2 0.24 0.23 0.15 0.09 0.18 0.21 0.17 0.18 0.19 0.38 0.56 0.47 0.44 0.49 1
safn3 0.18 0.22 0.2 0.17 0.2 0.16 0.12 0.28 0.17 0.18 0.19 0.21 0.12 0.09 0.2 0.17 0.18 0.18 0.18 0.3 0.41 0.54 0.45 0.42 0.59 1
safn4 0.19 0.29 0.28 0.28 0.38 0.16 0.15 0.27 0.22 0.27 0.3 0.17 0.14 0.05 0.21 0.16 0.24 0.13 0.14 0.35 0.38 0.41 0.67 0.5 0.55 0.57 1
SAFD 0.23 0.29 0.25 0.23 0.27 0.18 0.26 0.33 0.26 0.29 0.32 0.33 0.2 0.1 0.2 0.22 0.25 0.23 0.21 0.77 0.82 0.8 0.8 0.48 0.58 0.53 0.58 1
SAFN 0.25 0.34 0.3 0.29 0.35 0.19 0.24 0.36 0.29 0.31 0.32 0.24 0.21 0.1 0.29 0.24 0.27 0.23 0.21 0.49 0.51 0.53 0.61 0.78 0.81 0.77 0.83 0.67 1
cat ("Коефіцієнти кореляції між латентними змінними")
## Коефіцієнти кореляції між латентними змінними
model_FOC_score<-as.data.frame(model_FOC$composite_scores)
correlation(model_FOC_score, p_adjust="none")
## # Correlation Matrix (pearson-method)
## 
## Parameter1 | Parameter2 |    r |       95% CI | t(473) |         p
## ------------------------------------------------------------------
## FC         |       PRBC | 0.54 | [0.48, 0.60] |  14.04 | < .001***
## FC         |         SP | 0.33 | [0.24, 0.41] |   7.53 | < .001***
## FC         |        SAF | 0.38 | [0.30, 0.45] |   8.85 | < .001***
## PRBC       |         SP | 0.36 | [0.27, 0.43] |   8.28 | < .001***
## PRBC       |        SAF | 0.43 | [0.35, 0.50] |  10.27 | < .001***
## SP         |        SAF | 0.34 | [0.25, 0.41] |   7.76 | < .001***
## 
## p-value adjustment method: none
## Observations: 475

Бутстреп моделі

Показник HTMT (Heterotrait-Monotrait Ratio) не є показовим для моделей з латентними змінними вищого порядку, оскільки він розроблений для оцінки дискримінантної валідності між конструктами одного рівня. Інтерпретація HTMT для моделей з конструктами вищого порядку може бути неоднозначною, оскільки важко розрізнити, чи високі значення HTMT вказують на проблеми з дискримінантною валідністю, чи є результатом ієрархічної структури моделі.

Індикаторні навантаження

# Встановлення початкового значення генератора випадкових чисел для відтворюваності результатів
set.seed(1)

# Виконання бутстреп-оцінювання моделі з 1000 повторів, використовуючи  # ядра процесора
boot_estimates_FOC <- bootstrap_model(FOC, nboot = 1000,
                                      cores = parallel::detectCores())

# Це дозволяє отримати більш надійні оцінки стандартних помилок та інших # статистичних показників моделі.

# Створення зведення результатів бутстреп-оцінювання
result_FOC <- summary(boot_estimates_FOC)


# Це зведення включає бутстреп-оцінки шляхів
cat ("Бутстреп-оцінки шляхів")
## Бутстреп-оцінки шляхів
result_FOC$bootstrapped_paths%>%
  as.data.frame %>% round(3) %>%
 kable ( format = "html", table.attr = "class='table table-striped table-hover'")
Original Est. Bootstrap Mean Bootstrap SD T Stat. 2.5% CI 97.5% CI
SP -> PRBC 0.240 0.244 0.050 4.784 0.145 0.339
SP -> FC 0.122 0.123 0.045 2.690 0.029 0.207
SAF -> PRBC 0.347 0.349 0.050 6.901 0.252 0.449
SAF -> FC 0.150 0.153 0.041 3.656 0.072 0.231
PRBC -> FC 0.435 0.434 0.046 9.475 0.344 0.523
# Перегляд бутстреп-оцінок індикаторних навантажень
cat ("Бутстреп-оцінки навантажень")
## Бутстреп-оцінки навантажень
result_FOC$bootstrapped_loadings%>%
  as.data.frame %>% round(3) %>%
  kable ( format = "html", table.attr = "class='table table-striped table-hover'")
Original Est. Bootstrap Mean Bootstrap SD T Stat. 2.5% CI 97.5% CI
fc1 -> FC 0.684 0.683 0.029 23.337 0.626 0.737
fc2 -> FC 0.807 0.806 0.018 44.388 0.769 0.837
fc3 -> FC 0.853 0.852 0.015 55.855 0.821 0.879
fc4 -> FC 0.854 0.854 0.014 60.325 0.823 0.879
fc5 -> FC 0.786 0.786 0.020 40.115 0.746 0.821
fc6 -> FC 0.654 0.653 0.031 21.375 0.591 0.712
prbc1 -> PRBC 0.669 0.668 0.034 19.401 0.594 0.729
prbc2 -> PRBC 0.782 0.782 0.024 32.577 0.726 0.826
prbc3 -> PRBC 0.811 0.812 0.020 40.238 0.768 0.846
prbc4 -> PRBC 0.831 0.831 0.017 49.118 0.796 0.860
prbc5 -> PRBC 0.793 0.792 0.019 41.644 0.754 0.827
prbc6 -> PRBC 0.649 0.648 0.039 16.628 0.566 0.719
sp1 -> SP 0.644 0.641 0.037 17.172 0.562 0.712
sp2 -> SP 0.600 0.600 0.046 13.152 0.490 0.680
sp3 -> SP 0.716 0.715 0.029 24.525 0.652 0.767
sp4 -> SP 0.756 0.756 0.026 29.470 0.703 0.802
sp5 -> SP 0.815 0.815 0.017 49.271 0.781 0.845
sp6 -> SP 0.795 0.793 0.022 35.435 0.743 0.831
sp7 -> SP 0.673 0.671 0.033 20.398 0.605 0.731
SAFD -> SAF 0.909 0.908 0.013 70.593 0.878 0.928
SAFN -> SAF 0.921 0.921 0.012 78.708 0.895 0.940
safd1 -> SAFD 0.769 0.768 0.025 31.063 0.720 0.812
safd2 -> SAFD 0.818 0.817 0.023 36.004 0.768 0.858
safd3 -> SAFD 0.802 0.800 0.024 32.765 0.744 0.841
safd4 -> SAFD 0.797 0.796 0.021 37.368 0.755 0.834
safn1 -> SAFN 0.780 0.779 0.024 32.063 0.728 0.826
safn2 -> SAFN 0.807 0.806 0.023 34.969 0.758 0.846
safn3 -> SAFN 0.775 0.772 0.030 25.533 0.706 0.824
safn4 -> SAFN 0.828 0.827 0.019 43.970 0.786 0.860
# Ці оцінки показують, наскільки стабільні індикаторні навантаження при # різних вибірках.

Дискримінантна валідність

# Перегляд бутстреп-оцінок показників HTMT та довірчих інтервалів
cat ("Бутстреп оцінки HTMT")
## Бутстреп оцінки HTMT
result_FOC$bootstrapped_HTMT%>% 
    as.data.frame %>% round(3) %>%
     kable ( format = "html", table.attr = "class='table table-striped table-hover'")
Original Est. Bootstrap Mean Bootstrap SD T Stat. 2.5% CI 97.5% CI
SP -> SAF 0.390 0.390 0.052 7.449 0.278 0.486
SP -> PRBC 0.393 0.397 0.058 6.803 0.282 0.508
SP -> FC 0.359 0.359 0.053 6.825 0.258 0.460
SP -> SAFD 0.335 0.335 0.057 5.909 0.225 0.444
SP -> SAFN 0.369 0.369 0.050 7.401 0.264 0.464
SAF -> PRBC 0.517 0.521 0.051 10.126 0.418 0.615
SAF -> FC 0.447 0.451 0.051 8.769 0.345 0.550
SAF -> SAFD 1.131 1.132 0.013 86.317 1.109 1.160
SAF -> SAFN 1.132 1.133 0.014 81.675 1.108 1.163
PRBC -> FC 0.628 0.627 0.044 14.322 0.537 0.709
PRBC -> SAFD 0.474 0.475 0.051 9.242 0.368 0.571
PRBC -> SAFN 0.459 0.463 0.055 8.394 0.354 0.569
FC -> SAFD 0.370 0.370 0.051 7.299 0.272 0.464
FC -> SAFN 0.433 0.435 0.054 8.059 0.334 0.535
SAFD -> SAFN 0.833 0.834 0.044 18.969 0.739 0.913

Графік моделі з бутстреп оцінками

plot(boot_estimates_FOC)

Оцінки прямих ефектів

# 95% ДІ для прямих ефетів
result_FOC$bootstrapped_paths%>% 
    as.data.frame %>% round(3) %>%
     kable ( format = "html", table.attr = "class='table table-striped table-hover'")
Original Est. Bootstrap Mean Bootstrap SD T Stat. 2.5% CI 97.5% CI
SP -> PRBC 0.240 0.244 0.050 4.784 0.145 0.339
SP -> FC 0.122 0.123 0.045 2.690 0.029 0.207
SAF -> PRBC 0.347 0.349 0.050 6.901 0.252 0.449
SAF -> FC 0.150 0.153 0.041 3.656 0.072 0.231
PRBC -> FC 0.435 0.434 0.046 9.475 0.344 0.523

Оцінки непрямих ефектів

# Непрямі ефекти
cat ("Непрямі ефекти")
## Непрямі ефекти
model_FOC$total_indirect_effects %>% 
  as.data.frame() %>% 
  filter(rownames(.) %in% c("SP", "SAF")) %>%
  select("FC") %>% 
  round(3) %>%
  kable(digits = 3)
FC
SP 0.104
SAF 0.151
cat ("Бутстреп оцінка непрямого ефекту SAF через PRBC на FC")
## Бутстреп оцінка непрямого ефекту SAF через PRBC на FC
# Бутстреп оцінки
specific_effect_significance(boot_estimates_FOC,
                             from = "SAF",
                             through = "PRBC",
                             to = "FC",
                             alpha = 0.05)%>% 
    as.data.frame %>% setNames("Непрямий ефект SAF") %>%
  round(3) %>%
     kable ( format = "html", table.attr = "class='table table-striped table-hover'")
Непрямий ефект SAF
Original Est. 0.151
Bootstrap Mean 0.151
Bootstrap SD 0.027
T Stat. 5.667
2.5% CI 0.103
97.5% CI 0.208
cat ("Бутстреп оцінка непрямого ефекту SP через PRBC на FC")
## Бутстреп оцінка непрямого ефекту SP через PRBC на FC
specific_effect_significance(boot_estimates_FOC,
                             from = "SP",
                             through = "PRBC",
                             to = "FC",
                             alpha = 0.05)%>% 
    as.data.frame %>% setNames("Непрямий ефект SP") %>%round(3) %>%
     kable ( format = "html", table.attr = "class='table table-striped table-hover'")
Непрямий ефект SP
Original Est. 0.104
Bootstrap Mean 0.106
Bootstrap SD 0.025
T Stat. 4.223
2.5% CI 0.062
97.5% CI 0.158

Оцінки сумарних ефектів

result_FOC$bootstrapped_total_paths %>% 
    as.data.frame %>% round(3) %>%
     kable ( format = "html", table.attr = "class='table table-striped table-hover'")
Original Est. Bootstrap Mean Bootstrap SD T Stat. 2.5% CI 97.5% CI
SP -> PRBC 0.240 0.244 0.050 4.784 0.145 0.339
SP -> FC 0.226 0.229 0.046 4.905 0.138 0.314
SAF -> PRBC 0.347 0.349 0.050 6.901 0.252 0.449
SAF -> FC 0.301 0.304 0.046 6.559 0.215 0.390
PRBC -> FC 0.435 0.434 0.046 9.475 0.344 0.523

Розрахунки сумарних ефектів.

  1. Сумарний ефект SP на PRBC
    Оскільки немає непрямих ефектів для SP на PRBC, сумарний ефект дорівнює прямому ефекту: \[ \text{SP} \rightarrow \text{PRBC} = 0.240 \]

  2. Сумарний ефект SP на FC.
    Прямий ефект SP на FC:
    \[ \text{SP} \rightarrow \text{FC} = 0.122 \]

Непрямий ефект SP на FC через PRBC.
\[ \text{SP} \rightarrow \text{PRBC} \rightarrow \text{FC} = 0.240 \times 0.435 = 0.104 \]

Отже, сумарний ефект SP на FC:
\[ \text{SP} \rightarrow \text{FC} = 0.122 + 0.104 = 0.226 \]

  1. Сумарний ефект SAF на PRBC.
    Оскільки немає непрямих ефектів для SAF на PRBC, сумарний ефект дорівнює прямому ефекту: \[ \text{SAF} \rightarrow \text{PRBC} = 0.347 \]

  2. Сумарний ефект SAF на FC.
    Прямий ефект SAF на FC:
    \[ \text{SAF} \rightarrow \text{FC} = 0.150 \] Непрямий ефект SAF на FC через PRBC:
    \[ \text{SAF} \rightarrow \text{PRBC} \rightarrow \text{FC} = 0.347 \times 0.435 = 0.151 \]
    Отже, сумарний ефект SAF на FC:
    \[ \text{SAF} \rightarrow \text{FC} = 0.150 + 0.151 = 0.301 \]

  3. Сумарний ефект PRBC на FC
    Оскільки немає непрямих ефектів для PRBC на FC, сумарний ефект дорівнює прямому ефекту:
    \[ \text{PRBC} \rightarrow \text{FC} = 0.435 \]

Отримані результати показують статистичну значущість прямих та непрямих ефектів між змінними в моделі. SP та SAF мають прямий вплив на FC, але також впливають на FC опосередковано через PRBC. Ці висновки підкреслюють необхідність врахування медіаційних шляхів при аналізі впливу змінних на результуючу змінну FC.

Моделювання PLS-MGA для статі

cat ("Розподіл респондентів за статтю")
## Розподіл респондентів за статтю
cat("Кільксть юнаків")
## Кільксть юнаків
sum(df$sex==1)
## [1] 236
cat("Кільксть дівчат")
## Кільксть дівчат
sum(df$sex==2)
## [1] 239
datas_mga <-estimate_pls_mga(FOC, df$sex==1)

datas_mga%>%
  kable(digits = 2)
source target estimate group1_beta group2_beta diff group1_beta_mean group2_beta_mean pls_mga_p
SP -> PRBC SP PRBC 0.24 0.23 0.28 -0.05 0.23 0.28 0.68
SAF -> PRBC SAF PRBC 0.35 0.37 0.27 0.10 0.38 0.28 0.17
SP -> FC SP FC 0.12 0.20 0.15 0.04 0.20 0.16 0.32
SAF -> FC SAF FC 0.15 0.14 0.03 0.11 0.15 0.03 0.10
PRBC -> FC PRBC FC 0.43 0.42 0.41 0.01 0.41 0.42 0.51

Результати перевірки гіпотез.

Чи є вплив конструкту другого порядку SAF на PRBC?  Так. Вплив SAF на PRBC: β=0.35 (p<0.001).
Малий ефект (f²=0.139).

Чи є вплив SP на PRBC?
Так. Вплив SP на PRBC: β=0.24 (p<0.001).
Малий ефект (f²=0.066).

Чи є вплив PRBC на FC?
Так. Вплив PRBC на FC: β=0.44 (p<0.001).
Помірний ефект (f²=0.213).

Чи вплив SAF на FC?  Так.
Прямий вплив SAF на FC: β=0.15 (p<0.001).
Малий ефект (f²= 0.026).

Чи є вплив SP на FC?
Так. Прямий вплив SP на FC: β=0.12 (p<0.001).
Малий ефект (f²=0.019).

Чи є ефект медіації?  Так. Непрямі ефекти:  Вплив SAF на FC через PRBC: β=0.15 95% ДІ [0.10, 0.20].  Вплив SP на FC через PRBC: β=0.10 95% ДІ [0.06, 0.15].

Чи відрізнялися регресійні коефіцієнти моделі в групі чоловіків та жінок?
Ні.

PLS-MGA results: from to group1 group2 p SP -> PRBC 0.23 0.276 0.676 SAF -> PRBC 0.37 0.274 0.165 SP -> FC 0.20 0.153 0.324 SAF -> FC 0.14 0.031 0.098 PRBC -> FC 0.42 0.411 0.506

Прогнозування

Модель PLS-SEM з конструктами вищого порядку має обмеження щодо прогностичної здатності. У такому випадку рекомендується модифікувати модель одним із наступних способів:
Замінити конструкт другого порядку на одну з латентних змінних першого порядку (наприклад, використати конструкт, що вимірює сприйняття безпеки в громадських місцях у нічний час).
Обчислити композитні показники для конструктів першого порядку та інтегрувати їх у конструкт другого порядку.
Розрахувати композитний показник для конструкту другого порядку.

До моделі без безпосереднього представлення конструктів другого порядку можна застосувати показники дискримінантної валідності.

Середньоквадратична похибка (Root Mean Square Error, RMSE) є мірою середнього квадратичного кореня відхилення між прогнозованими значеннями та фактичними значеннями цільових показників. Нижче значення RMSE свідчить про вищу точність прогнозної моделі.
Середня абсолютна похибка (Mean Absolute Error, MAE) вимірює середнє абсолютне відхилення між прогнозованими значеннями та фактичними значеннями цільових показників. Подібно до RMSE, менше значення MAE вказує на вищу якість прогнозування за моделлю.

# Відбір значень композиту

dfm <- cbind(
  df[c(1:12, 21:27)],  # Об'єднуємо стовпці 1-12 та 21-27 з df
  SAF_ho = model_FOC$composite_scores[, "SAF"]  # Додаємо SAF з composite_scores і перейменовуємо на SAF_ho
)

# Визначення вимірювальної моделі
measurment_FOCm <- constructs(
  composite("FC", multi_items("fc", 1:6)),
  composite("PRBC", multi_items("prbc", 1:6)),
  composite("SP", multi_items("sp", 1:7)),
  composite("SAF_HO", single_item("SAF_ho")))


# Визначення структурної моделі
structural_FOCm <- relationships(
  paths(from = c("SP", "SAF_HO"), to = c("PRBC", "FC")),
  paths(from = "PRBC", to = "FC")
)


# Оцінка моделі
FOCm <- estimate_pls(
  data = dfm,
  measurement_model = measurment_FOCm,
  structural_model = structural_FOCm
)
## Generating the seminr model
## All 475 observations are valid.
# Підсумок моделі
model_FOCm <- summary(FOCm)

cat("Оцінки шляхів та коефіцієнт детермінації R²")
## Оцінки шляхів та коефіцієнт детермінації R²
model_FOCm$paths%>% as.data.frame() %>% round (2) %>% kable(format = "html", table.attr = "class='table table-striped table-hover'")
PRBC FC
R^2 0.23 0.33
AdjR^2 0.23 0.33
SP 0.24 0.12
SAF_HO 0.35 0.15
PRBC NA 0.43
cat("Величина ефекту f²")
## Величина ефекту f²
model_FOCm$fSquare %>% round (2) %>% kable ( format = "html", table.attr = "class='table table-striped table-hover'")
SP SAF_HO PRBC FC
SP 0 0 0.07 0.02
SAF_HO 0 0 0.14 0.03
PRBC 0 0 0.00 0.21
FC 0 0 0.00 0.00
# Індикаторні навантаження
cat("Індикаторні навантаження")
## Індикаторні навантаження
model_FOCm$loadings%>%
  as.data.frame() %>%
  round(2) %>%
  mutate(across(everything(), ~replace(., . == 0, ""))) %>%
  kable(format = "html", 
        table.attr = "class='table table-striped table-hover'")
SP SAF_HO PRBC FC
fc1 0.68
fc2 0.81
fc3 0.85
fc4 0.85
fc5 0.79
fc6 0.65
prbc1 0.67
prbc2 0.78
prbc3 0.81
prbc4 0.83
prbc5 0.79
prbc6 0.65
sp1 0.64
sp2 0.6
sp3 0.72
sp4 0.76
sp5 0.82
sp6 0.8
sp7 0.67
SAF_ho 1
# Дискримінантна валідність
cat("Показники критерію Форнелла - Лакера")
## Показники критерію Форнелла - Лакера
# Перегляд показників критерію Форнелла - Лакера
model_FOCm$validity$fl_criteria%>%
  as.data.frame() %>%
  round (2)%>% kable ( format = "html", table.attr = "class='table table-striped table-hover'")
SP SAF_HO PRBC FC
SP 0.72 NA NA NA
SAF_HO 0.34 1.00 NA NA
PRBC 0.36 0.43 0.76 NA
FC 0.33 0.38 0.54 0.78
cat("Показники HTMT")
## Показники HTMT
# Перегляд показників HTMT
model_FOCm$validity$htmt %>%
  as.data.frame() %>%
  round (2)%>% kable ( format = "html", table.attr = "class='table table-striped table-hover'")
SP SAF_HO PRBC FC
SP NA NA NA NA
SAF_HO 0.35 NA NA NA
PRBC 0.39 0.46 NA NA
FC 0.36 0.40 0.63 NA
# Шляхова діаграма з оцінками
plot(FOCm)
save_plot("myfigure.svg")
# Генерація прогнозів моделі 
predict_FOCm_model <- predict_pls(model = FOCm)

# Підсумок результатів прогнозування
sum_predict_FOCm_model <- summary(predict_FOCm_model)

cat("Показники якості прогнозування моделі PLS-SEM на навчальній вибірці")
## Показники якості прогнозування моделі PLS-SEM на навчальній вибірці
sum_predict_FOCm_model$PLS_in_sample %>% kable ( format = "html", table.attr = "class='table table-striped table-hover'")
prbc1 prbc2 prbc3 prbc4 prbc5 prbc6 fc1 fc2 fc3 fc4 fc5 fc6
RMSE 0.6737817 0.6589106 0.6591351 0.7070404 0.7484609 0.7177771 0.8164685 0.8128849 0.8269701 0.7949079 0.7554603 0.8521296
MAE 0.5108545 0.5277708 0.5053371 0.5605464 0.6167512 0.5535917 0.6647824 0.6556635 0.6729464 0.6388717 0.6132921 0.7102945
cat("Показники якості прогнозування моделі PLS-SEM на тестовій вибірці")
## Показники якості прогнозування моделі PLS-SEM на тестовій вибірці
sum_predict_FOCm_model$PLS_out_of_sample %>% kable ( format = "html", table.attr = "class='table table-striped table-hover'")
prbc1 prbc2 prbc3 prbc4 prbc5 prbc6 fc1 fc2 fc3 fc4 fc5 fc6
RMSE 0.6774498 0.6631619 0.6635589 0.7118879 0.7534235 0.7216758 0.8211583 0.8186060 0.8331349 0.8009320 0.760874 0.8568005
MAE 0.5135520 0.5308854 0.5084550 0.5641071 0.6205297 0.5565335 0.6685516 0.6603403 0.6780503 0.6436531 0.617480 0.7142588
cat("Показники якості прогнозування лінійної моделі на навчальній вибірці")
## Показники якості прогнозування лінійної моделі на навчальній вибірці
sum_predict_FOCm_model$LM_in_sample %>% kable ( format = "html", table.attr = "class='table table-striped table-hover'")
prbc1 prbc2 prbc3 prbc4 prbc5 prbc6 fc1 fc2 fc3 fc4 fc5 fc6
RMSE 0.6046047 0.6141250 0.6023246 0.6368931 0.6609471 0.6683838 0.7438402 0.7948399 0.7976446 0.7692365 0.706828 0.8207500
MAE 0.4776748 0.5034119 0.4710612 0.5047472 0.5363382 0.5293913 0.5854287 0.6405621 0.6505793 0.6231696 0.564842 0.6695958
cat("Показники якості прогнозування лінійної моделі на тестовій вибірці")
## Показники якості прогнозування лінійної моделі на тестовій вибірці
sum_predict_FOCm_model$LM_out_of_sample %>% kable ( format = "html", table.attr = "class='table table-striped table-hover'")
prbc1 prbc2 prbc3 prbc4 prbc5 prbc6 fc1 fc2 fc3 fc4 fc5 fc6
RMSE 0.6279278 0.6359467 0.6245665 0.6605005 0.6835111 0.6924792 0.7701142 0.8232236 0.8258277 0.7970692 0.7320589 0.8499816
MAE 0.4947019 0.5207297 0.4875028 0.5224367 0.5543517 0.5478615 0.6053780 0.6628171 0.6728880 0.6448358 0.5841450 0.6927241
# Розподіл залишків прогнозних значень
par(mfrow=c(1,6))
plot(sum_predict_FOCm_model, indicator="fc1")
plot(sum_predict_FOCm_model, indicator="fc2")
plot(sum_predict_FOCm_model, indicator="fc3")
plot(sum_predict_FOCm_model, indicator="fc4")
plot(sum_predict_FOCm_model, indicator="fc5")
plot(sum_predict_FOCm_model, indicator="fc6")

par(mfrow=c(1,1))

Висновки

Показники моделі, що пояснювали страх перед злочиністю, були задовільними. Конвернгентна та дискримінантна валідність підтримувалися. Внутрішня узгодженість вимірювань була хорошою.

Конструкт другого порядку SAF мав малий додатній вплив на PRBC з малим ефектом: підвищене сприйняття страху в громадських місцях (як вдень, так і вночі) було пов’язане з вищою суб’єктивною оцінкою ризику віктимізації. Конструкт SP також мав додатній вплив на PRBC з малим ефектом: вище сприйняття проблем безпеки у районі проживання пов’язане з вищою суб’єктивною оцінкою ризику віктимізації. PRBC мав помірний прямий вплив на FC: вища суб’єктивна оцінка ризику віктимізації була пов’язана з вищим страхом перед злочістю.
SAF та SP мали прямий додатній вплив на FC з малим ефектом.

І прямі, і непрямі ефекти між екзогенними (SAF, SP) та ендогенною (FC) змінними через медіатор (PRBC) були значущими, що вказувало на часткову медіацію (partial mediation). Іншими словами, частина впливу SAF та SP на FC опосередковувалася через PRBC.

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

Моделювання страху перед злочиністю за допомогою методу часткових найменших квадратів у структурних рівняннях можна порівняти з іншим підходом, де індекси розраховуються як середнє арифметичне. Детальніше про інший підход можна знайти за таким посиланням. https://rpubs.com/abova/foc2016m.

Література

  1. Hair, J. F., Hult, G. T. M., Ringle, C. M., Sarstedt, M., Danks, N. P., & Ray, S. (2021). Partial Least Squares Structural Equation Modeling (PLS-SEM) Using R. Springer International Publishing. https://doi.org/10.1007/978-3-030-80519-7

Додаткові матеріали

Анкета та частина масиву, на якому здійснений аналіз, знаходиться за посиланням: https://osf.io/4mxje.

knitr::include_graphics("Q1.png")

knitr::include_graphics("Q2.png")