【问题标题】:Growth curve analysis in R - comparison of two growth curves [closed]R中的生长曲线分析 - 两条生长曲线的比较[关闭]
【发布时间】:2019-01-14 04:51:27
【问题描述】:

我有一个小任务要做,不幸的是我不熟悉这个统计领域......实际上我确实需要计算(我不是在寻找现成的解决方案),但我不知道他们是否'重新正确,也和我的思维方式,因此,如果你看看并指出我的错误,我将非常感激。

这是假数据,显示狗和猫的增长率(完全虚构):

time <- c(1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10)
a <- rep('dog', 10)
b <- rep('cat', 10)
animal <- c(a,b)
val <- c(2.00,8.00,17.00,21.00,29.00,37.00,41.00,56.00,67.00,82.00,1.00,3.00,6.00,8.00,11.00,15.00,21.00,26.00,31.00,37.00)
data <- data.frame(time,animal,val)

仔细看看:

require(ggplot2)
ggplot(data, aes(time, val, color=animal)) +
  stat_summary(fun.data=mean_se, geom="pointrange") +
  geom_point()

正如您所见,狗的生长速度比猫快 - 这可能是我的假设。但是我需要做一些统计来符合它。

所以我决定执行增长曲线分析 (GCA)。 我是基于this 教程。下面是我的结果和简要说明。

所以首先我做了一个基础模型,为每只动物随机截取:

m.base <- lmer(val ~ time + (1 | animal), data=data, REML = F)

这里我有问题,其实我这里没有固定效果,我的数据集很简单,我只想知道我的时间增长率两组(狗和猫)差异有统计学意义。 换一种说法。 在这段时间里,动物的生长速度是否不同?

因此我把我的动物作为一个额外的固定效果:

m.1 <- lmer(val ~ time * animal + (1 | animal), data=data, REML = F)

现在,为了检查是否存在统计学上的显着差异,我使用 ANOVA 比较了两个模型。

    > anova(m.base,m.1)
Data: data
Models:
m.base: val ~ time + (1 | animal)
m.1: val ~ time * animal + (1 | animal)
       Df    AIC    BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)    
m.base  4 151.43 155.41 -71.714   143.43                             
m.1     6 116.29 122.26 -52.145   104.29 39.138      2  3.171e-09 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

现在我很困惑,我不完全理解所有这些分析,几个问题......

这个值3.171e-09表示我的组的增长率差异有统计学意义?

要不要再做一个模型:

m.0 <- lmer(val ~ time + animal + (1 | animal), data=data, REML = F)

然后进行模型测试?

> anova(m.base,m.0,m.1)
Data: data
Models:
m.base: val ~ time + (1 | animal)
m.0: val ~ time + animal + (1 | animal)
m.1: val ~ time * animal + (1 | animal)
       Df    AIC    BIC  logLik deviance   Chisq Chi Df Pr(>Chisq)    
m.base  4 151.43 155.41 -71.714   143.43                              
m.0     5 145.58 150.56 -67.789   135.58  7.8499      1   0.005082 ** 
m.1     6 116.29 122.26 -52.145   104.29 31.2884      1  2.224e-08 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

哪个值可以让我确认我的假设?

非常感谢您指出我的错误、任何线索和解释!

【问题讨论】:

  • 我不是专家,但我觉得您在这里犯了一些错误。 1:每个条件只有一个个体,不允许您在两个群体上检验任何假设,为此您需要多个个体的样本。 2:您试图用线性模型解释明显不是线性的增长曲线,我会尝试用二次函数、S 型函数或指数函数(在这种特定情况下)来约束模型。第三,在同一因素上添加随机效应和固定效应是没有意义的。我鼓励您查看有关假设检验和回归的更多资源。 ;)

标签: r statistics anova manova


【解决方案1】:

我假设每个数据点都来自不同的动物。如果你只有两种动物的数据,你只能比较这两种动物,而不能推断出关于这两个种群的任何信息。如果您有来自几只动物的数据,但每只动物都被反复测量,那么您确实需要一个混合效应模型。但是根据我上面的假设,你不需要它。

您现在可以使用来自特定领域理论的参数模型并使用nlme::gnls。该函数基本上适合非线性模型,其中参数是一些其他变量的线性模型(在您的情况下是动物的类型)。然后可以测试这些线性模型的参数的显着性,summary 方法可以为您服务。如果您有重复测量,nlme::nlme 会将其扩展到混合效果模型。

另一种方法是非参数模型:

library(mgcv)
mod1 <- gam(val ~ s(time, k = 4), data = data, select = TRUE)
mod2 <- gam(val ~ animal + s(time, k = 4, by = animal), data = data, select = TRUE)
#we need the parametric effect because smoothers are centered

#compare both models, not sure which test is more appropriate, 
#let's just do both Chisq and F
anova(mod1, mod2, test = "Chisq")
anova(mod1, mod2, test = "F")
#significant difference between animal types
#plots show which one grows faster
gam.check(mod2)
plot(mod2)
summary(mod2)

如有必要,这也可以扩展到混合效果模型。

【讨论】:

  • 非常感谢您的宝贵时间和解释。我同意,我的数据集很简单,正如您所说,混合效果模型不是必需的。正如我看到的这两个测试 - chi^2 和 F 表明我的两组动物根据时间测量在统计学上有所不同。不过,您能告诉我如何使用nlme::gnls 执行此分析吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-12
  • 2014-09-30
相关资源
最近更新 更多