Анализ кривой роста в R - сравнение двух кривых роста

У меня небольшая задача, к сожалению, я не знаком с этой областью статистики... На самом деле мне нужны были расчеты (я не ищу готового решения), однако я не знаю, верны ли они и Кроме того, и мой образ мышления, поэтому я буду очень признателен, если вы посмотрите и укажете на мои ошибки.

Вот фальшивые данные, показывающие скорость роста собак и кошек (полностью составленные):

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). Я был основан на этом уроке. Ниже мои результаты с кратким объяснением.

Итак, прежде всего я сделал базовую модель, случайный перехват для каждого животного:

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 ответ

Решение

Я предполагаю, что каждая точка данных от другого животного. Если у вас есть данные только по двум животным, вы можете сравнивать только этих двух животных и ничего не можете сделать о двух популяциях. Если у вас есть данные по нескольким животным, но каждое животное измерялось неоднократно, вам действительно понадобится модель со смешанными эффектами. Но с моим предположением выше, вам это не нужно.

Теперь вы можете использовать параметрическую модель из предметной теории и использовать 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)

Это также может быть распространено на модель со смешанными эффектами, если это необходимо.

Другие вопросы по тегам