PoissonTestBilateral12=function(Lambda1,Lambda2,Taille,Seuil) # appel de la fonction avec les paramètres de la loi de Poisson permettant de tester H0 : Lamdba1 <= Lambda <= Lambda2 contre # H1 : Lambda < Lambda1 ou Lambda2 < Lambda , la Taille de l'échantillon et le Seuil du test ; { nLambda1=Taille*Lambda1 # paramètre de la première loi de Poisson de la statistique T ; nLambda2=Taille*Lambda2 # paramètre de la deuxième loi de Poisson de la statistique T ; Arret=FALSE # variable logique qui stoppe la boucle du calcul des valeurs critiques ; c2=qpois(1-1e-6,nLambda2)+1 # première valeur critique supérieure ; c1=c2-2 # première valeur critique inférieure ; while(Arret==FALSE & c1>=0) # boucle calculant les valeurs critiques ; { p11=ppois(c1,nLambda1) p12=ppois(c2-1,nLambda1) # p12-p11=P(c10) & (1-Seuil-p22+p21>0)) # tests séquentiels sur le fait que la probabilité de l'intervalle d'acceptation ne dépasse pas 1-Seuil pour les deux lois ; { c1=c1-1 # nouvelle valeur critique inférieure ; } else { c1=c1+1 # retour à la précédente valeur critique inférieure ; p11=ppois(c1,nLambda1) p12=ppois(c2-1,nLambda1) pr11=dpois(c1,nLambda1) # probabilité de la valeur critique inférieure pour la première loi ; pr12=dpois(c2,nLambda1) # probabilité de la valeur critique supérieure pour la première loi ; pr21=dpois(c1,nLambda2) # probabilité de la valeur critique inférieure pour la deuxième loi ; pr22=dpois(c2,nLambda2) # probabilité de la valeur critique supérieure pour la deuxième loi ; Det=pr11*pr22-pr12*pr21 # calcul des constantes gamma1 et gamma2 ; gamma1=1-(((1-Seuil-p12+p11)*pr22-(1-Seuil-p22+p21)*pr12)/Det) gamma2=1-(((1-Seuil-p22+p21)*pr11-(1-Seuil-p12+p11)*pr21)/Det) if((Det>0) & (gamma1>=0) & (gamma1<=1) & (gamma2>=0) & (gamma2<=1)) # existence et validité des constantes ; { cat("La valeur critique c1 est ", c1," avec gamma1 ", gamma1,"\n") # affichage des r&sultats ; cat("La valeur critique c2 est ", c2," avec gamma2 ", gamma2,"\n") cat("Une réalisation de U(]0 ; 1[) est ", runif(1),"\n\n") Arret=TRUE } else { c2=c2-1 # nouvelle valeur critique supérieure ; c1=c2-2 # nouvelle valeur critique inférieure ; } } } }