使用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FileInputStream与FileOutputStream

FileReader与FileWriter 只能用于文本文件,如.txt,.java,.c,.c等 对于图片,视频等字节流文件需要用字节流即:FileInputStream与FileOutputStream package IOStream;import org.junit.Test;import java.io.File; import java.io.FileInputS…

缓冲流的介绍

package BufferStream; /* 缓冲流的使用*/ import org.junit.Test;import java.io.*;public class BufferTest {/*实现非文本文件的复制*/Testpublic void BufferedStreamTest() throws IOException {BufferedInputStream bis null;BufferedOutputStream bos null;try { // …

转换流的介绍

InputStreamReader与OutputStreamWriter 也是处理流 package TransformStream;import org.junit.Test;import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader;public class InputStreamReaderTest {Testpublic void test1() throws…

DOM事件与jQuery事件的是非纠葛

在javascript和JQuery之中,都有事件的处理方式,在我们编写程序实现某些功能的时候,我们会发现使用原生的DOM事件与JQuery中封装的事件都能实现同样的效果,那么也许我们会认为他们之间的区别不是很大,甚至说基本没有区别…

其他流的使用

输入输出流 数据流: /*数据流DataInputStream和DataOutputStream作用:用于基本数据类型遍历或字符串的读取和写入*/Testpublic void test1() throws IOException { // 写入操作DataOutputStream dos new DataOutputStream(new FileOutputStream(…

NDK环境配置

Android Studio 配置 (不是SDK,麻烦各位看官看清楚) 手动配置 步骤一:下载sdk 下载方式有两种 一官方下载(请***) https://developer.android.com/ndk/index.html 二在studio中下载(如下载慢”拿梯子FQ”) 选择NDK和…

Class类的理解

package JavaReflcet;import org.junit.Test;public class ClassTest {/*获取Class的实例的方式*/Testpublic void test1() throws ClassNotFoundException { // 方式一:调用运行时类的属性: .classClass clazz person.class;System.out.println(clazz);// …

面向对象概述(课堂笔记)

例如: //创建一个Scanner(扫描器)类型的工具实例(对象),用于获取用户从键盘输入的数据 Scanner scannew Scanner(System.in); //创建一个Random(随机)类型的工具实例(对象),用来生成随机数 Rand…

关于__str__的介绍

在python语言里,__str__一般是格式是这样的。class A: def __str__(self): return "this is in str"事实上,__str__是被print函数调用的,一般都是return一个什么东西。这个东西应该是以字符串的形式表现的。如果不是要用…

BLOB数据类型、事务

Blob数据类型: 事务:

资源整理

资源整理 学习网站 学堂在线 链接:http://www.xuetangx.com/简介 学堂在线是免费公开的MOOC(大规模开放在线课程)平台,是国家教育部MOOC研究中心官方合作平台,致力于通过来自国内外一流名校开设的免费网络学习课程 EDX…

[工具] 知网(CNKI)文献下载工具

https://github.com/amyhaber/cnki-downloader 用于免费搜索,下载CNKI上的各类文献资料 转载于:https://www.cnblogs.com/Areas/p/5887671.html

Web中Servlet

一&#xff1a; web.xml中的代码如下 <web-app><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>AddServlet</servlet-name><servlet-class>servlets.AddServlet</servlet-class>&l…

Thymeleaf视图模板的学习以及一些语法用法

流程&#xff1a;客户端向服务端的index组件发送请求&#xff0c;index组件会调用FruitDAO直至获取到数据库的数据&#xff1b;服务端获取到fruitList之后&#xff0c;存入到Session中&#xff0c;方便之后使用&#xff1b;之后调用ViewBaseServlet中的processTemplate方法&…