numpy之相關矩陣求解

2022-07-17 20:33:15 字數 2900 閱讀 1387

'''

協方差、相關矩陣、相關係數----評估兩組樣本相似度

---若相關係數越接近於1,表示兩組樣本正相關性越強;

---若相關係數越接近於-1,表示兩組樣本負相關性越強;

---若相關係數越接近於0,表示兩組樣本越不相關;

相關矩陣:相關係數矩陣,numpy提供了相關api,可以方便的獲取兩組資料的相關係數

---np.corrcoef(a,b):可以計算兩組樣本的相關係數,但是返回的是2*2的矩陣

'''import

matplotlib.pyplot as mp

import

numpy as np

import

datetime as dt

import

matplotlib.dates as md

#日期轉化函式

defdmy2ymd(dmy):

#把dmy格式的字串轉化成ymd格式的字串

dmy = str(dmy, encoding='

utf-8')

d = dt.datetime.strptime(dmy, '

%d-%m-%y')

d =d.date()

ymd = d.strftime('

%y-%m-%d')

return

ymddates, bhp_closing_prices =\

np.loadtxt(

'./da_data/bhp.csv

', delimiter='

,', usecols=(1, 6), unpack=true,

dtype='

m8[d], f8

', converters=) #

converters為轉換器,執行時先執行,其中1表示時間所在的列索引號

vale_closing_prices =\

np.loadtxt(

'./da_data/vale.csv

', delimiter='

,', usecols=(6,), unpack=true,

dtype='f8'

)#繪製**價折線圖

mp.figure('

cov', facecolor='

lightgray')

mp.title(

'cov

', fontsize=18)

mp.xlabel(

'date

', fontsize=12)

mp.ylabel(

'closing price

', fontsize=12)

mp.tick_params(labelsize=10)

mp.grid(linestyle=':'

)#設定x軸的刻度定位器,使之更適合顯示日期資料

ax =mp.gca()

#以周一作為主刻度

ma_loc = md.weekdaylocator(byweekday=md.mo)

#次刻度,除周一外的日期

mi_loc =md.daylocator()

ax.xaxis.set_major_locator(ma_loc)

ax.xaxis.set_major_formatter(md.dateformatter(

'%y-%m-%d'))

ax.xaxis.set_minor_locator(mi_loc)

#日期資料型別轉換,更適合繪圖

dates =dates.astype(md.datetime.datetime)

#繪製兩支**的**曲線

mp.plot(dates, bhp_closing_prices, color='

dodgerblue

', label='

bhp'

)mp.plot(dates, vale_closing_prices, color='

orangered

', label='

vale')

#通過計算協方差,輸出兩支**的相似情況

bhp_mean =np.mean(bhp_closing_prices)

vale_mean =np.mean(vale_closing_prices)

bhp_dev = bhp_closing_prices -bhp_mean

vale_dev = vale_closing_prices -vale_mean

cov_ab = np.mean(bhp_dev *vale_dev)

print(cov_ab.round(2))

#輸出兩組樣本的相關係數

k = cov_ab / (np.std(bhp_closing_prices) *np.std(vale_closing_prices))

print(k.round(4))

#輸出相關矩陣

m =np.corrcoef(bhp_closing_prices,vale_closing_prices)

print(m.round(4))

#輸出協方差陣

covm =np.cov(bhp_closing_prices,vale_closing_prices)

print(covm.round(2))

mp.tight_layout()

mp.legend()

#自動格式化x軸日期的顯示格式(以最合適的方式顯示)

MatrixTransform之相關矩陣運算

最近在學習matrixtransform,發現對之前學的矩陣乘法竟然忘的一乾二淨,下面就是這個基礎知識的整理。通常的矩陣加法被定義在兩個相同大小的矩陣。兩個m n矩陣a和b的和,標記為a b,一樣是個m n矩陣,其內的各元素為其相對應元素相加後的值。例如 也可以做矩陣的減法,只要其大小相同的話。a ...

MATLAB矩陣分列自相關矩陣

假設有矩陣 a 1 2 3 4 5 6 為了求矩陣a的每一列和該列自身的自相關矩陣,並存在乙個資料結構中,可以採用三維矩陣,並迴圈計算。然而,這樣計算時,一方面三維矩陣在matlab中的操作並不如二維矩陣那麼方便,另一方面,迴圈計算的效率很低。為了方便計算,可以將每一列的自相關矩陣組合存到乙個大的二...

相關矩陣視覺化包ggcorrplot

基於ggplot2包以及corrplot包的相關矩陣視覺化包ggcorrplot,ggcorrplot包提供對相關矩陣重排序以及在相關圖中展示顯著性水平的方法,同時也能計算相關性p value library ggcorrplot 計算相關矩陣 cor 計算結果不提供p value 用ggcorrp...