Využití nástrojů AI v psychologii

Využití AI při statistické analýze dat

Instrukce pro přednášku

Na přednášce budeme společně analyzovat data, proto si prosím s sebou přineste notebook. Nainstalujte si prosím do svého počítače R a RStudio z níže uvedeného odkazu a stáhněte si dataset z odkazu.


Pouze pro jistotu, pokud nemáte účet na Copilotovi nebo Open AI, založte si ho prosím 😊




Fiktivní DP: Vliv psychologické flexibility na duševní zdraví

V rámci své diplomové práce zkoumáte, zda má psychologická flexibilita vliv na duševní zdraví dospělým osob v Česku. Máte podrobně nastudovanou literaturu, stanové výzkumné otázky a hypotézy. K operacionalizaci duševního zdraví jste si vybrali Depression Anxiety Stress Scela (DASS-21) a Škálu spokojenosti se životem (SWLS). Zjišťujete však, že v současné době není v češtině dostupný žádný dotazník psychologické flexibility. Vaším prvním krokem je tak překlad dotazníku Comprehensive assessment of Acceptance and Commitment Therapy processes (CompACT), který jste si vybrali k operacionalizaci psychologické flexibility.


Psychologická flexibilita

Psychologická flexibilita je schopnost být přítomný/á, otevřený/á prožitům a dělat to, na čem nám záleží. CompACT dotazník má tři škály (otevřenost vůči zkušenosti, vědomé chování, hodnotné jednání), které jsou zasazené do kontextu Triflex modelu:


Základní psychometrické charakteristiky – společná analýza

Máte posbíraná data. Než se ale pustíte do regresní analýzy, je nutné ověřit alespoň základní psychometrické vlastnosti nově přeloženého dotazníku – faktorovou strukturu a reliabilitu.

Kód pro CFA a McDonaldovu omegu

# Načtení balíčků pomocí kódu
library("lavaan")
library("psych")


# Definuje model dotazníku
comp.model <- '
openness =~ OE2R + OE4R + OE6R + OE8R + OE11R + OE13 + OE15R + OE18R + OE20 + OE22
awareness =~ BA3R + BA9R + BA12R + BA16R + BA19R
commitment =~ VA1 + VA5 + VA7 + VA10 + VA14 + VA17 + VA21 + VA23'

# Provede analýzu modelu
comp.fit <- cfa(comp.model, data=Dataset, estimator = "MLM")

# Ukáže výsledky CFA
summary(comp.fit, fit.measures=TRUE, standardized=TRUE)

# Modifikace modelu s MI > 10 (seřazené)
all_indices <- modindices(comp.fit)
sort_indices <- all_indices[order(-all_indices$mi),]
relevant_indices <- sort_indices[sort_indices$mi > 10,]
print(relevant_indices)

# Finální model po sérii úprav (viz galerie)
comp.model <- '
openness =~ OE2R + OE8R + OE11R + OE15R + OE22
awareness =~ BA3R + BA9R + BA12R + BA16R + BA19R
commitment =~ VA1 + VA7 + VA10 + VA14 + VA17 + VA21 + VA23

VA7 ~~ VA14
VA10 ~~ VA21
BA16R ~~ BA19R
BA3R ~~ BA12R
BA3R ~~ BA16R
OE2R ~~ OE15R'

# McDonald's omega (vnitřní konzistence)
OE_omega <- Dataset[ , c("OE2R", "OE8R", "OE11R", "OE15R", "OE22")]
OE_omega_results <- psych::omega(OE_omega, nfactors = 1)
print(OE_omega_results)

BA_omega <- Dataset[ , c("BA3R", "BA9R", "BA12R", "BA16R", "BA19R")]
BA_omega_results <- psych::omega(BA_omega, nfactors = 1)
print(BA_omega_results)

VA_omega <- Dataset[ , c("VA1", "VA7", "VA10", "VA14", "VA17", "VA21", "VA23")]
VA_omega_results <- psych::omega(VA_omega, nfactors = 1)
print(VA_omega_results)




Samostatný úkol

Vaším úkolem v druhé části přednášky bude za pomoci AI zjistit, zda faktory psychologické flexibility predikují aspekty duševního zdraví. K analýze dat použijte robustní regresi.

Prompty, finální verze vašich kódů, výstupy z RStudia a vaše závěry uložte do textového souboru a nahrajte do odevzdávárny. Kódy, ke kterým jsem s pomocí AI došel já, se vám zobrazí při rozkliknutí klíče.


Zadání

1. část

Jaký je rozdíl mezi lineární regresí a robustní regresí? Pokud nevíte, co je to lineární regrese, zkuste se zeptat AI.


2. část

Než se pustíte do analýzy, je nutné sečíst skóry pro jednotlivé škály, protože ty v datasetu nejsou. Spuštění kódu níže v RStudiu spočítá a vytvoří tyto proměnné:

