如何在直方图上绘制各个峰值拟合曲线(拟合 2 个正态混合物)你好,
我有一个包含多个峰值的数据集,我可以使用直方图的拟合正态 2 混合选项很好地拟合这些峰值。这会输出每个峰值的平均值和西格玛以及权重作为数值,并将拟合曲线覆盖在直方图上。有没有办法可视化覆盖在直方图上的各个峰值拟合?
谢谢!
丹尼
回复:如何在直方图上绘制各个峰值拟合曲线(拟合 2 个正态混合物)你好@tx尼尔森,
可以在正常分位数图上做类似的事情吗? 我想生成类似附加的内容(两种单独的模式),但以自动化(可重现的方式)进行操作,而不仅仅是在将自定义添加到一个图形并将其粘贴到另一个图形后使用“编辑”>“复制框架内容”和“编辑粘贴框架内容”图形。

@帕特里克朱利亚诺
回复:如何在直方图上绘制各个峰值拟合曲线(拟合 2 个正态混合物)尝试这个:
Names Default To Here( 1 );
platform = Data Table( "Big Class.jmp" ) <<
Distribution(
Continuous Distribution(
Column( :height ),
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) )
)
);
Wait( 0 );
Report( platform )[Outline Box( "Distributions" )][Outline Box( "height" )][
Outline Box( "Fitted Normal 2 Mixture" )][Outline Box( "Parameter Estimates" )][
Table Box( 1 )] << Make Into Data Table;
这是一个 By 列:
Names Default To Here( 1 );
platform = Data Table( "Big Class.jmp" ) <<
Distribution(
Continuous Distribution(
Column( :height ),
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) )
),
by(:sex)
);
Wait( 0 );
Report( platform[1] )[Outline Box( 1 )][Outline Box( "height" )][
Outline Box( "Fitted Normal 2 Mixture" )][Outline Box( "Parameter Estimates" )][
Table Box( 1 )] << Make Combined Data Table;
与“按”列的区别在于,“平台”现在有一个平台列表,而不是单个平台。 因此,我们必须使用 [1] 进行索引才能获取列表中的第一个条目。 此外,报告中的第一个大纲框现在包含按组值。 因此,通过数字而不是名称对其进行索引更容易。
回复:如何在直方图上绘制各个峰值拟合曲线(拟合 2 个正态混合物)你好,我使用(如帖子中所述)尝试了这种技术
dist =Distribution( Continuous Distribution(
Column( :Column 1 ),
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) ) ));
对于我自己的另一个数据表,它工作得很好。 但是,我希望能够使用 <
我用了
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) ) ))<<MAKE into="" data="https://community.jmp.com/" table=""></MAKE>
我可能犯了一些基本错误,但找不到它。
此外,如果我成功,在社区的帮助下,我非常想学习如何包含按参数值,如果我使用它(我必须对数据表中的许多子集执行此分析)。
首先十分感谢。
波尔·拉文·索伦森
回复:如何在直方图上绘制各个峰值拟合曲线(拟合 2 个正态混合物)正是我正在寻找的东西。 谢谢!回复:如何在直方图上绘制各个峰值拟合曲线(拟合 2 个正态混合物)有几种方法可以做到这一点。两者都需要将 JSL 添加到您的代码中。方法1,右键单击图表,然后选择“自定义...”。这将允许您修改图表或添加内容。如果您单击“+”,它将允许您添加脚本,并且其中一个示例允许创建正态曲线。有了使用 Y 函数和法线密度函数绘图的一些知识,您就可以添加这样的曲线。
下面是将 JSL 添加到脚本中以在样本数据之上生成 2 条正态曲线的示例。Add Graphics Script() 函数完成这项工作。我采取了一些捷径,通过对两种不同的均值和标准差进行硬编码,以及基于数据点总数除以直方图分布中最大条形的数据点的比例因子。这些数据值必须在任何给定的脚本中根据您所提议的内容进行计算。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
Dis = dt << Distribution(
Continuous Distribution( Column( :height ), Vertical( 0 ), Density Axis( 1 ) )
);
Report( Dis )[Frame Box( 2 )] << Add Graphics Script(
mu = 63;
sigma = 3.2;
Pen Color( "Red" );
Y Function( Normal Density( (x - mu) / sigma ) / (40 / 12), x );
mu = 51.5;
sigma = .87;
Pen Color( "Blue" );
Y Function( Normal Density( (x - mu) / sigma ) / (40 / 2), x );
);

如果您选择“自定义...”选项,“添加图形脚本”() 函数中的代码与添加到脚本中的代码相同。
回复:如何在直方图上绘制各个峰值拟合曲线(拟合 2 个正态混合物)嗨,呃,
我确实看到了显示整体曲线拟合的选项,但没有看到单个峰值。这是我想要输出的内容(请原谅我的粗略绘图):

谢谢!
回复:如何在直方图上绘制各个峰值拟合曲线(拟合 2 个正态混合物)该分布平台可以显示曲线拟合:

dt = New Table( "Two Peaks",
Add Rows( 500 ),
New Column( "Column 1",
Numeric, "Continuous", Format( "Best", 12 ),
Formula(
If( Random Uniform() > 0.3,
Random Normal( 5 ),
Random Normal( 10 )
)
)
)
);
dist =Distribution(
Continuous Distribution(
Column( :Column 1 ),
Fit Distribution( Normal Mixtures( Clusters( 2 ) ) )
)
);