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 sesvà etschứ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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.