Proměnná

Název

OE

Vědomé chování

BA

VA

Deprese

D

Úzkost

A

Stres

S

Well-being

Kód pro sečtení položek do skórů subškál

OE_c <- c("OE2R", "OE8R", "OE11R", "OE15R", "OE22")
OE <- rowSums(Dataset[ , OE_c])
BA_c <- c("BA3R", "BA9R", "BA12R", "BA16R", "BA19R")
BA <- rowSums(Dataset[ , BA_c])
VA_c <- c("VA1", "VA7", "VA10", "VA14", "VA17", "VA21", "VA23")
VA <- rowSums(Dataset[ , VA_c])
D_c <- c("D3", "D5", "D10", "D13", "D16", "D17", "D21")
D <- rowSums(Dataset[ , D_c])
A_c <- c("A2", "A4", "A7", "A9", "A15", "A19", "A20")
A <- rowSums(Dataset[ , A_c])
S_c <- c("S1", "S6", "S8", "S11", "S12", "S14", "S18")
S <- rowSums(Dataset[ , S_c])
WB_c <- c("SWL1", "SWL2", "SWL3", "SWL4", "SWL5")
WB <- rowSums(Dataset[ , WB_c])


3. část

Spočítejte základní deskriptivní statistiky pro výše uvedené proměnné a věk respondentů. Zjistěte, jaké mají zastoupení jednotlivá pohlaví mezi respondenty.

Kód pro deskriptivní statistiky

# Načtení balíčku
library("dplyr")

# Deskriptivní statistiky – vytvoří tabulku v pravém horním okně (Environment)
desc_stats <- Dataset %>%
  summarise(
    mean_OE = mean(OE, na.rm = TRUE),
    sd_OE = sd(OE, na.rm = TRUE),
    mean_BA = mean(BA, na.rm = TRUE),
    sd_BA = sd(BA, na.rm = TRUE),
    mean_VA = mean(VA, na.rm = TRUE),
    sd_VA = sd(VA, na.rm = TRUE),
    mean_D = mean(D, na.rm = TRUE),
    sd_D = sd(D, na.rm = TRUE),
    mean_A = mean(A, na.rm = TRUE),
    sd_A = sd(A, na.rm = TRUE),
    mean_S = mean(S, na.rm = TRUE),
    sd_S = sd(S, na.rm = TRUE),
    mean_WB = mean(WB, na.rm = TRUE),
    sd_WB = sd(WB, na.rm = TRUE),
    mean_vek = mean(Vek, na.rm = TRUE),
    sd_vek = sd(Vek, na.rm = TRUE),
  )

# Vytvoří frekvenční tabulku s pohlavími
freq_table <- Dataset %>%
  group_by(Pohlavi) %>%
  summarise(Frequency = n())

TIP

Sečíst skóry, získat deskriptivní statistiky a vypočítat vnitřní konzistenci je snažší v drag and drop aplikacích, jako je SPSS, JASP, nebo jamovi.


4. část

Které balíčky pro R lze využít pro robustní regresi?

Jeden z balíčků si vyberte a nechte si vygenerovat kód, pomocí kterého robustní regresi provedete.

Porovnejte výsledky s lineární regresí. Rozdíl v kódech je minimální, AI vám poradí.

Kód pro regrese

# Načíst balíček (pokud nemáte stažené, je nutné nejprve stáhnout)
library("robustbase")

# Robustní regrese (predikce depresivity)
model_d <- lmrob(D ~ OE + BA + VA)

# Ukáže výsledek regrese
summary(model_d)

Stejným způsobem lze postupovat u dalších modelů, změní
se pouze predikovaná proměnná D –> A, S, nebo WB.
Nezapomeňte změnit také název modelu pro lepší přehlednost.
Lineární regresi provedete změnou funkce z lmrob –> lm.


5. část

Za pomoci AI zjistěte, co vám říkají jednotlivé části výstupů robustní regrese. Výsledky analýz zpracujte tak, jako byste psali report výsledků výzkumu.

Kód pro export outputu

depression <- capture.output(summary(model_d))
writeLines(depression, "depression.txt")


V pravém spodním okně klikněte na Home, kde je soubor uložený.
Zaklikněte políčko souboru, poté klikněte na ozubené kolečko v liště a klikněte na Move.
Poté si vyberte koncové umístění dokumentu ve vašem PC.



Odevzdávárna pro samostatný úkol



Obrázky pro přednášku



Zapojení se do výzkum

Na závěr bych vás rád poprosil o zapojení se do výzkumu, jehož cílem je ověřit psychometrické vlastnosti dalších zahraničních metod posuzujících psychologickou flexibilitu. Momentálně nám chybí zejména muži, ale každé vyplnění je pro nás velmi cenné. Předem děkujeme všem za zapojení se.