eohi/eohi3/DA00_fmaxVALS.r

149 lines
4.4 KiB
R

library(SuppDists)
library(dplyr)
library(tidyr)
setwd("/home/ladmin/Documents/DND/EOHI/eohi3")
between_vars <- c("perspective", "temporalDO")
within_vars_MEAN <- c(
"past_pref_MEAN", "past_pers_MEAN", "past_val_MEAN",
"fut_pref_MEAN", "fut_pers_MEAN", "fut_val_MEAN"
)
within_vars_DGEN <- c(
"past_pref_DGEN", "past_pers_DGEN", "past_val_DGEN",
"fut_pref_DGEN", "fut_pers_DGEN", "fut_val_DGEN"
)
df <- read.csv("eohi3.csv", stringsAsFactors = FALSE, check.names = FALSE, na.strings = "NA")
anova_data_MEAN <- df %>%
select(pID, all_of(between_vars), all_of(within_vars_MEAN)) %>%
filter(!is.na(perspective), perspective != "",
!is.na(temporalDO), temporalDO != "")
long_data_MEAN <- anova_data_MEAN %>%
pivot_longer(
cols = all_of(within_vars_MEAN),
names_to = "variable",
values_to = "MEAN_SCORE"
) %>%
mutate(
time = ifelse(grepl("^past_", variable), "past", "fut"),
domain = case_when(
grepl("_pref_MEAN$", variable) ~ "pref",
grepl("_pers_MEAN$", variable) ~ "pers",
grepl("_val_MEAN$", variable) ~ "val",
TRUE ~ NA_character_
)
) %>%
mutate(
TIME = factor(time, levels = c("past", "fut")),
DOMAIN = factor(domain, levels = c("pref", "pers", "val")),
perspective = factor(perspective),
temporalDO = factor(temporalDO)
) %>%
select(pID, perspective, temporalDO, TIME, DOMAIN, MEAN_SCORE) %>%
filter(!is.na(MEAN_SCORE))
cell_vars_MEAN <- long_data_MEAN %>%
group_by(perspective, temporalDO, TIME, DOMAIN) %>%
summarise(
n = n(),
variance = var(MEAN_SCORE, na.rm = TRUE),
.groups = "drop"
)
fmax_by_cell_MEAN <- cell_vars_MEAN %>%
group_by(TIME, DOMAIN) %>%
summarise(
Fmax_observed = max(variance, na.rm = TRUE) / min(variance, na.rm = TRUE),
df_min = min(n) - 1L,
.groups = "drop"
)
k <- 4
fmax_table_MEAN <- fmax_by_cell_MEAN %>%
rowwise() %>%
mutate(
alpha_0.05 = SuppDists::qmaxFratio(0.95, df = df_min, k = k),
alpha_0.01 = SuppDists::qmaxFratio(0.99, df = df_min, k = k)
) %>%
ungroup() %>%
mutate(
Fmax_observed = round(Fmax_observed, 4),
alpha_0.05 = round(alpha_0.05, 4),
alpha_0.01 = round(alpha_0.01, 4)
) %>%
select(TIME, DOMAIN, Fmax_observed, alpha_0.05, alpha_0.01)
# ---- MEAN: Print observed Hartley ratios ----
cat("\n--- Hartley ratios (MEAN) ---\n")
fmax_table_MEAN %>%
mutate(across(where(is.numeric), ~ format(round(., 4), nsmall = 4))) %>%
print()
# ---- DGEN: Observed Hartley ratios ----
anova_data_DGEN <- df %>%
select(pID, all_of(between_vars), all_of(within_vars_DGEN)) %>%
filter(!is.na(perspective), perspective != "",
!is.na(temporalDO), temporalDO != "")
long_data_DGEN <- anova_data_DGEN %>%
pivot_longer(
cols = all_of(within_vars_DGEN),
names_to = "variable",
values_to = "DGEN_SCORE"
) %>%
mutate(
time = ifelse(grepl("^past_", variable), "past", "fut"),
domain = case_when(
grepl("_pref_DGEN$", variable) ~ "pref",
grepl("_pers_DGEN$", variable) ~ "pers",
grepl("_val_DGEN$", variable) ~ "val",
TRUE ~ NA_character_
)
) %>%
mutate(
TIME = factor(time, levels = c("past", "fut")),
DOMAIN = factor(domain, levels = c("pref", "pers", "val")),
perspective = factor(perspective),
temporalDO = factor(temporalDO)
) %>%
select(pID, perspective, temporalDO, TIME, DOMAIN, DGEN_SCORE) %>%
filter(!is.na(DGEN_SCORE))
cell_vars_DGEN <- long_data_DGEN %>%
group_by(perspective, temporalDO, TIME, DOMAIN) %>%
summarise(
n = n(),
variance = var(DGEN_SCORE, na.rm = TRUE),
.groups = "drop"
)
fmax_by_cell_DGEN <- cell_vars_DGEN %>%
group_by(TIME, DOMAIN) %>%
summarise(
Fmax_observed = max(variance, na.rm = TRUE) / min(variance, na.rm = TRUE),
df_min = min(n) - 1L,
.groups = "drop"
)
fmax_table_DGEN <- fmax_by_cell_DGEN %>%
rowwise() %>%
mutate(
alpha_0.05 = SuppDists::qmaxFratio(0.95, df = df_min, k = k),
alpha_0.01 = SuppDists::qmaxFratio(0.99, df = df_min, k = k)
) %>%
ungroup() %>%
mutate(
Fmax_observed = round(Fmax_observed, 4),
alpha_0.05 = round(alpha_0.05, 4),
alpha_0.01 = round(alpha_0.01, 4)
) %>%
select(TIME, DOMAIN, Fmax_observed, alpha_0.05, alpha_0.01)
cat("\n--- Hartley ratios (DGEN) ---\n")
fmax_table_DGEN %>%
mutate(across(where(is.numeric), ~ format(round(., 4), nsmall = 4))) %>%
print()