【问题标题】:ANOVA significance visualisation of replicate experiment data (ggplot)重复实验数据的方差分析显着性可视化(ggplot)
【发布时间】:2020-08-11 05:04:41
【问题描述】:

我正在努力获取我的实验复制数据的显着性值。对每个物种重复进行实验,我想比较每个物种之间每个时间点的值的重要性。我正在尝试做双向方差分析...

library(ggplot2)
library(reshape)
library(dplyr)
abs2.melt<-melt(abs2,
                id.vars='Time',
                measure.vars=c('WT','WT.1','DsigB','DsigB.1','DrsbR','DrsbR.1'))
print(abs2.melt)
abs2.melt.mod<-abs2.melt %>%
  separate(col=variable,into=c('Species'),sep='\\.')
print(abs2.melt.mod)
ggplot(abs2.melt.mod,aes(x=Time,y=value,group=Species))+
  stat_summary(
    fun =mean,
    geom="line",
    aes(color=Species))+
  stat_summary(
    fun=mean,
    geom="point")+
  stat_summary(
    fun.data=mean_cl_boot,
    geom='errorbar',
    width=2)+
  theme_bw()+
  xlab("Time")+
  ylab("OD600")+
  labs(title="Growth Curve of Mutant Strains")
summary(abs2.melt.mod)
print(abs2.melt.mod)
###SD and mean values
as.data.frame<-abs2.melt.mod %>% group_by(Species,Time) %>% 
  summarize(mean.val=mean(value), sd.val=sd(value))
anova1<-aov(value~Species,data=abs2.melt.mod)
##statistical significance?
print(as.data.frame)
anova1<-aov(Time~Species+value,data=abs2.melt.mod)
summary(anova1)

【问题讨论】:

  • 嗨@DianaGudynalte,有些奇怪......你需要输入 aov(value ~ Time + Species..),因为 value 是你的响应变量
  • 你的情节没问题。我猜你的问题更多是关于方差分析?
  • 感谢回复,但这仍然会使我的显着性值正确(每个菌株的每个时间点我都需要它)
  • 是的,您需要拟合一个交互模型,aov(value ~ Time * Species,..),这可能有点难以解释。让我看看是否有更简单的方法来计算边际。你需要让时间成为一个因素,即 abs2.melt.mod$Time=factor(abs2.melt.mod$Time)
  • 好的,你可以使用 emmeans,安装包,cran.r-project.org/web/packages/emmeans/vignettes/…,将 Time 作为一个因素,然后 emmeans(lm(value ~ Species*Time,data=df),pairwise ~Species | Time)

标签: r ggplot2 dplyr anova


【解决方案1】:

模拟看起来像你的数据的东西

set.seed(111)
df = expand.grid(rep=1:3,Time=1:5,Species=letters[1:3])
df$value = 0.5*df$Time + rnorm(nrow(df))
df$Time = factor(df$Time)

然后我们绘制,允许比较每个时间点:

library(ggplot2)
ggplot(df,aes(x=Time,y=value,col=Species)) + 
stat_summary(fun.data="mean_sdl",position=position_dodge(width=0.5))

或者我认为看起来很糟糕的错误栏:

ggplot(df,aes(x=Time,y=value,col=Species))+
stat_summary(fun.data="mean_sdl",position=position_dodge(width=0.5),
geom="errorbar",width=0.4)

由于您有几个数据点,所以没有必要做箱线图,所以您可以尝试类似上述的方法

【讨论】:

    猜你喜欢
    • 2019-01-19
    • 2011-02-25
    • 1970-01-01
    • 2018-06-15
    • 2020-10-03
    • 2012-01-14
    • 2017-02-07
    • 2013-01-09
    • 2021-12-29
    相关资源
    最近更新 更多