亲爱的各位,抱歉,我刚刚发布了一个过于宽泛的问题,我正在通过使其具体化来重新发布。
我试图在 2017 年《金融杂志》的“波动率管理投资组合”论文中重新创建此图表(附上)。具体来说,我有一个每月时间序列对象 m_return 和一个每月时间序列对象 m_volatility(这是基于每日回报的每月已实现波动率)。
就像附图中的第一个图表一样,我喜欢显示按波动率(从低波动率到高波动率)排序的五个桶的月份平均回报。我创建了一些示例数据并使用下面的代码来说明,其中代码只是在 X 轴上给了我十个条形。我的问题是如何使用 ggplot 创建我想要的内容而不将 m_volatility 转换为五种波动状态(1 到 5)?以及如何在条形图中显示返回变量的平均值?
这是我不起作用的示例代码
library(ggplot2)
m_return <- c(0.02, 0.03, 0.04, 0.05, 0.06, 0.04, 0.05, 0.06, 0.05, 0.07)
m_volatility <- c(0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19)
m_data <- data.frame(m_return, m_volatility)
ggplot(m_data, aes(m_volatility, m_return)) + geom_bar(stat="identity")
希望这个问题现在适合发布。非常感谢,亚历克斯
您必须创建 5 个组,然后才能使用cut
它。
library(ggplot2)
m <- data.frame(m_volatility, m_return,
volatility_group = cut(m_volatility, 5, lab = c("Low vol", 2, 3, 4, "High vol")))
m5 <- aggregate(m_return ~ volatility_group, m, mean)
ggplot(m5, aes(volatility_group, m_return)) +
geom_bar(stat = "identity") +
xlab("Volatility") +
ylab("Return")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句