Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重复测量的方差分析,R?_R_Anova_Mixed Models - Fatal编程技术网

重复测量的方差分析,R?

重复测量的方差分析,R?,r,anova,mixed-models,R,Anova,Mixed Models,我有一个动物物种多样性的数据集,在2年多的时间里每月观察3个样带。我的问题是找出样带之间是否有显著不同的动物多样性。对于这样一个简单的问题,单因素方差分析几乎就是答案,然而,我认为重复测量方差分析以纳入动物每月多样性的变化可能是必要的,以便控制相当大的季节波动 下面是我的数据集,还有一个关于动物多样性随时间变化的图 transect<-c(rep("transA",26),rep("transB",25),rep("transC",25)) months<-as.numeri

我有一个动物物种多样性的数据集,在2年多的时间里每月观察3个样带。我的问题是找出样带之间是否有显著不同的动物多样性。对于这样一个简单的问题,单因素方差分析几乎就是答案,然而,我认为重复测量方差分析以纳入动物每月多样性的变化可能是必要的,以便控制相当大的季节波动

下面是我的数据集,还有一个关于动物多样性随时间变化的图

  transect<-c(rep("transA",26),rep("transB",25),rep("transC",25))
  months<-as.numeric(c(1:26,1:11,13:26,0,2,4:26))
  animal_species<-c(2,2,2,4,5,1,5,6,14,8,7,5,5,3,1,2,5,9,8,9,10,10,9,9,7,3,1,3,2,2,3,3,3,7,5,6,5,4,2,2,4,4,5,7,4,5,2,4,2,4,1,1,1,1,3,2,2,3,2,2,1,3,5,3,2,4,2,4,3,6,3,2,2,1,2,1)
  animal_df<-data.frame(transect,months,animal_species)

library(ggplot2)
  ggplot(animal_df,aes(months,animal_species))+geom_bar(stat='identity')+theme_bw()+facet_grid(transect~.)
我向社会提出的问题是:

  • 我认为重复测量法是最明智的分析途径,这一想法正确吗

  • 偏离方差分析的假设是否足够令人担忧?鉴于有20多个观测值,且观测值的数量相对平衡良好

  • 这种分析应该如何编码以产生一个可行的答案(可能考虑到违规行为),在线上关于重复测量的大量信息anova在如何将这种分析组合在一起的问题上似乎有点冲突


  • 我基本上有一个简单的问题,我的直觉是这三个样带之间的差异很大(至少
    trackA
    比其他两个样带具有更高的多样性)。有人对如何解决这个问题有什么建议吗?

    偏斜可以通过使用计数数据来解释。计数数据大部分时间遵循泊松分布,而不是正态分布。理想情况下,你可以使用泊松回归和随机效应相结合的方法来重复测量

    关于更广泛的信息,我建议您咨询统计学家或谷歌“混合效应泊松回归模型”

    两个一般问题:

    • @Koot133正确,您应该考虑计数数据模型,该模型通常以日志比例运行(从而减少偏差和差异)
    • 您需要考虑的是数据的条件分布(即日期等影响被考虑在内后的分布),而不是边际分布-这意味着在大多数情况下,您在拟合模型之前不必担心分布的外观
    个人对线形图的偏好-然后您可以覆盖数据并更有效地进行比较:

    ggplot(animal_df,aes(months,animal_species,colour=transect))+
        geom_line()+theme_bw()+scale_y_log10()
    ggsave("animal1.png")
    

    自从我们在对数标度上绘图以来,零计数数据已经消失,但这确实使我们更清楚地看到,在这个标度上,横断面的方差没有太大差异

    使用
    lme4
    包装来安装重复测量/纵向泊松GLMM:

    library(lme4)
    m1 <- glmer(animal_species~transect+(1|months),
                family=poisson,data=animal_df)
    
    结果:

    # Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) [
    #   glmerMod]
    # Family: poisson  ( log )
    # Formula: animal_species ~ transect + (1 | months)
    # Data: animal_df
    # AIC       BIC    logLik  deviance  df.resid 
    # 319.3219  328.6449 -155.6610  311.3219        72 
    # Random effects:
    #   Groups Name        Std.Dev.
    # months (Intercept) 0.3003  
    # Number of obs: 76, groups:  months, 27
    # Fixed Effects:
    #   (Intercept)  transecttransB  transecttransC  
    # 1.7110         -0.4792         -0.8847  
    
    检查位置比例图:

    png("animal2.png")
    plot(m1,sqrt(abs(resid(.)))~fitted(.),
         type=c("p","smooth"),col=animal_df$transect)
    dev.off()
    

    各组/计数数之间的差异无明显变化

    将结果叠加在数据上(这次是原始比例):


    pp谢谢本和@Koot6133。这看起来是一个非常有前途的分析途径。我最初使用库特建议的泊松回归模型,但这个最新的答案看起来更直观。当我有时间时,我将重新运行分析,并让您知道模型如何与完整数据相匹配。干杯,爱德华
    
    deviance(m1)/df.residual(m1) ## 0.65
    
    # Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) [
    #   glmerMod]
    # Family: poisson  ( log )
    # Formula: animal_species ~ transect + (1 | months)
    # Data: animal_df
    # AIC       BIC    logLik  deviance  df.resid 
    # 319.3219  328.6449 -155.6610  311.3219        72 
    # Random effects:
    #   Groups Name        Std.Dev.
    # months (Intercept) 0.3003  
    # Number of obs: 76, groups:  months, 27
    # Fixed Effects:
    #   (Intercept)  transecttransB  transecttransC  
    # 1.7110         -0.4792         -0.8847  
    
    png("animal2.png")
    plot(m1,sqrt(abs(resid(.)))~fitted(.),
         type=c("p","smooth"),col=animal_df$transect)
    dev.off()
    
    pp <- animal_df
    pp$animal_species <- predict(m1,type="response")
    ggplot(animal_df,aes(months,animal_species,colour=transect))+
      geom_point()+
      geom_line(data=pp)+theme_bw()
    ggsave("animal3.png")