Um dos procedimentos mais básicos em estatística é a comparação entre duas amostras. Um dos mais poderosos e mais populares testes para o propósito é o teste T-student, e você pode realiza-lo via o módulo stats do scipy.
Executando-se os comandos abaixo, vemos que o módulo stats tem três métodos principais para realizar um teste T-student ('ttest_1samp', 'ttest_ind', 'ttest_rel') e suas respectivas documentações.
>>> from scipy import stats
>>> dir(stats)
['NumpyTest', ...., 'ttest_1samp', 'ttest_ind', 'ttest_rel', ...., 'zs']
>>> print stats.ttest_1samp.__doc__
Calculates the t-obtained for the independent samples T-test on ONE group
of scores a, given a population mean.
Returns: t-value, two-tailed prob
>>> print stats.ttest_ind.__doc__
Calculates the t-obtained T-test on TWO INDEPENDENT samples of scores
a, and b. From Numerical Recipies, p.483. Axis
can equal None (ravel array first), or an integer (the axis over
which to operate on a and b).
Returns: t-value, two-tailed p-value
>>> print stats.ttest_rel.__doc__
Calculates the t-obtained T-test on TWO RELATED samples of scores, a
and b. From Numerical Recipies, p.483. Axis
can equal None (ravel array first), or an integer (the axis over
which to operate on a and b).
Returns: t-value, two-tailed p-value
Digamos que temos duas amostras indepentendes (são fictícias, e não testei sua normalidade), e queremos testar a hipótese nula de que elas são originadas de uma mesma população. Para realizar o teste T-student, devemos proceder da seguinte maneira:
>>> a = [2,3,4,3,5,6] # amostra a
>>> b = [5,7,8,8,5,6] # amostra b
>>> stats.ttest_ind(a,b)
(array(-3.2391053207156637), 0.0088828669913688148)
O primeiro valor que retornou corresponde ao valor T e o segundo corresponde ao valor p (two-tailed).
Só para ilustrar, poderiamos ter feito o mesmo teste utlizando-se do módulo RPy.
>>> from rpy import *
>>> rpy_ttest = r.t_test(a,b)
>>> print rpy_ttest["p.value"]
0.00893133561491
>>> print rpy_ttest["statistic"]["t"]
-3.23910532072
>>>
Os valores batem!





