基於R進行相關性分析--轉載
https://www.cnblogs.com/fanling999/p/5857122.html
一、相關性矩陣計算:
[1] 加載數據:
>data = read.csv("231-6057_2016-04-05-ZX_WD_2.csv",header=FALSE)
說明:csv格式的數據,header=FALSE 表示沒有標題,即數據從第一行開始。
[2] 查看導入數據的前幾行,
>head(data)
[3] 刪除數據的7,8列,都是0
>data = data[1:6]
>head(data)
[4] 計算相關性矩陣(可以自己指定采用的方法,"pearson", "kendall", "spearman")
>cor_matr = cor(data)
>cor_matr
二 相關系數的顯著性水平(Correlation significance levels (p-value))
使用Hmisc 包,不僅可以計算相關性矩陣,還可以計算對應的顯著性水平
[1] 安裝包 Hmisc (依賴包也會一並安裝,lib代表安裝包的路徑)
>install.packages("Hmisc",lib="E:/Program Files/R/R-3.3.0/library/")
[2] 加載包
>library(Hmisc)
[3] 計算相關性和顯著水平 (as.matrix(data) 表示將data轉換成矩陣)
>rcorr(as.matrix(data))
輸出說明:
r :第一個矩陣為相關性矩陣
n : 處理數據的總記錄數(行數)
P : 顯著性水平矩陣(越小說明越顯著)
三、可視化相關性分析
- symnum() function
- corrplot() function to plot a correlogram
- scatter plots
- heatmap
[1] 使用 symnum() 函數實現可視化 (cor_matr 是我們上文中cor()函數計算出來的相關性矩陣)
>symnum(cor_matr)
符號說明:在輸出的最後一行,說明了符號的意義,例如 [0.9 , 0.95) 這個區間使用 * 表示。其他符號類似
[2] 使用 corrplot() 函數實現可視化(這裏需要使用到corrplot包,沒有安裝的需要安裝)
> library(corrplot)
>corrplot(cor_matr, type="upper", order="hclust", tl.col="black", tl.srt=45)
輸出說明:用不同顏色表示了相關性的強度,根據最右邊的顏色帶來看,越接近藍色說明相關性越高。其中圓形的大小也說明了行慣性的大小。
[3] 使用 PerformanceAnalytics 包進行可視化
>library(PerformanceAnalytics)
>chart.Correlation(data,histogram = TRUE,pch=19)
輸出說明:
-
- 對角線給出了變量自身的分布
- 下三角形(對角線的左下方),給出了兩個屬性的散點圖,可以看到第二行第一列的散點圖顯示出v1和v2具有很高的線性相關性
- 上三小形(對角線的右上方),數字表示連個屬性的相關性值,型號表示顯著程度(星星越多表明越顯著)
[4] heatmap 可視化
>col = colorRampPalette(c("blue", "white", "red"))(20)
>heatmap(x = cor_matr, col = col, symm = TRUE)
說明:第一行是制作調色板,紅色表示相關性最高。第二行參數說明,x: 相關性矩陣(前文已經計算),col: 調色板,symm: 以對稱矩陣的形式顯示(可以看到畫出來的圖是中心對稱的,不過前提是輸入的矩陣是方陣)
參考:
[1] Correlation matrix : A quick start guide to analyze, format and visualize a correlation matrix using R software
http://www.sthda.com/english/wiki/correlation-matrix-a-quick-start-guide-to-analyze-format-and-visualize-a-correlation-matrix-using-r-software
[2] Significance of the Correlation Coefficient
http://janda.org/c10/Lectures/topic06/L24-significanceR.htm
[3] Installing R packages
https://www.r-bloggers.com/installing-r-packages/
基於R進行相關性分析--轉載