..sorte de régression linéeaire ?

  • Initiateur de la discussion Initiateur de la discussion roadbuster007
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

R

roadbuster007

Guest
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

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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
556
Réponses
1
Affichages
398
Retour