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

@PatrickGiuliano
回复:如何在直方图上绘制单个峰值拟合曲线(拟合 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;
与 By 列的不同之处在于“平台”现在有一个平台列表,而不是单个平台。 因此,我们必须使用 [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 );
);

Add Graphics Script() 函数中的代码与您在选择 Customize... 选项时添加到脚本中的代码相同
回复:如何在直方图上绘制单个峰值拟合曲线(拟合 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 ) ) )
)
);