Ответ 1
Это зависит от выбора опций (точное и нормальное приближение с коррекцией непрерывности или без него):
R по умолчанию:
По умолчанию (если "точно не указано" ), вычисляется точное значение p если образцы содержат менее 50 конечных значений, и нет связей. В противном случае используется нормальное приближение.
По умолчанию (как показано выше):
wilcox.test(x, y)
Wilcoxon rank sum test
data: x and y
W = 182, p-value = 9.971e-08
alternative hypothesis: true location shift is not equal to 0
Нормальная аппроксимация с коррекцией непрерывности:
> wilcox.test(x, y, exact=FALSE, correct=TRUE)
Wilcoxon rank sum test with continuity correction
data: x and y
W = 182, p-value = 1.125e-05
alternative hypothesis: true location shift is not equal to 0
Нормальное приближение без коррекции непрерывности:
> (w0 <- wilcox.test(x, y, exact=FALSE, correct=FALSE))
Wilcoxon rank sum test
data: x and y
W = 182, p-value = 1.006e-05
alternative hypothesis: true location shift is not equal to 0
Для немного большей точности:
w0$p.value
[1] 1.005997e-05
Похоже, что другое значение, которое Python дает вам (4.415880433163923), - это Z-score:
2*pnorm(4.415880433163923,lower.tail=FALSE)
[1] 1.005997e-05
Я могу оценить желание узнать, что происходит, но я также хотел бы указать, что редко бывает какая-либо практическая разница между p=1e-7
и p=1e-5
...