Làm thế nào để bạn sử dụng làm mịn theo cấp số nhân đơn giản trong R?


9

Tôi mới bắt đầu học R, bạn có thể giải thích cách sử dụng Ses trong gói dự báo của dự báo R không? Tôi muốn chọn số lượng thời gian ban đầu và hằng số làm mịn.

d <- c(3,4,41,10,9,86,56,20,18,36,24,59,82,51,31,29,13,7,26,19,20,103,141,145,24,99,40,51,72,58,94,78,11,15,17,53,44,34,12,15,32,14,15,26,75,110,56,43,19,17,33,26,40,42,18,24,69,18,18,25,86,106,104,35,43,12,4,20,16,8)

Tôi có 70 tiết, tôi muốn sử dụng 40 tiết cho ban đầu và 30 cho ngoài mẫu.

ses(d, h=30, level=c(80,95), fan=FALSE,initial=c("simple"), alpha=.1)

Nó có đúng không?


Tôi đã giả sử chức năng mà bạn đề cập đến nằm trong gói dự báo - nếu điều đó không chính xác, vui lòng chỉ định gói nào được đặt trong chức năng.
Andy W

Yst đó là Ses trong gói dự báo
Roji

Có một vài ví dụ ở đây: otexts.org/fpp/7/1
marbel

Câu trả lời:


15

Điều này sẽ làm điều đó:

ses(d[1:40], h=30, alpha=0.1, initial="simple")

với:

  • h là số lượng thời gian để dự báo.
  • alpha là tham số làm mịn mức.
  • initial là phương pháp để chọn các giá trị trạng thái ban đầu

(Xem ?ses.)


Sự khác biệt giữa sesetschức năng là gì? Có cái nào tốt hơn không?
MysteryGuy

3

Bạn cũng có thể sử dụng chức năng HoltWinters, có sẵn trong cơ sở R:

mod1 <- HoltWinters(d[1:40], alpha=0.1, beta=FALSE, gamma=FALSE)

Để có được dự đoán trong 30 tiết tiếp theo, hãy sử dụng

predict(mod1, n.ahead=30)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.