Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是python';s等价于Matlab';这是朗克苏姆?_Python_Matlab_Scipy_Statistical Test - Fatal编程技术网

什么是python';s等价于Matlab';这是朗克苏姆?

什么是python';s等价于Matlab';这是朗克苏姆?,python,matlab,scipy,statistical-test,Python,Matlab,Scipy,Statistical Test,scipy.stats.ranksum,wilcoxon,mannwhitneyu都给出了与Matlab的ranksum不同的结果,这取决于您使用的选项。检查以下示例: 1-MATLAB rng('default') % for reproducibility x = unifrnd(0,1,20,1); y = unifrnd(0.25,1.25,20,1); p = ranksum(x,y); p = 0.2503 2-Python (为了保持一致,我没有再次生成数字,但我已将MAT

scipy.stats.ranksum
wilcoxon
mannwhitneyu
都给出了与Matlab的
ranksum
不同的结果,这取决于您使用的选项。检查以下示例:

1-MATLAB

rng('default') % for reproducibility
x = unifrnd(0,1,20,1);
y = unifrnd(0.25,1.25,20,1);
p = ranksum(x,y);
p =
   0.2503
2-Python (为了保持一致,我没有再次生成数字,但我已将MATLAB中生成的数字移动到Python脚本中)

此结果与以下选项一起使用:

1-对于MATLAB

p=ranksum(x,y)返回双侧Wilcoxon秩和的p值 测试。ranksum检验了零假设,即x和y中的数据是 来自连续分布的样本,中位数相等,与 另一种选择是,它们不是。测试假设两个样本 他们是独立的。x和y可以具有不同的长度。这个测试是 相当于曼惠特尼U检验

2-对于Python

计算两个样本的
Wilcoxon秩和
统计量。这个 Wilcoxon秩和检验检验两组 测量值取自相同的分布。替代方案 假设一个样本中的值更可能更大 而不是其他样本中的值。此测试应用于 比较连续分布的两个样本。事实并非如此 处理x和y方向测量值之间的关系


另一个例子

在这里,我使用相同的数据,具有相同的MATLAB功能,但不同的选项。现在您可以看到,结果与Scipy中的
mannwhitneyu
函数的结果相同

MATLAB

[p,h,stats] = ranksum(x,y,'alpha',0.01,'tail','left','method','exact');
p = 
    0.1267
Python

m = mannwhitneyu(xx, yy, use_continuity=True)
print m

MannwhitneyuResult(statistic=157.0, pvalue=0.12514839875175593)

一些代码来说明它们的不同之处会很好。具体地说,请在您的帖子中附上一封信。为什么
0.1267!=0.12514839875…
?不同的数字格式?这里我们没有在MATLAB和Python中设置所有相同的选项。我想通过深入细节可以发现差异的原因。@NKN对我来说,第一个是类似的,所以当你提到MATLAB的测试中位数时,我假设Python也是?
m = mannwhitneyu(xx, yy, use_continuity=True)
print m

MannwhitneyuResult(statistic=157.0, pvalue=0.12514839875175593)