Как получить p-значение для каждой строки из двух столбцов в pandas DataFrame?

Я хотел бы попросить любое предложение, как рассчитать p-значение для каждой строки в моем DataFrame pandas. Мой фрейм данных выглядит так - есть столбцы со средними значениями Data1 и Data2, а также столбцы со стандартной ошибкой средних значений. Каждая строка представляет один атом. Таким образом, мне нужно рассчитать p-значение для каждой строки (= это означает, например, сравнить среднее значение атома 1 из Data1 со средним значением атома 1 из Data2).

    SEM-DATA1   MEAN-DATA1  SEM-DATA2   MEAN-DATA2  
0   0.001216    0.145842    0.000959    0.143103    
1   0.002687    0.255069    0.001368    0.250505    
2   0.005267    0.321345    0.003722    0.305767    
3   0.027265    0.906731    0.033637    0.731638    
4   0.029974    0.773725    0.150025    0.960804        

Я нашел здесь, в стеке, что многие люди рекомендуют использовать scipy. Но я не знаю, как применить его так, как мне нужно. Является ли это возможным? Благодарю вас.


person HungryMolecule    schedule 07.12.2020    source источник


Ответы (1)


Вы сравниваете два образца df['MEAN...1'] и df['MEAN...2'], поэтому вы должны сделать это:

from scipy import stats
stats.ttest_ind(df['MEAN-DATA1'],df['MEAN-DATA2'])

которые возвращают:

Ttest_indResult(statistic=0.01001479441863673, pvalue=0.9922547232600507)

или если вы хотите только p-значение

a = stats.ttest_ind(df['MEAN-DATA1'],df['MEAN-DATA2'])
a[1]

который дает

0.9922547232600507

ИЗМЕНИТЬ

Здесь уместно пояснение. Стьюдентный тест (или получение p-значения направлен на то, чтобы выяснить, исходят ли два распределения из одной и той же совокупности (или выборки). Тестирование двух отдельных значений даст NaN.

person Serge de Gosson de Varennes    schedule 07.12.2020
comment
Этот подход просто занимает целые столбцы, не так ли? Итак, я должен использовать ось = 1 для расчета для каждой строки двух столбцов? - person HungryMolecule; 07.12.2020
comment
p-значения предназначены для образцов, а не для 2 чисел. Каким, по-вашему, должно быть p-значение двух чисел? - person Serge de Gosson de Varennes; 07.12.2020