Je bute sur une sortie d'anova...je ne comprends pas à qule type d'anova procède R en fonction de 2 écritures.
J'ai un tableau avec des données de richesse spécifique le long de transects sous des filières de moules de 2 densités différentes.
head(df)
S dens transect_id dist.fac
36 33 double DD-1 -25
37 24 double DD-1 -25
38 28 double DD-1 -25
39 29 double DD-1 -25
40 23 double DD-1 -25
41 31 double DD-1 -10
avec la structure suivante: 2 densités, 2 transects par densité, 5 distances par transect.
(Mon plan est équilibré.)
str(df)
'data.frame': 100 obs. of 4 variables:
$ S : num 33 24 28 29 23 31 27 31 28 23 ...
$ dens : Factor w/ 2 levels "double","simple": 1 1 1 1 1 1 1 1 1 1 ...
$ transect_id: Factor w/ 4 levels "D-1","D-2","DD-1",..: 3 3 3 3 3 3 3 3 3 3 ...
$ dist.fac : Factor w/ 5 levels "-25","-10","0",..: 1 1 1 1 1 2 2 2 2 2 ...
Le tableau complet est là:
df <- structure(list(S = c(33, 24, 28, 29, 23, 31, 27, 31, 28, 23,
28, 24, 27, 23, 16, 23, 28, 25, 27, 22, 29, 26, 29, 34, 31, 24,
27, 36, 30, 34, 23, 26, 25, 19, 27, 20, 22, 23, 23, 18, 27, 37,
23, 21, 30, 22, 22, 27, 33, 25, 26, 33, 25, 24, 27, 23, 29, 30,
30, 25, 29, 29, 28, 25, 27, 29, 26, 26, 30, 21, 29, 28, 30, 34,
28, 24, 23, 31, 27, 25, 25, 24, 30, 24, 26, 24, 24, 26, 22, 27,
23, 29, 27, 30, 21, 21, 23, 27, 25, 24), dens = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L), .Label = c("double", "simple"), class = "factor"),
transect_id = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L), .Label = c("D-1", "D-2", "DD-1", "DD-2"), class = "factor"),
dist.fac = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L,
5L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L,
3L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 1L, 1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L,
4L, 5L, 5L, 5L, 5L, 5L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L,
5L), .Label = c("-25", "-10", "0", "10", "25"), class = "factor")), .Names = c("S",
"dens", "transect_id", "dist.fac"), class = "data.frame", row.names = c(36L,
37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L,
50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L, 60L, 61L, 62L,
63L, 64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L, 73L, 74L, 75L,
76L, 77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 85L, 96L, 97L, 98L,
99L, 100L, 101L, 102L, 103L, 104L, 105L, 106L, 107L, 108L, 109L,
110L, 111L, 112L, 113L, 114L, 115L, 116L, 117L, 118L, 119L, 120L,
121L, 122L, 123L, 124L, 125L, 126L, 127L, 128L, 129L, 130L, 131L,
132L, 133L, 134L, 135L, 136L, 137L, 138L, 139L, 140L, 141L, 142L,
143L, 144L, 145L))
Mon plan étant équilibré, je ne comprends pas pourquoi en changeant l'ordre d'entrée des variables le résultat change et notamment pourquoi je perds un degré de liberté pour transect_id entre la première et la deuxième anova...?
anova(lm(S~transect_id*dens*dist.fac,data=df))
Analysis of Variance Table
Response: S
Df Sum Sq Mean Sq F value Pr(>F)
transect_id 3 83.12 27.707 2.2317 0.09088 .
dist.fac 4 142.24 35.560 2.8643 0.02843 *
transect_id:dist.fac 12 264.48 22.040 1.7753 0.06655 .
Residuals 80 993.20 12.415
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> anova(lm(S~dens*transect_id*dist.fac,data=df))
Analysis of Variance Table
Response: S
Df Sum Sq Mean Sq F value Pr(>F)
dens 1 1.00 1.000 0.0805 0.77729
transect_id 2 82.12 41.060 3.3073 0.04168 *
dist.fac 4 142.24 35.560 2.8643 0.02843 *
dens:dist.fac 4 99.80 24.950 2.0097 0.10100
transect_id:dist.fac 8 164.68 20.585 1.6581 0.12175
Residuals 80 993.20 12.415
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
De plus si je me fie au résultat de la seconde anova et que je poursuis avec un Tukey pour savoir quels transects diffèrent, je n'obtient pas de différence significative entre les transects...
Merci d'avance de quelques éclaircissements...