MATH_EgaliteProportions [Statistiques]
Par Teddy Linet (Math4D v1)
Nouvelle recherche
Si (Faux)
` MATH_EgaliteProportions [Teddy LINET 12/2002]
` ---------------------------------------------
` ATTENTION : Nécessite MATH_LoiNormale
` ---------------------------------------------
` Dans sa 1ère écriture :
` Permet de comparer une proportion vraie à une valeur donnée
` Dans sa 2e écriture
` Permet de comparer deux proportions expérimentales
`
` Renvoie p, le risque que ses 2 valeurs soient différentes
` Si p est supérieur au seuil de signification (habituellement 5%) on peut
` considerer que les moyennes sont différentes (rejet de l'hypothèse Ho);
` Sinon, on ne peut rien conclure
`
` ATTENTION : ceci ne correspond pas à la conduite habituelle
` en statistiques (d'abord test, puis calcul de p si z est dans l'intervalle
` de confiance); Mais le résultat est en fait équivalent
` ---------------------------------------------
` Rappels mathématiques :
` Le test d'égalité d'une proportion expérimentale (Po) à une valeur donnée (Ph)
` Ce test permet de vérifier si Po différent Ph (rejet de Ho)
` Le paramètre à évaluer est donc le suivant :
` Po-Ph
` z =-------------------
` Sqr((Ph(1-Ph))/n)
`ou n représente le nombre d'élément
` Conditions de validité : n*Ph >= 5 et n*(1-Ph)>= 5
` Pour comparer 2 proportions expérimentales (Poa et Pob) le paramètre à évaluer
` Poa - Pob
` z=----------------------
` (^p(1-^p) (^p(1-^p) naPoa+nbPob
` Sqr(-------- + -------- ) ou ^p =-------------
` ( na nb ) na+nb
` Les conditions sont : na*^p>=5 ; na(1-^p)>=5 ; nb*^p>=5 ; nb(1-^p)>=5
` ---------------------------------------------
` Deux écritures :
`
` MATH_EgaliteMoyennes (ProportionObs;NbElements;ProportionReelle)
` ProportionObs (Réel) : Proportion Observée dans la série
` NbElements (Réel) : Nombre d'éléments de la série
` ProportionReelle (Réel) : Valeur à comparer
` Renvoie $O (Réel) représentant p le risque que ses 2 valeurs soient différente
`
` MATH_EgaliteMoyennes (ProprotionA;NbElementsA;ProportionB;NbElementsB)
` ProprotionA (Réel) : Proportion Observée dans la série A
` NbElementsA (Réel) : Nombre d'éléments de la série A
` ProportionB (Réel) : Proportion Observée dans la série B
` NbElementsB (Réel) : Nombre d'éléments de la série B
` ---------------------------------------------
` MATHERROR
` 0 -> Pas d'erreur
` -1 -> n <= 0
` -2 -> Ph nul
` -3 -> Pas des proportions
` +1 -> Conditions non remplies
` +3 -> n n'est pas un entier (arrondi)
` ---------------------------------------------
` EXEMPLES
`
Fin de si
C_REEL($0;$p_F;$z_F;$1;$vProportionObs_F;$vProportionA_F;$2;$vNbElementsObs_F;$vNbElementsA_F)
C_REEL($3;$vProportionReelle_F;$vProportionB_F;$4;$vNbElementsB_F;$vpChapeau_F;$VariableTravail_F)
C_ENTIER LONG($vMathError_L;MATHERROR)
$vMathError_L:=0
$p_F:=0 ` par défaut
Si (Nombre de parametres#4) `Cas ou il s'agit de la comparaison avec une proportion vraie
$vProportionObs_F:=$1
$vNbElementsObs_F:=$2
$vProportionReelle_F:=$3
` Matherror n'est pas tout de suite calculée
` Car elle pourrait être parasitée par LoiNormale
Au cas ou
: ($vNbElementsObs_F<=1) ` Sinon division par zéro
$vMathError_L:=-1
: ($vProportionReelle_F=0) ` Sinon division par zéro
$vMathError_L:=-2
: (($vProportionObs_F>1) | ($vProportionObs_F<0) | ($vProportionReelle_F>1) | ($vProportionReelle_F<0))
$vMathError_L:=-3
Sinon ` Erreurs corrigeables (du moins important au plus important)
` On ne met pas de "au cas ou" car elles pourront peut-être être multiples
Si (($vNbElementsObs_F-Ent($vNbElementsObs_F))#0) ` Pas un entier
$vMathError_L:=3
$vNbElementsObs_F:=Arrondi($vNbElementsObs_F;0) ` Arrondi
Fin de si
Si ((($vNbElementsObs_F*$vProportionReelle_F)<5) | (($vNbElementsObs_F*(1-$vProportionReelle_F))<5)) ` Vérifie que les conditions sont remplies
$vMathError_L:=1
Fin de si
Fin de cas
Si ($vMathError_L>=0) ` Pas de drame => on continue
$z_F:=$vProportionObs_F-$vProportionReelle_F
$VariableTravail_F:=($vProportionReelle_F*(1-$vProportionReelle_F))
$VariableTravail_F:=$VariableTravail_F/$vNbElementsObs_F
$VariableTravail_F:=Racine carree($VariableTravail_F)
$z_F:=$z_F/$VariableTravail_F ` Calcul du paramètre
` Logiquement on vérifie que le paramètre est bien dans l'intervalle de pari
$p_F:=1-(MATH_LoiNormale ($z_F;"P")*2) ` Puis on cacul p
Fin de si
Sinon ` Cas ou il s'agit de la comparaison entre 2 proportions observées
$vProportionA_F:=$1
$vNbElementsA_F:=$2
$vProportionB_F:=$3
$vNbElementsB_F:=$4
Au cas ou
: (($vNbElementsA_F<=1) | ($vNbElementsB_F<=1)) ` Sinon division par zéro
$vMathError_L:=-1
: (($vProportionA_F=0) | ($vProportionB_F=0)) ` Sinon division par zéro
$vMathError_L:=-2
: (($vProportionA_F>1) | ($vProportionA_F<0) | ($vProportionB_F>1) | ($vProportionB_F<0))
$vMathError_L:=-3
Sinon ` Erreurs corrigeables (du moins important au plus important)
Si (($vNbElementsA_F-Ent($vNbElementsA_F))#0) ` Pas un entier
$vMathError_L:=3
$vNbElementsA_F:=Arrondi($vNbElementsA_F;0) ` Arrondi
Fin de si
Si (($vNbElementsB_F-Ent($vNbElementsB_F))#0) ` Pas un entier
$vMathError_L:=3
$vNbElementsB_F:=Arrondi($vNbElementsB_F;0) ` Arrondi
Fin de si
Fin de cas
Si ($vMathError_L>=0) ` Pas de drame => on continue
$vpChapeau_F:=($vNbElementsA_F*$vProportionA_F)+($vNbElementsB_F*$vProportionB_F)
$vpChapeau_F:=$vpChapeau_F/($vNbElementsA_F+$vNbElementsB_F) ` Calcul de ^p
$z_F:=$vProportionA_F-$vProportionB_F
$VariableTravail_F:=($vpChapeau_F*(1-$vpChapeau_F))
$VariableTravail_F:=$VariableTravail_F*((1/$vNbElementsA_F)+(1/$vNbElementsB_F))
$VariableTravail_F:=Racine carree($VariableTravail_F)
$z_F:=$z_F/$VariableTravail_F ` Calcul du paramètre
` Logiquement on vérifie que le paramètre est bien dans l'intervalle de pari
$p_F:=1-(MATH_LoiNormale ($z_F;"P")*2) ` Puis on cacul p
` Vérifie que les conditions sont remplies
Au cas ou ` Pour être plus lisible (un si-fin de si aurait suffit)
: (($vNbElementsA_F*$vpChapeau_F)<5)
$vMathError_L:=1
: (($vNbElementsA_F*(1-$vpChapeau_F))<5)
$vMathError_L:=1
: (($vNbElementsB_F*$vpChapeau_F)<5)
$vMathError_L:=1
: (($vNbElementsB_F*(1-$vpChapeau_F))<5)
$vMathError_L:=1
Fin de cas
Fin de si
Fin de si
$0:=$p_F ` Enfin, on renvoie la valeur calculée
MATHERROR:=$vMathError_L ` Puis on renvoie le matherror de cette fonction