Bonjour à tous : J'ai joint un exemple de jeu de données pour illustrer un point qui me perturbe. Supposons que je souhaite un intervalle de confiance pour la différence entre deux proportions. Ce devrait être assez simple. Ainsi, grâce à « Ajuster Y par X » (JMP v18.0.0), j'obtiens trois intervalles sous les intitulés suivants :
Test à deux échantillons pour les proportions.
Différence de risque
Tests TOST

Comme vous pouvez le voir, les intervalles ne sont pas cohérents entre eux.
Ma question est la suivante :
1. Pourquoi ne sont-ils pas identiques ?
2. Quelles formules sont utilisées pour chacune d’elles ?
3. Est-ce que j’ai raté quelque chose ?
J'ai trouvé cela pour le rapport sur les deux proportions d'échantillons (cela pourrait être plus explicite à mon humble avis).
Rapport de test de deux échantillons pour les proportions
Merci pour votre considération éclairée !
Pour information, j'ai contacté le support technique et j'ai reçu ce qui suit.
Les trois tests utilisent des méthodes légèrement différentes, ce qui explique la différence observée dans les intervalles de confiance. Ces méthodes sont décrites dans la documentation SAS : https://go.documentation.sas.com/doc/en/statcdc/14.2/statug/statug_freq_details53.htm#statug.freq.freqrdiffcl
1. Pour le test à deux échantillons pour les proportions, JMP utilise la limite Agresti-Caffo : Le script suit.
x1 = 19; n1 = 20;
x2 = 18; n2 = 20;
/* proportion difference */
diff = x1/n1 - x2/n2;
/* Calculation for CI for Two Sample Test for Proportion */
p1 = (x1+1)/(n1+2);
p2 = (x2+1)/(n2+2);
pdiff= p1 - p2;
lower = pdiff - normalquantile(.95)*sqrt(p1*(1-p1)/(n1+2)+p2*(1-p2)/(n2+2));
upper = pdiff + normalquantile(.95)*sqrt(p1*(1-p1)/(n1+2)+p2*(1-p2)/(n2+2));
show(lower, upper);
2. L'intervalle de confiance pour la différence de risque utilise l'intervalle de Wald : Le script suit.
/* Calculation for CI for Risk Difference */
p1 = (x1)/(n1);
p2 = (x2)/(n2);
diff = x1/n1 - x2/n2;
lower = diff - normalquantile(.95)*sqrt(p1*(1-p1)/(n1)+p2*(1-p2)/(n2));
upper = diff + normalquantile(.95)*sqrt(p1*(1-p1)/(n1)+p2*(1-p2)/(n2));
show(lower, upper);
3. Les limites de confiance pour la différence de risque dans le test d'équivalence utilisent les limites de confiance de Miettinen-Nurminen (score) : Le script suit.
/* Calculation for CI for Equivalence Test */
/* mnStdEquivDiff is a function to calculate the standard deviation of se(p1-p2) */
mnStdEquivDiff=Function({n11, n21, n1, n2, n, margin },
{default local},
p1_hat=n11/n1;
p2_hat=n21/n2;
theta=n2/n1;
d=-p1_hat*margin*(1+margin);
c=margin^2+margin*(2*p1_hat+theta+1) + p1_hat + theta*p2_hat;
b=-(1+theta+p1_hat + theta*p2_hat + margin*(theta+2));
a=1+theta;
v=b^3/(3*a)^3-b*c/(6*a^2) + d/(2*a);
if(v>0, sign=1, sign=-1);
u=sign*root(b^2/(3*a)^2 -c/(3*a));
w=(pi()+ArcCosine(v/u^3))/3;
p1_tlt=2*u*cosine(w)-b/(3*a);
p2_tlt =p1_tlt -margin;
var1=p1_tlt*(1-p1_tlt)/n1;
var2=p2_tlt*(1-p2_tlt)/n2;
correct=n/(n-1);
correct=1;
std_diff=root(correct*(var1+var2));
std_diff;
);
/* Calculation using the example data */
n11=19;
n21=18;
n1=20;
n2=20;
n=40;
alpha=0.05;
p1=n11/n1;
p2=n21/n2;
diff=p1-p2;
show(diff);
maxit=100;
conv = .00000001;
z=ChiSquare Quantile( 0.9, 1 );
pdiff = diff;
correct=1;
//calculate the lower confidence limit
inc=1+diff;
converged = 0;
for (i = 0, i < maxit, i++,
inc *= 0.5;
lcl = pdiff - inc;
var = mnStdEquivDiff(n11, n21, n1, n2, n, lcl);
var = var * var;
var *= correct;
d = diff - lcl;
if( var > 0, score=(d * d) / var, score=. );
if (score < z, pdiff = lcl);
if ((inc < conv) | abs(z - score) < conv,
converged = 1;
break();
);
);
if ((i == maxit) & converged==0, lcl = MACMISSING);
//calculate the upper confidence limit
inc=1-diff;
converged = 0;
for (i = 0, i < maxit, i++,
inc *= 0.5;
ucl = pdiff + inc;
var = mnStdEquivDiff(n11, n21, n1, n2, n, ucl);
var = var * var;
var *= correct;
d = diff - ucl;
if( var > 0, score=(d * d) / var, score=. );
if (score < z, pdiff = ucl);
if ( (inc < conv) | abs(z - score) < conv,
converged = 1;
break();
);
);
if ((i == maxit) & converged==0, ucl = MACMISSING);
show(lcl, ucl);
Ils ont également indiqué qu'ils ouvriraient deux demandes auprès de l'équipe de développement. La première concernerait l'équipe de documentation, afin d'ajouter les références (et les détails statistiques) pour chacune des méthodes. La seconde demande de fonctionnalité serait adressée à l'équipe de développement pour permettre à l'utilisateur de choisir la méthode souhaitée.
Comme d'habitude, le support technique est très utile, complet et professionnel.