R语言 使用symnum函数可视化相关矩阵

R语言 使用symnum函数可视化相关矩阵

相关性是指两个变量之间的关系。它指的是任何两个随机变量之间的线性相关程度。这种关系可以表示为在区间[-1, 1]内表示的数值范围。值-1表示完美的非线性(负)关系,1是完美的正线性关系,0是介于既非正也非负的线性相互依赖关系。然而,数值为0并不表示变量是独立的。相关矩阵计算一组随机变量之间的线性关系程度,每次只考虑一对。

相关矩阵的属性

  1. 相关矩阵的所有对角线元素必须是1,因为一个变量与自身的相关性总是完美的, **例如C ii = 1 **
  2. 它应该是对称的 **,例如,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,帮助我们看到完整的矩阵,而不仅仅是低对角线的。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程