在R中工作我想使用初始值和一組過渡參數預測患病時間序列。對於以下結構的數據按時間序列預測的函數
cohort <- c(1980,1981,1982)
A00 <- c(.15, .2,.4)
B00 <- c(.25, .3, .4)
C00 <-c(.6, .5,.2)
Tab<-c(.6,.5,.4)
Tac<-c(.2,.25,.35)
ds <- data.frame(cohort,A00,B00,C00,Tab,Tac)
print (ds)
cohort A00 B00 C00 Tab Tac
1 1980 0.15 0.25 0.6 0.6 0.20
2 1981 0.20 0.30 0.5 0.5 0.25
3 1982 0.40 0.40 0.2 0.4 0.35
在列的初始值A00,B00,C00和在時間t = 00表示各組(A,B,C)的相關尺寸。它們在整行上加1(A00 + B00 + C00 = 1)。參數Tab和TAC用於使用一些數學模型來預測在時間t + 1的流行,例如
A01 = df$A00 -df$Tab +df$Tac.
函數在時間t來計算預測值+ 1是
forecast<- function(df) {
dsResult <- data.frame(
cohort= df$cohort,
A01 = df$A00 -df$Tab +df$Tac ,
B01 = df$B00 -df$Tab +df$Tac,
C01 = df$C00 -df$Tab +df$Tac
)
dsResult<- merge(df,dsResult,by="cohort")
return(dsResult)
}
new<-forecast(ds)
,併產生以下結果
cohort A00 B00 C00 Tab Tac A01 B01 C01
1 1980 0.15 0.25 0.6 0.6 0.20 -0.25 -0.15 0.20
2 1981 0.20 0.30 0.5 0.5 0.25 -0.05 0.05 0.25
3 1982 0.40 0.40 0.2 0.4 0.35 0.35 0.35 0.15
我將非常感謝您在學習如何在循環中的年預測所需數量的寫入週期(在1噸幫助:7, 例如)。提前致謝!
謝謝,WIll。這正是我所尋找的機制。我的錯誤是在將模型方程編碼到循環中時考慮廣泛的數據形式。廣泛的變革需要一點習慣,但最終應該付出代價。 – andrey 2013-03-26 04:49:51