J'essaie de modéliser les intensités moyennes des parasites affectant un hôte dans R en utilisant un modèle binomial négatif. Je reçois toujours 50 avertissements ou plus qui disent:
In dpois(y, mu, log = TRUE) : non-integer x = 251.529000
Comment puis-je gérer cela? Mon code ressemble à ceci:
mst.nb = glm.nb(Larvae+Nymphs+Adults~B.type+Month+Season, data=MI.df)
Réponses:
Le binôme négatif est une distribution pour les données de comptage, vous voulez donc vraiment que votre variable de réponse soit un comptage (c'est-à-dire des nombres entiers non négatifs). Cela dit, il convient de tenir compte de "différents efforts d'échantillonnage" (je ne sais pas exactement de quoi vous parlez, mais je comprends l'essentiel). Cependant, vous ne devriez pas essayer de le faire en divisant vos chiffres par un autre nombre. Au lieu de cela, vous devez utiliser cet autre numéro comme décalage . Il y a une belle discussion sur le CV de ce qu'est un décalage ici: Quand utiliser un décalage dans une régression de Poisson? Je suppose que votre modèle devrait être quelque chose comme:
la source
cbind()
.C'est un avertissement, pas une erreur fatale. glm.nb () attend des comptes comme variable de résultat, qui sont des entiers. Vos données ne sont pas des nombres entiers: 251.529.
R dit "Hmmm ... vous voudrez peut-être vérifier cela et vous assurer que tout va bien, car cela pourrait ne pas sembler bien." Si ma mémoire est correcte, SPSS ne donne pas un tel avertissement.
Si vous êtes sûr d'utiliser le bon modèle, même si vous n'avez pas d'entiers, ignorez-le et continuez.
la source
Je suis un parasitologue écologique .. la façon dont vous devez gérer cela est de lier les hôtes qui ont été parasités et ceux qui ne l'ont pas été, puis d'utiliser une distribution binomiale .. voir le code ci-dessous.
Je n'ai pas non plus utilisé de glm avec plus d'une variable y .. alors disons que vous voulez regarder les larves parasitées: vous auriez # de larves qui étaient saines, et le # qui étaient parasitées.
Disons: Lh et Lp
Donc par exemple
parasitizedL = cbind (Lp, Lh) hist (parasitized) #Im devinant que vous pouvez simplement utiliser une distribution binomiale régulière w / glm .. et que vous pourriez ne pas avoir besoin du modèle bin.ial binomial PLarvae1 = glm (parasitizedL ~ B.type + Month + Season, famille = binôme, données = MI.df)
puis faites une réduction du modèle par étapes pour voir lequel de vos facteurs affecte de manière significative le parasitisme ... voir le lien ci-dessous
http://bbolker.github.io/mixedmodels-misc/glmmFAQ.html
Cependant, il semble que vous ayez besoin d'effets aléatoires pour tenir compte de l'échantillonnage répétitif. Il est donc probable que votre effet aléatoire sera (1 | Saison / Mois) ... mais difficile à dire sans connaître vos données
la source