数据集的移动平均线和加权移动平均线你好,
我正在尝试对下面发布的数据集进行移动平均线和加权移动平均线。
我想对“平均值”列进行移动平均。
我也可以通过数据集中的“样本”组重复这个公式
回复:数据集的移动平均线和加权移动平均线对于“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
);
回复:数据集的移动平均线和加权移动平均线If( :sample != Lag( :sample, 1 ) | Row() == 1,
计数器 = 0
);
计数器 = 计数器 + 1;
如果(
计数器== 1,:平均值1,
计数器 == 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 Moving Average 函数
回复:数据集的移动平均线和加权移动平均线我在 JMP 12 中没有看到 Col Moving Average 函数
回复:数据集的移动平均线和加权移动平均线这个公式会将加权平均值除以权重总和 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,
平均值( :平均值1[索引( 1, 行() )] ),
平均值( :Mean1[索引( 行() - (3 - 1), 行() )] )
)”
我可以为“样本”列按组执行此操作吗?
对于 Sample 的每个值,我想要“Mean1”值的移动平均值,并且我有 239 个 Sample 值。
感谢您的帮助
回复:数据集的移动平均线和加权移动平均线使用公式定义列的值是 JMP 的重要组成部分。 它在名为“Using JMP”的 JMP 书中有详细记录。 我建议你读那本书。 当您安装 JMP 时,它已安装在您的计算机上。 您可以在“帮助”下拉菜单下找到它
帮助==>书籍==>使用JMP
无论如何,以下是如何使用我为您提供的公式,在数据表中创建一个新列,然后右键单击列标题并选择“公式”

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

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

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

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

回复:数据集的移动平均线和加权移动平均线嗨特克斯尼尔森,
以下公式是您建议的“点”列的移动平均值吗?您正在使用 Mean() 公式吗?
如何将其放入 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
)