1. 程式人生 > >基於R進行相關性分析--轉載

基於R進行相關性分析--轉載

使用 型號 num blue 計算 散點 heatmap mat end

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進行相關性分析--轉載