有沒有辦法使用 JMP 找到兩條不同正態分佈曲線的公共區域?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我試圖找到兩條不同正態分佈曲線的公共部分下的面積。 我如何使用 JMP 做到這一點? 有什麼簡單的方法嗎?
回复:有沒有辦法使用 JMP 找到兩條不同正態分佈曲線的公共區域?你好,
圖形範圍是硬編碼的單位數而不是兩位數,因此可以說該圖是“頁外”的。 我添加了代碼來計算圖形的適當軸,以便顯示曲線。
我在這裡使用的 Integrate() 函數也遇到了麻煩,而是解決了多邊形下的黎曼和問題。 這樣會相當準確。
Names Default to Here( 1 );
// Define curves and calculate overlap area
mean1 = 46.17;
stdev1 = 16.27;
mean2 = 82.08;
stdev2 = 17.68;
<BR />N1 = Expr(Normal Density(x, mean1, stdev1));<BR />N2 = Expr(Normal Density(x, mean2, stdev2));
//––––––––––
// calculate graph ranges
rangemin = Minimum(mean1-6*stdev1,mean2-6*stdev2);
rangemax = Maximum(mean1+6*stdev1,mean2+6*stdev2);
// Illustration
ym = zm = 1 :: 2000; // 2000 has to do with how detailed the plot should be
multiplier = (rangemax-rangemin)/(Maximum(ym)-Minimum(ym));
xm = (ym-Minimum(ym))*multiplier+rangemin;
ovl = 0;
For(i = 1, i <= N Col(xm), i++,
ym[i] = Minimum(Normal Density(xm[i], mean1, stdev1), Normal Density(xm[i], mean2, stdev2));
zm[i] = Maximum(Normal Density(xm[i], mean1, stdev1), Normal Density(xm[i], mean2, stdev2));
If(i>1, ovl += 0.5*(ym[i-1]+ym[i])*(xm[i]-xm[i-1]));
);
New Window("Overlap Coefficient",
y = Graph Box(
Y Scale(0, 1.2*Maximum(zm)),
X Scale(rangemin, rangemax),
Y Function(N1, x);
Y Function(N2, x);
Text({Mean(xm), 0.6*Maximum(zm)}, "OVL% = ", ovl*100);
Fill Color(1);
Polygon(xm, ym);
)
);回复:有沒有辦法使用 JMP 找到兩條不同正態分佈曲線的公共區域?任何人都可以幫助解決這個腳本的問題。 當我們使用真實數據集並且圖表縮放不正確並且不顯示/計算 OVL 時,我的 JSL 根本不足以理解出了什麼問題?
示例數據:
| 均值 1 = 46.17 | 標準 1 = 16.27 |
| 均值 2 = 82.08 | 標準 2 = 17.68 |
觀察到的錯誤
- 使用上述數據 OVL 未顯示/計算(我不確定哪個是真的)
- 軸設置為錯誤的比例(自動功能會有所幫助)
- 當在代碼中或使用手動工具調整比例時,我們看到 PDF 曲線但沒有陰影區域
回复:有沒有辦法使用 JMP 找到兩條不同正態分佈曲線的公共區域?來自 JMP 的圖表(感謝@小姐) 。 很高興知道還有一個解析解。
overlapoverlap交疊
回复:有沒有辦法使用 JMP 找到兩條不同正態分佈曲線的公共區域?@小姐感謝您分享這個!感謝我的一位同事,我根據以下網站上給出的示例檢查了此腳本: https://stats.stackexchange.com/questions/103800/calculate-probability-area-under-the-overlapping-area-of-two-normal-distributi
分別使用第一和第二分佈的均值和西格瑪參數:
“對於你的例子, μ 1個= 5.28 , μ 2個= 8.45 , σ 1個= 0.91 , σ 2個= 1.36 μ1=5.28,μ2=8.45,σ1=0.91,σ2=1.36 ,這產生: C = 6.70458... c=6.70458... ,綠色部分的面積為:0.158413"
.JSL 腳本對重疊部分的區域給出了完全相同的結果!
Names Default To Here(1);
// Define curves and calculate overlap area
mean1 = 5.28;
stdev1 = 0.91;
mean2 = 8.45;
stdev2 = 1.36;
N1 = Expr(Normal Density(x, mean1, stdev1));
N2 = Expr(Normal Density(x, mean2, stdev2));
ovl = Integrate(Min(N1, N2), x, ., .);
Show(ovl);
//––––––––––
// Illustration
ym = xm = (-1000 :: 1000) / 100;
For(i = 1, i <= N Col(xm), i++,
ym[i] = Min(Normal Density(xm[i], mean1, stdev1), Normal Density(xm[i], mean2, stdev2))
);
New Window("Overlap Coefficient",
y = Graph Box(
Y Scale(0, 1),
X Scale(-5, 12),
Y Function(N1, x);
Y Function(N2, x);
Text({0, 0.6}, "OVL% = ", ovl*100);
Fill Color(1);
Polygon(xm, ym);
)
);

回复:有沒有辦法使用 JMP 找到兩條不同正態分佈曲線的公共區域?在 JMP 12 中,有一個非常有效的 Integrate() 函數,可用於計算兩條曲線中最小值所限定的區域。
下面的示例不是很有用(您可能想從分發平台獲取參數)但可能會給您一些想法......
Names Default To Here(1);
// Define curves and calculate overlap area
N1 = Expr(Normal Density(x, 1, 2));
N2 = Expr(Normal Density(x, 0, 1));
ovl = Integrate(Min(N1, N2), x, ., .);
Show(ovl);
//––––––––––
// Illustration
ym = xm = (-500 :: 500) / 100;
For(i = 1, i <= N Col(xm), i++,
ym[i] = Min(Normal Density(xm[i], 1, 2), Normal Density(xm[i], 0, 1))
);
New Window("Overlap Coefficient",
y = Graph Box(
Y Scale(0, 1),
X Scale(-5, 5),
Y Function(N1, x);
Y Function(N2, x);
Text({0, 0.6}, "OVL = ", ovl);
Fill Color(1);
Polygon(xm, ym);
)
);
