2012-06-20 10 views
9

Mam zestawy danych z dwiema równie długimi tablicami danych, lub mogę utworzyć tablicę wpisów z dwoma pozycjami i chciałbym obliczyć korelację i istotność statystyczną reprezentowaną przez dane (które mogą być ściśle skorelowane, lub może nie mieć statystycznie istotnej korelacji).W Pythonie, w jaki sposób mogę obliczyć korelację i istotność statystyczną między dwoma tablicami danych?

Programuję w Pythonie i instaluję scipy i numpy. Szukałem i znalazłem Calculating Pearson correlation and significance in Python, ale wydaje się, że chce się manipulować danymi, aby mieściły się w określonym zakresie.

Jaki jest właściwy sposób, aby uzyskać korelację i znaczenie statystyczne dwóch tablic?

+3

Dlaczego uważasz, że 'scipy.stats.pearsonr' chce manipulować danymi więc mieści się w określonym zakresie? – ecatmur

+2

Współczynnik korelacji_ mieści się w zakresie od -1 do +1. To jest wynik, a nie dane wejściowe. –

Odpowiedz

2

Możesz użyć Mahalanobis distance między tymi dwiema tablicami, która bierze pod uwagę korelację między nimi.

Funkcja znajduje się w pakiecie scipy: scipy.spatial.distance.mahalanobis

Jest dobrym przykładem here

7

Jeśli chcesz obliczyć współczynnik korelacji Pearsona, to należy wybrać: scipy.stats.pearsonr; chociaż znaczenie ma znaczenie tylko w przypadku większych zbiorów danych. Ta funkcja nie wymaga manipulowania danymi w określonym zakresie. Wartość korelacji przypada na przedział [-1,1], może to było zamieszanie?

Jeśli znaczenie nie jest szczególnie ważne, można użyć numpy.corrcoef().

Odległość Mahalanobisa uwzględnia korelację między dwiema tablicami, ale zapewnia pomiar odległości, a nie korelację. (Matematycznie, odległość Mahalanobisa nie jest prawdziwą funkcją odległościową, ale może być użyta jako taka w pewnych kontekstach z wielką korzyścią).