---
# System prepended metadata

title: '[Learn Note] [Machine Learning] 皮爾遜相關係數熱力圖'
tags: [Machine Learning, Learn Note]

---

# 相關係數介紹
[皮爾森積動差相關係數（Pearson product-moment correlation coefficient，縮寫：PPMCC，或PCCs，簡稱相關係數）](https://zh.wikipedia.org/wiki/%E7%9A%AE%E5%B0%94%E9%80%8A%E7%A7%AF%E7%9F%A9%E7%9B%B8%E5%85%B3%E7%B3%BB%E6%95%B0)
在統計學中，用於度量兩組數據的變量X和Y之間的線性相關的程度。
它是兩個變量的共變異數與其標準差的乘積之比； 因此，它本質上是共變異數的歸一化度量，因此結果始終具有介於-1和1之間的值。
與共變異數本身一樣，該度量只能反映變量的線性相依性，而忽略了許多其他類型的關係或相關性。

PS:相關係數（Correlation Coefficient）是一種相關程度的測量，在統計學上的意義是兩個變數之間的關係。關係係數與「皮爾遜積動差相關係數」並不相同。

簡單的差異表：

| 特點                   | 相關係數</br>（Correlation Coefficient）          | 皮爾遜積動差相關係數</br>（Pearson Correlation Coefficient） |
|----------------------|----------------------------------------|---------------------------------------------------|
| 定義                 | 衡量兩個變數之間的關係。                        | 衡量兩個變數之間的線性相關程度。                              |
| 類型                 | 可以衡量任何類型的相依性，不僅僅是線性相依性。             | 只能衡量線性相依性。                                       |                                     |

---
# 相關程度（５種分類）
來源：[東吳大學 - 相關](https://myweb.scu.edu.tw/~swlean/statistics4.htm)
| 相關係數（R） | 相關程度     |
|--------------|------------|
| 1 或 -1      | 完全相關     |
| 0.9 至 -0.9  | 高度相關     |
| 0.6 至 -0.6  | 中度相關     |
| 0.3 至 -0.3  | 低度相關     |
| 小於 0.3 或大於 -0.3 | 無相關或微弱相關 |

---
來源：[黃姵嫙 - 皮爾森積差相關分析(Pearson Correlation)-說明與SPSS操作](https://www.yongxi-stat.com/pearson-correlation/)
| 相關係數（R） | 相關程度     |
|--------------|------------|
| 大於等於 0.7 | 高度相關     |
| 0.3 至 0.7   | 中等相關     |
| 小於 0.3     | 低相關       |

---
來源：[國立臺灣大學圖書資訊學系 - 相關分析當變項為一個連續變數時](https://www.lis.ntu.edu.tw/~pnhsieh/courses/QStat/7_Correlation.ppt)

![image](https://hackmd.io/_uploads/SJ7Jm5KGA.png)

---
來源：[高科大行銷與流通管理系－相關係數 & MBA 智庫百科](http://md.nkust.edu.tw/images/upload/files/class/20210816_6.pdf)
| 相關係數（R） | 相關程度     |
|--------------|------------|
|0.7 ≤ | r | < 1|為高度相關|
|0.4 ≤ | r | < 0.7|為顯著相關|
|0.0 ≤ | r | < 0.4 |為低度相關|

---
來源：[臺中榮民總醫院 - 描述性統計學概念](https://www.vghtc.gov.tw/UploadFiles/WebFiles/WebPagesFiles/Files/59834ffe-967c-438f-bbc3-4f0b28879f16/10806-20190815.pdf)
![image](https://hackmd.io/_uploads/S17c69YzA.png)

---
# 前情提要
![Figure_24-15](https://hackmd.io/_uploads/BJYpUrOfC.png)

最右欄位（是否有糖尿病），最有相關的特徵（血糖值），相關係數是 0.47。

這個圖是一個皮爾遜相關係數的熱力圖，用來展示不同變數之間的相關性。圖中顏色的深淺表示相關性大小，顏色由紅到藍表示相關性從正相關到負相關。相關係數的值範圍在-1到1之間，接近1表示強正相關，接近-1表示強負相關，接近0表示無相關性。

---
## 圖解說明：
1. 對角線上的值：
   - 每個變數與自身的相關性值都是1，這是因為每個變數與自身完全相關。
2. 顏色的含義：
   - 紅色區域：代表正相關性，即兩個變數之間的關係是一個增加，另一個也增加。
   - 藍色區域：代表負相關性，即一個變數增加，另一個變數減少。
   - 顏色越深：表示相關性越強，不論是正相關還是負相關。
   - 淺色區域：表示相關性較弱或無關聯。

3. 舉例解說：
   - 懷孕次數和年齡：有0.54的相關係數，顯示出正相關性，顯示隨著年齡增加，懷孕次數可能會增加。
   - 血糖值和是否有糖尿病：相關係數0.47，也顯示出正相關性，意味著血糖值越高，越可能患有糖尿病。
   - BMI和皮膚厚度：相關係數0.39，表示BMI和皮膚厚度之間有一定的正相關性。

## 結論：
這個熱力圖讓我們能夠快速視覺化各變數之間的相關性，幫助識別出那些可能存在強相關或負相關的變數組合。根據這些信息，我們可以進一步探討變數之間的關係，並將其應用於數據分析或預測模型中。

---
# 如果欄位很多怎麼辦?
![皮爾遜相關係數熱力圖](https://hackmd.io/_uploads/r1EWtHdMR.png)

## 過多信息的熱力圖
如果有很多欄位，可以考慮以下幾個方法來處理熱力圖中的過多信息：
* 特徵選擇：首先，可以使用特徵選擇技術來篩選出最重要的特徵，這樣可以減少熱力圖中的欄位數量。常見的特徵選擇方法包括基於統計的方法（如方差門檻、相關係數、信息增益等）和基於機器學習模型的方法（如遞歸特徵消除、樹模型特徵重要性等）。
* 分組顯示：如果欄位太多難以一次性顯示在熱力圖中，可以考慮將相關性分組，然後分別顯示各組之間的相關性熱力圖。這樣可以使圖表更易於理解和解釋。
* 交互式熱力圖：使用交互式繪圖庫（如Plotly、Bokeh等），可以實現對熱力圖進行縮放、拖動和標註等操作，從而更方便地查看大量數據。
* 降維技術：對數據進行降維操作，例如主成分分析（PCA）或 t-分布鄰近算法（t-SNE），可以將高維數據映射到二維或三維空間中，從而方便可視化。
* 部分相關性：對於複雜的數據集，可以使用部分相關性分析來解析多個變量之間的關係，從而減少熱力圖中的冗余信息。

---
## 如何改善圖表的可讀性
### 1. 減少顯示的變數數量
- 選擇關鍵變數：如果某些變數的相關性對分析的目的不太重要，可以將它們移除，僅保留重要的變數來減少圖表的複雜性。
- 分組顯示：將相關的變數分組，分成多個較小的熱力圖來展示，這樣可以避免標籤過於擁擠。

---
### 2. 調整標籤顯示方式
- 改變標籤的角度：可以將標籤的角度改成45度或垂直顯示，這樣可以使標籤之間不會重疊，增加可讀性。
- 標籤縮寫或縮短：如果變數名稱較長，可以考慮縮短名稱或使用縮寫，使標籤不會擁擠在一起。
- 間隔顯示標籤：並不是每個標籤都需要顯示，您可以選擇間隔顯示標籤（例如，每隔一個或兩個標籤顯示一次），使得圖表看起來更整潔。

---
### 3. 增加標籤字體大小
- 增大字體：增大標籤的字體大小，使其更容易辨識。若空間不足，可結合縮短名稱或減少顯示變數數量的方法。

---
### 4. 優化色彩方案
- 簡化顏色範圍：如果有太多不同的顏色範圍，可能會使得圖表難以解讀。可以簡化顏色範圍，使主要相關性（例如，強正相關和強負相關）更加突出。
- 色彩對比：確保顏色對比足夠明顯，使得不同強度的相關性更容易區分。

---
### 5. 顯示數字標註
- 添加相關性數值標註：在方格內部顯示相關係數的數值，這樣即使色彩對比不明顯，使用者仍然可以直接讀取具體的相關性數值。

---
### 6. 增加圖表的尺寸
- 擴大圖表大小：如果可能，將圖表的尺寸加大，這樣可以讓標籤顯示得更清楚，同時方格的大小也能適當增大，使得數字標註更易於閱讀。


---
# 特徵欄位增加與減少的影響?
## 全部欄位
### 小數點後兩位
![皮爾遜相關係數熱力圖 - 全部欄位小數點後 2 位](https://hackmd.io/_uploads/rJS96eSjC.png)
---
### 小數點後三位
![皮爾遜相關係數熱力圖 - 全部欄位小數點後 3 位](https://hackmd.io/_uploads/HyXg6eSsA.png)


---
## 少了時間欄位
![皮爾遜相關係數熱力圖 - 全部欄位](https://hackmd.io/_uploads/HJDt0lHoA.png)

---
## 缺失值較少的欄位
![皮爾遜相關係數熱力圖 - 缺失值較少的欄位](https://hackmd.io/_uploads/rkcEslBiA.png)

---
## 缺失值較多的欄位
由於 OtherVehicleImpact 缺失值高達 60 萬筆，因此分有與沒有 OtherVehicleImpact 的，看該特徵是否有相關。

### 有 OtherVehicleImpact
![皮爾遜相關係數熱力圖 - 缺失值較多的欄位](https://hackmd.io/_uploads/r1GHsxSsA.png)

#### 沒有 OtherVehicleImpact
![皮爾遜相關係數熱力圖 - 缺失值較多的欄位沒有 OtherVehiclelmpact Feature](https://hackmd.io/_uploads/HySSixHjC.png)

---
## 總結
* 小數點會四捨五入進位
* 可以發現全部欄位與全部欄位少了時間欄位的相關係數有變化，有時間欄位的 AccidentCategory 係數變高了。
* 有與沒有 OtherVehicleImpact 的相關係數沒有差別，可見 OtherVehicleImpact 在此機器學習沒有太大的影響

---
# 如果數值都很平均該怎麼辦?
可以按照上述[相關程度](https://hackmd.io/dMJK5dBSSrOmy1iO86U9GA#%E7%9B%B8%E9%97%9C%E7%A8%8B%E5%BA%A6%EF%BC%88%EF%BC%95%E7%A8%AE%E5%88%86%E9%A1%9E%EF%BC%89)去決定。