83 lines
2.6 KiB
Plaintext
83 lines
2.6 KiB
Plaintext
---
|
|
title: "Mixed ANOVA Analysis for Domain Means"
|
|
author: "Irina"
|
|
date: "`r Sys.Date()`"
|
|
output:
|
|
html_document:
|
|
toc: true
|
|
toc_float: true
|
|
code_folding: hide
|
|
theme: flatly
|
|
highlight: tango
|
|
fig_width: 10
|
|
fig_height: 6
|
|
---
|
|
|
|
```{r setup, include=FALSE}
|
|
knitr::opts_chunk$set(echo = FALSE, warning = FALSE, message = FALSE)
|
|
```
|
|
|
|
# Introduction
|
|
|
|
This analysis examines domain-level differences in mean scores across time periods using a mixed ANOVA design. The analysis focuses on four domains (Preferences, Personality, Values, Life) across two time periods (Past, Future) with a between-subjects factor (TEMPORAL_DO).
|
|
|
|
# Data Preparation and Setup
|
|
|
|
```{r libraries}
|
|
library(tidyverse)
|
|
library(ez)
|
|
library(car)
|
|
library(nortest) # For normality tests
|
|
library(emmeans) # For post-hoc comparisons
|
|
library(purrr) # For map functions
|
|
library(effsize) # For Cohen's d calculations
|
|
library(ggplot2) # For plotting
|
|
|
|
options(scipen = 999)
|
|
options(contrasts = c("contr.sum", "contr.poly"))
|
|
|
|
setwd("C:/Users/irina/Documents/DND/EOHI/eohi1")
|
|
```
|
|
|
|
```{r data-loading}
|
|
# Read the data
|
|
data <- read.csv("exp1.csv")
|
|
|
|
required_vars <- c("NPast_mean_pref", "NPast_mean_pers", "NPast_mean_val", "NPast_mean_life",
|
|
"NFut_mean_pref", "NFut_mean_pers", "NFut_mean_val", "NFut_mean_life")
|
|
|
|
# Define domain mapping
|
|
domain_mapping <- data.frame(
|
|
variable = c("NPast_mean_pref", "NPast_mean_pers", "NPast_mean_val", "NPast_mean_life",
|
|
"NFut_mean_pref", "NFut_mean_pers", "NFut_mean_val", "NFut_mean_life"),
|
|
time = c(rep("Past", 4), rep("Future", 4)),
|
|
domain = rep(c("Preferences", "Personality", "Values", "Life"), 2),
|
|
stringsAsFactors = FALSE
|
|
)
|
|
```
|
|
|
|
```{r data-reshaping}
|
|
long_data <- data %>%
|
|
select(pID, ResponseId, TEMPORAL_DO, all_of(required_vars)) %>%
|
|
pivot_longer(
|
|
cols = all_of(required_vars),
|
|
names_to = "variable",
|
|
values_to = "MEAN_DIFFERENCE"
|
|
) %>%
|
|
left_join(domain_mapping, by = "variable") %>%
|
|
# Convert to factors with proper levels (note: columns are 'time' and 'domain' from mapping)
|
|
mutate(
|
|
TIME = factor(time, levels = c("Past", "Future")),
|
|
DOMAIN = factor(domain, levels = c("Preferences", "Personality", "Values", "Life")),
|
|
pID = as.factor(pID),
|
|
TEMPORAL_DO = as.factor(TEMPORAL_DO)
|
|
) %>%
|
|
# Select final columns and remove any rows with missing values
|
|
select(pID, ResponseId, TEMPORAL_DO, TIME, DOMAIN, MEAN_DIFFERENCE) %>%
|
|
filter(!is.na(MEAN_DIFFERENCE))
|
|
|
|
# Create clean dataset for analysis (fixing the reference issue)
|
|
long_data_clean <- long_data
|
|
```
|
|
|