Diciamo che si dispone di un elenco di carri allegorici in questo modo:
>>> data = {
... 'a': [0.9, 1.0, 1.1, 1.2],
... 'b': [0.8, 0.9, 1.0, 1.1],
... 'c': [4.9, 5.0, 5.1, 5.2],
... }
Chiaramente, a
è molto simile a b
, ma entrambi sono diversi da c
.
Esistono due tipi di confronti che è possibile effettuare.
- Pairwise: è
a
simile a b
? a
è simile a c
? b
è simile a c
?
- Combinato: Sono
a
, b
e c
disegnato dallo stesso gruppo? (Questo è generalmente un better question)
Il primo può essere raggiunto utilizzando indipendente t-tests come segue:
>>> from itertools import combinations
>>> from scipy.stats import ttest_ind
>>> for list1, list2 in combinations(data.keys(), 2):
... t, p = ttest_ind(data[list1], data[list2])
... print list1, list2, p
...
a c 9.45895002589e-09
a b 0.315333596201
c b 8.15963804843e-09
Questo fornisce i valori p rilevanti, ed implica che tale a
e c
sono diverso, b
e c
sono diversi, ma a
e potrebbero essere simili.
Quest'ultimo può essere ottenuto usando l'one-way ANOVA come segue:
>>> from scipy.stats import f_oneway
>>> t, p = f_oneway(*data.values())
>>> p
7.959305946160327e-12
Il p-valore indica che a
, b
e c
è improbabile che siano dalla stessa popolazione.
Vuoi dire un [t-test] (https://en.wikipedia.org/wiki/Student%27s_t-test)? Sì, esiste una funzione in ['scipy'] (http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_ind.html) – CoryKramer
Oh, grazie per avermi indirizzato nella giusta direzione . Ne proverei uno di questi. – YKY
Non sono sicuro che il valore p sia quello che stai cercando. Non solo t-test, vari altri come [scipy.stats.spearmanr] (http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.spearmanr.html), [scipy.stats.mannwhitneyu ] (http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.mannwhitneyu.html) fornisce anche il valore di p. Quindi, è più simile: quando si esegue un test di ipotesi in statistica, un valore p consente di determinare il significato dei risultati. – Zero