J'ai vu qu'il y a diverses questions concernant l'interprétation et la construction des jeux, ce qui semble illustrer la difficulté pour les non-statisticiens de les traiter. Malheureusement, à partir d'aucun des threads ou tutoriels que j'ai lus, j'ai pu comprendre clairement comment construire un modèle significatif.
Actuellement, j'étudie l'effet de l'agriculture biologique sur les performances des colonies d'abeilles. J'essaie ainsi de relier des caractéristiques du paysage comme le pourcentage d'agriculture biologique dans un rayon de 500 m (bio.percent_b500) à un paramètre de développement de la colonie comme la réserve de miel. J'ai d'abord construit un modèle gam de base (model0) avec seulement la semaine de l'année comme variable explicative, car la quantité de miel dans les ruches d'abeilles varie de manière non linéaire au cours d'une année.
library("gam")
library("mgcv")
model0 <- gam(honey.mean ~ s(week), data= my.data.frame)
summary(model0)
plot(model0)
Ensuite, j'ai essayé d'inclure un terme lisse contenant le pourcentage de l'agriculture biologique. Cela a échoué cependant, je suppose que plus de 85% des colonies n'avaient pas de champs organiques dans un rayon de 500 m.
model1 <- gam(honey.mean ~ s(week) + s(bio.percent_b500),data = my.data.frame)
# Error in smooth.construct.tp.smooth.spec(object, dk$data, dk$knots) :
# A term has fewer unique covariate combinations than specified maximum
# degrees of freedom
model2 = gam(honey.mean ~ s(week,bio.percent_b500) , data= my.data.frame)
J'ai ensuite été surpris de voir que le modèle qui comprenait une interaction entre le pourcentage d'agriculture biologique et la semaine travaillée. J'ai cependant lu dans un livre de statistiques allemand que les termes d'interaction ne devraient pas être inclus dans les modèles sans leurs effets indépendants. L'auteur a fait référence à quelque chose appelé "Marginalitätstheorem" (théorème de marginalité). Comme je savais, qu'à partir du modèle 1 que le terme lisse pour l'agriculture biologique pose problème, je n'ai inclus qu'un terme lisse supplémentaire pour la semaine de l'année. Ce modèle a un sens intuitif pour moi car la semaine de l'année a toujours un effet; l'effet de l'agriculture biologique dépend cependant toujours de la période de l'année. Par exemple, en été, la disponibilité des fleurs de mauvaises herbes devrait être plus élevée.
model3 = gam(honey.mean ~ s(week) + s(week, bio.percent_b500) , data= my.data.frame)
Étant donné que les réserves de miel dans les ruches dépendent probablement de diverses caractéristiques du paysage, j'ai construit des modèles, y compris le pourcentage de colza (osr.percent_b500).
model4 = gam(honey.mean ~ s(week) + s(osr.percent_b500),data = my.data.frame)
vis.gam(model4, type = "response", plot.type = "persp")
summary(model4)
model5 = gam(honey.mean ~ s(week,osr.percent_b500) + s(week,bio.percent_b500), data = my.data.frame)
summary(model5)
model6 = gam(honey.mean ~ s(week) + s(week,osr.percent_b500) + s(week,bio.percent_b500), data= my.data.frame)
summary(model6)
model7 = gam(honey.mean ~ s(week) + s(week,osr.percent_b500,bio.percent_b500), data= my.data.frame)
summary(model7)
Les modèles 0, 3 et 6 me semblent les plus significatifs pour les raisons mentionnées ci-dessus. Je ne sais pas si je devrais considérer des modèles construits d'une autre manière et aussi les accepter et les comparer via AIC.
AIC(model0,model2,model3,model4,model5,model6,model7)
La comparaison des valeurs AIC a identifié le modèle 7 comme le meilleur, car il a moins de degrés de liberté du modèle que le modèle 3. Cela m'étonne encore car le modèle 7 comprend une interaction plus complexe que le modèle 3.
Quelqu'un pourrait-il me donner des conseils sur la façon de construire des modèles gam significatifs?
1) Les termes d'interaction peuvent-ils apparaître dans un modèle (gam) sans leurs termes indépendants?
2) Pourquoi des termes lisses d'interaction gam plus complexes peuvent-ils conduire à une diminution des degrés de liberté du modèle?
3) Lesquels des modèles mentionnés ci-dessus sont significatifs?
4) Existe-t-il de meilleures alternatives aux modèles additifs gernéralisés pour ce que j'essaie de faire?
Vous trouverez ci-dessous my.data.frame:
structure(list(year = c(2008L, 2008L, 2008L, 2008L, 2008L, 2008L,
2008L, 2008L, 2008L, 2008L, 2008L, 2008L, 2008L, 2008L, 2008L,
2008L, 2008L, 2008L, 2008L, 2008L, 2008L, 2008L, 2008L, 2008L,
2008L, 2008L, 2009L, 2009L, 2009L, 2009L, 2009L, 2009L, 2009L,
2009L, 2009L, 2009L, 2009L, 2009L, 2009L, 2009L, 2009L, 2009L,
2009L, 2009L, 2009L, 2009L, 2009L, 2009L, 2009L, 2009L, 2009L,
2009L, 2009L, 2009L, 2009L, 2009L, 2009L, 2009L, 2009L, 2009L,
2009L, 2009L, 2009L, 2009L, 2009L, 2010L, 2010L, 2010L, 2010L,
2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L,
2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L,
2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L,
2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L,
2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L,
2010L, 2010L, 2010L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L,
2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L,
2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L,
2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L,
2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L,
2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L,
2011L, 2011L, 2011L, 2011L, 2012L, 2012L, 2012L, 2012L, 2012L,
2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L,
2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L,
2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L,
2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L,
2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L,
2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2013L,
2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L,
2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L,
2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L,
2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L,
2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L,
2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L,
2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L,
2013L, 2013L), apiary = c(4L, 8L, 8L, 8L, 18L, 18L, 18L, 19L,
19L, 19L, 23L, 23L, 23L, 23L, 34L, 34L, 34L, 45L, 45L, 45L, 46L,
46L, 46L, 49L, 49L, 49L, 3L, 3L, 3L, 3L, 9L, 9L, 9L, 9L, 14L,
14L, 14L, 14L, 17L, 17L, 17L, 17L, 20L, 20L, 20L, 28L, 28L, 28L,
28L, 31L, 31L, 31L, 31L, 33L, 33L, 33L, 33L, 33L, 35L, 35L, 35L,
44L, 44L, 44L, 44L, 11L, 11L, 11L, 11L, 11L, 12L, 12L, 12L, 12L,
12L, 12L, 26L, 26L, 26L, 26L, 26L, 30L, 30L, 30L, 30L, 30L, 32L,
32L, 32L, 32L, 32L, 37L, 37L, 37L, 37L, 37L, 42L, 42L, 42L, 42L,
42L, 47L, 47L, 47L, 47L, 47L, 47L, 47L, 48L, 48L, 48L, 48L, 48L,
50L, 50L, 50L, 50L, 1L, 1L, 1L, 1L, 1L, 6L, 6L, 6L, 6L, 6L, 6L,
7L, 7L, 7L, 7L, 7L, 7L, 22L, 22L, 22L, 22L, 24L, 24L, 24L, 24L,
24L, 24L, 27L, 27L, 27L, 27L, 27L, 27L, 36L, 36L, 36L, 36L, 36L,
40L, 40L, 40L, 40L, 40L, 41L, 41L, 41L, 41L, 41L, 43L, 43L, 43L,
43L, 43L, 43L, 43L, 2L, 2L, 2L, 2L, 2L, 2L, 5L, 5L, 5L, 5L, 5L,
10L, 10L, 10L, 10L, 10L, 10L, 13L, 13L, 13L, 13L, 13L, 15L, 15L,
15L, 15L, 15L, 15L, 16L, 16L, 16L, 16L, 16L, 16L, 21L, 21L, 21L,
21L, 21L, 21L, 25L, 25L, 25L, 25L, 25L, 25L, 25L, 29L, 29L, 29L,
29L, 29L, 29L, 29L, 39L, 39L, 39L, 39L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 18L, 18L, 18L, 18L, 18L, 18L,
18L, 19L, 19L, 19L, 19L, 19L, 19L, 23L, 23L, 23L, 23L, 23L, 23L,
23L, 34L, 34L, 34L, 34L, 34L, 34L, 38L, 38L, 38L, 38L, 38L, 38L,
38L, 45L, 45L, 45L, 45L, 45L, 45L, 46L, 46L, 46L, 46L, 46L, 46L,
46L, 49L, 49L, 49L, 49L, 49L, 49L), week = c(26L, 24L, 26L, 28L,
23L, 28L, 31L, 23L, 24L, 28L, 24L, 26L, 28L, 29L, 23L, 26L, 28L,
24L, 26L, 29L, 23L, 28L, 29L, 23L, 28L, 31L, 18L, 20L, 22L, 32L,
18L, 20L, 30L, 32L, 16L, 22L, 26L, 32L, 16L, 18L, 24L, 28L, 16L,
24L, 32L, 16L, 24L, 28L, 30L, 18L, 20L, 22L, 26L, 16L, 20L, 22L,
26L, 30L, 16L, 24L, 28L, 18L, 26L, 28L, 32L, 20L, 21L, 33L, 35L,
39L, 21L, 25L, 27L, 29L, 31L, 35L, 21L, 25L, 27L, 31L, 35L, 21L,
23L, 29L, 35L, 39L, 17L, 27L, 33L, 35L, 39L, 17L, 20L, 27L, 35L,
39L, 17L, 21L, 23L, 25L, 35L, 17L, 20L, 21L, 25L, 27L, 31L, 33L,
17L, 21L, 23L, 29L, 39L, 20L, 31L, 33L, 39L, 19L, 21L, 23L, 29L,
37L, 19L, 21L, 23L, 29L, 33L, 39L, 17L, 19L, 25L, 29L, 31L, 35L,
19L, 33L, 37L, 39L, 15L, 19L, 23L, 35L, 37L, 39L, 15L, 17L, 21L,
29L, 33L, 35L, 17L, 23L, 25L, 29L, 39L, 17L, 19L, 21L, 29L, 35L,
17L, 19L, 21L, 25L, 39L, 15L, 19L, 27L, 31L, 33L, 37L, 39L, 13L,
23L, 27L, 33L, 35L, 39L, 23L, 25L, 27L, 31L, 37L, 13L, 15L, 19L,
23L, 29L, 37L, 29L, 33L, 35L, 37L, 39L, 13L, 21L, 25L, 27L, 29L,
35L, 23L, 29L, 31L, 35L, 37L, 39L, 15L, 19L, 21L, 27L, 33L, 39L,
13L, 15L, 23L, 27L, 29L, 35L, 39L, 13L, 15L, 23L, 27L, 29L, 31L,
35L, 13L, 31L, 35L, 37L, 16L, 20L, 26L, 38L, 40L, 42L, 44L, 16L,
24L, 32L, 34L, 38L, 40L, 44L, 18L, 20L, 24L, 34L, 38L, 42L, 44L,
24L, 28L, 32L, 40L, 42L, 44L, 16L, 20L, 26L, 38L, 40L, 42L, 44L,
18L, 20L, 22L, 32L, 38L, 44L, 16L, 20L, 22L, 28L, 30L, 34L, 38L,
18L, 20L, 22L, 28L, 32L, 44L, 16L, 22L, 24L, 28L, 32L, 34L, 38L,
22L, 28L, 32L, 34L, 38L, 40L), bio.percent_b500 = c(0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.13, 16.13, 16.13, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15.73, 15.73, 15.73,
15.73, 15.73, 0, 0, 0, 0, 0, 0.75, 0.75, 0.75, 0.75, 0.75, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2.14, 2.14, 2.14, 2.14, 2.14, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13.69, 13.69, 13.69, 13.69,
13.69, 13.69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 6.47, 6.47, 6.47, 6.47, 6.47, 6.47, 6.47,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.68, 5.68,
5.68, 5.68, 5.68, 5.68, 5.68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 44.93, 44.93, 44.93, 44.93, 44.93,
44.93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0), osr.percent_b500 = c(10.12, 1.51, 1.51,
1.51, 0, 0, 0, 4.85, 4.85, 4.85, 0, 0, 0, 0, 8.94, 8.94, 8.94,
0, 0, 0, 0, 0, 0, 1.2, 1.2, 1.2, 6.41, 6.41, 6.41, 6.41, 0, 0,
0, 0, 8.27, 8.27, 8.27, 8.27, 4.67, 4.67, 4.67, 4.67, 7.2, 7.2,
7.2, 5.84, 5.84, 5.84, 5.84, 20.51, 20.51, 20.51, 20.51, 10.22,
10.22, 10.22, 10.22, 10.22, 9.85, 9.85, 9.85, 0.02, 0.02, 0.02,
0.02, 14.33, 14.33, 14.33, 14.33, 14.33, 21.6, 21.6, 21.6, 21.6,
21.6, 21.6, 0, 0, 0, 0, 0, 6.1, 6.1, 6.1, 6.1, 6.1, 3.18, 3.18,
3.18, 3.18, 3.18, 5.45, 5.45, 5.45, 5.45, 5.45, 0, 0, 0, 0, 0,
22.65, 22.65, 22.65, 22.65, 22.65, 22.65, 22.65, 0.52, 0.52,
0.52, 0.52, 0.52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5.59, 5.59, 5.59, 5.59, 5.59, 5.59, 7.41, 7.41, 7.41, 7.41, 4.13,
4.13, 4.13, 4.13, 4.13, 4.13, 21.77, 21.77, 21.77, 21.77, 21.77,
21.77, 3.58, 3.58, 3.58, 3.58, 3.58, 7.09, 7.09, 7.09, 7.09,
7.09, 18.35, 18.35, 18.35, 18.35, 18.35, 0.78, 0.78, 0.78, 0.78,
0.78, 0.78, 0.78, 0.41, 0.41, 0.41, 0.41, 0.41, 0.41, 12.2, 12.2,
12.2, 12.2, 12.2, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 7.57, 7.57,
7.57, 7.57, 7.57, 12.8, 12.8, 12.8, 12.8, 12.8, 12.8, 34.1, 34.1,
34.1, 34.1, 34.1, 34.1, 18.33, 18.33, 18.33, 18.33, 18.33, 18.33,
12.44, 12.44, 12.44, 12.44, 12.44, 12.44, 12.44, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97,
18.06, 18.06, 18.06, 18.06, 18.06, 18.06, 18.06, 0, 0, 0, 0,
0, 0, 0, 16.76, 16.76, 16.76, 16.76, 16.76, 16.76, 0, 0, 0, 0,
0, 0, 0, 4.99, 4.99, 4.99, 4.99, 4.99, 4.99, 0, 0, 0, 0, 0, 0,
0, 5.28, 5.28, 5.28, 5.28, 5.28, 5.28, 7.99, 7.99, 7.99, 7.99,
7.99, 7.99, 7.99, 18.09, 18.09, 18.09, 18.09, 18.09, 18.09),
honey.mean = c(2.48, 3.99666666666667, 2.36, 2.94, 3.42,
3.71, 4.09, 2.12, 3.92, 4.145, 6.27, 6.92, 9.16, 6.75, 6.8,
1.07, 6.06, 1.7, 3.4, 5.805, 4.45, 4.19, 13.61, 3.695, 2.86,
8.32, 7.67, 6.81, 3.68, 14.335, 2.78, 3.62, 19.035, 12.77,
5.81, 3.05, 10.22, 10.44, 4.43, 8.64, 2.4, 16.41, 2.9, 7.175,
15.735, 3.16, 1.49, 5.48, 18.95, 6.885, 4.46, 7.9, 0.68,
1.4, 2.5, 8.12, 3.09, 14.72, 5.85, 1.885, 16.44, 8.055, 6.68,
8.58, 24.7, 8.135, 8.43, 26.08, 16.83, 9.72, 5.24, 5.65,
5.19, 7.35, 17.25, 8.82, 14.95, 12.05, 7.3, 62.4, 16.68,
1, 10.65, 10.28, 19.65, 17.26, 6.64, 9.94, 65.15, 12.07,
20.62, 7.7, 6.31, 1.68, 20.97, 23.825, 6.5, 6.14, 4.22, 2.47,
17.97, 2.61, 3.17, 3.24, 0.57, 0.54, 33.07, 49.8, 9.1, 8.41,
7.29, 10.61, 19.67, 3.09, 37.125, 24.99, 18.62, 24.15, 17.96,
16.61, 28.86, 7.74, 18.95, 18.45, 15.56, 48.35, 16.045, 8.37,
23.47, 5.44, 1.8, 64.27, 17.08, 20.62, 18.465, 18.255, 16.5,
23.17, 7.49, 12.55, 7.45, 16.72, 23.29, 7.965, 9.83, 15.39,
11.19, 35.85, 16.755, 18.8, 19.51, 10.39, 14.02, 32.82, 12.9466666666667,
14.68, 15.79, 12.8, 40.37, 22.27, 14.63, 16.9, 6.65, 2.42,
18.24, 9.3, 23.08, 17.94, 57.78, 24.34, 20.06, 18.2, 3.99,
6.465, 2.93, 25.98, 19.87, 17.25, 13.21, 9.07, 5.21, 9.48,
11.825, 7.58, 3.41, 12.56, 13.58, 22.17, 19.43, 11.7, 36.5,
18, 12.675, 5.8, 7.72, 4.41, 1.96, 2.83, 12.04, 17.24, 15.77,
17.655, 40.15, 21.87, 17.42, 19.16, 8.91, 5.41, 19.91, 9.65,
43.54, 17.72, 2.85, 3.41, 7.4, 7.38, 13.73, 14.16, 20.25,
2.77, 5.93, 11.185, 2.36, 12.62, 30.24, 13.97, 9.11, 13.985,
12.54, 11.13, 1.54, 8.91, 1.3, 4.03, 9.2, 8.86, 9.12, 1.11,
7.83, 17.985, 0.86, 14.5, 4.17, 5.18, 5.76, 6.22, 3.79, 17.18,
15.83, 11.195, 9.99, 12.395, 7.42, 26.15, 18.29, 15.955,
14.76, 2.18, 4.41, 3.53, 11.77, 10.1, 12.81, 20.25, 4.9,
10.43, 0.84, 8.81, 19.59, 24.94, 1.42, 6.57, 11.38, 1.92,
6.97, 19.31, 17.885, 8.07, 11.25, 6.05, 5.55, 30.23, 9.82,
4.8, 4.94, 3.835, 2.54, 21.73, 20.84, 19.02, 5.62, 0.72,
23.335, 10.745, 10.43, 7.34)), .Names = c("year", "apiary",
"week", "bio.percent_b500", "osr.percent_b500", "honey.mean"), row.names = c(NA,
296L), class = "data.frame")
la source
gamm()
ougamm4()
, vous pouvez utiliserti()
avecgam()
et utiliser la base de spline à effet aléatoirebs = "re"
pour ajouter des effets aléatoires. itsadug n'est qu'une fonctionnalité supplémentaire basée sur les modèles gamm (). Si vous ajustez des modèles gaussiens, je resterais avecgamm()
ou mêmegam()
avec des splines à effet aléatoire.