R语言 使用symnum函数可视化相关矩阵
相关性是指两个变量之间的关系。它指的是任何两个随机变量之间的线性相关程度。这种关系可以表示为在区间[-1, 1]内表示的数值范围。值-1表示完美的非线性(负)关系,1是完美的正线性关系,0是介于既非正也非负的线性相互依赖关系。然而,数值为0并不表示变量是独立的。相关矩阵计算一组随机变量之间的线性关系程度,每次只考虑一对。
相关矩阵的属性
- 相关矩阵的所有对角线元素必须是1,因为一个变量与自身的相关性总是完美的, **例如C ii = 1 **
- 它应该是对称的 **,例如,Cij = C ji **
R语言 的实现
R有一个内置的函数, symnum( ) ,可以用来轻松地显示各种变量之间的修正程度。它可以很容易地将高度相关的变量与其他变量区分开来。相关系数被基于关系程度的符号所取代。在R语言中, symnum( ) 函数有如下语法。
语法
symnum(arr, cutpoints = c (0.3, 0.6, 0.8, 0.9, 0.95), symbols = c (" ", ". ", ", "+", "*", "B")
参数
arr = 逻辑或数字数组
cutpoints = 相关系数切点,例如,0.3-0.6之间的系数用(”.”)代替。对角线元素被替换为1。
symbols = 符号数组,表示相关系数的值,符号数总是比切点大1。
注意: Arr中的相关系数必须在-1和1之间。
一维数字阵列的可视化
# defining a single dimension array
arr <- c(6, 4, 3, 2, 5, 1, 8, 7)
# cut values are determined at an interval of 2
# symbols are specified by sym
symnum(arr, cut = c(0, 2, 4, 6, 8),
sym = c(".", "-", "+", "$"))
输出
[1] + - - . + .
attr(,"legend")
[1] 0 '.' 2 '-' 4 '+' 6 '$' 8
解释 :所有在0-2(包括2)范围内的数值都用”. “表示,同样,在6-8范围内的数值也用”$”表示。因此,输出显示了基于切点和符号的Arr值的表示。
一维逻辑数组 的可视化 :
下面的代码片断表示symnum( )函数在逻辑数组上的应用。
# the logical condition is a parameter
# to the symnum function
# the default values assigned are | symbol
# for true values and . for false values
symnum(1:7 %% 2 == 0)
输出
[1] . | . | . | .
解释: 数组的值根据数组%2的条件被评估,相应的结果被评估为一个符号,或者是基于TRUE的 “1 “和基于FALSE的”.”。
在R中可视化相关矩阵
相关矩阵可以通过 cor( ) 函数轻松创建。
语法: cor (x; use = )
参数
x: 数字矩阵或处理缺失值的数据框架。
这个函数输出一个相关系数矩阵,然后可以从该函数的符号数组参数中指定的符号中输入 symnum( ) 函数来关注高度相关的值。
# R program to illustrate
# Correlation Matrix
# a correlation matrix is defined by cor() function
mat <- cor(matrix(rnorm(30), 10, 3));
# printing the correlation matrix mat
print("Correlation matrix")
print(mat)
# visualising the relation between various elements
print("Symbolic symnum representation")
symnum(mat, symbols = c("| ", ".", ",", "+", "*", "B"))
输出
[1] "Correlation matrix"
> print (mat)
[,1] [,2] [,3]
[1,] 1.0000000 0.1295918 0.1137502
[2,] 0.1295918 1.0000000 0.2967970
[3,] 0.1137502 0.2967970 1.0000000
> #visualising the relation between various elements
> print ("Symbolic symnum representation")
[1] "Symbolic symnum representation"
> symnum(mat, symbols = c("| ", ".", ",", "+", "*", "B"))
[1,] 1
[2,] | 1
[3,] | | 1
attr(,"legend")
[1] 0 '| ' 0.3 '.' 0.6 ',' 0.8 '+' 0.9 '*' 0.95 'B' 1
解释: 默认情况下打印一个下对角线矩阵,其中数值表示描述关系程度的符号。
在 symnum() 函数中,有各种参数可以变化。下面的代码片段显示了params的用法。
# R program to illustrate
# Correlation Matrix
# a correlation matrix is defined by cor() function
mat <- cor(matrix(rexp(30, 1), 5, 5));
# printing the correlation matrix mat
print("Correlation matrix")
print(mat)
# visualising the relation between various
# elements without diagonal elements
print("Symbolic symnum representation with false diagonal")
symnum(mat, symbols = c("| ", ".", ",", "+", "*", "B"),
diag = FALSE)
# setting lower = false
print("COmplete symnum matrix ")
symnum(mat, symbols = c("| ", ".", ",", "+", "*", "B"),
lower = FALSE)
输出
[1] "Correlation matrix"
> print (mat)
[,1] [,2] [,3] [,4] [,5]
[1,] 1.0000000 -0.39983276 -0.5533282 -0.2420029 0.15030025
[2,] -0.3998328 1.00000000 0.2561824 -0.2090551 -0.05073241
[3,] -0.5533282 0.25618240 1.0000000 -0.6360808 -0.90394274
[4,] -0.2420029 -0.20905508 -0.6360808 1.0000000 0.86086867
[5,] 0.1503003 -0.05073241 -0.9039427 0.8608687 1.00000000
> #visualising the relation between various elements
> print ("Symbolic symnum representation with false diagonal")
[1] "Symbolic symnum representation with false diagonal"
> symnum(mat, symbols = c("| ", ".", ",", "+", "*", "B"),diag=FALSE)
[1,]
[2,] .
[3,] . |
[4,] | | ,
[5,] | | * +
attr(,"legend")
[1] 0 '| ' 0.3 '.' 0.6 ',' 0.8 '+' 0.9 '*' 0.95 'B' 1
> print ("COmplete symnum matrix ")
[1] "COmplete symnum matrix "
> symnum(mat, symbols = c("| ", ".", ",", "+", "*", "B"),lower=FALSE)
[1,] 1 . . | |
[2,] . 1 | | |
[3,] . | 1 , *
[4,] | | , 1 +
[5,] | | * + 1
attr(,"legend")
[1] 0 '| ' 0.3 '.' 0.6 ',' 0.8 '+' 0.9 '*' 0.95 'B' 1
解释: diag = FALSE不打印对角线元素值,即1,表示完全相关。LOWER = FALSE,帮助我们看到完整的矩阵,而不仅仅是低对角线的。