親愛的社區,
我們發現 JMP 計算百分位數的方式與其他程式不同,如何在 JMP 中獲得相同的值?
其他程式例如 Oracle SQL 和 Excel (PERCENTILE.INC)
請參閱下面腳本中的一些參考和範例。
謝謝,BR
names default to here(1);
// JMP calculates other Quantiles than Python/Excel
// how to get same values in JMP?
// see:
// web("https://community.jmp.com/t5/Discussions/Quantiles-result-from-JMP-are-different-from-Python/m-p/762983");
// perhaps JMP equal to PERCENTILE.EXC in Excel, and not to PERCENTILE.INC
// Percentile Calculation
// web("https://community.jmp.com/t5/Discussions/Quantile-Percentile-Calculation/m-p/327198");
data = [10.56 10.85 11.08 11.57 11.81 12.27 12.76];
Q80_oracle = 12.178;
// as excel as well
Q80_jmp = Quantile( 0.8, data );
// 12.466
// how can I get same values as in other programs?你好,
我剛剛在 Excel 中測試了您的資料集,我在 Excel 中得到的 Q80 值 = 12.466,與 JMP 完全相同。
我無法在 Oracle 中進行測試,但我注意到在 R 中我得到了 Q80 值 = 12.178。此外,R 中的 Q90 為 12.466。
必須解釋這些程式之間的分位數是如何計算的。
最好的,
TS
還有一件事:
在 R 中,有 9 種不同的方法來計算分位數。
方法 6 傳回與 JMP 和 Excel 相同的 Q80

方法 7 傳回您在 Oracle 中找到的 Q80:

最好的,
TS
嗨@Georg :我很好奇;你介意我問一下它們配對與否為何如此重要嗎?
各位,
謝謝你的意見。我們之所以需要的是“顧客期望”,即收貨人期望以某種方式來計算。
同時,我找到了使用 Python 解決方法的方法,請參閱下面的腳本。
感謝大家並致上最誠摯的問候,
New Table( "Percentile_Cont_Example",
Add Rows( 7 ),
Compress File When Saved( 1 ),
New Table Variable( "SQL",
"with val_tab as
(
select 1 AS lot, 11.08 as value FROM dual
union select 1 AS lot, 12.76 as value FROM dual
union select 1 AS lot,10.85 as value FROM dual
union select 1 AS lot, 11.57 as value FROM dual
union SELECT 1 AS lot, 10.56 as value FROM dual
union select 1 AS lot, 12.27 as value FROM dual
union select 1 AS lot,11.81 as value FROM dual
)
SELECT
val_tab.lot
, val_tab.value
, percentile_cont(0.8) WITHIN GROUP (ORDER BY val_tab.value) OVER (PARTITION BY val_tab.lot) quant80_database
from
val_tab"
),
New Column( "LOT",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 1, 1, 1, 1, 1] ),
Set Display Width( 60 )
),
New Column( "VALUE",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [10.56, 10.85, 11.08, 11.57, 11.81, 12.27, 12.76] ),
Set Display Width( 60 )
),
New Column( "QUANT80_DATABASE",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[12.178000000000001, 12.178000000000001, 12.178000000000001,
12.178000000000001, 12.178000000000001, 12.178000000000001,
12.178000000000001]
),
Set Display Width( 334 )
),
New Column( "Quantile80_JMP",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Col Quantile( :VALUE, 0.80000000000000004 ) ),
Set Display Width( 141 )
),
New Column( "Quantile80_Python",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
data = (As Column( :VALUE ) << get values)[
Loc( As Column( :LOT ) << get values, :LOT )];
Python Execute(
{data},
{result},
"import numpy as np
result = np.quantile(data, 0.8)
"
);
result;
),
Set Selected,
Set Display Width( 292 )
)
)如何為 JMP 18 安裝 numpy?我有單獨安裝的python 3.13.2。我安裝了該版本的 numpy,但在嘗試運行上述程式碼時仍然出現此錯誤
ModuleNotFoundError: Please install the Python package NumPy.
at row 7
腳本索引中的 Python 安裝套件範例應該可以工作
Names Default To Here(1);
// install numpy and pandas packages
Python Install Packages("numpy pandas");
或者你可以使用 JMP 的 python 端並使用 jpip
import jmp
import jmputils
# update to latest version of pip and setuptools then install numpy & pandas
jmputils.jpip('install --upgrade', 'pip setuptools')
jmputils.jpip('install', 'numpy pandas')
https://www.jmp.com/support/help/en/18.0/#page/jmp/install-a-python-package.shtml#
你試過嗎
Python Install Packages( "numpy" );
在 Excel 中有兩種方法,
PERCENTILE.INC 和 PERCENTILE.EXC。
我的問題是,我無法在 JMP 中獲得與 PERCENTILE.INC 客戶相同的值,因此需要使用 python 來解決。