gpt4 book ai didi

r - 有没有快速的方法来呈现上面板的 Pearson 相关性和下面板的 Spearman 相关性?

转载 作者:行者123 更新时间:2023-12-01 11:12:49 26 4
gpt4 key购买 nike

corrgram 库提供了绘制优雅相关图的机会。但是,文档中没有简单的方法可以在同一张图上同时获得 Spearman 和 Pearson 相关性。

也许计算两个系数的相关矩阵并将它们粘贴是一种选择,但这似乎不是正确的方法。

我认为图像会正确解释我想要得到的东西:

我想得到:

cors <- cor(state.x77, method = "pearson")
corsSp <- cor(state.x77, method = "spearman")
for(i in 1:nrow(cors))
{
for(j in i:ncol(cors))
{
cors[i,j] <- corsSp[i,j]
m[i,j] <- j
}
}
corrgram(cors, type = "corr")

以更优雅的方式。

最佳答案

您可以尝试通过 ggplot 手动重建您的图表,这会给出非常相似的结果(图案背景除外):

library(ggplot2)
library(tibble)
library(dplyr)
library(tidyr)

## transform the cor matrix (with pearons and spearmann coeeficients)
cor_cleaned <- cors %>%
as.data.frame() %>%
rownames_to_column("x") %>%
as_tibble() %>%
gather(y, cor, -x) %>%
mutate(x = factor(x, unique(x)),
y = factor(y, rev(levels(x))),
dir = factor(sign(cor)))

cor_tri <- cor_cleaned %>%
filter(x != y)

cor_diag <- cor_cleaned %>%
filter(x == y)

ggplot(cor_tri, aes(x, y, alpha = abs(cor), fill = dir)) +
geom_tile(show.legend = FALSE, color = "gray") +
geom_tile(show.legend = FALSE, color = "gray", fill = NA, data = cor_diag) +
geom_text(aes(label = y), data = cor_diag, show.legend = FALSE) +
scale_fill_manual(values = c("1" = "navy", "-1" = "red")) +
theme_minimal() +
theme(panel.grid = element_blank(),
axis.text = element_blank(),
axis.title = element_blank())

Corrgram with ggplot

关于r - 有没有快速的方法来呈现上面板的 Pearson 相关性和下面板的 Spearman 相关性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57669039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com