Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesSalut,
J'essaie de faire une moyenne mobile et une moyenne mobile pondérée sur l'ensemble de données que j'ai publié ci-dessous.
Je veux faire une moyenne mobile dans la colonne « Moyenne ».
Puis-je également répéter cette formule par le groupe « Échantillon » dans mon ensemble de données
Re : Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesPour les cas où « Compteur » est inférieur à 5, vous devez ajuster le diviseur jusqu'à la somme des poids pour chacun de ces niveaux, le code devrait donc ressembler à :
If( :sample != Lag( :sample, 1 ) | Row() == 1,
counter = 0
);
counter = counter + 1;
If(
counter == 1, :Mean1,
counter == 2, Mean( Lag( ::Mean1, 1 ) * 1, Lag( ::Mean1, 1 ) * 4 ) / 5,
counter == 3, Mean( Lag( ::Mean1, 1 ) * 1, Lag( ::Mean1, 1 ) * 4, Lag( ::Mean1, 1 ) * 6 ) / 11,
counter == 4,
Mean( Lag( ::Mean1, 1 ) * 1, Lag( ::Mean1, 1 ) * 4, Lag( ::Mean1, 1 ) * 6, Lag( ::Mean1, 1 ) * 4 ) /
15,
Mean(
Lag( ::Mean1, 1 ) * 1,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 6,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 1
) / 16
);
Re : Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesSi( :échantillon != Lag( :échantillon, 1 ) | Ligne() == 1,
compteur = 0
);
compteur = compteur + 1 ;
Si(
compteur == 1, :Moyenne1,
compteur == 2, Moyenne( Lag( ::Mean1, 1 ) * 1, Lag( ::Mean1, 1 ) * 4 ) / 16,
compteur == 3,
Moyenne( Lag( ::Mean1, 1 ) * 1, Lag( ::Mean1, 1 ) * 4, Lag( ::Mean1, 1 ) * 6 )
/ 16,
compteur == 4,
Signifier(
Décalage( ::Moyenne1, 1 ) * 1,
Décalage( ::Moyenne1, 1 ) * 4,
Décalage( ::Moyenne1, 1 ) * 6,
Décalage( ::Moyenne1, 1 ) * 4
) / 16,
Signifier(
Décalage( ::Moyenne1, 1 ) * 1,
Décalage( ::Moyenne1, 1 ) * 4,
Décalage( ::Moyenne1, 1 ) * 6,
Décalage( ::Moyenne1, 1 ) * 4,
Décalage( ::Moyenne1, 1 ) * 1
) / 16
);
La formule ressemblera-t-elle à ceci ou dois-je diviser le décalage des poids 1 et 4 par 5 et ainsi de suite ?
Re : Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesLa fonction Col Moving Average() a été ajoutée dans JMP 13. Ainsi, pour JMP 12, vous devrez utiliser le code que j'ai fourni. Et tout ce que vous avez à faire, c'est d'ajouter la division par 16 au code. Assurez-vous de diviser les sous-ensembles de décalage 1,2,3,4 avec le sous-ensemble approprié les 16
Re : Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesJe ne vois pas la fonction Col Moving Average dans JMP 12
Re : Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesJe ne vois pas la fonction Col Moving Average dans JMP 12.
Re : Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesCette formule divisera-t-elle la moyenne pondérée par la somme des poids qui est de 16 ?
Je n'obtiens pas la réponse attendue avec la formule
Re : Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesVoir la note au bas de cette réponse
La formule qui utilise la fonction index() ne fonctionnera pas pour un calcul pondéré. Ce que je suppose que vous voulez faire est illustré par la formule suivante
Mean(
Lag( ::Mean1, 1 ) * 1,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 6,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 1
);
Cette structure ne permet pas le simple calcul à 2 niveaux, elle doit donc être étendue, mais c'est fondamentalement la même logique.
If( :sample != Lag( :sample, 1 ) | Row() == 1,
counter = 0;
);
counter = counter + 1;
If( counter == 1,
:Mean1,
counter ==2,
Mean(
Lag( ::Mean1, 1 ) * 1,
Lag( ::Mean1, 1 ) * 4
),
counter ==3,
Mean(
Lag( ::Mean1, 1 ) * 1,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 6
),
counter ==4,
Mean(
Lag( ::Mean1, 1 ) * 1,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 6,
Lag( ::Mean1, 1 ) * 4
),
Mean(
Lag( ::Mean1, 1 ) * 1,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 6,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 1
)
);
Et après tout cela, j’ai trouvé la fonction Col Moving Average(). Alors ne faites rien de ce que j'ai suggéré ci-dessus, allez plutôt sur
Aide ==> Index des scripts ==> Moyenne mobile du col
et vous obtiendrez une seule fonction qui fera tout ce que vous avez demandé
Re : Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesComment puis-je faire une moyenne mobile pondérée avec la formule ci-dessus avec les coefficients 1,4,6,4,1 ?
Re : Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesMerci pour vos réponses rapides. Cela a fonctionné pour mon ensemble de données
Re : Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesC'est juste une simple extension de votre formule. Il vous suffit de suivre le moment où le :Sample change, puis de recommencer les calculs à partir de zéro.
If( :sample != Lag( :sample, 1 ) | Row() == 1,
counter = 0;
startrow = Row();
);
counter = counter + 1;
If( counter < 3,
Mean( :Mean1[Index( startrow, Row() )] ),
Mean( :Mean1[Index( Row() - (3 - 1), Row() )] )
);
Re : Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesJ'ai pu obtenir la moyenne mobile de 3 points en utilisant la formule. J'ai également pu appliquer la formule.
"Si(Ligne() < 3,
Moyenne( :Moyenne1[Index( 1, Ligne() )] ),
Moyenne( :Mean1[Index( Row() - (3 - 1), Row() )] )
)"
Comment puis-je le faire par groupe pour la colonne « Échantillon » ?
Pour chaque valeur de l'échantillon, je veux une moyenne mobile pour les valeurs "Mean1" et j'ai 239 valeurs d'échantillon.
Merci pour votre aide
Re : Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesL'utilisation d'une formule pour définir les valeurs d'une colonne est une partie essentielle de JMP. Ceci est bien documenté dans le livre JMP intitulé "Using JMP". Je vous suggère de lire ce livre. Il a été installé sur votre ordinateur lorsque vous avez installé JMP. Vous y accédez via le menu déroulant Aide
Aide==>Livres==>Utilisation de JMP
Quoi qu'il en soit, voici comment utiliser la formule que je vous ai fournie, créez une nouvelle colonne dans votre tableau de données puis faites un clic droit sur l'en-tête de la colonne et sélectionnez "Formule".

