使用Apache Commons计算Mann-Whitney U统计量结果不符,是否操作有误?
Mann-Whitney U检验:Java Apache Commons Math与Python/网站结果不符问题
我通过statology.com验证Mann-Whitney U检验,Python的scipy.stats.mannwhitneyu计算结果与网站一致,但Java的Apache Commons Math库中MannWhitneyUTest类得到的U统计量(23.0)和P值(0.4233),和网站及Python的结果(U=13.0,P=0.4680)不符。
Java代码
import org.apache.commons.math3.stat.inference.MannWhitneyUTest; public static void main(String[] args) { // 创建两个样本数据集 double[] data1 = {3, 5, 1, 4, 3, 5}; double[] data2 = {4, 8, 6, 2, 1, 9}; MannWhitneyUTest mannWhitneyUTest = new MannWhitneyUTest(); double uStatistic = mannWhitneyUTest.mannWhitneyU(data1, data2); double pValue = mannWhitneyUTest.mannWhitneyUTest(data1, data2); // 打印U统计量 System.out.println("U-statistic: " + uStatistic); // 打印P值 System.out.println("P-value: " + pValue); }
Java输出结果
U-statistic: 23.0 P-value: 0.4233396415824435
Python代码及结果
import numpy as np from scipy.stats import mannwhitneyu data1 = [3, 5, 1, 4, 3, 5] data2 = [4, 8, 6, 2, 1, 9] # 计算并打印结果 u_statistic, p_value = mannwhitneyu(data1, data2) print('U-statistic: ', u_statistic) print('P-value: ', p_value)
输出:
U-statistic: 13.0 P-value: 0.46804160590041655
请问我的Java代码是否存在使用错误?
内容的提问来源于stack exchange,提问作者Morkus
相关产品推荐
相关产品推荐

