2017-06-06 107 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

非常感謝你。現在我將思考如何最好地使用它來創建後驗分佈,並使用它來與原始數據進行比較。 –