2 回答

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
如果您只想要兩列之間的相關(guān)性,可以使用內(nèi)置pearsonr
模塊 in?scipy
,它返回Pearson 相關(guān)性和p 值。
嘗試這個(gè):
#input test data
>>> newData
? ? ? ? DIS? ? ? NFLX
0? 0.620575? 0.122005
1? 0.124085? 0.380087
2? 0.286652? 0.218533
3? 0.569696? 0.511214
4? 0.081106? 0.114614
5? 0.223516? 0.677468
6? 0.226528? 0.474243
7? 0.998798? 0.099523
8? 0.994585? 0.429352
9? 0.277520? 0.882989
>>> from scipy import stats
>>> corr, p_value = stats.pearsonr(newData['DIS'].values, newData['NFLX'].values)
>>> print(corr)
-0.25752281938162824
它不會(huì)返回任何有缺陷的東西。返回一個(gè)方形相關(guān)矩陣,如果有多個(gè)特征/變量,df.corr()這非常有用。您始終可以通過(guò)和提取df['DIS']和之間的相關(guān)性:df['NFLX']lociloc
>>> #test data
>>> newData.corr()
? ? ? ? ? ?DIS? ? ? NFLX
DIS? ?1.000000 -0.257523
NFLX -0.257523? 1.000000?
>>> newData.corr().loc['DIS','NFLX']
-0.25752281938162824
>>> newData.corr().loc['NFLX','DIS']
-0.25752281938162824
>>> newData.corr().iloc[1][0] # 2nd row and 1st column?
-0.25752281938162824
>>>newData.corr().loc[0][1] # 1nd row and 2nd column?
-0.25752281938162824
您可以使用 pandas 立即使相關(guān)矩陣看起來(lái)更好style:
newData.corr().style.background_gradient(cmap='viridis')?
如果你想讓相關(guān)矩陣看起來(lái)更好。您可以使用名為 的seaborn 熱圖功能sns.heatmap。這是一個(gè)例子:
import matplotlib.pyplot as plt
import seaborn as sns
sns.heatmap(newData.corr(),annot=True, lw=2, cmap='coolwarm')
plt.show()
輸出:

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
不,你的答案是對(duì)的,這被稱(chēng)為相關(guān)矩陣,你從中可以理解什么
等于 1 的對(duì)角線部分始終為 1,因?yàn)橥惶卣鞯南嚓P(guān)值為 1
兩只股票之間的相關(guān)性等于 0.0272
例如,如果你有第三個(gè)特征,它將為每個(gè)特征生成一個(gè) 3*3 矩陣
旁注:呈現(xiàn)相關(guān)矩陣的一個(gè)好方法是使用熱圖,它很容易理解和可視化,您可以檢查這個(gè)問(wèn)題,它有一個(gè)很好的答案,有助于理解如何構(gòu)建它
添加回答
舉報(bào)