#本例代码部分参考了Guy J.Abel发表于The R Journal Vol. 7/1, June 2015的fanplot: An R #Package for Visualising Sequential Distributions一文,但添加了笔者大量的翻译,解释和调试工#作
rm(list = ls())
library("fanplot")
library("zoo")
# select relevant data
y0 <- 2013#起始年份
boe0 <- subset(boe, time0 == y0)#选出boe数据集2013年的数据
#boe为R语言内置数据集,对数据集的描述:英格兰银行通胀报告的数值参数,用于指定CPI通胀预测图表的概率分布。
#数据格式化自2013年11月的英格兰银行通货膨胀报告,该数据集含有5个变量,数据集长度为512
#共计512*5的数据量,其中5个变量分别为time0(出版时间),time(future time of project)
#mode(分裂-正态分布(split-normal distribution)的中心位置参数)
#uncertainty(分裂-正态分布(split-normal distribution)的不确定度)
#skew(分裂-正态分布(split-normal distribution)的倾斜参数)
k <- nrow(boe0)#截取数据的行数
# guess work to set percentiles the boe are plotting
p <- seq(0.05, 0.95, 0.05)#p此时为从0.05到0.95的步进
p <- c(0.01, p, 0.99)#p此时增加了0.01和0.99,如此完成了分类
# quantiles of split-normal distribution for each probability (row) at each future
# time point (column)
cpival <- matrix(NA, nrow = length(p), ncol = k)#一个空矩阵,有p行k列
for (i in 1:k)
cpival[, i] <- qsplitnorm(p, mode = boe0$mode[i],
sd = boe0$uncertainty[i],
skew = boe0$skew[i])
#qsplitnorm是分裂正态分布的意思,在概率论和统计学中,分裂正态分布也称为两块正态分布,
#是以相同模态但方差不同的两个正态分布的对应半模连接的结果。
#分裂的正态分布