Test statistique pour l'augmentation de l'incidence d'un événement rare

8

J'ai suivi des données simulées de 2500 personnes concernant l'incidence d'une maladie rare sur 20 ans

year number_affected
1   0
2   0
3   1
4   0
5   0
6   0
7   1
8   0
9   1
10  0
11  1
12  0
13  0
14  1
15  1
16  0
17  1
18  0
19  2
20  1

Quel test puis-je appliquer pour montrer que la maladie devient plus courante?

Edit: comme suggéré par @Wrzlprmft j'ai essayé la corrélation simple en utilisant Spearman et aussi les méthodes Kendall:

        Spearman's rank correlation rho

data:  year and number_affected
S = 799.44, p-value = 0.08145
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.3989206 

Warning message:
In cor.test.default(year, number_affected, method = "spearman") :
  Cannot compute exact p-value with ties
> 



        Kendall's rank correlation tau

data:  year and number_affected
z = 1.752, p-value = 0.07978
alternative hypothesis: true tau is not equal to 0
sample estimates:
      tau 
0.3296319 

Warning message:
In cor.test.default(year, number_affected, method = "kendall") :
  Cannot compute exact p-value with ties

Sont-ils suffisamment bons pour ce type de données? Le test de Mann Kendall utilisant la méthode montrée par @AWebb donne une valeur P de [1] 0,04319868. La régression de Poisson suggérée par @dsaxton donne le résultat suivant:

Call:
glm(formula = number_affected ~ year, family = poisson, data = mydf)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.3187  -0.8524  -0.6173   0.5248   1.2158  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) -1.79664    0.85725  -2.096   0.0361 *
year         0.09204    0.05946   1.548   0.1217  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 16.636  on 19  degrees of freedom
Residual deviance: 14.038  on 18  degrees of freedom
AIC: 36.652

Number of Fisher Scoring iterations: 5

La composante année ici n'est pas significative. Que puis-je enfin conclure? De plus, dans toutes ces analyses, le nombre 2500 (dénominateur de la population) n'a pas été utilisé. Ce chiffre ne fait-il pas de différence? Peut-on utiliser une régression linéaire simple (gaussienne) en utilisant l'incidence (nombre_affecté / 2500) par rapport à l'année?

rnso
la source
Certaines ressources pourraient vous être utiles: l'US Geological Survey a publié un manuel en ligne, Statistical Methods in Water Resources . Le chapitre sur l'analyse des tendances, ici , couvre des choses comme le test de Mann-Kendal et quand vous préférerez peut-être entreprendre une analyse de régression à la place. Il montre également comment gérer la saisonnalité, qui pourrait être pertinente pour vous si vos données étaient trimestrielles plutôt qu'annuelles.
Silverfish
Fait intéressant, la mise en œuvre par Scipy du τ de Kendall donne le même coefficient mais une valeur p radicalement différente , à savoir 0,042.
Wrzlprmft
1
En ce qui concerne le modèle de Poisson, j'utiliserais plutôt drop1(fit, test="LRT")un test de rapport de vraisemblance au lieu de faire un test z asymptotique sur la statistique de Poisson. (Cela vous donne une valeur p de 0,107, donc toujours non statistiquement significative.) Vous n'avez pas besoin d'inclure le nombre d'habitants dans la régression s'il est le même pour chaque année. Ensuite, il joue simplement le rôle d'un facteur d'échelle. Mais vous devez inclure (avec les valeurs de la population par année), comme la population à risque probablement ne varie au cours des vingt années. Ajoutez simplement offset=log(pop_at_risk)à l' glmappel.
Karl Ove Hufthammer

Réponses:

3

Vous pouvez utiliser le test non paramétrique de Mann-Kendall . Pour cet exemple de données caseset l'hypothèse nulle unilatérale selon laquelle il n'y a pas de tendance à la hausse, vous pouvez implémenter comme suit dans.

