6 Study 6
<- subset(Data_Meta_Raw.wide, Study == 6) Data_Study6_Wide
6.1 Data analysis
Run a multivariate regression for each sleep variable (IV) on endorsement of moral principles assessed using moral dilemmas and a moral scale as DVs
<-lm(cbind(Moral_DIL, Moral_SCA)~SleepQualCro,Data_Study6_Wide)
QualCroLMS6<-lm(cbind(Moral_DIL, Moral_SCA)~SleepQualAcu,Data_Study6_Wide)
QualAcuLMS6<-lm(cbind(Moral_DIL, Moral_SCA)~SleepQuantCro, Data_Study6_Wide)
QuantCroLMS6<-lm(cbind(Moral_DIL, Moral_SCA)~SleepQuantAcu, Data_Study6_Wide) QuantAcuLMS6
Extract coefficients (F test and p-values) from multivariate regression models
<- car:::print.Anova.mlm
out body(out)[[16]] <- quote(invisible(tests))
body(out)[[15]] <- NULL
#Chronic Sleep Quality
<-round(do.call(rbind, out(Anova(QualCroLMS6, test.statistic="Pillai")))[3], digit=2)
FQualCroS6<- round(ifelse(do.call(rbind, out(Anova(QualCroLMS6, test.statistic="Pillai")))[6]*4<.99, do.call(rbind, out(Anova(QualCroLMS6, test.statistic="Pillai")))[6]*4, .99), digit=2)
pQualCroS6
#Acute Sleep Quality
<-round(do.call(rbind, out(Anova(QualAcuLMS6, test.statistic="Pillai")))[3], digit=2)
FQualAcuS6<- round(ifelse(do.call(rbind, out(Anova(QualAcuLMS6, test.statistic="Pillai")))[6]*4<.99, do.call(rbind, out(Anova(QualAcuLMS6, test.statistic="Pillai")))[6]*4, .99), digit=2)
pQualAcuS6
#Chronic Sleep Quantity
<-round(do.call(rbind, out(Anova(QuantCroLMS6, test.statistic="Pillai")))[3], digit=2)
FQuantCroS6<- round(ifelse(do.call(rbind, out(Anova(QuantCroLMS6, test.statistic="Pillai")))[6]*4<.99, do.call(rbind, out(Anova(QuantCroLMS6, test.statistic="Pillai")))[6]*4, .99), digit=2)
pQuantCroS6
#Acute Sleep Quantity
<-round(do.call(rbind, out(Anova(QuantCroLMS6, test.statistic="Pillai")))[3], digit=2)
FQuantAcuS6<- round(ifelse(do.call(rbind, out(Anova(QuantAcuLMS6, test.statistic="Pillai")))[6]*4<.99, do.call(rbind, out(Anova(QuantAcuLMS6, test.statistic="Pillai")))[6]*4, .99), digit=2) pQuantAcuS6
Prepare data for plots
<- Data_Study6_Wide %>%
Data_PlotS6pivot_longer(
cols=c(SleepQualCro, SleepQualAcu, SleepQuantCro, SleepQuantAcu),
names_to="SleepType") %>%
rename("SleepValue"=value) %>%
mutate(
SleepLength=case_when(
=="SleepQualCro" | SleepType=="SleepQuantCro"~"Chronic",
SleepType=="SleepQualAcu" | SleepType=="SleepQuantAcu"~"Acute"),
SleepTypeSleepQuanthist=case_when(
=="SleepQualCro" | SleepType=="SleepQualAcu"~"Sleep Quality",
SleepType=="SleepQuantCro" | SleepType=="SleepQuantAcu"~"Sleep Quantity"),
SleepTypeMoralZ_DIL=scale(Moral_DIL, center = TRUE, scale = TRUE),
MoralZ_SCA=scale(Moral_SCA, center = TRUE, scale = TRUE))
$SleepType<-dplyr::recode(Data_PlotS6$SleepType,
Data_PlotS6"SleepQualCro" = "Quality of Chronic Sleep",
"SleepQualAcu" = "Quality of Acute Sleep",
"SleepQuantCro" = "Quantity of Chronic Sleep",
"SleepQuantAcu" = "Quantity of Acute Sleep")
<- Data_Study6_Wide %>%
Data_MoralS6pivot_longer(
cols=c(Moral_DIL, Moral_SCA),
names_to="Outcome_moral") %>%
rename("MoralValue"=value)
$Outcome_moral<-dplyr::recode(Data_MoralS6$Outcome_moral,
Data_MoralS6"Moral_DIL" = "Dilemmas",
"Moral_SCA" = "Scale")
<- Data_PlotS6 %>%
Data_ScatterS6pivot_longer(
cols=c(MoralZ_DIL, MoralZ_SCA),
names_to="Outcome2") %>%
rename("MoralValue2"=value)
$Outcome<-dplyr::recode(Data_ScatterS6$Outcome,
Data_ScatterS6"MoralZ_DIL" = "Dilemmas",
"MoralZ_SCA" = "Scale")
6.2 Summary of Study 6 results
Put results in a table
<-c("Quality Chronic","Quality Acute","Quantity Chronic","Quantity Acute")
SleepMarker<-c(FQualCroS6,FQualAcuS6,FQuantCroS6,FQuantAcuS6)
FS6<-c(pQualCroS6,pQualAcuS6,pQuantCroS6,pQuantAcuS6)
pvalS6<-c(length(QualCroLMS6$fitted.values)/2,
NS6length(QualAcuLMS6$fitted.values)/2,
length(QuantCroLMS6$fitted.values)/2,
length(QuantAcuLMS6$fitted.values)/2)
<-data.frame("Sleep Indicator"=SleepMarker, "F-test"=FS6, "p values"=pvalS6, "N"=NS6)
ResultsStudy6gt(ResultsStudy6)
Sleep.Indicator | F.test | p.values | N |
---|---|---|---|
Quality Chronic | 0.91 | 0.99 | 99 |
Quality Acute | 1.28 | 0.99 | 99 |
Quantity Chronic | 0.12 | 0.99 | 99 |
Quantity Acute | 0.12 | 0.99 | 99 |
6.3 Plots of Study 6 results
Plot distribution for each sleep indicator
<-ggplot(Data_PlotS6, aes(x=SleepValue, fill=factor(SleepLength))) +
DistQualityS6geom_density(alpha=0.5, size=0.5,adjust = 2) +
scale_fill_manual(values=c("#193B94", "#BDCAEE")) +
theme_bw() +
ylab("Density") + xlab("") +
facet_wrap(~factor(SleepQuanthist), scale="free_x") +
guides(fill=guide_legend("Sleep Length")) +
theme(
axis.title.y = element_text(size = 11, hjust = 0.5, face="bold"),
axis.title.x = element_text(face="bold", size = 11, hjust = 0.5),
legend.position="top",
legend.title = element_text(colour="black", size=10, face="bold"))
DistQualityS6
Plot distribution for the scores to the dilemmas and moral scale
<-ggplot(Data_MoralS6, aes(x=MoralValue, fill=factor(Outcome_moral))) +
DistMoralS6geom_density(alpha=0.5, size=0.5,adjust = 2) +
theme_bw() +
ylab("Density") + xlab("Moral Scale") +
facet_wrap(~factor(Outcome_moral), scale="free") +
guides(fill="none") +
theme(
axis.title.y = element_text(size = 11, hjust = 0.5, face="bold"),
axis.title.x = element_text(face="bold", size = 11, hjust = 0.5))
DistMoralS6
Scatterplots
ggplot(Data_ScatterS6, aes(x=SleepValue, y=MoralValue2,
color=Outcome2, fill=Outcome2)) +
geom_smooth(method="lm")+
geom_point(alpha=0.2)+
facet_wrap(~factor(SleepType), scales="free_x") +
theme_bw() + ylab("Utilitirianism") + xlab("") +
theme(axis.title.y = element_text(size = 11, hjust = 0.5, face="bold"),
axis.title.x = element_text(face="bold", size = 11, hjust = 0.5)) +
guides(size=FALSE, colour=FALSE) +
scale_fill_manual(values=c("red","#193B94"))+
scale_color_manual(values=c("red","#193B94"))
## `geom_smooth()` using formula 'y ~ x'