R中的可视化方法检查标签与响应的相关性

数据挖掘 r 可视化 相关性
2022-03-12 02:15:39

问题

R中有哪些好的绘图方法可以检查目标变量和各种解释变量之间的关系?特别是,我正在寻找比传统散点图矩阵更多变量的可视化技术。

更多细节

散点图矩阵是可视化变量之间成对关系的绝佳工具。例如,使用swissR 中的数据集,我们可以轻松绘制散点图矩阵。

library(datasets)
data(swiss)
plot(swiss[1:3])

产生

在此处输入图像描述

我对想要预测一些响应的情况感兴趣,比如Fertility使用一些解释变量的组合。我想仔细研究每个解释变量如何与Fertility. 如果我的数据框中有很多列,则使用plot(swiss)变得笨拙。

例如,下图(在此处按照说明生成)显示了数据框中所有列的成对相关性。如果我可以绘制这样的图,但只显示Fertility与其他列之间的相关性,那将很有用。

library(datasets)
data(swiss)
plot(swiss[1:3])

library(devtools)
library(inspectdf)
library(tidyverse)
library(readr)

show_plot(inspect_cor(swiss))

产生

在此处输入图像描述

1个回答

下面是使用我最喜欢的包的两个函数:

代码:

library(ggplot2)
library(reshape2)
library(plyr)

scatterplot <- function(data, targetColumn='Fertility') {
  d<-melt(data,id.vars = targetColumn)
#  ggplot(d, aes_string('value',targetColumn))+geom_point()+facet_grid(variable~.)
  ggplot(d, aes_string('value',targetColumn))+geom_point()+facet_wrap(variable~.)
}


corplotCI <- function(data, targetColumn='Fertility', method='pearson') {
  d<-ldply(colnames(data), function(col) {
    if (col != targetColumn) {
      r <- cor.test(data[,col], data[,targetColumn],method=method)
      data.frame(variable=col,cor=r$estimate, lowerCI=r$conf.int[1],upperCI=r$conf.int[2])
    }
  })
  ggplot(d,aes(cor,variable))+geom_point(size=3)+geom_errorbarh(aes(xmin = lowerCI,xmax = upperCI),height=.5)+coord_cartesian(xlim=c(-1,1))
}

用法:

scatterplot(swiss)

corplotCI(swiss)