繁体   English   中英

R 中系数的可视化(点图)

[英]Visualization of coefficients in R (dot-chart)

我想绘制来自三个不同模型的系数,以用点图显示估计系数的收缩效应。

有关更多上下文:我正在使用分层线性模型,并希望将这些估计与完全合并和无合并估计的估计进行比较。

假设我们有一个这样的数据框:

    a <- c(1,2,3,4)
    b <- c(2.5, 2.5, 2.5, 2.5)
    c <- c(1.2,2.3,2.8,3.7)
    city <- c("London", "Madrid", "Sidney", "Paris")
    df <- as.data.frame(cbind(city,a,b,c))
df <- df[order(df$a),]

我想以降序显示它们,有点像这张图片,但没有标准偏差,只有点。 有没有办法简单地用 ggplot 做到这一点?

从数据帧df ,您可以使用pivot_longer重塑数据并通过在scale_x_discrete调用df$city来保存数据顺序:

library(tidyr)
df2 = df %>% pivot_longer(.,-city, names_to =  "Model", values_to = "value")

library(ggplot2)
ggplot(df2, aes(x = city, y = value, color = Model)) + geom_point() + coord_flip() + 
  scale_x_discrete(limits = df$city)

我重新排列您的数据帧df以获得数值(使用 cbind 与数据帧结合倾向于将数据转换为因子级别):

a <- c(1,2,3,4)
b <- c(2.5, 2.5, 2.5, 2.5)
c <- c(1.2,2.3,2.8,3.7)
city <- c("London", "Madrid", "Sidney", "Paris")
df <- data.frame(city,a,b,c)
df <- df[order(df$a),]

你会得到以下图表在此处输入图片说明

@ dc37不幸的是,这对我不起作用。.顺序已更改(我不想按县对它们进行排序。这仅在我提供的示例中有效。我想通过选择值按高到低对它们进行排序模型a)。 它也使y比例过高。

情节

正如您告诉我的那样,我已经重新格式化了桌子,但这并没有改变结果。 下面是我的桌子的屏幕截图。 我有85个组和一个以上的模型,但除此之外,该图是否可以用我的示例df复制? 此外,如果有必要,这是参数CSV文件的保管箱链接,因为我不能真正将整个代码放在这里(太长)。

表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM