如何在直方圖上繪製單個峰值擬合曲線(擬合 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 ) ) )
)
);