久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Python-相關(guān)系數(shù)矩陣和顯著性矩陣

 昵稱QAb6ICvc 2022-09-13 發(fā)布于浙江

今天的重點(diǎn)是用Python來制作相關(guān)性矩陣以及顯著性p value矩陣,,如果僅僅得出了相關(guān)系數(shù)矩陣的話還是缺乏說服力,,所以顯著性測試是有必要的

相關(guān)性分析可能是使用頻率較高的一種統(tǒng)計(jì)方法,。對(duì)于不同數(shù)據(jù)集的分布特征往往會(huì)選擇使用相對(duì)應(yīng)的方法,例如如果數(shù)據(jù)是正態(tài)分布的話,,那就選擇皮爾遜相關(guān)系數(shù),,否則的話就去用斯皮爾曼,另外還有kendall相關(guān)系數(shù),。So,,在具體選擇哪一種方法之前可能需要對(duì)數(shù)據(jù)的分布特征進(jìn)行檢驗(yàn),,如可以使用Kolmogorov-Smirnov方法來檢驗(yàn)數(shù)據(jù)的分布形態(tài),詳細(xì)的方法使用可以查看scipy的官網(wǎng)介紹,。由于這不是今天的重點(diǎn),,所以skip

圖片

今天的重點(diǎn)是用Python來制作相關(guān)性矩陣以及顯著性p value矩陣,如果僅僅得出了相關(guān)系數(shù)矩陣的話還是缺乏說服力,,所以顯著性測試是有必要的,。

放一張平時(shí)常見的相關(guān)系數(shù)矩陣圖,也可以叫cross-corr plot吧,。這個(gè)是沒有對(duì)應(yīng)的p value的,,那么可能的情況就是第一個(gè)變量和第二個(gè)變量即使相關(guān)系數(shù)在0.5,但是它的p value可能大于0.05或者0.01了,,但是一般情況下相關(guān)系數(shù)高的變量,,其p value一般也是比較小的,一般也就是通過顯著性測試的,,所以可能出于這個(gè)假設(shè),,較多的相關(guān)矩陣圖就沒有對(duì)應(yīng)的p value。

圖片

為了更加科學(xué),,我這里先繪制了相關(guān)系數(shù)矩陣,,然后再繪制p value值的分布情況。

import matplotlib.pyplot as pltimport seaborn as snsplt.rcParams['font.family'] = 'Times New Roman'# method='spearman'def correlation_heatmap(train): correlations = train.corr(method='spearman') cmap = sns.diverging_palette(220,20, center='light',as_cmap=True)
fig, ax = plt.subplots(figsize=(20,20),dpi=300) mask = np.zeros_like(correlations, dtype=np.bool) # 將mask右上三角(列號(hào)》=行號(hào))設(shè)置為True mask[np.triu_indices_from(mask)] = False sns.heatmap(correlations, mask=mask, cmap=cmap, fmt='.2f', square=True, linewidths=.2, annot=True, vmax=0.99,cbar_kws={'shrink': .50,'extend':'both','pad':0.02} ) plt.savefig('./spearmancorr.png') plt.show(); # correlation_heatmap(X_train[X_train.columns[sorted_idx]])correlation_heatmap(df)

得出相關(guān)系數(shù)矩陣,,圖形有點(diǎn)大

圖片

圖片

繼續(xù)獲取p value并繪制出來

from scipy.stats import pearsonr,spearmanrdef corr_sig(df=None):    p_matrix = np.zeros(shape=(df.shape[1],df.shape[1]))    for col in df.columns:        for col2 in df.drop(col,axis=1).columns:            _ , p = spearmanr(df[col],df[col2])            p_matrix[df.columns.to_list().index(col),df.columns.to_list().index(col2)] = p    return p_matrix
p_values = corr_sig(df)mask = np.invert(np.tril(p_values<0.05))

從上面可以看到,,相關(guān)系數(shù)來自于DataFrame.corr,,顯著性測試來自于scipy。

繪制出來看看,這樣的話就算完全達(dá)到目的了,,既繪制了變量之間的相關(guān)系數(shù)矩陣,又繪制了對(duì)應(yīng)的p value的矩陣,。變量之間可能還會(huì)有共線性的情況,,那么可以自己動(dòng)手測試一下方差膨脹。

圖片

OK,,任務(wù)達(dá)成,!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多