Ein ungültiger Wert ist aufgetreten, wenn ich pearsonr benutze

8

Vielleicht habe ich einen Fehler gemacht. Wenn ja, tut mir leid, das zu fragen.

Ich möchte Pearsons Korrelationskoeffizienten berechnen, indem ich die pearsonr-Funktion von scipy verwende .

%Vor%

Ich erhalte einen Fehler unterhalb von

RuntimeWarning: ungültiger Wert in double_scalars

gefunden

Der Grund, warum ich einen Fehler erhalte, ist E [X] = 4 (Freigestellter Wert von X ist 4)

Ich sehe den Code der Funktion pearsonr in scpy.stats.stats.py. Ein Teil der Pearsonr-Funktion ist wie folgt.

%Vor%

Am Ende gibt pearsonr (nan, 1.0)

zurück

Sollte pearsonr return (0, 1.0) ?

Ich denke, wenn ein Vektor für jede Zeile / Spalte denselben Wert hat, sollte die Kovarianz Null sein. Daher sollte der Korrelationskoeffizient von Pearson durch die Definition von PCC ebenfalls Null sein.

  

Pearsons Korrelationskoeffizient zwischen zwei Variablen ist definiert als die Kovarianz der beiden Variablen dividiert durch das Produkt ihrer Standardabweichungen .

Ist es ein Fehler oder wo mache ich einen Fehler?

    
Thorn 04.10.2011, 21:03
quelle

1 Antwort

15
  

Pearsons Korrelationskoeffizient zwischen zwei Variablen ist definiert als die Kovarianz der beiden Variablen dividiert durch das Produkt ihrer Standardabweichungen.

Es ist also die Kovarianz über

  • die Standardabweichung von [4, 5, 5, 4, 4, 4] mal
  • die Standardabweichung von [4, 4, 4, 4, 4, 4] .

Die Standardabweichung von [4, 4, 4, 4, 4, 4] ist Null.

Es ist also die Kovarianz über

  • die Standardabweichung von [4, 5, 5, 4, 4, 4] mal
  • Null.

Es ist also die Kovarianz über

  • Null.

Alles, was durch Null geteilt wird, ist nan . Der Wert der Kovarianz ist irrelevant .

    
agf 04.10.2011, 21:10
quelle

Tags und Links