Как выполнить U-тест Манна-Уитни в python с циклом? - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть цикл, который каждый раз выдает новые значения k1 и k2, но проблема в том, что в моем наборе данных есть случаи, когда все значения равны нулю как в k1, так и в k2.Когда программа приходит к ним, она просто выдает ошибку и не завершает цикл, а еще много вычислений.Как я могу сделать такие случаи просто подписанными, как NA или что-то еще, и цикл продолжается?

python3 

import pandas

from scipy.stats import mannwhitneyu

print(mannwhitneyu(k1, k2))

Я провожу этот U-тест Манна-Уитни для разных наблюдений и хочу, чтобы цикл не останавливалсяпри ошибке, но просто отметить, что здесь невозможно

Пример ошибки (строка 3, выше, как правило):

MannwhitneyuResult(statistic=3240.0, pvalue=0.16166098643677973)
MannwhitneyuResult(statistic=2958.5, pvalue=0.008850960706454409)
Traceback (most recent call last):
  File "ars1", line 95, in <module>
    print(mannwhitneyu(k1, k2))
  File "/storage/software/python-3.6.0/lib/python3.6/site-packages/scipy/stats/stats.py", line 4883, in mannwhitneyu
    raise ValueError('All numbers are identical in mannwhitneyu')
ValueError: All numbers are identical in mannwhitneyu

1 Ответ

0 голосов
/ 21 сентября 2018

Вы можете продолжить цикл, если 2 массива равны.Например, если:

k1 = [0,0,0,0,0];
k2 = [0,0,0,0,0];

, тогда вы можете проверить, k1 == k2.Если это правда, просто используйте продолжить для вашего цикла.Вот так:

if ( k1 == k2 ) == True: continue

прямо перед звонком mannwhitneyu(k1, k2)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...