J'ai effectuer des mesures sur trois temps sur plusieurs groupes. J'aimerai comparer les les trois temps à l'intérieur d'un groupe.
J'ai alors suivi ce tutoriel : https://biostats.w.uib.no/repeated-measures-anova/.
J'ai procédé de la sorte en vue de réalisé un script sur markdown: test de la normalité grâce à shapiro.test sur les valeurs à un temps dans un groupe.
Puis test d'homogénéité des variances grâce à Bartlett.test (je l'ai réalisé dans mon example que sur 2 temps mais par la suite ça sera bien réalisé sur tous les temps).
Code : Tout sélectionner
structure(list(moda = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L), .Label = c("BS1", "HW1", "PG"), class = "factor"),
t0 = c(1.5, 1.5, 2, 1, 1.5, 1.2, 1, 2.4, 1.3, 1.4, 1.7, 2,
1.8, 2.3, 2.5, 2.5, 1.5, 1.5, 2, 2.1, 1.8, 1.3, 2, 1.5, 2,
3.5, 1.5, 1.7), t14 = c(1.2, 1.2, 1.3, 1, 4, 2, 0.5, 2, 1,
3, 6, 3, 2, 3.4, 5.3, 4, 1, 54, 3, 2.5, 2, 3.52, 3, 7, 2,
8, 3.4, 1), t29 = c(1.65, 1.8, 1.9, 1.7, 1.8, 1.9, 1, 2,
1.7, 8, 5, 3.5, 5, 5.8, 2, 3.8, 1, 8, 8, 9.9, 1, 6.8, 8,
3, 9.6, 8.6, 3, 9)), class = "data.frame", row.names = c(NA,
-28L))
structure(list(moda = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("BS1",
"HW1", "PG"), class = "factor"), time = c("t0", "t0", "t0", "t0",
"t0", "t0", "t0", "t0", "t0", "t0", "t0", "t0", "t0", "t0", "t0",
"t0", "t0", "t0", "t0", "t0", "t0", "t0", "t0", "t0", "t0", "t0",
"t0", "t0", "t14", "t14", "t14", "t14", "t14", "t14", "t14",
"t14", "t14", "t14", "t14", "t14", "t14", "t14", "t14", "t14",
"t14", "t14", "t14", "t14", "t14", "t14", "t14", "t14", "t14",
"t14", "t14", "t14", "t29", "t29", "t29", "t29", "t29", "t29",
"t29", "t29", "t29", "t29", "t29", "t29", "t29", "t29", "t29",
"t29", "t29", "t29", "t29", "t29", "t29", "t29", "t29", "t29",
"t29", "t29", "t29", "t29"), unified = c(1.5, 1.5, 2, 1, 1.5,
1.2, 1, 2.4, 1.3, 1.4, 1.7, 2, 1.8, 2.3, 2.5, 2.5, 1.5, 1.5,
2, 2.1, 1.8, 1.3, 2, 1.5, 2, 3.5, 1.5, 1.7, 1.2, 1.2, 1.3, 1,
4, 252, 0.5, 2, 257.2, 5.23, 54, 23.54, 3.745, 3.4, 5.3, 543,
57.3, 54, 3, 2.5, 85, 3.52, 68.68, 7, 8.86, 8, 3.4, 53.54, 1.65,
1.8, 1.9, 1.7, 1.8, 1.9, 1, 2, 1.7, 8, 23, 3.5, 5, 5.8, 8.89,
3.8, 8.36, 8, 8, 9.9, 0.8, 6.8, 8, 89, 9.6, 8.6, 89.3, 9)), row.names = c(NA,
-84L), class = "data.frame")
yyy <- dflong[,1]
yyy <- data1[,1]
shap <- function(y) { b <- shapiro.test(y); b$p.value}
aggre <- function (x, yyy) aggregate(formula =x~yyy,data = data1, FUN = shap)
lshap <- lapply(data1[-1], FUN = aggre, y=yyy)
lshap
h <- bartlett.test(dflong$unified,dflong$time)
h$p.value
plot(dflong$unified~as.factor(dflong$time), data=dflong, ylab="weight", xlab="time")
with(my.dataframe, interaction.plot(as.factor(dflong$time), dflong$moda, dflong$unified, col=1:10000))
design <- unique(dflong$time)
model = lm(dflong$unified ~ dflong$moda + as.factor(dflong$time), data=dflong)
results <- Anova(model, idata=data.frame(design), idesign=~design, type="III")
summary(results, multivariate=F)
results
Le résultat que je souhaiterai et donc des différences significatives, si l'ANOVA(III) montre une différence globale, par des lettres si possible. Dans le code que je vous joint j'ai quelques interrogations sur la justesse de l'application de la fonction lm et d'ANOVA III car j'ai l'impression qu'un group et qu'un temps est oublié?
Cordialement,
Simon