使用R进行相关性分析
基于R進行相關性分析
一、相關性矩陣計算:
[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/
?
轉載于:https://www.cnblogs.com/fanling999/p/5857122.html
總結
以上是生活随笔為你收集整理的使用R进行相关性分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据经典案例有哪些?
- 下一篇: 哈理工OJ 1391 Orz odd(规