データセットの移動平均と加重移動平均こんにちは、
以下に投稿したデータセットに対して移動平均と加重移動平均を実行しようとしています。
「平均」列の移動平均を実行したいと考えています。
また、データセットの「サンプル」グループでこの式を繰り返すことはできますか?
Re: データセットの移動平均と加重移動平均「Counter」が 5 未満の場合、除数を各レベルの重みの合計まで調整する必要があるため、コードは次のようになります。
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: データセットの移動平均と加重移動平均If( :sample != Lag( :sample, 1 ) | Row() == 1,
カウンタ = 0
);
カウンタ = カウンタ + 1;
もし(
カウンタ == 1、:平均1、
カウンタ == 2、Mean( Lag( ::Mean1, 1 ) * 1、Lag( ::Mean1, 1 ) * 4 ) / 16、
カウンタ == 3、
Mean( ラグ( ::平均1, 1 ) * 1、ラグ( ::平均1, 1 ) * 4、ラグ( ::平均1, 1 ) * 6 )
/16、
カウンタ == 4、
平均(
ラグ( ::Mean1, 1 ) * 1,
ラグ( ::平均1, 1 ) * 4,
ラグ( ::平均1, 1 ) * 6,
ラグ( ::平均1, 1 ) * 4
) / 16、
平均(
ラグ( ::Mean1, 1 ) * 1,
ラグ( ::平均1, 1 ) * 4,
ラグ( ::平均1, 1 ) * 6,
ラグ( ::平均1, 1 ) * 4,
ラグ( ::平均1, 1 ) * 1
) / 16
);
式は次のようになりますか、それとも重み 1 と 4 のラグを 5 などで割る必要がありますか?
Re: データセットの移動平均と加重移動平均Col Moving Average() 関数は JMP 13 で追加されました。そのため、JMP 12 では、私が提供したコードを使用する必要があります。 必要なのは、コードに 16 による除算を追加することだけです。 1、2、3、4 ラグのサブセットを、16 の適切なサブセットで必ず分割してください。
Re: データセットの移動平均と加重移動平均JMP 12 に Col Moving Average 関数が表示されません
Re: データセットの移動平均と加重移動平均JMP 12 に Col Moving Average 関数が表示されません
Re: データセットの移動平均と加重移動平均この式は加重平均を加重合計の 16 で割ることになりますか?
数式を使用しても期待した答えが得られません
Re: データセットの移動平均と加重移動平均この返信の下部にある注記を参照してください
Index() 関数を使用する数式は、重み付け計算では機能しません。 あなたがやりたいと思うことは、次の式で示されます
Mean(
Lag( ::Mean1, 1 ) * 1,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 6,
Lag( ::Mean1, 1 ) * 4,
Lag( ::Mean1, 1 ) * 1
);
この構造では単純な 2 レベルの計算ができないため拡張する必要がありますが、基本的には同じロジックです
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
)
);
これらすべてを経て、Col Moving Average() 関数を見つけました。 したがって、私が提案した上記のことは何も行わず、代わりに、
ヘルプ==>スクリプトインデックス==>列移動平均
要求されたすべてを実行する単一の関数が得られます
Re: データセットの移動平均と加重移動平均係数 1,4,6,4,1 を使用して上記の式で加重移動平均を計算するにはどうすればよいですか?
Re: データセットの移動平均と加重移動平均迅速なご返信ありがとうございます。私のデータセットではうまくいきました。
Re: データセットの移動平均と加重移動平均これは、公式の単純な拡張にすぎません。 :Sample がいつ変更されたかを追跡し、最初から計算を開始するだけで済みます。
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: データセットの移動平均と加重移動平均を使用して 3 点移動平均を取得することができました。公式を適用することもできました。
「If( Row() < 3,
Mean( :Mean1[Index( 1, Row() )] ),
Mean( :Mean1[インデックス( Row() - (3 - 1), Row() )] )
)」
「サンプル」列に対してグループ別にこれを行うにはどうすればよいですか?
Sample の各値について、「Mean1」値の移動平均が必要で、239 個の Sample 値があります。
助けてくれてありがとう
Re: データセットの移動平均と加重移動平均式を使用して列の値を定義することは、JMP の重要な部分です。 これについては、「Using JMP」という JMP の本に詳しく記載されています。 その本を読むことをお勧めします。 JMP のインストール時にコンピュータにインストールされます。 「ヘルプ」プルダウン メニューからアクセスできます。
ヘルプ==>書籍==>JMPの使用
とにかく、私が提供した数式を使用する方法は次のとおりです。データテーブルに新しい列を作成し、列ヘッダーを右クリックして「数式」を選択します。

この例でわかるように、新しい列に「移動平均」という名前を付けました。
次に開くウィンドウは数式エディタです。

ポイント アンド クリックして、必要な数式を作成できます。 ただし、「式なし」という文言が表示された青い枠線のボックスをダブルクリックすると、エディターが表示されます。

上のウィンドウに見られるように、数式を入力しただけですが、ウィンドウに貼り付けることもできます。 「OK」ボタンをクリックすると、数式のグラフが表示されます。

[OK] ボタンまたは [適用] ボタンをクリックすると、新しい列に対して数式が実行されます。

Re: データセットの移動平均と加重移動平均こんにちは、txnelson さん
あなたが提案した以下の式は、「Points」列の移動平均ですか? Mean() 式を使用していますか?
これを for ループに入れてすべての行に対して実行するにはどうすればよいですか?
これもグループごとにやりたいです
Re: データセットの移動平均と加重移動平均移動平均の計算式はこちら
Mean( Lag( :Points, 1 ),
Lag( :Points, 2 ),
Lag( :Points, 3 ),
Lag( :Points, 4 ),
Lag( :Points, 5 )
)
そして加重移動平均
Mean(
Lag( :points, 1 ) * :mean,
Lag( :points, 2 ) * :mean,
Lag( :points, 3 ) * :mean,
Lag( :points, 4 ) * :mean,
Lag( :points, 5 ) * :mean
)