楼主: ReneeBK
3907 1

[问答] ARIMA double seasonality with dummy in R error xreg [推广有奖]

  • 1关注
  • 62粉丝

VIP

已卖:4895份资源

学术权威

14%

还不是VIP/贵宾

-

TA的文库  其他...

R资源总汇

Panel Data Analysis

Experimental Design

威望
1
论坛币
49629 个
通用积分
55.4465
学术水平
370 点
热心指数
273 点
信用等级
335 点
经验
57805 点
帖子
4005
精华
21
在线时间
582 小时
注册时间
2005-5-8
最后登录
2023-11-26

楼主
ReneeBK 发表于 2014-7-7 03:59:28 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

I'm playing with hourly univariate data and try to fit an arima model with more than one seasonality (daily, weekly) using a dummy for the weekly seasonality. I found a very good post explaining a similar problem but after many trials I'm running out of ideas with the following error:

  1. Error in optim(init[mask], armaCSS, method = optim.method, hessian = FALSE,  :   non-finite value supplied by optim
复制代码

My code is the following:

  1. library(lubridate)
  2. start=dmy_hms("25/02/2011 00:00:00")
  3. index=start + c(0:1000) * hours(1)
  4. week = wday(index)
  5. xreg_w = model.matrix(~0+as.factor(week))
  6. colnames(xreg_w) = c("Mon","Tue","Wed","Thu","Fri","Sat","Sun")

  7. freq=24
  8. set.seed(1234)
  9. y=ts(log(35+10*rnorm(1001)),f=freq)

  10. library(forecast)
  11. model = Arima(y, order=c(0,0,0), seasonal=list(order=c(1,0,0), period=24),
  12.               xreg=xreg_w)
复制代码


二维码

扫码加我 拉你入群

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

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

关键词:seasonal double Dummy Eason Error double error

沙发
ReneeBK 发表于 2014-7-7 04:01:23

Your xreg_w matrix contains dummy variables for all seven days, but you only need six days due to the inclusion of a constant in your ARIMA model. Thus, the design matrix is not of full rank. Either leave the constant out, or use only six days.

This will work:

  1. model <- Arima(y, order=c(0,0,0), seasonal=list(order=c(1,0,0), period=24),
  2.               xreg=xreg_w, include.mean=FALSE)
  3. Or this (using only six days):

  4. xreg_w <- seasonaldummy(ts(y,f=7))
  5. model <- Arima(y, order=c(0,0,0), seasonal=list(order=c(1,0,0), period=24),
  6.               xreg=xreg_w)
复制代码


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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 19:44