Designed by Derf !
41 en ligne   Boutique | Sites | Bar | Forum | PhpBB | Actu | Glossaire | Codes | Tips | Liens | Livres | Lettre  


 Recherche

 NewsLetter





   

[ASP] Calculs statistiques (1/3)

Moyenne, Variance, Ecart-type, Covariance, ...





jollt
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


Introduction / Code - Utilisation - Exemple


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)

ReDim arrMatrice (0)
ReDim arrTableauMatrice (0)
ReDim arrMatriceIndice (0)

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

   Dim flMoy
   Dim iNbElt
   Dim i
   Dim j

   j = 0
   flMoy = 0
   iNbElt = GetNbElements(arrMat)+1
   i=IndiceDep

   while i < iNbElt
      flMoy = flMoy + arrMat(i)
      i = i+1
      j=j+1
   wend 
   flMoy = flMoy / j

   Moyenne = flMoy
end function

function Variance(arrMat, IndiceDep)
   ' Variance (X) = S(Xi-Moyenne(X))² / n
   Dim flMoy
   Dim flVariance
   Dim iNbElt
   Dim i
   Dim j

   j = 0
   i = IndiceDep
   flMoy = Moyenne(arrMat, i)
   flVariance = 0
   iNbElt = GetNbElements(arrMat)+1

   while i < iNbElt
      flVariance = flVariance + (arrMat(i)-flMoy)^2 
      i = i+1
      j = j+1
   wend

   flVariance = flVariance / j
   Variance = flVariance
end function


function EcartType(arrMat, IndiceDep)
   ' EcartType (X) = RacineCarrée(Variance(X))
   Dim flVariance
   Dim flEcart_type
   Dim i

   i = IndiceDep

   flVariance = Variance(arrMat, i)
   flEcart_type = Sqr(flVariance)

   EcartType = flEcart_type
end function


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

      flMoyMatrice1 = Moyenne(arrMat1, i)
      flMoyMatrice2 = Moyenne(arrMat2, i)

      while i < iNbElt

         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
%>


Pour pouvoir écrire dans ce forum, identifiez-vous !

  v1.3p © ASP-PHP.net 2002  

jollt le 19/11/2003 (53 640 hits)
Didier Gratuit : Formez-vous sur Silverlight, .NET, OpenXML, ...
Ils l’ont fait avec SQL Server. Découvrez comment !
Concours de programmation Flash !
Au fil des news  
[MAJ] Un beau cadre autour d'une photo - Comment encadrer une photo
Ajout d'une troisième page proposant le "passe-partout" ou "Marie-Louise".
Annuaire d'entreprise en PHP - Très pratique pour ne plus rien perdre
Mon petit annuaire d'entreprise, je m'en sers tous les jours alors autant vous en faire profiter. ...
PHP-MySQL : Formulaire - pour le script 'Bon anniversaire' de DB77
Formulaire et script d'enregistrement pour le script « Bon anniversaire » de DB77 en PHP/MySQL ...
.NET - Introducing Microsoft Silverlight 2.0, 2nd Edition
PHP5 - Upload de fichiers - Classe PHP
PHP - PHP 5 /MYSQL® 5
PHP - Calcul de la surface d'un polygone
Comment supprimer des items d'une liste SharePoint - Supprimer les informations d'une liste SharePoint
SharePoint permet bien sur de stocker des données. Parfois, on peut vouloir effacer certaines de ...
Dreamweaver CS4 - Nouvelle version Béta
Voici la nouvelle mouture, annoncée en juin, juste 6 mois après la sortie de la version CS3. Je ...
PowerShell - Synchronisation répertoire par répertoire
PowerShell - Ajouter des items dans une liste SharePoint
Localisation des développements avec SharePoint - Rendre ses applications SharePoint internationales
Lorsque l'on développe des applications avec SharePoint, on se confronte très souvent à une ...
PowerShell - Supprimer tous les items d'une liste SharePoint
PowerShell - Vider la Corbeille SharePoint d'une collection
PowerShell - Modifier le Thème d'une collection SharePoint
PowerShell - Tester l'existance ou effacer une WebPart
PowerShell - Définir une valeur pour une propiété d'un SPWeb
PowerShell - Importer une liste SharePoint depuis un fichier
PowerShell - Exporter une liste SharePoint dans un fichier
PowerShell - Lister les propriétés d'un site SharePoint
Modification de l'adresse du Search Center - Définir la page de résultat d'une ferme MOSS
Lorsque l'on installe MOSS dans une ferme SharePoint et que l'on configure le moteur de recherche ...
PHP - Redimensionner Image + Picto après Upload - Galerie photos, revue de presse, ...
Upload de photo, redimensionnement, création de picto, enregistrement ...
ASP - Redimensionner Image + Picto après Upload - Galerie photos, revue de presse, ...
Upload de photo, redimensionnement, création de picto, enregistrement ... Utilisation ...
Exporter et Importer un site SharePoint - Comment déplacer un site SharePoint
Une question est très régulièrement posée à tout responsable de ferme SharePoint : Comment ...
Bon anniversaire - Comment le souhaiter à ses membres ?
Avoir un site, c'est bien. Avoir des inscrits, c'est mieux. Souhaiter leur anniversaire, c'est ...
Audio & Vidéo - Multimédia dans ses pages web
AUDIO/VIDEO : QuickTime, MediaPlayer, RealPlayer, FlashPlayer, ... : Du multimédia dans ses pages ...
Magazines - Le Hors-Série .Net de Programmez !
PHP - Administrer en ligne - Protection des pages
Protéger ses pages pour administrer son site en ligne en (relative) sécurité (PHP).
Communautés - Concours de programmation Flash !
[MAJ] Afficher ses images à la taille voulue - Utilisation du composant IMGSIZE
Ajout de la vérification de l'existence du fichier et d'un test d'erreur de retour du composant ...
Protéger ses Images - Propriété intellectuelle - Vie privée
Je me suis penché sur la question en tant qu'artiste moi-même, et concepteur de site web pour ...
Création de miniatures - Fonction php de création
Cette fonction sert à créer des miniatures.
ASP - Administrer en ligne - Protection des pages
Protéger ses pages pour administrer son site en ligne en (relative) sécurité (ASP).
JavaScript - Numéros de ligne à gauche d'un textarea
Protection - Sécurité - Mise au point - Précautions - Solutions
Même sans être paranoïaque, on a tous entendu parler de failles de sécurité, piratage informatique, ...
AspSmartUpload - Mode d'Emploi
Le composant ASPSmartUpload (gratuit) permet de gérer les téléchargements de FICHIERS ou de ...
JavaScript - Contrôler une date saisie dans un formulaire
HTML - Ajouter un fichier multimédia dans une page web
HTML - Musique de Fond sur son site
Afficher ses images à la taille voulue - Utilisation du composant IMGSIZE
Devant la diversité des formats d'image actuels, il est parfois nécessaire de connaître les ...
Tutorial : HTML | Scripting | ASP-PHP | ASP.net | SQL Server | XML
Sharepoint | XAML | Pocket | Dreamweaver | VML | Divers
  Scripts : Scripting | ASP-PHP | ASP.net | Divers
  Boutique | Annuaire | Bannières | Météo | Tribune | Partenariats
v3 © Didier 2003   
 

Corpo Sciences de Reims Partitions gratuites Carte, météo, annonces
 The Inquirer FR DotNet Project Wygwam Groupes Utilisateurs Microsoft CodePPC El Roubio ASP-magazine TechNet Codes Sources MVP