2013-07-31 42 views
5

Tôi đang sử dụng các chức năng fourier()fourierf() trong tuyệt vời forecast gói Ron Hyndman trong R. Nhìn để xác minh xem các điều khoản tương tự được lựa chọn và sử dụng trong fourier()fourierf(), tôi vẽ một vài điều kiện đầu ra.Fourier() vs fourierf() chức năng trong R

Dưới đây là dữ liệu gốc sử dụng ts.plot(data). Có một tần số 364 trong chuỗi thời gian, FYI. data

Dưới đây là cốt truyện của các cụm từ sử dụng fourier(data,3). Về cơ bản, nó trông giống như hình ảnh phản chiếu của dữ liệu hiện có.

fourier

Nhìn vào chỉ là hạn sin1 của đầu ra, một lần nữa, chúng tôi nhận được một số thay đổi cho thấy tương tự như mùa 364 ngày phù hợp với các dữ liệu trên.

fourier2

Tuy nhiên, khi tôi âm mưu kết quả của Fourier dự báo sử dụng fourierf(data,3, 410) tôi xem dữ liệu bên dưới. Nó xuất hiện mịn hơn nhiều so với các điều khoản được cung cấp bởi hàm fourier gốc. fourierf

Vì vậy, tôi tự hỏi kết quả của fourier()fourierf() có liên quan như thế nào. Có thể chỉ thấy một kết quả Fourier hợp nhất, để bạn có thể thấy kết quả tội lỗi hoặc cosin di chuyển qua dữ liệu hiện có và sau đó thông qua giai đoạn dự báo? Nếu không, làm thế nào tôi có thể xác nhận rằng các điều khoản được tạo bởi fourierf() phù hợp với dữ liệu trong mẫu?

Tôi muốn sử dụng nó trong một auto.arima hoặc glm chức năng với hồi quy bên ngoài khác như thế này:

trainFourier<-fourier(data,3) 

trainFourier<-as.data.frame(trainFourier) 
trainFourier$exogenous<-exogenousData 
arima.object<-auto.arima(data, xreg=trainFourier) 

futureFourier<-fourierf(data,3, 410) 

fourierForecast<-forecast(arima.object, xreg=futureFourier, h=410) 

và muốn được hoàn toàn chắc chắn rằng auto.arima có phù hợp (sử dụng các điều khoản từ fourier()) với những gì tôi sẽ đặt trong xreg cho forecast (có các thuật ngữ từ một hàm khác, tức là ffourier()).

Trả lời

11

Đã giải quyết được sự cố. Tôi đã sử dụng cả hai gói fdaforecast. fda, để phân tích và hồi quy dữ liệu chức năng, có chức năng fourier() riêng. Nếu tôi tách fda, hạn S1 của tôi từ fourier(data,3) trông như thế này:

fourier()

mà dòng lên độc đáo với dự báo Fourier nếu tôi sử dụng ts.plot(c(trainFourier$S1,futureFourier$S1))

đạo đức của câu chuyện - xem những gì các gói của bạn đàn áp , mọi người!