..sorte de régression linéeaire ?

roadbuster007

XLDnaute Nouveau
Bonjour,

Je collecte un ensemble de mesures réalisées dans un environnement qui varie très vite et je souhaiterais voir si une tendance se dégage
=> colonne A : une variable qui défiinie les conditions lors du test, colonne B : le résultat de la mesure.

Je ne peux pas faire une régression linéraire directement car au final les valeurs se répartissent de façon bcp trop étalées et du coup un graph style XY montre une sorte de tâche pas très exploitable.

Je souhaiterai essayer d'échantillonner ma colonne A par pas de 1 et mettre en face la moyenne des échantillons de la colonne B (par exemple je fais la moyenne de tous les échantillons de B pourlequels -1<A<=0 puis en dessous -2<A<=-1...)

Une idée comment faire cela ?
(Cf fichier joint où je n'ai laissé que peu d'échantillons pour avoir une taille de fichier petite..)
 

Pièces jointes

  • Classeur2.xls
    21 KB · Affichages: 57
  • Classeur2.xls
    21 KB · Affichages: 57
  • Classeur2.xls
    21 KB · Affichages: 60

GeoTrouvePas

XLDnaute Impliqué
Re : ..sorte de régression linéeaire ?

Bonjour Roadbuster007,

Voici une petite macro qui devrait faire ton affaire :

Code:
Sub Moyenne()

LigneValeur = 2
'Désigne la 1ère ligne du tableau dans lequel seront saisis les résultats de mesure
ColonneValeur = 1
'Désigne la 1ère colonne du tableau dans lequel seront saisis les résultats de mesure

LigneResultat = 4
'Désigne la 1ère ligne du tableau dans lequel seront calculées les moyennes
ColonneResultat = 4
'Désigne la 1ère colonne du tableau dans lequel seront calculées les moyennes




j = LigneResultat

While Cells(j, ColonneResultat) <> ""

    Somme = 0
    Compteur = 0
    i = LigneValeur
    
    If Cells(j-1, ColonneResultat) <
    BorneInferieure = Cells(j, ColonneResultat)
    
    If Cells(j + 1, ColonneResultat) <> "" Then
        BorneSuperieure = Cells(j + 1, ColonneResultat)
    Else
        BorneSuperieure = BorneInferieure + 1
        MsgBox BorneInferieure
        MsgBox BorneSuperieure
    End If
    
    While Cells(i, ColonneValeur) <> ""

        If Cells(i, ColonneValeur) > BorneInferieure And Cells(i, ColonneValeur) <= BorneSuperieure Then
                Somme = Somme + Cells(i, ColonneValeur + 1)
                Compteur = Compteur + 1
        End If
        
        If Compteur <> 0 Then
            Cells(j, ColonneResultat + 1) = Somme / Compteur
        Else
            Cells(j, ColonneResultat + 1) = "Aucune valeur > à " & BorneInferieure & " et <= à " & BorneSuperieure & " n'a été saisie"
        End If
    
        i = i + 1
    
    Wend
    
    j = j + 1

Wend

End Sub

Au niveau des bornes j'ai fonctionné comme ceci :

Dans la ligne "-7", j'ai mis la moyennes pour les valeurs > -7 et <= - 6
Dans la ligne "-6", j'ai mis la moyennes pour les valeurs > -6 et <= - 5

....
Dans la ligne "0", j'ai mis la moyennes pour les valeurs > 0 et <= 1

Si jamais ça ne convient pas et que tu n'arrives pas à l'adapter, fais moi signe.
 

Discussions similaires

Réponses
3
Affichages
275

Statistiques des forums

Discussions
312 581
Messages
2 089 919
Membres
104 307
dernier inscrit
Diet