Comme vous pouvez le voir dans mon exemple, j'ai nommé la nouvelle colonne « Moyenne mobile ».
La prochaine fenêtre qui s'ouvrira est l'éditeur de formule

Il vous permet de pointer et de cliquer et de créer les formules de votre choix. Cependant, vous pouvez également double-cliquer sur la case entourée de bleu qui contient le libellé "pas de formule" et l'éditeur apparaîtra.

Comme on le voit dans la fenêtre ci-dessus, je viens de taper la formule, ou elle peut être collée dans la fenêtre. Ensuite lorsque vous cliquerez sur le bouton "OK", vous verrez la forme graphique de la formule

Ensuite lorsque vous cliquerez sur le bouton "OK", ou sur le bouton "Appliquer", la formule sera exécutée pour la nouvelle colonne

Re : Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesSalut Txnelson,
La formule ci-dessous est-elle une moyenne mobile que vous avez suggérée pour la colonne « Points » ? Et vous utilisez la formule Mean() ?
Comment puis-je mettre cela dans une boucle for pour le faire sur toutes les lignes ?
Aussi je veux le faire par groupe
Re : Moyenne mobile et moyenne mobile pondérée sur un ensemble de donnéesVoici une formule de moyenne mobile
Mean( Lag( :Points, 1 ),
Lag( :Points, 2 ),
Lag( :Points, 3 ),
Lag( :Points, 4 ),
Lag( :Points, 5 )
)
et une moyenne mobile pondérée
Mean(
Lag( :points, 1 ) * :mean,
Lag( :points, 2 ) * :mean,
Lag( :points, 3 ) * :mean,
Lag( :points, 4 ) * :mean,
Lag( :points, 5 ) * :mean
)