R语言 相关矩阵
相关性指的是两个变量之间的关系。它指的是任何两个随机变量之间的线性相关程度。这种关系可以表示为在区间[-1, 1]内表示的数值范围。值-1表示完美的非线性(负)关系,1是完美的正线性关系,0是介于正负线性相互依存关系之间。然而,0的值并不表示这些变量是完全相互独立的。相关矩阵计算一组随机变量之间的线性关系程度,一次取一对,对数据中的每一组对进行计算。
相关矩阵的属性
- 相关矩阵的所有对角线元素必须是1,因为一个变量与自身的相关性总是完美的,cii =1。
- 它应该是对称的 cij =cji 。
在R中计算相关矩阵
在R编程中,相关矩阵可以使用cor( )函数来完成,其语法如下。
语法: cor (x, use = , method = )
参数
- x: 它是一个数字矩阵或一个数据框架。
-
use: 处理缺失的数据。
- all.obs: 该参数值假定数据框没有缺失值,如果违反,则抛出一个错误。
- complete.obs: 列表式删除。
- pairwise.complete.obs: 成对删除。
- method: 处理关系的类型。皮尔逊、斯皮尔曼或肯德尔都可以用于计算。默认使用的方法是Pearson。
R编程语言中的相关关系
相关矩阵可以在加载数据后在R语言中计算出来。下面的代码片段显示了 cor() 函数的用法。
# loading dataset from the specified url
# storing the data into csv
data = read.csv("https://people.sc.fsu.edu/~jburkardt/data/csv/ford_escort.csv",
header = TRUE, fileEncoding = "latin1")
# printing the head of the data
print ("Original Data")
head(data)
# computing correlation matrix
cor_data = cor(data)
print("Correlation matrix")
print(cor_data)
输出:
[1] "Original Data"
Year Mileage..thousands. Price
1 1998 27 9991
2 1997 17 9925
3 1998 28 10491
4 1998 5 10990
5 1997 38 9493
6 1997 36 9991
[1] "Correlation matrix"
Year Mileage..thousands. Price
Year 1.0000000 -0.7480982 0.9343679
Mileage..thousands. -0.7480982 1.0000000 -0.8113807
Price 0.9343679 -0.8113807 1.0000000
计算相关系数
R包含一个内置的函数 rcorr() ,它为一个数据框架的所有可能的列对生成相关系数和p值表。这个函数基本上是计算 Pearson和spearman相关的 显著性水平 。
语法: rcorr (x, type = c(“pearson”, “spearman”))
了在R中运行这个函数,我们需要下载并加载 “Hmisc “包到环境中。这可以通过以下方式完成。
install.packages(“Hmisc”)
library(“Hmisc”)
下面的代码片断显示了R语言中相关系数的计算过程。
data = read.csv("https://people.sc.fsu.edu/~jburkardt/data/csv/ford_escort.csv",
header = TRUE, fileEncoding = "latin1")
# printing the head of the data
print("Original Data")
head(data)
# installing the library of Hmisc
install.packages("Hmisc")
library("Hmisc")
# computing p values of the data loaded
p_values <- rcorr(as.matrix(data))
print(p_values)
输出:
[1] "Original Data"
Year Mileage..thousands. Price
1 1998 27 9991
2 1997 17 9925
3 1998 28 10491
4 1998 5 10990
5 1997 38 9493
6 1997 36 9991
Year Mileage..thousands. Price
Year 1.00 -0.75 0.93
Mileage..thousands. -0.75 1.00 -0.81
Price 0.93 -0.81 1.00
n= 23
P
Year Mileage..thousands. Price
Year 0 0
Mileage..thousands. 0 0
Price 0 0
相关矩阵的可视化
在R语言中,我们将使用 “corrplot “包来实现一个相关图。因此,为了从R控制台中安装该包,我们应该执行以下命令。
install.packages("corrplot")
一旦我们正确地安装了该软件包,我们将使用library()函数在我们的R脚本中加载该软件包,如下所示。
library("corrplot")
我们将使用corrplot()函数并在其方法参数中提到形状。
# Correlogram in R
# required packages
library(corrplot)
head(mtcars)
# correlation matrix
M<-cor(mtcars)
head(round(M,2))
# visualizing correlogram
# as circle
corrplot(M, method="circle")
# as pie
corrplot(M, method="pie")
# as colour
corrplot(M, method="color")
# as number
corrplot(M, method="number")
输出: