数据集上的移动平均线和加权移动平均线你好,
我正在尝试对我在下面发布的数据集进行移动平均和加权移动平均。
我想对“平均值”列进行移动平均。
我也可以通过我的数据集中的“样本”组重复这个公式吗
回复:数据集上的移动平均线和加权移动平均线对于“计数器”小于 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
);
回复:数据集上的移动平均线和加权移动平均线如果(:样本!=滞后(:样本,1)|行()== 1,
计数器 = 0
);
计数器 = 计数器 + 1;
如果(
计数器 == 1, :Mean1,
计数器 == 2,平均值(滞后(::Mean1, 1)* 1,滞后(::Mean1, 1)* 4)/16,
计数器 == 3,
均值(滞后( ::Mean1, 1 )* 1,滞后( ::Mean1, 1 )* 4,滞后( ::Mean1, 1 )* 6 )
/ 16,
计数器 == 4,
意思是(
滞后(::Mean1, 1) * 1,
滞后(::Mean1, 1) * 4,
滞后(::Mean1, 1) * 6,
滞后( ::Mean1, 1 ) * 4
) / 16,
意思是(
滞后(::Mean1, 1) * 1,
滞后(::Mean1, 1) * 4,
滞后(::Mean1, 1) * 6,
滞后(::Mean1, 1) * 4,
滞后( ::Mean1, 1 ) * 1
) / 16
);
公式会像这样,还是我必须将权重 1 和 4 的滞后除以 5 等等?
回复:数据集上的移动平均线和加权移动平均线JMP 13 中添加了 Col Moving Average() 函数。因此,对于 JMP 12,您将需要使用我提供的代码。 您需要做的就是将除以 16 的部分添加到代码中。 确保将 1,2,3,4 滞后子集与适当的子集划分为 16
回复:数据集上的移动平均线和加权移动平均线我在 JMP 12 中没有看到 Col 移动平均线函数
回复:数据集上的移动平均线和加权移动平均线我在 JMP 12 中没有看到 Col 移动平均线函数
回复:数据集上的移动平均线和加权移动平均线这个公式会将加权平均值除以权重总和 16 吗?
我没有使用公式得到预期的答案
回复:数据集上的移动平均线和加权移动平均线请参阅此回复底部的注释
使用 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() 函数。 所以不要做任何我建议的事情,相反,去
帮助==>脚本索引==>Col 移动平均线
你会得到一个函数来完成你所要求的一切
回复:数据集上的移动平均线和加权移动平均线如何使用上述公式和系数 1,4,6,4,1 进行加权移动平均?
回复:数据集上的移动平均线和加权移动平均线感谢您的及时回复。它适用于我的数据集
回复:数据集上的移动平均线和加权移动平均线这只是您的公式的简单扩展。 您只需要跟踪 :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() )] )
);
回复:数据集上的移动平均线和加权移动平均线我能够使用 3 点移动平均线。我也能够应用该公式。
“如果(行() < 3,
均值(:Mean1[索引(1,行())]),
均值(:Mean1[索引(行()-(3-1),行())])
)"
我可以为“示例”列按组执行此操作吗?
对于 Sample 的每个值,我想要“Mean1”值的移动平均值,并且我有 239 个 Sample 值。
谢谢您的帮助
回复:数据集上的移动平均线和加权移动平均线使用公式定义列的值是 JMP 的重要组成部分。 它在名为“使用 JMP”的 JMP 书中有详细记录。 我建议你读那本书。 它是在您安装 JMP 时安装在您的计算机上的。 您可以在“帮助”下拉菜单下找到它
帮助==>书籍==>使用 JMP
无论如何,这里是如何使用我提供给您的公式,在您的数据表中创建一个新列,然后右键单击列标题并选择“公式”

正如您在我的示例中看到的,我将新列命名为“移动平均线”
下一个将打开的窗口是公式编辑器

它允许您指向并单击并创建您想要的任何公式。 但是,您也可以双击带有“无公式”字样的蓝色轮廓框,然后编辑器将出现

如上面的窗口所示,我只是输入了公式,或者可以将其粘贴到窗口中。 然后当你点击“确定”按钮时,你会看到公式的图形形式

然后,当您单击“确定”按钮或“应用”按钮时,将为新列运行公式

回复:数据集上的移动平均线和加权移动平均线嗨,txnelson,
您建议使用以下公式为“点”列移动平均值吗?您使用的是平均值()公式?
如何将其放入 for 循环中以对所有行执行此操作?
我也想按组执行此操作
回复:数据集上的移动平均线和加权移动平均线这是一个移动平均公式
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
)