2014-08-30 18 views
6

In meiner regulären Datenanalyse Arbeit, habe ich 100% Python verwenden, seit das Seaborn-Paket verfügbar wird. Vielen Dank an dieses wundervolle Paket. Eine Excel-Chart-Funktion, die ich vermisse, besteht jedoch darin, die Polyfit-Gleichung und/oder den R2-Wert anzuzeigen, wenn die Funktion lmplot() verwendet wird. Kennt jemand eine einfache Möglichkeit, das hinzuzufügen?Seaborn Implot mit Gleichung und R2 Text

+0

möglich Duplikat [Wie kann ich berechnen r-Quadrat mit Python und Numpy?] (Http://stackoverflow.com/questions/893657/how-do-i-calculate-r-squared -using-python-and-numpy) – MattDMo

+1

Es ist nicht wirklich ein Duplikat, weil die Frage ist, ob dies automatisch von den Seaborn-Funktionen hinzugefügt werden kann, nicht wie man es manuell berechnet. – mwaskom

Antwort

13

Es kann nicht automatisch mit lmplot getan werden, weil es nicht definiert ist, was dieser Wert entsprechen sollte, wenn es mehrere Regression passt (dh unter Verwendung eines hue, row oder col Variable.

Aber das ist Teil der ähnlich . jointplot Funktion standardmäßig zeigt es den Korrelationskoeffizienten und p-Wert:

import seaborn as sns 
import numpy as np 

x, y = np.random.randn(2, 40) 
sns.jointplot(x, y, kind="reg") 

Aber Sie jede Funktion übergeben können, wenn Sie wollen, R^2, könnten Sie tun:.

from scipy import stats 
def r2(x, y): 
    return stats.pearsonr(x, y)[0] ** 2 
sns.jointplot(x, y, kind="reg", stat_func=r2) 

enter image description here

+0

Danke, ich denke, ich kann das Jointplot() einzeln anstelle der netten Multiple-Chart-Funktion von lmplot() verwenden. Jedoch können die Top/Side-Histogramme optional sein, so dass ich viele in ein lmplot() -Äquivalent verpacken kann. – user3287545

+0

Was ist p-Wert (0,22) hier? Ich denke Pearson-Korrelation ist Pearsonr-Wert. – cacert

+0

@cacert: siehe https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.pearsonr.html - Wahrscheinlichkeit, eine solche Korrelation mit zwei völlig unabhängigen Variablen zu sehen. – naught101