Как выполнить U-тест Манна-Уитни в python с циклом?

1

У меня есть цикл, который каждый раз дает новые значения 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
Теги:
pandas
loops
scipy
statistics

1 ответ

0
Лучший ответ

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

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

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

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

перед вызовом mannwhitneyu(k1, k2)

  • 0
    Ой! Спасибо! Не могли бы вы посоветовать мне, как я могу сейчас выполнить коррекцию p-значения для множественных сравнений? Я написал сообщение сегодня: stackoverflow.com/questions/52433424/…

Ещё вопросы

Сообщество Overcoder
Наверх
Меню