library(tidyverse) library(ggpubr) library(effsize) ###First part of RCT firstRun <- read.csv("[INSERT firstRun.csv PATH HERE") firstRun <- firstRun %>% mutate(unnormalizedFatigueDiff = fatigueStateRawScore2 - fatigueStateRawScore) firstRun <- firstRun %>% mutate(unnormalizedAnxietyDiff = Points..postAnxiety. - Points..preAnxiety.) pmrFirst <- firstRun %>% filter(Experiment..anxietyReduction. == "PMR") visualizationFirst <- firstRun %>% filter(Experiment..anxietyReduction. == "visualization") controlFirst <- firstRun %>% filter(gotControl == 1) t.test(pmrFirst$unnormalizedAnxietyDiff, y = visualizationFirst$unnormalizedAnxietyDiff) t.test(unnormalizedFatigueDiff ~ gotControl, data = firstRun) t.test(unnormalizedAnxietyDiff ~ gotControl, data = firstRun) gghistogram(firstRun, x = "Points..preAnxiety.", y = "..count..", xlab = "Unnormalized anxiety score (Range: 0-16)", add = "median", palette = "jco", bins = 10 ) ####Analyze new high anxiety-only data##### newHighAnxietyData <- read.csv("INSERT newHighAnxietyData.csv PATH HERE") #Adding columns for analysis newHighAnxietyData <- newHighAnxietyData %>% mutate(gad7NormalizedScore = gad7 / 21, sleepQualityNormalizedScore = sleepQuality / 4) newHighAnxietyData <- newHighAnxietyData %>% mutate(fatigueDiff = fatigueStateNormalizedScore2 - fatigueStateNormalizedScore) newHighAnxietyData <- newHighAnxietyData %>% mutate(anxietyDiff = postAnxietyNormalized - preAnxietyNormalized) newHighAnxietyData <- newHighAnxietyData %>% mutate(unnormalizedFatigueDiff = fatigueStateRawScore2 - fatigueStateRawScore) newHighAnxietyData <- newHighAnxietyData %>% mutate(unnormalizedAnxietyDiff = Points..postAnxiety. - Points..preAnxiety.) #Plot new distribution gghistogram(newHighAnxietyData, x = "Points..preAnxiety.", y = "..count..", xlab = "Unnormalized anxiety score (Range: 0-16)", add = "median", palette = "jco", bins = 10 ) ###Q: Did fatigue drop in the randomized experiment? t.test(unnormalizedFatigueDiff ~ gotControl, data = newHighAnxietyData) cohen.d(newHighAnxietyData$unnormalizedFatigueDiff,newHighAnxietyData$gotControl) ggboxplot(newHighAnxietyData, x = "gotControl", y = "unnormalizedFatigueDiff", color = "gotControl", palette = c("#00AFBB", "#E7B800"), ylab = "Change in fatigue", xlab = "gotControl") #did anxiety drop between groups? t.test(unnormalizedAnxietyDiff ~ gotControl, data = newHighAnxietyData) cohen.d(newHighAnxietyData$unnormalizedAnxietyDiff,newHighAnxietyData$gotControl) ggboxplot(newHighAnxietyData, x = "gotControl", y = "unnormalizedAnxietyDiff", color = "gotControl", palette = c("#00AFBB", "#E7B800"), ylab = "Change in anxiety", xlab = "gotControl") ggerrorplot(newHighAnxietyData, x = "gotControl", y = "unnormalizedAnxietyDiff", desc_stat = "mean_se", ci = 0.95, error.plot = "errorbar", add = "mean", color = "gotControl", palette = c("#00AFBB", "#E7B800"), ylim = c(-5,0), ylab = "Change in anxiety", xlab = "gotControl", title = "Changes w/ 95% CIs") ###Simple linear model to see how much fatigued dropped per unit anxiety anxFatigueFit <- lm(unnormalizedFatigueDiff ~ unnormalizedAnxietyDiff, data = newHighAnxietyData) summary(anxFatigueFit) plot(newHighAnxietyData$unnormalizedAnxietyDiff,newHighAnxietyData$unnormalizedFatigueDiff) #Normalized version x <- newHighAnxietyData %>% select(unnormalizedAnxietyDiff) %>% mutate(unnormalizedAnxietyDiff = (unnormalizedAnxietyDiff - mean(unnormalizedAnxietyDiff))/sd(unnormalizedAnxietyDiff) ) y <- newHighAnxietyData %>% select(unnormalizedFatigueDiff) %>% mutate(unnormalizedFatigueDiff = (unnormalizedFatigueDiff - mean(unnormalizedFatigueDiff))/sd(unnormalizedFatigueDiff) ) normfit <- cbind(x,y) normlinearModel <- lm(unnormalizedFatigueDiff ~ unnormalizedAnxietyDiff, data = normfit) summary(normlinearModel) ###Full analysis df <- read.csv("INSERT Tiredness-anxiety study-final.csv PATH HERE") #add normalized variables for GAD7 and sleep quality df <- df %>% mutate(gad7NormalizedScore = gad7 / 21, sleepQualityNormalizedScore = sleepQuality / 4) df$absSleepMinusIdealSleep <- ifelse(is.na(df$absSleepMinusIdealSleep),df$idealHoursToSleep,df$absSleepMinusIdealSleep) #For ppl who didn't sleep, replace NAs with their ideal sleep for this column ##Testing burnout effect (hypothesis 3) fivehourlm <- lm(fatigueStateRawScore ~ typicalTiredness + Points..fiveHoursAnxiety. + sleepQuality + Points..preAnxiety. + absSleepMinusIdealSleep, data = df) summary(fivehourlm) #Testing hypothesis that current anxiety is due to baseline anxiety, which could affect tiredness due to poor sleep (hypothesis 4) lastnightlm <- lm(fatigueStateRawScore ~ typicalTiredness + Points..lastNightAnxiety. + sleepQuality + Points..preAnxiety. + absSleepMinusIdealSleep, data = df) summary(lastnightlm) gadlm <- lm(fatigueStateRawScore ~ gad7 + typicalTiredness + Points..fiveHoursAnxiety. + Points..lastNightAnxiety. + sleepQuality + Points..preAnxiety. + absSleepMinusIdealSleep, data = df) summary(gadlm) ###Same but only with high anxiety subgroup ##Testing burnout effect (hypothesis 3) fivehourlm.highAnxiety <- lm(fatigueStateRawScore ~ typicalTiredness + Points..fiveHoursAnxiety. + sleepQuality + Points..preAnxiety. + absSleepMinusIdealSleep, data = newHighAnxietyData) summary(fivehourlm.highAnxiety) #Testing hypothesis that current anxiety is due to baseline anxiety, which could affect tiredness due to poor sleep (hypothesis 4) lastnightlm.highAnxiety <- lm(fatigueStateRawScore ~ typicalTiredness + Points..lastNightAnxiety. + sleepQuality + Points..preAnxiety. + absSleepMinusIdealSleep, data = newHighAnxietyData) summary(lastnightlm.highAnxiety) gadlm.highAnxiety <- lm(fatigueStateRawScore ~ gad7 + typicalTiredness + Points..fiveHoursAnxiety. + Points..lastNightAnxiety. + sleepQuality + Points..preAnxiety. + absSleepMinusIdealSleep, data = newHighAnxietyData) summary(gadlm.highAnxiety)