楼主: 19857994959
2775 4

[问答] Error in ts(x) : 'ts' object must have one or more observations [推广有奖]

  • 0关注
  • 0粉丝

小学生

71%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
82 点
帖子
6
精华
0
在线时间
8 小时
注册时间
2022-6-4
最后登录
2023-3-26

楼主
19857994959 发表于 2022-6-7 19:54:43 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在最后预测的时候提示出错了,请问一下这个错误该怎么办呢!!Error in ts(x) : 'ts' object must have one or more observations
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:observations observation observat object ATION

NDWC~PS5EFGA)~ZAT2OHL04.png (19.57 KB)

NDWC~PS5EFGA)~ZAT2OHL04.png

代码.txt
下载链接: https://bbs.pinggu.org/a-3698967.html

1.96 KB

沙发
19857994959 发表于 2022-6-7 19:56:06
######加载程序包
library(readxl)
library(tseries)
library(forecast)
library(TSA)

######预处理
GDP<-read_excel("D:/data/GDP.xlsx")
GDP1<-subset(GDP[1:40,])#预留3个数据
GDP2<-ts(GDP1,start=1978,frequency=1)
plot(GDP2,type="b",lty=1,col="red",
     main="我国1978-2016的国内生产总值(GDP)",xlab="年份",ylab="金额(亿元)")
adf.test(GDP2)#单位根检验
ndiffs(GDP2)#判断需要几阶差分才能转为平稳序列
GDP3<-diff(GDP2)#一次差分
plot(GDP3,type="b",lty=1,col="blue",
     main="一次差分后我国1978-2016的国内生产总值(GDP)",xlab="年份",ylab="金额(亿元)")
adf.test(GDP3)#对一次差分后的数据进行单位根检验
GDP4<-diff(GDP3)#二次差分
plot(GDP4,type="b",lty=1,col="blue",
     main="二次差分后我国1978-2016的国内生产总值(GDP)",xlab="年份",ylab="金额(亿元)")
adf.test(GDP4)#对二次差分后的数据进行单位根检验
for(i in 1:2){
  print(Box.test(GDP4,lag=6*i,type="Ljung-Box"))
}#白噪声检验
print(acf(GDP4,main="样本自相关图"))
print(pacf(GDP4,main="样本偏自相关图"))

######模型拟合
eacf(GDP4,ar.max=5,ma.max=5)
GDP5<-arima(GDP2,order=c(0,2,2),include.mean=T,method="ML")
GDP6<-arima(GDP2,order=c(1,2,3),include.mean=T,method="ML")
GDP7<-arima(GDP2,order=c(2,2,1),include.mean=T,method="ML")

######模型的显著性检验
t1<-(-0.5845)/0.1952
pt(t1,df=96,lower.tail=T)#ar1系数显著性检验
t2<-(-0.4787)/0.1722
pt(t2,df=96,lower.tail=T)#ar2的显著性检验
t3<-0.7810/0.2133
pt(t3,df=96,lower.tail=F)#ma1系数显著性检验
for(i in 1:2){
  print(Box.test(GDP7$residuals,lag=6*i,type="Ljung-Box"))
}#残差白噪声检验
tsdiag(GDP7)#诊断函数

######预测2018-2020
forecast(GDP7,h=3)
plot(forecast,type="b",lty=1,col="purple",
     main="预测我国2017-2020的国内生产总值(GDP)",xlab="年份",ylab="金额(亿元)")

######预测2021-2022
forecast1<-forecast::forecast(GDP7,h=5)

藤椅
19857994959 发表于 2022-6-7 19:56:26
19857994959 发表于 2022-6-7 19:56
######加载程序包
library(readxl)
library(tseries)
这是我的代码

板凳
llb_321 在职认证  发表于 2022-6-7 22:57:05
问题出在TSA包加载后,其arima()函数替代了stats包的arima()函数,这两个函数有一些差别。
forecast::forecast()函数,默认处理的是stats::arima()函数的结果,而对TSA::arima()的结果则会出现报错。
解决方案:
1、如果要用forecast(),则前面用stats::arima(),限定stats包。
2、如果用TSA::arima(),则不需要forecast,因为TSA的plot.Arima()可以在作图时用n.ahead参数指定预测期数,直接绘制预测结果。

报纸
19857994959 发表于 2022-6-12 10:08:53
llb_321 发表于 2022-6-7 22:57
问题出在TSA包加载后,其arima()函数替代了stats包的arima()函数,这两个函数有一些差别。
forecast::for ...
太感谢了!!!已经解决了!!!谢谢谢谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-1 20:22