R中不同标准下各种模型的绘图排名

Plotting rank for various models under different criteria in R

我有这样的数据:

        RMSE  MAE MAPE   CDC
GARCH   1      2   2     3      
eGARCH  2      1   3     2 
csGARCH 3      3   4     1
apGARCH 4      4   1     4

GARCH、eGARCH、..、apGARCH 是各种模型,它们按 RMSE、MAE、MAPE 和 CDC 四个标准进行排名。我想将这些数据绘制在一个图中,这样用户就可以通过查看该图来了解各种模型的排名。实际上我有 6 个模型和 5 个标准。所以,reader看table就很麻烦了。因此,我需要一些可视化技术来绘制此类数据,以便可以轻松理解在不同标准下哪个模型具有最高排名。

谢谢

这是一个使用 heatmap 的解决方案:

heatmap(dd,Rowv=NA,Colv=NA,margins=c(9,9))

如果您对数据的重新排序没有问题,您可以这样做:

heatmap(dd,margins=c(9,9))

请注意,刚刚使用了 margins=c(9,9),因此图表适合我的屏幕。 更重要的是,dd应该是一个矩阵。

dd<-structure(c(1L, 2L, 3L, 4L, 2L, 1L, 3L, 4L, 2L, 3L, 4L, 1L, 3L, 
2L, 1L, 4L), .Dim = c(4L, 4L), .Dimnames = list(c("GARCH", "eGARCH", 
"csGARCH", "apGARCH"), c("RMSE", "MAE", "MAPE", "CDC")))

既然你没有庞大的数据集,如何为每个模型创建一个条形图,每个条形是一个标准的值

library(tidyr)
library(ggplot2)

df$model <- row.names(df)
df <- gather(df,criteria,value,-model)


ggplot(df,aes(x=criteria,y=value,fill=criteria)) + facet_wrap(~model) + 
        geom_bar(stat="identity",position="dodge")

这将创建以下图