中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣用Python進行相關性分析

發布時間:2021-10-28 17:15:56 來源:億速云 閱讀:392 作者:柒染 欄目:編程語言

今天就跟大家聊聊有關怎樣用Python進行相關性分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

1.相關和因果是一回事嗎

相關性不等于因果。用x1和x2作為兩個變量進行解釋,相關意味著x1和x2是邏輯上的并列相關關系,而因果聯系可以解釋為因為x1所以x2(或因為x2所以x1)的邏輯關系,二者是完全不同的。

用一個運營示例來說明二者的關系:做商品促銷活動時,通常都會以較低的價格進行銷售,以此來實現較高的商品銷量;隨著商品銷售的提升,也給線下物流配送體系帶來了更大的壓力,在該過程中通常會導致商品破損量的增加。

本案例中,商品低價與破損量增加并不是因果關系,即不能說因為商品價格低所以商品破損量增加;二者的真實關系是都是基于促銷這個大背景下,低價和破損量都是基于促銷產生的。

相關性的真實價值不是用來分析“為什么”的,而是通過相關性來描述無法解釋的問題背后真正成因的方法。相關性的真正的價值是能知道“是什么”,即無論通過何種因素對結果產生影響,最終出現的規律就是二者會一起增加或降低等。

仍然是上面的案例,通過相關性分析我們可以知道,商品價格低和破損量增加是相伴發生的,這意味著當價格低的時候(通常是做銷售活動,也有可能產品質量問題、物流配送問題、包裝問題等),我們就想到破損量可能也會增加。但是到底由什么導致的破損量增加,是無法通過相關性來得到的。

2.相關系數低就是不相關嗎

R(相關系數)低就是不相關嗎?其實不是。

R的取值可以為負,R=-0.8代表的相關性要高于R=0.5。負相關只是意味著兩個變量的增長趨勢相反,因此需要看R的絕對值來判斷相關性的強弱。

即使R的絕對值低,也不一定說明變量間的相關性低,原因是相關性衡量的僅僅是變量間的線性相關關系,變量間除了線性關系外,還包括指數關系、多項式關系、冪關系等,這些“非線性相關”的相關性不在R(相關性分析)的衡量范圍之內。

3.代碼實操:Python相關性分析

本示例中,將使用Numpy進行相關性分析。源文件data5.txt位于“附件-chapter3”中。附件下載地址:

http://www.dataivy.cn/book/python_book_v2.zip

import numpy as np # 導入庫 data = np.loadtxt('data5.txt', delimiter='\t') # 讀取數據文件 x = data[:, :-1] # 切分自變量 correlation_matrix = np.corrcoef(x, rowvar=0) # 相關性分析 print(correlation_matrix.round(2)) # 打印輸出相關性結果

示例中實現過程如下:

  1. 先導入Numpy庫;

  2. 使用Numpy的loadtxt方法讀取數據文件,數據文件以tab分隔;

  3. 矩陣切片,切分出自變量用來做相關性分析;

  4. 使用Numpy的corrcoef方法做相關性分析,通過參數rowvar = 0控制對列做分析;

  5. 打印輸出相關性矩陣,使用round方法保留2位小數。結果如下:

[[ 1. -0.04 0.27 -0.05 0.21 -0.05 0.19 -0.03 -0.02]  [-0.04 1. -0.01 0.73 -0.01 0.62 0. 0.48 0.51]  [ 0.27 -0.01 1. -0.01 0.72 0. 0.65 0.01 0.02]  [-0.05 0.73 -0.01 1. 0.01 0.88 0.01 0.7 0.72]  [ 0.21 -0.01 0.72 0.01 1. 0.02 0.91 0.03 0.03]  [-0.05 0.62 0. 0.88 0.02 1. 0.03 0.83 0.82]  [ 0.19 0. 0.65 0.01 0.91 0.03 1. 0.03 0.03]  [-0.03 0.48 0.01 0.7 0.03 0.83 0.03 1. 0.71]  [-0.02 0.51 0.02 0.72 0.03 0.82 0.03 0.71 1. ]]

相關性矩陣的左側和頂部都是相對的變量,從左到右、從上到下依次是列1到列9。從結果看出:

  • 第5列和第7列相關性較高,系數達到0.91。

  • 第4列和第6列相關性較高,系數達到0.88。

  • 第8列和第6列相關性較高,系數達到0.83。

為了更好地展示相關性結果,我們可以配合Matplotlib展示圖像。代碼如下:

fig = plt.figure() # 調用figure創建一個繪圖對象 ax = fig.add_subplot(111) # 設置1個子網格并添加子網格對象 hot_img = ax.matshow(np.abs(correlation_matrix), vmin=0, vmax=1)  # 繪制熱力圖,值域從0到1 fig.colorbar(hot_img) # 為熱力圖生成顏色漸變條 ticks = np.arange(0, 9, 1) # 生成0~9,步長為1 ax.set_xticks(ticks) # 生成x軸刻度 ax.set_yticks(ticks) # 設置y軸刻度 names = ['x' + str(i) for i in range(x.shape[1])] # 生成坐標軸標簽文字 ax.set_xticklabels(names) # 生成x軸標簽 ax.set_yticklabels(names) # 生成y軸標簽

上述代碼的功能都已經在注釋中注明。有以下幾點需要注意:

  • 由于相關性結果中看的是絕對值的大小,因此需要對correlation_matrix做取絕對值操作,其對應的值域會變為[0, 1]。

  • 原始數據中由于沒有列標題,因此這里使用列表推導式生成從x0到x8代表原始的9個特征。

展示結果如圖所示。

怎樣用Python進行相關性分析

從圖像中配合顏色可以看出:顏色越亮(彩色顏色為越黃),則相關性結果越高,因此從左上角到右下角呈現一條黃色斜線;而顏色較亮的第5列和第7列、第4列和第6列及第8列和第6列分別對應x4和x6、x3和x5、x7和x5。

上述過程中,主要需要考慮的關鍵點是:如何理解相關性和因果關系的差異,以及如何應用相關性。相關性分析除了可以用來分析不同變量間的相關伴生關系以外,也可以用來做多重共線性檢驗。

看完上述內容,你們對怎樣用Python進行相關性分析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

彰武县| 客服| 丹巴县| 昔阳县| 敦化市| 嵊州市| 洪泽县| 曲松县| 龙游县| 伊宁县| 安溪县| 喀喇| 虎林市| 隆安县| 峨边| 河北省| 五莲县| 新安县| 米易县| 商丘市| 浦县| 松原市| 滦南县| 遵化市| 盐津县| 华容县| 方正县| 吴忠市| 罗江县| 陈巴尔虎旗| 阿勒泰市| 永仁县| 温州市| 德格县| 松原市| 沙坪坝区| 铁力市| 蓝山县| 合阳县| 郓城县| 蒲江县|