2015-11-30 80 views
0

我兩個列表之間能夠計算Pearson相關:打印Pearson相關殘值

import scipy 
from scipy import stats 
from scipy.stats import pearsonr 
List1 = [1,2,3,4,5] 
List2 = [2,3,4,5,6] 
pearson = scipy.stats.pearsonr(List1,List2) 
print "pearson correlation: " + str(pearson) 

我想觀察名單 - 用於列表1的預期值。有人會知道如何擴展這段代碼來打印觀察到的預期值嗎?

鑑於此測試的說明: http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.pearsonr.html 我不確定我能否使用此方法獲取這些值,或者其他更適合?

編輯,我現在可以計算線性迴歸模型:

import sys 
import scipy 
from scipy import stats 

List1 = [1,2,3,4,5] 
List2 = [1,3,5,6,7] 

slope, intercept, r_value, p_value, std_err = stats.linregress(List1,List2) 

補充說明:

我認爲一旦我裝了一個模型,好心建議,我會弄清楚如何適應使用linregress包的殘差。

然而,當我打電話:

>>> dir(stats.linregress) 
['__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__doc__', '__format__', '__get__', '__getattribute__', '__globals__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name'] 

我可以看到,有什麼都沒有說將類似於.resid/.residuals etc.Could有人點我在正確的方向,爲下一步是什麼?的目的是計算所觀察到的列表 - 用於list1的預期值(見上文?)

校正:

import scipy 
from scipy import stats 
x = [28,26,44,40,10,7,27,25,26,10] 
y = [0.055,0.074,0.049,0.067,0.037,0.036,0.044,0.041,0.071,0.03] 
print scipy.stats.linregress(x,y) 

給我此:

(0.00075454346398073121, 0.032064593825268217, 0.59378410770471368, 0.07031502216706445, 0.00036149633561360087) 

我假設是殘差。非常感謝。

******* ****** CORRECTION

0.00075454346398073121是斜率(m),和0.032064593825268217是恆定(C)。

To obtain the raw residuals for the first two items in lists x and y (see above) respectively, use y=mx+c: 

list1 = [28,26] 
X1 observed = 28; X1 predicted = 0.000754*28 + 0.03206 = 0.0531 
X1 residual = 28 - 0.0531 = 27.94 

X2 observed = 26; X2 predicted = 0.000764*26+0.03206 = 0.051664 
X2 residual = 26 - 0.051664 = 25.94 



list2 [0.055,0.074] 
Y1 observed = 0.055; Y1 predicted = 0.000764*0.055+0.03206 = 0.032 
Y1 residual = 0.055 - 0.032 = 0.022 

Y2 observed = 0.074; Y2 predicted = 0.000764*0.074+0.03206 = 0.032 
Y2 residual = 0.074 - 0.032 = 0.041. 

非常感謝。

+0

這不是殘差,它是一個帶有(斜率,截距,r值,p值,stderr)的元組。要得到殘差,需要應用模型y = mx + b,其中m是斜率,b是截距,並從「原始」數據點中減去它。 – Benjamin

+0

非常感謝。我已經添加了更正和示例以確保我理解正確。 – Mea

+0

還不夠。你應該諮詢一個好的統計文本或網站,以獲得線性迴歸的基本解釋。除非你明白輸出的含義以及如何使用它們,否則這些工具不會有多大幫助。 – Benjamin

回答