左手用R右手Python系列11——相關性分析

由於最近畢業論文纏身,一直都沒有太多時間和精力撰寫長篇的乾貨,但是呢學習的的腳步不能停止,今天跟大家盤點一下R語言與Python中到的相關性分析部分的常用函數。

常用的衡量隨機變數相關性的方法主要有三種:

  • pearson相關係數;即皮爾遜相關係數,用於橫向兩個連續性隨機變數間的相關係數。
  • spearman相關係數;即斯皮爾曼相關係數,用于衡量分類定序變數間的相關程度。
  • kendall相關係數;即肯德爾相關係數,也是一種秩相關係數,不過它所計算的對象是分類變數。

R語言:

  • cor
  • cor.test
  • corrplot

cor(x,y=NULL,use="everything",method= c("pearson","kendall","spearman"))

在R語言中,通常使用cor函數進行相關係數分析,可以分別指定向量,也可以指定給cor函數一個數據框。

  • use函數指定處理缺失值的方式
  • method是可選的三種相關係數計算方法。

這裡以diamonds數據集為例:

library("ggplot2")str(diamonds)

cor(diamonds[,c("carat","depth","price")])cor(diamonds[,c("carat","depth","price")],method= "pearson")

默認情況下使用的是pearson相關係數。

corrplot函數可以針對相關係數輸出的結果進行可視化:

library("corrplot")library("dplyr")cor(diamonds[,c("carat","depth","price")])%>%corrplot()

使用cor.test函數進行相關性的檢驗:

cor.test(x, y, #指定帶分析變數alternative = c("two.sided", "less", "greater"), #雙側檢驗,單側檢驗(默認雙側)method = c("pearson", "kendall", "spearman"), #相關性演算法(默認pearson法)exact = NULL, conf.level = 0.95, continuity = FALSE, ...)cor.test(diamonds$carat,diamonds$depth)cor.test(~carat+depth,diamonds)

以上兩種寫法都是支持的。

從結果可以看到,兩者幾乎不相關,pearson相關係數僅有0.02左右。

Pyhton:

import pandas as pdimport numpy as npdiamonds=pd.read_csv("D:/R/File/diamonds.csv",sep = ",",encoding = "utf-8")diamonds.info()

pandas中帶有相關係數函數pandas.corr

mydata=diamonds[["carat","depth","table","price"]]mydata.info()

mydata.corr() #可以直接給出數據框的相關係數矩陣mydata.corr()["carat"] #給出caret變數與其他變數之間的相關係數mydata["carat"].corr(mydata["depth"]) #計算"carat"與"depth"之間的相關係數

與R語言中一樣,pandas中內置的相關係數演算法也是針對針對數值型變數的pearson法。

mydata.corr(method="pearson") mydata.corr(method="pearson")["carat"] mydata["carat"].corr(method="pearson",mydata["depth"])

method也可以指定spearman法和kendall法計算相關係數。

本文小結:

R語言:

  • cor
  • cor.test
  • corplot

Python:

pandas.corr

最近上線的新課程,R語言在商務場景中的應用,內容適合想要通過ggplot2深入學習R語言數據可視化的愛好者,錄播已經所有代碼和學習資源已經上傳了!

已經有接近200位小夥伴兒們在修習了,報名參加還可以獲取小魔方的過往學習筆記、歷史案例代碼哦!

R語言在商務場景下的應用


推薦閱讀:

python 爬蟲 圖片抓取問題,有的網站中的圖片不能抓取?
千里挑一的我乎妹子大V排行榜(數據初探1)
Python中那些神一樣的代碼
Python3.6正式版要來了,你期待哪些新特性?
神奇的yield

TAG:R编程语言 | Python | 数据分析 |