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)의 적절한 크기를 나타낸다. 그들은 행 (A00 + B00 + C00 = 1)에 걸쳐 최대 1을 더합니다. 파라미터 탭 전술는 시간 t에서 예측 된 값을 계산하는 예
A01 = df$A00 -df$Tab +df$Tac.
위한 수학적 모델을 사용하여 시간 t + 1에서 유행을 예측하는 기능을 사용 + 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)
이며 생산 나는 매우 많은 1 t에 대한 (예측의 년의 원하는 번호를 순환 루프를 작성하는 방법을 학습에 도움 감사하겠습니다 결과
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
다음 : 7 예를 들어). 미리 감사드립니다!
감사합니다. 이것은 제가 찾고 있던 메커니즘입니다. 내 실수는 모델 방정식을 루프로 인코딩 할 때 다양한 형태의 데이터를 생각하는 것이 었습니다. 광폭 변환은 약간 익숙해 지지만 결국 지불해야합니다. – andrey