J'ai récemment commencé à travailler pour une clinique antituberculeuse. Nous nous réunissons périodiquement pour discuter du nombre de cas de tuberculose que nous traitons actuellement, du nombre de tests administrés, etc. J'aimerais commencer à modéliser ces chiffres afin de ne pas simplement deviner si quelque chose est inhabituel ou non. Malheureusement, j'ai eu très peu de formation sur les séries chronologiques, et la majeure partie de mon exposition a porté sur des modèles pour des données très continues (cours des actions) ou un très grand nombre de dénombrements (grippe). Mais nous traitons 0-18 cas par mois (moyenne 6,68, médiane 7, var 12,3), qui sont répartis comme ceci:
[image perdue dans la nuit des temps]
[image mangée par une grue]
J'ai trouvé quelques articles qui traitent de modèles comme celui-ci, mais j'apprécierais grandement entendre vos suggestions - à la fois pour les approches et pour les packages R que je pourrais utiliser pour implémenter ces approches.
MODIFIER: La réponse de mbq m'a obligé à réfléchir plus attentivement à ce que je demande ici; Je me suis trop accroché aux chiffres mensuels et j'ai perdu le sens de la question. J'aimerais savoir: la baisse (assez visible) à partir de 2008, par exemple, reflète-t-elle une tendance à la baisse du nombre total de cas? Il me semble que le nombre de cas par mois de 2001-2007 reflète un processus stable; peut-être une certaine saisonnalité, mais globalement stable. De 2008 à aujourd'hui, il semble que ce processus soit en train de changer: le nombre total de cas diminue, même si les chiffres mensuels peuvent osciller en raison de l'aléatoire et de la saisonnalité. Comment puis-je tester s'il y a un vrai changement dans le processus? Et si je peux identifier un déclin,
la source
Réponses:
Pour évaluer la tendance historique, j'utiliserais un gam avec des composantes de tendance et saisonnières. Par exemple
Ensuite
summary(fit)
, vous donnera un test de signification du changement de tendance et le graphique vous donnera quelques intervalles de confiance. Les hypothèses ici sont que les observations sont indépendantes et la distribution conditionnelle est de Poisson. Étant donné que la moyenne peut évoluer en douceur dans le temps, ce ne sont pas des hypothèses particulièrement solides.Il est plus difficile de prévoir car il faut projeter la tendance dans le futur. Si vous êtes prêt à accepter une extrapolation linéaire de la tendance à la fin des données (ce qui est certainement douteux mais probablement correct pendant quelques mois), alors utilisez
Pour voir les prévisions sur le même graphique:
Vous pouvez repérer les mois inhabituels en recherchant des valeurs aberrantes dans les résidus (de déviance) de l'ajustement.
la source
Vous voudrez peut-être jeter un œil à strucchange :
PS. Jolis graphismes;)
la source
A-t-il vraiment besoin d'un modèle avancé? D'après ce que je sais de la tuberculose, s'il n'y a pas d'épidémie, les infections sont des actes stochastiques et donc le décompte du mois N ne devrait pas être corrélé avec le décompte du mois N-1. (Vous pouvez vérifier cette hypothèse avec l'autocorrélation). Si tel est le cas, l'analyse de la distribution des dénombrements mensuels peut suffire pour décider si un dénombrement est significativement plus élevé que la normale.
D'un autre côté, vous pouvez rechercher des corrélations avec d'autres variables, comme la saison, le trafic de voyage ou tout ce que vous pouvez imaginer pouvant être corrélé. Si vous trouviez quelque chose comme ça, il pourrait alors être utilisé pour une normalisation des données.
la source
Souvent, des données sur les maladies comme celle-ci sont effectuées avec un modèle linéaire généralisé, car ce n'est pas nécessairement une excellente application de l'analyse des séries chronologiques - les mois ne sont souvent pas tous en corrélation les uns avec les autres.
Si on me donnait ces données, voici ce que je ferais (et en fait, j'aurais fait avec des données similaires):
Créez une variable «temps» qui est plus précisément décrite comme «mois depuis le 1/1/2000» si je regarde correctement vos données. Ensuite, je lancerais un modèle linéaire général dans R en utilisant la distribution de Poisson (ou binomiale négative) et un lien log avec à peu près la forme suivante:
log(Counts) = b0 + b1*t + b2*(t^2) + b3*cos(2pi*w*t) + b4*sin(2pi*w*t)
Où t est le temps décrit ci-dessus et w est 1/365 pour une maladie annuelle comme la grippe. Généralement, son 1 / n, où n est la longueur du cycle de votre maladie. Je ne sais pas ce que c'est pour la tuberculose.
Les deux tendances temporelles vous montreront - en dehors de la variation saisonnière normale - si vous avez une variation significative dans le temps.
la source
Vous pourriez envisager d'appliquer un graphique de contrôle Tukey aux données.
la source
Vous pouvez essayer de modéliser vos données à l'aide d'un modèle linéaire généralisé dynamique (DGLM). Dans R, vous pouvez adapter ce type de modèles en utilisant les packages sspir et KFAS. En un sens, cela est similaire à l'approche gam suggérée par Rob, sauf qu'au lieu de supposer que la moyenne logarithmique des observations de Poisson est une fonction lisse du temps, elle suppose qu'elle suit une dynamique stochastique.
la source
dlm
paquet. Les DLM ne sont pas aussi faciles à utiliser que les autres solutions, mais ledlm
rendent aussi simple que possible et ont une belle vignette qui vous guide tout au long du processus.Je vais laisser la question principale tranquille, car je pense que je vais me tromper (même si j'analyse moi aussi les données pour un professionnel de la santé, et pour être honnête, si j'avais ces données, je les analyserais simplement en utilisant des techniques standard et espérons pour le mieux, ils me semblent assez bien).
En ce qui concerne les packages R, j'ai trouvé la bibliothèque TSA et son livre d' accompagnement très utiles. La
armasubsets
commande, en particulier, je pense est un grand gain de temps.la source
Échappez aux statistiques énumératives traditionnelles comme le suggère Deming et aventurez-vous dans les statistiques analytiques traditionnelles - dans ce cas, les cartes de contrôle. Voir tous les livres de Donald Wheeler PhD, en particulier ses "Advanced Topics in SPC" pour plus d'informations.
la source
En réponse à votre question directe "Comment puis-je tester s'il y a un réel changement dans le processus? Et si je peux identifier un déclin, comment pourrais-je utiliser cette tendance et quelle que soit la saisonnalité qu'il pourrait y avoir pour estimer le nombre de cas que nous pourrions voir dans les prochains mois? " Développer un modèle de fonction de transfert (ARMAX) qui explique facilement la dépendance de période en période, y compris la structure ARIMA saisonnière. Intégrez tous les changements de niveau identifiables, les impulsions saisonnières, les tendances de l'heure locale et les PUlses qui pourraient avoir été suggérés par des méthodes empiriques / analytiques comme la détection des interventions. SI CE MODÈLE ROBUSTE COMPREND UN FACTEUR / SÉRIE correspondant à des «déclins» Alors vos prières ont été exaucées. Dans l'alternative, il suffit d'ajouter une structure hypothétique, par exemple pour tester un changement de tendance temporelle au point T1, construire deux variables muettes X1 = 1,1,2,3 ,,,,,, T et X2 = 0,0,0,0,0,0,0,0,1,2,3,4,5, .... O END SE TERMINENT LES ZÉROS À LA PÉRIODE T1-1. Le test de l'hypothèse d'un changement de tendance significatif à la période T1 sera évalué à l'aide de la "valeur t" pour X2.
Édité 22/09/11
Souvent, des données sur les maladies comme celle-ci ont des effets mensuels, car la météo / température est souvent une cause non spécifiée. En omettant la vraie série caudsale, les modèles ARIMA utilisent la mémoire ou des mannequins saisonniers comme substitut. De plus, des séries comme celle-ci peuvent avoir des changements de niveau et / ou des tendances temporelles locales reflétant un changement structurel au fil du temps. Exploiter la structure autorégressive dans les données plutôt que d'imposer divers artefacts comme le temps et le carré du temps et le temps cubique, etc. s'est avéré très utile et moins présomptif et ad hoc. Il faut également prendre soin d'identifier les «valeurs inhabituelles» car elles peuvent souvent être utiles pour suggérer des variables de cause supplémentaires et conduire au minimum à des estimations robustes des autres paramètres du modèle. Enfin, nous avons constaté que la variabilité / les paramètres peuvent varier au fil du temps, donc ces améliorations de modèle peuvent être en ordre.
la source