2015-02-09 3 views
1

У меня есть два образца значений, измеренных на одной и той же группы в двух различных условиях:Расчет т-статистики с использованием `scipy.stats`

import numpy as np 
import scipy.stats as st 

v1 = np.array([ 152.65285 , 97.011475, 77.56722 , 120.19234 ]) 
v2 = np.array([ 149.19984, 172.08975, 143.92285, 108.60255]) 

То, что я хочу сделать, это выполнить dependent t-test for paired examples на данном наборе данных , Как видно в ссылке википедии, это выполняется путем вычисления значеният по формуле:

enter image description here

Где mu_0 установлен в 0. Я этот расчет выполняется, и подсчитано, что T_value равно

>>> (np.average(v1 - v2) * np.sqrt(len(v1)))/(np.std(v1 - v2)) 
-1.6061552162815307 

Однако, используя scipy.stats пакет, я получаю немного другой результат:

>>> st.ttest_rel(v1,v2) 
(-1.3909712197206947, 0.25844779134312651) 

Первый номер, который st.ttest_rel(v1,v2) возвращается должен, в соответствии с scipymanual, равной т -Value, но это не . Я что-то пропущу здесь или ошибочно вычисляет статистику scipy.stats?

ответ

2

Разница, кажется, что np.std вычисляет стандартное отклонение с N степенями свободы, в то время как ttest_rel использует предвзятой оценщик вычислить его (N-1 степеней свободы) ,

Вы можете исправить это, указав разницу в степени свободы в np.std в 1:

>>> (np.average(v1 - v2) * np.sqrt(len(v1)))/(np.std(v1 - v2, ddof=1)) 
-1.3909712197206947 

Два вычисления, то согласен.

+0

Ах, конечно. Степени свободы для стандартного отклонения. Спасибо, что указали на это. Ответ принят. – 5xum

1

Я посмотрел на источники scipy в каталоге site-packages моей папки python. В файле scipy/stats/stats.py показано, как вычисляется ttest_rel. Я обнаружил, что это делается несколько иначе, чем в вашем рассчитанном вручную случае. Но поскольку я не являюсь экспертом в области статистики, вы можете взглянуть на реализацию самостоятельно. Это лучший совет, который я могу дать на данный момент ...

+0

Вы правы, ответ ajcr также объясняет, почему ttest правильный, а мой метод - нет. – 5xum

Смежные вопросы