> n<-length(cases)
> d<-outer(cases,cases,"-")
> s<-sum(sign(d[lower.tri(d)]))
> ties<-table(cases)
> v<-1/18*(n*(n-1)*(2*n+5)-sum(ties*(ties-1)*(2*ties+5)))
> t<-sign(s)*(abs(s)-1)/sqrt(v)
> 1-pnorm(t)
[1] 0.04319868

Et rejeter au niveau de 5% au profit d'une tendance à la hausse.

A. Webb
la source
Savez-vous par hasard s'il existe une différence entre le test de Mann – Kendall et le test de signification normale pour le τ de Kendall? Ou le test de Mann – Kendall est-il même le moyen normal d'obtenir des valeurs de signification pour le τ de Kendall? Au moins, les statistiques de test ne diffèrent que par un facteur de normalisation qui ne dépend que de la longueur de la série chronologique:S=12n(n1)τ.
Wrzlprmft
@Wrzlprmft Il s'agit du test de signification d'approximation normale typique en présence de liens. L' article de Wikipedia contient de bonnes informations / références pour les divers ajustements nécessaires pour tenir compte des liens.
A. Webb
2

Vous pourriez adapter un modèle de régression très simple composé uniquement d'une composante d'interception et de temps et tester la «signification» de la composante de temps. Par exemple, vous pouvez modéliser Poisson où est le nombre d'occurrences de l'année et et vérifier si .Yt(λt)YttJournal(λt)=α+βtβ>0

dsaxton
la source
Je conviens que la régression de Poisson est appropriée. Et si l'on avait plus de données, on pourrait même adapter le taux d'incidence (log) en fonction non linéaire du temps. Un avantage supplémentaire de la régression de Poisson est qu'il est facile de prendre en compte le nombre de personnes à risque . Et lorsqu'il s'agit de temps, cela est particulièrement important, car la tendance (possible) d'incidence que nous constatons peut être simplement l'effet d'une population à risque croissante, et non d'un taux d' incidence croissant . (Par exemple, la population mondiale a augmenté d'un quart au cours des vingt dernières années.)
Karl Ove Hufthammer
1

Vérifiez simplement si votre nombre de nouveaux cas (c.-à-d. number_affected) Est significativement corrélé avec le temps (c.-à year-d.). Comme toute dépendance linéaire possible du taux d'événements est au moins faussée par la discrétisation observationnelle, vous souhaitez utiliser un coefficient de corrélation basé sur le rang, par exemple, le τ de Kendall ou le ρ de Spearman.

Wrzlprmft
la source
Je voulais en fait dire l'incidence, c'est-à-dire que number_affected indique de nouveaux cas cette année-là. Mais votre méthode de corrélation simple devrait également fonctionner pour cela.
rnso
@rnso: Je voulais en fait dire l'incidence, c'est-à-dire que number_affected indique de nouveaux cas cette année-là. - c'est comme ça que je l'ai compris et je ne vois aucune contradiction.
Wrzlprmft
1
J'ai fait ce commentaire puisque vous avez utilisé le mot «prévalence» dans votre réponse. La prévalence inclura également les cas des années précédentes (sauf s'ils sont décédés). en.wikipedia.org/wiki/…
rnso
@rnso: Ah, point pris.
Wrzlprmft
1
Les mesures de corrélation, comme τ de Kendalls ou ρ de Spearman, ne sont pas appropriées, car elles sont créées pour des variables aléatoires , et ici l'une des variables (temps) n'est évidemment pas aléatoire du tout. Voir, par exemple, Ne pas résumer les schémas d'échantillonnage de régression avec corrélation . En outre, les Kendalls de de la τ ou Spearman p tests ne seront pas très bien, car il y a une grande quantité de liens dans les données. Une approche de régression serait préférable, par exemple, une régression de Poisson (avec une fonction de tendance appropriée) et un test de rapport de vraisemblance.
Karl Ove Hufthammer du