使用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 { // …

[Freescale]E9学习笔记-LTIB总结

转自:http://blog.csdn.net/wl_haanel/article/details/6231353写在前面符号##后面语句均为注释需要做的操作命令以 $ 或 #开头,且都位于一行的开始, 分别表示不同权限下的操作以下绝大部分操作是针对于我们的开发主机(PC),其他是针对于开发板…

转换流的介绍

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(…

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005...

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005 在CSDN上总是有网友问这个问题,自己也遇到过,因些写出来供参考: 症状: oWordApplic New Word.Application 当程序运行到这句时出现下面的错误&…

TCP的网络编程

package Internet;import org.junit.Test;import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket;/* 实现TCP网…

ADFS 登录页面自定义

https://blogs.technet.microsoft.com/pie/2015/08/29/customizing-the-ad-fs-sign-in-pages-per-relying-party-trust/ http://eimagine.com/adfs-3-0-logon-page-customization/ https://technet.microsoft.com/en-us/library/dn280950.aspx转载于:https://www.cnblogs.com/h…

基本语法和数组(二维,多维,交错数组)

class Program{static void Main(string[] args){// TestJiaoCuo();Console.ReadKey();}//交错数组.static void TestJiaoCuo(){//交错数组. 交错数组的本质是1个1维数组 只不过这个1维数组的元素又是数组,.int[][] arr new int[3][];arr[0] new int[3];arr[1] new int[5];a…

NDK环境配置

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

ado.net操作数据库

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient;namespace 操作数据库 {class Program{static void Main(string[] args){//1.造一个连接字符串string connstring "…

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…

反射的一些基础操作

一: package Test2; import Test.Person;import org.junit.Test;import java.lang.reflect.Field; import java.lang.reflect.Modifier;/* 获取当前运行时类的所有属性*/ public class FieldTest {Testpublic void test1(){Class clazz Person.class;//获取属性结…