2017-06-06 105 views
0

我有一套我收集的数据,它包含一个时间序列,其中每个y值是通过取30个葡萄簇重量样本的平均值找到的。模拟Gompertz曲线的数据

生长遵循具有式y = a*exp(-exp(-(x-x0)/b))一个贡佩尔茨曲线,与

  • 一个= 88.8
  • B = 11.7
  • X0 = 15.1。

数据:

x = c(0, 28, 36, 42, 50, 58, 63, 71, 79, 85, 92, 99, 106, 112) 
y = c(0, 15, 35, 55, 62, 74, 80, 96, 127, 120, 146, 160, 177, 165). 
  • x指天从坐果(即时间序列开始时0)
  • x值对应于其中的测量是天采取(这取决于葡萄的某些生长阶段)

我想模拟从这个更多的数据,具有相同数量的x和y值,以便我可以进行一些贝叶斯分析以找到数据的后验分布。

有效地我需要的是:

  • 模拟随后的姜氏曲线创建后验分布数据。这些数据在技术上将用于“往年”时间序列数据。
  • 构建和测试的预测时间序列模型的基础上,分布

配合。如果有一些框架代码,其中有可能围绕参数发生变化,那么这可能是非常有帮助我也是。

感谢

+0

我已经做了一些修改的问题,使之不易混淆。如果我误解了您的原始问题,请仔细阅读并进行相应的编辑。 –

+0

@AdamQuek刚刚添加了一点点,但否则这就是我正在寻找的 –

+0

“模拟遵循Gompertz曲线的数据”对于真正的答案而言太不精确 –

回答

1

让我们来检查你的数据

x <- c(0, 28, 36, 42, 50, 58, 63, 71, 79, 85, 92, 99, 106, 112) 
y <- c(0, 15, 35, 55, 62, 74, 80, 96, 127, 120, 146, 160, 177, 165) 

,并配备姜氏曲线

gFun <- function(x){ 
a <- 88.8 
b <- 11.7 
x0 <- 15.1 
est <- a*exp(-exp(-(x-x0)/b)) 
    return(est) 
} 

通过可视化:

library(ggplot2) 
ggplot(ggData, aes(x=x, y=y)) + 
    geom_point() + 
    stat_function(fun=gFun, colour="blue") + 
    theme_bw() 

enter image description here

这看起来不太合适。然而,如上面向量中那样在固定x处模拟数据y | x可以通过添加误差项来完成。我使用sd = 4的正态分布图进行说明。

nSim <- 10 

simData <- data.frame(x=c(0, rep(x[-1], each=nSim))) # x[-1] removes 0 from simulation 
simData$y <- gFun(simData$x) + rnorm(n=nrow(simData), sd=4) 

ggplot(simData, aes(x=x, y=y)) + 
geom_point(alpha=0.4) + 
stat_function(fun=gFun, colour="blue") + 
scale_x_continuous(limits=c(0, max(x))) + 
theme_bw() 

enter image description here

+0

非常感谢你。现在我将思考如何最好地使用它来创建后验分布,并使用它来与原始数据进行比较。 –