En dehors de simple Moyenne ou somme, il n'y a pas grand chose de disponible en fonctions statistiques.
Les fonctions suivantes reprennent les algorithmes ultra connus permettant de calculer la Moyenne, la Variance, l'Ecart-Type, la Covariance et l'Indice de Corrélation Linéaire
Le principe est simple : renseigner un ou plusieurs tableaux avec les données que l'on veut utiliser.
Toutes les fonctions et variables décrites ci-dessous doivent être contenues dans un fichier .asp et être appelées via un #include pour éviter d'avoir 2 tonnes de code dans la page.
<% ' soit : n le nbre d'éléments de la matrice ' Xi un élément de la matrice ' S(Xi) la somme des éléments de la matrice (pour i=1 à n)
function GetMatriceLib(arrMat) ' Retourne le libellé d'une matrice if GetNbElements(arrMat)>0 THEN GetMatriceLib = arrMat(1) end if end function
function GetNbElements(arrMat) ' Retourne le nombre d'éléments dans le tableau GetNbElements = UBound(arrMat) end function
function InitTableauMatrice() ' Initialisation du tableau des matrices ReDim arrTableauMatrice (0) end function
function InitMatrice() ' Initialisation de la matrice ReDim arrMatrice (0) end function
function ConstTableauMatrice() ' Ajout d'une matrice au tableau des matrices Dim indice indice = GetNbElements(arrTableauMatrice)+1 ReDim Preserve arrTableauMatrice(indice) arrTableauMatrice(indice) = arrMatrice end function
function ConstMatrice(strLibelle, flValeur) ' Ajout d'une valeur Dim nbElt
nbElt = GetNbElements(arrMatrice)+1
ReDim Preserve arrMatrice(nbElt)
'Ajout du libellé lors du 1er enregistrement if nbElt = 1 THEN arrMatrice(nbElt) = strLibelle
nbElt = nbElt+1 ReDim Preserve arrMatrice(nbElt) end if
arrMatrice(nbElt) = flValeur end function
function Moyenne(arrMat, IndiceDep) ' Moyenne(X) = S(Xi) / n
function Covariance(arrMat1, arrMat2, IndiceDep) ' Covariance (X, Y) = S((Xi- Moyenne(X))*((Yi- Moyenne(Y)) / n Dim flMoyMatrice1 Dim flMoyMatrice2 Dim flCovariance Dim iNbElt Dim i Dim j
j = 0 iNbElt = 0 i = IndiceDep
' Vérification que les 2 matrices ont le même nombre d'objets if (GetNbElements(arrMat1) <> GetNbElements(arrMat2)) OR GetNbElements(arrMat1) = 0 then response.write ("Les deux matrices n'ont pas le même nombre d'éléments,") response.write (" calcul de la covariance impossible") covariance = "" else flCovariance = 0 iNbElt = GetNbElements(arrMat1)+1
flCovariance = flCovariance + (arrMat1(i) - flMoyMatrice1)*(arrMat2(i) - flMoyMatrice2) i = i+1 j = j+1 wend flCovariance = flCovariance / j end if Covariance = flCovariance end function
function IndiceCorrelationLineaire(arrMat1, arrMat2, IndiceDep) ' IndiceCorrelationLineaire (X, Y) = Covariance(X, Y) / (EcartType (X) * EcartType (Y)) Dim flIndice Dim i
i = IndiceDep
' Vérification que les 2 matrices ont le même nombre d'objets if (GetNbElements(arrMat1) <> GetNbElements(arrMat2)) OR GetNbElements(arrMat1) = 0 then response.write ("Les deux matrices n'ont pas le même nombre d'éléments,") response.write (" calcul de l'indice de corrélation linéaire impossible") flIndice = "" else
if (EcartType(arrMat1, i) * EcartType(arrMat2, i)) <> 0 THEN flIndice = Covariance(arrMat1, arrMat2, i) / (EcartType(arrMat1, i) * EcartType(arrMat2, i)) end if end if
IndiceCorrelationLineaire = flIndice end function %>