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?
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 simplementoffset=log(pop_at_risk)
à l'glm
appel.Réponses:
Vous pouvez utiliser le test non paramétrique de Mann-Kendall . Pour cet exemple de données
cases
et l'hypothèse nulle unilatérale selon laquelle il n'y a pas de tendance à la hausse, vous pouvez implémenter comme suit dansr.Et rejeter au niveau de 5% au profit d'une tendance à la hausse.
la source
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 .Ouit∼ (λt) Ouit t Journal(λt) = α + βt β> 0
la source
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.la source