我在Python,R和SQL Developer中以单边概率运行(更强)的二项式测试。而且,SQL Developer的 p值与Python和R不同。
Python
import scipy.stats as sc
sc.binom_test(x=12, n=20, p=0.4, alternative='greater')
R
aaa=binom.test (12, 20, 0.4, alternative = "greater")
print(aaa$p.value,digits = 15)
SQL Developer
with data1 as (select 1 as flag from dual
union all select 1 from dual
union all select 1 from dual
union all select 1 from dual
union all select 1 from dual
union all select 1 from dual
union all select 0 from dual
union all select 0 from dual
union all select 0 from dual
union all select 0 from dual
union all select 1 from dual
union all select 1 from dual
union all select 1 from dual
union all select 1 from dual
union all select 1 from dual
union all select 1 from dual
union all select 0 from dual
union all select 0 from dual
union all select 0 from dual
union all select 0 from dual )
STATS_BINOMIAL_TEST(flag, '1', 0.4, 'ONE_SIDED_PROB_OR_MORE') prob_or_less FROM data1;
结果如下
Software P-value Difference from Python
Python 0.056526367034253 0
R 0.056526367034253 0.000000000000000
SQL 0.056526367018566 0.000000000015687
数字较小时差异很小,但是在输入数字较大的情况下影响很大。您能给我个建议吗,SQL Developer中的问题在哪里?谢谢。