eohi/.history/eohi2/reliability analysis_20251028141004.r
2025-12-23 15:47:09 -05:00

91 lines
5.1 KiB
R
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

setwd("C:/Users/irina/Documents/DND/EOHI/eohi2")
options(scipen = 999)
df <- read.csv("eohi2.csv")
library(psych)
library(dplyr)
library(knitr)
# variable sets
present_pref_vars <- c("present_pref_read", "present_pref_music", "present_pref_tv", "present_pref_nap", "present_pref_travel")
past_5_pref_vars <- c("past_5_pref_read", "past_5_pref_music", "past_5_pref_tv", "past_5_pref_nap", "past_5_pref_travel")
past_10_pref_vars <- c("past_10_pref_read", "past_10_pref_music", "past_10_pref_tv", "past_10_pref_nap", "past_10_pref_travel")
fut_5_pref_vars <- c("fut_5_pref_read", "fut_5_pref_music", "fut_5_pref_tv", "fut_5_pref_nap", "fut_5_pref_travel")
fut_10_pref_vars <- c("fut_10_pref_read", "fut_10_pref_music", "fut_10_pref_tv", "fut_10_pref_nap", "fut_10_pref_travel")
present_pers_vars <- c("present_pers_extravert", "present_pers_critical", "present_pers_dependable", "present_pers_anxious", "present_pers_complex")
past_5_pers_vars <- c("past_5_pers_extravert", "past_5_pers_critical", "past_5_pers_dependable", "past_5_pers_anxious", "past_5_pers_complex")
past_10_pers_vars <- c("past_10_pers_extravert", "past_10_pers_critical", "past_10_pers_dependable", "past_10_pers_anxious", "past_10_pers_complex")
fut_5_pers_vars <- c("fut_5_pers_extravert", "fut_5_pers_critical", "fut_5_pers_dependable", "fut_5_pers_anxious", "fut_5_pers_complex")
fut_10_pers_vars <- c("fut_10_pers_extravert", "fut_10_pers_critical", "fut_10_pers_dependable", "fut_10_pers_anxious", "fut_10_pers_complex")
present_val_vars <- c("present_val_obey", "present_val_trad", "present_val_opinion", "present_val_performance", "present_val_justice")
past_5_val_vars <- c("past_5_val_obey", "past_5_val_trad", "past_5_val_opinion", "past_5_val_performance", "past_5_val_justice")
past_10_val_vars <- c("past_10_val_obey", "past_10_val_trad", "past_10_val_opinion", "past_10_val_performance", "past_10_val_justice")
fut_5_val_vars <- c("fut_5_val_obey", "fut_5_val_trad", "fut_5_val_opinion", "fut_5_val_performance", "fut_5_val_justice")
fut_10_val_vars <- c("fut_10_val_obey", "fut_10_val_trad", "fut_10_val_opinion", "fut_10_val_performance", "fut_10_val_justice")
all_scales <- list(
"Present_Preferences" = present_pref_vars,
"Past5_Preferences" = past_5_pref_vars,
"Past10_Preferences" = past_10_pref_vars,
"Fut5_Preferences" = fut_5_pref_vars,
"Fut10_Preferences" = fut_10_pref_vars,
"Present_Personality" = present_pers_vars,
"Past5_Personality" = past_5_pers_vars,
"Past10_Personality" = past_10_pers_vars,
"Fut5_Personality" = fut_5_pers_vars,
"Fut10_Personality" = fut_10_pers_vars,
"Present_Values" = present_val_vars,
"Past5_Values" = past_5_val_vars,
"Past10_Values" = past_10_val_vars,
"Fut5_Values" = fut_5_val_vars,
"Fut10_Values" = fut_10_val_vars
)
# reliability
reliability_results <- data.frame(Scale=character(), Alpha=double(), Omega=double(), stringsAsFactors=FALSE)
for(scale_name in names(all_scales)) {
vars <- all_scales[[scale_name]]
if(!all(vars %in% names(df))) next
dat <- df[, vars]
alpha_val <- tryCatch({psych::alpha(dat)$total$raw_alpha}, error=function(e) NA)
omega_val <- tryCatch({psych::omega(dat, nfactors=1)$omega.tot}, error=function(e) NA)
reliability_results <- rbind(reliability_results, data.frame(Scale=scale_name, Alpha=alpha_val, Omega=omega_val))
}
print(kable(reliability_results, digits=3, caption="Internal Consistency (Alpha & Omega)"))
# ICC test-retest
df$pref_present <- rowMeans(df[, present_pref_vars], na.rm=TRUE)
df$pref_past5 <- rowMeans(df[, past_5_pref_vars], na.rm=TRUE)
df$pref_past10 <- rowMeans(df[, past_10_pref_vars], na.rm=TRUE)
df$pref_fut5 <- rowMeans(df[, fut_5_pref_vars], na.rm=TRUE)
df$pref_fut10 <- rowMeans(df[, fut_10_pref_vars], na.rm=TRUE)
pref_mat <- df[, c("pref_present","pref_past5","pref_past10","pref_fut5","pref_fut10")]
df$pers_present <- rowMeans(df[, present_pers_vars], na.rm=TRUE)
df$pers_past5 <- rowMeans(df[, past_5_pers_vars], na.rm=TRUE)
df$pers_past10 <- rowMeans(df[, past_10_pers_vars], na.rm=TRUE)
df$pers_fut5 <- rowMeans(df[, fut_5_pers_vars], na.rm=TRUE)
df$pers_fut10 <- rowMeans(df[, fut_10_pers_vars], na.rm=TRUE)
pers_mat <- df[, c("pers_present","pers_past5","pers_past10","pers_fut5","pers_fut10")]
df$val_present <- rowMeans(df[, present_val_vars], na.rm=TRUE)
df$val_past5 <- rowMeans(df[, past_5_val_vars], na.rm=TRUE)
df$val_past10 <- rowMeans(df[, past_10_val_vars], na.rm=TRUE)
df$val_fut5 <- rowMeans(df[, fut_5_val_vars], na.rm=TRUE)
df$val_fut10 <- rowMeans(df[, fut_10_val_vars], na.rm=TRUE)
val_mat <- df[, c("val_present","val_past5","val_past10","val_fut5","val_fut10")]
icc_pref <- psych::ICC(pref_mat)
icc_pers <- psych::ICC(pers_mat)
icc_val <- psych::ICC(val_mat)
print(kable(icc_pref$results["Single_raters_absolute", , drop=FALSE], caption="TestRetest ICC: Preferences"))
print(kable(icc_pers$results["Single_raters_absolute", , drop=FALSE], caption="TestRetest ICC: Personality"))
print(kable(icc_val$results["Single_raters_absolute", , drop=FALSE], caption="TestRetest ICC: Values"))