2015-11-03 36 views
14

有誰知道如何使用sns.regplot顯示在seaborn迴歸方程或sns.jointplot? regplot似乎沒有任何參數可用於顯示迴歸診斷,並且jointplot只顯示皮爾森R^2和p值。我正在尋找一種方法來查看斜率係數,標準誤差和截距。顯示迴歸方程

謝謝

+1

我認爲你需要自己做迴歸來獲得這些信息。 –

+0

是的,並用'ax.text'添加它。 – mwaskom

+3

很明顯,信息應該在某個地方,因爲正在繪製一條線 – user391339

回答

2

遲到和部分的答案。 我只是想獲得迴歸線的數據的問題,我發現這一點:

當你有這樣的情節:

f = mp.figure() 
ax = f.add_subplot(1,1,1) 
p = sns.regplot(x=dat.x,y=ydat,data=dat,ax=ax) 

然後p有一個方法get_lines()其還給名單line2D對象。而一個line2D對象有方法來獲取所需的數據:

因此,要獲得在這個例子中,線性迴歸的數據,你只需要做到這一點:

p.get_lines()[0].get_xdata() 
p.get_lines()[0].get_ydata() 

那些調用返回每一個numpy陣列迴歸線數據點,您可以自由使用。

使用p.get_children()你得到的情節中的單個元素的列表。

p.get_children()[1].get_paths() 

這是一個在數據點的元組的形式:

置信區間圖的路徑信息可以被發現。

一般來說很多可以使用任何Python對象的dir()命令中找到,它只是顯示的一切,就是在那裏。

+2

這並不直接產生所需的方程;期望的是迴歸線的斜率和截距。即對於y = ax + b,a和b。然而,爲了獲得這一個可以使用''scipy's stats.linregress':'斜率,截距,r_value,P_VALUE,std_err = scipy.stats.linregress(X = p.get_lines()[0] .get_xdata(), y = p.get_lines()[0] .get_ydata())' – ijoseph

+0

可以使用兩個點的(x,y)座標輕鬆計算該公式。有了兩點,你可以計算出一個和那個b。 – Khris

+3

@Khris確定,但它是多麼奇怪,有一個的軟件,計算迴歸,爲您提供了相關係數和結果模型的p值,並沒有提供模型本身?如果seaborn作者可以添加此功能, – famargar