R平台相关系数教程
本教程介绍相关系数的知识,包括三方面的内容:
首先,R平台相关系数计算
其次,R平台相关矩阵可视化
最后,R平台相关系数的类型和如何影响后续分析工作
数据导入
选自Kaggle的电影数据集movies。
R代码
## 数据导入
data.url <- "http://s3.amazonaws.com/dcwoods2717/movies.csv"
movies.data <- read.csv(
url(data.url)
)
数据理解
一旦数据成功导入后,使用str()函数核查数据结构。
R代码
### 1 数据结构核查
str(movies.data)
names(movies.data)
结论:
电影数据集包含2961个观察(样本)和11个变量(属性)
特征工程
特征衍生,利润=收入-成本。
R代码
movies.data$profit <- movies.data$gross - movies.data$budget
summary(movies.data$profit)
结果:
相关性
观测电影利润与电影评分的关系。(散点图+回归线)
R代码
plot(movies.data$rating, movies.data$profit)
abline(lm(movies.data$profit ~ movies.data$rating), col = 'red', lwd = 2)
结果
通常情况下,电影评级越高,利润越大,利润与电影评级存在正相关性。
但是,也存在一些评级较低,利润蛮高的电影。
【温馨提示】:相关性并不意味着因果性!
相关系数计算
电影评级与利润的相关程度究竟怎么样,可以用相关系数进行度量。
R代码
#计算Pearson correlation
cor(movies.data$rating, movies.data$profit)
# 计算多变量的两两之间变量相关系数矩阵
cor(movies.data[,5:8])
结果
默认方法Pearson相关性假设您的变量是正态分布的,每个变量之间存在直线关系,并且数据通常在回归线上分布。您可以使用Hmisc包的rcorr函数,用于计算Pearson和spearman相关性的显着性水平。
相关矩阵实际上是显示变量集之间的相关系数的表。
相关矩阵可视化
电影数据集的变量绘制相关矩阵,相关矩阵图可以方便地发现变量之间的正负性和强弱性。
相关矩阵使用GGally包的ggcorr()函数。
R代码
## 相关矩阵图
if(!require(GGally))
{
install.packages("GGally")
require(GGally)
}
ggcorr(movies.data,
label = TRUE,
label_alpha = TRUE)
结果
通过上图,可以清晰地发现,那些变量之间是强相关,那些变量是弱相关,以及相关性的正负性和相关性具体量化值。
相关类型
由相关矩阵图可知,变量votes和变量reviews强相关,相关系数为0.8。
R代码
qplot(movies$votes,
movies$reviews,
data = movies,
geom = c("point", "smooth"),
method = "lm",
alpha = I(1 / 5),
se = FALSE)
结果
同理,变量profit与变量year弱相关,相关系数为-0.1。
R代码
qplot(movies.data$year,
movies.data$profit,
data = movies.data,
geom = c("point", "smooth"),
alpha = I(1 / 5))
结果
综合
利用GGally中的ggpairs函数,可以很好地把上面介绍的内容以简洁易懂的方式进行综合。
R代码
names(movies.data)
ggpairs(movies.data,
columns = c("budget", "rating", "profit"),
upper = list(continuous = wrap("cor",
size = 10)),
lower = list(continuous = "smooth"))
结果
希望这些知识能够应用于您的分析里,这些是R平台做数据探索的基础知识,它是让你在数据分析和建模之前对数据有更好地认识。
思考环节:
1 选择一份您自己感兴趣的数据,进行相关性探索?
您在阅读中,有什么建议或者想法,请留言。
文章推荐:
2 R语言做数据探索
3 电商评论情感分析
公众号推荐:
数据科学与人工智能,分享数据科学和人工智能的内容。
阅读原文,更多精彩!
分享是收获,传播是价值!
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!