0

我尝试使用R语言包INLA中的非高斯模型来预测时间序列的数据,但是遇到了如下问题:

  1. 该模型只有在原始数据是整数的情况下才能工作,而在数据有小数点的情况下则不行;
  2. 2018年至2030年的预测趋势与2003年至2018年的历史数据有较大差异。(如图1所示) 在此处输入图像描述

我是贝叶斯模型和 R 语言的新手。不知道是不是型号不合适还是代码输入错误造成的

请帮我指出问题。谢谢!!

这是我的代码:

earthquake<-read.csv("C:\\Users\\Nan\\Desktop\\earthquakea.csv")
library(Matrix)
library(parallel)
library(foreach)
library(sp)
library(INLA)
quake.ar1 <- inla(number ~ 1 + f(year, model = "ar1"), data = earthquake,
                  family = "poisson", control.predictor = list(compute = TRUE))
summary(quake.ar1)
quake.rw1 <- inla(number ~ 1 + f(year, model = "rw1"), data = earthquake,
                  family = "poisson", control.predictor = list(compute = TRUE))
summary(quake.rw1)
quake.pred <- rbind(earthquake, 
                    data.frame(number = rep(NA, 12), year = 2019:2030))
quake.ar1.pred <- inla(number ~ 1 + f(year, model = "ar1"), data = quake.pred,
                       family = "poisson", control.predictor = list(compute = TRUE, link = 1))
summary(quake.ar1.pred)

这是我的原始数据

数量 53.62 55.828 58.536 61.244 63.952 65.42 69.368 72.076 74.784 77.492 81.18 82.908 85.616 88.324 91.032 93.5

年份 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018

4

0 回答 0