【发布时间】:2019-11-30 19:37:30
【问题描述】:
我正在创建一组 geom_col 图来揭示模型构建过程,其中不同的认知任务变量按它们降低 AIC 的顺序排列。
变量按它们降低 AIC 的顺序添加,并且只有当它们显着 (LRT) 降低 AIC 时才会包含在最终模型中。因此,有四个独立的绩效指标:响应窗口、效率、一致性和心理测量阈值。所以很自然地,有四个最终模型——响应窗口、效率、一致性和心理测量阈值。 (实际上将有八个最终模型,因为这些模型将属于数学和英语标准化测试 DV)。
因此,我希望最终模型中包含的每个认知任务变量都与特定颜色相对应,这样您就可以可视化始终包含在不同绩效测量模型中的变量。也许有某种方法可以使用“ifelse”语句来创建它——如果这个变量,那么红色……等等。
我知道您可能会创建一个与包含的任务变量的特定顺序相对应的颜色值向量,但我正在尝试在这里提升我的编码,虽然八张图可能没有那么多时间,在在您有更多图表的情况下,这可能是一项相当大的投资。出错的机会也少了很多。
该日期涉及 1000 名参与者和四个绩效指标(包括英语和数学类别)。下面,我只是将数学和英语效率数据集作为一个可重复的最小示例。
我使用下面的代码按照它们减少 AIC 的顺序排列包含的任务变量,使用下面的代码和 R color brewer(变量只是认知任务变量,它们对应的 AIC 值在另一列中)。 (我使用我的整个代码来生成下面的图表,因为有时人们会得到有用的反馈并提供更有效的方法,但你可以忽略它的下半部分)。
非常感谢!感恩节快乐。
efficiency.english<-structure(list(variables = structure(c(3L, 8L, 7L, 5L, 1L, 6L,
4L, 2L), .Label = c("Con, Filter", "Con, SAAT, Sustained", "Demographics",
"SAAT, Impulsive", "STROOP, Congruent", "Tap and Trace, Tap",
"TASK SWITCH, Stay", "TASK SWITCH, Switch"), class = "factor"),
aic = c(28901.0609423639, 28876.584417846, 28870.0889374339,
28862.7732527584, 28859.716837592, 28852.6732473908, 28851.1317635441,
28853.8500632933)), class = "data.frame", row.names = c(NA,
-8L))
efficiency.math <- structure(list(variables = structure(c(2L, 1L, 5L, 4L, 3L, 6L
), .Label = c("Con, Box, Feature", "Demographics", "FILTER",
"SAAT, Sustained", "Tap and Trace, Tap", "TASK SWITCH, Stay"), class = "factor"),
aic = c(28900.5294523709, 28885.7432348228, 28877.1589335409,
28872.248022988, 28868.3257096905, 28865.1849707033)), class = "data.frame", row.names = c(NA,
-6L))
rw.math<- structure(list(variables = structure(c(2L, 1L, 3L, 4L, 5L), .Label = c("BOXED, Feature, 4",
"Demographics", "SAAT, Impulsive", "Tap and Trace", "Tap and Trace, Tap"
), class = "factor"), aic = c(28896.4668953137, 28882.0804928958,
28875.7128176706, 28873.9645461461, 28872.7298323499)), class = "data.frame", row.names = c(NA,
-5L))
colourCount = length(unique(efficiency.math$variables))
getPalette = colorRampPalette(brewer.pal(9, "Set1"))
efficiency.math%>%
mutate(name = fct_reorder(variables, desc(aic)))%>%
ggplot(aes(x = name, y = aic - 28850, fill = name))+
geom_col()+
coord_flip()+
cleanup+
theme(strip.text.x = element_text(size=7, angle=0),
strip.background = element_rect(colour="white", fill="white"))+
scale_fill_manual(values = getPalette(colourCount))+
theme(legend.position="right")+
theme(plot.title = element_text(hjust = 0))+
#labs(x = "Cognitive Measures (Efficiency/Consistency)")+
labs(y = "AIC + 28850")+
ggtitle("3b: Math, Eff/Con Model")+
guides(fill = FALSE)+
set_theme(title.size = .6)+
theme(axis.text.x = element_text(size = 5),
axis.text.y = element_text(size = 6),
axis.title.x = element_text(size = 8),
axis.title.y = element_blank())+
cleanup
colourCount = length(unique(final.ela.17.18.rem$variables))
getPalette = colorRampPalette(brewer.pal(6, "Set1"))
efficiency.english%>%
mutate(name = fct_reorder(variables, desc(aic)))%>%
ggplot(aes(x = name, y = aic - 28825, fill = variables))+
geom_col()+
coord_flip()+
cleanup+
theme(strip.text.x = element_text(size=7, angle=0),
strip.background = element_rect(colour="white", fill="white"))+
theme(plot.title = element_text(hjust = 0))+
scale_fill_manual(values = getPalette(colourCount))+
theme(legend.position="right")+
labs(y = "AIC + 28825")+
ggtitle("3c: English, Eff/Con Model")+
guides(fill=FALSE)+
set_theme(title.size = .6)+
theme(axis.text.x = element_text(size = 5),
axis.text.y = element_text(size = 6),
axis.title.x = element_text(size = 8),
axis.title.y = element_blank())+
cleanup
colourCount = length(unique(rw.math$variables))
getPalette = colorRampPalette(brewer.pal(9, "Set1"))
rw.math%>%
mutate(name = fct_reorder(variables, desc(aic)))%>%
ggplot(aes(x = name, y = aic - 28860, fill= variables))+
geom_col()+
coord_flip()+
scale_fill_brewer(palette="Set2")+
labs(x = "Cognitive Measures")+
labs(y = "AIC + 28,860")+
ggtitle("3d: Math, RW Model")+
guides(fill = FALSE)+
set_theme(title.size = .6)+
theme(axis.text.x = element_text(size = 5),
axis.text.y = element_text(size = 6),
axis.title.x = element_text(size = 8),
axis.title.y = element_text(size = 8))+
cleanup
【问题讨论】:
标签: r ggplot2 modeling colorbrewer