2012-06-20 14 views
9

Ho serie di dati con due matrici di dati ugualmente lunghe, oppure posso creare una matrice di voci di due voci, e vorrei calcolare la correlazione e il significato statistico rappresentato dai dati (che possono essere strettamente correlati, o potrebbe non avere correlazione statisticamente significativa).In Python, come posso calcolare la correlazione e la significatività statistica tra due matrici di dati?

Sto programmando in Python e ho installato scipy e numpy. Ho cercato e trovato Calculating Pearson correlation and significance in Python, ma sembra voler manipolare i dati in modo che rientri nell'intervallo specificato.

Qual è il modo corretto per, presumo, chiedere a scipy o numpy di darmi la correlazione e il significato statistico di due array?

+3

Perché pensi che 'scipy.stats.pearsonr' voglia che i dati vengano manipolati quindi rientra in un intervallo specificato? – ecatmur

+2

Il coefficiente di correlazione _ cade tra -1 e +1. Questo è l'output, non l'input. –

risposta

2

È possibile utilizzare lo Mahalanobis distance tra questi due array, che tiene conto della correlazione tra di essi.

la funzione è nel pacchetto SciPy: scipy.spatial.distance.mahalanobis

C'è un bel esempio here

7

Se si desidera calcolare il coefficiente di correlazione di Pearson, la strada da percorrere è scipy.stats.pearsonr; sebbene, il significato sia significativo solo per i set di dati più grandi. Questa funzione non richiede che i dati vengano manipolati per rientrare in un intervallo specificato. Il valore per la correlazione cade nell'intervallo [-1,1], forse quella era la confusione?

Se il significato non è molto importante, è possibile utilizzare numpy.corrcoef().

La distanza di Mahalanobis tiene conto della correlazione tra due matrici, ma fornisce una misura di distanza, non una correlazione. (Matematicamente, la distanza di Mahalanobis non è una vera funzione a distanza, tuttavia può essere usata come tale in determinati contesti con grande vantaggio.)

Problemi correlati