Bagaimana Anda menggunakan smoothing eksponensial sederhana dalam R?

9

Saya pemula di R, Bisakah Anda jelaskan cara menggunakan ses dalam paket perkiraan R perkiraan ? Saya ingin memilih jumlah periode awal dan konstanta smoothing.

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)

Saya memiliki 70 periode, saya ingin menggunakan 40 Periode untuk awal dan 30 untuk sampel out-of.

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

Apakah itu benar?

Roji
sumber
Saya berasumsi bahwa fungsi yang Anda referensikan ada dalam paket perkiraan - jika itu tidak benar, sebutkan paket apa fungsi itu berada.
Andy W
Ya itu ses dalam paket perkiraan
Roji
Ada beberapa contoh di sini: otexts.org/fpp/7/1
marbel

Jawaban:

15

Ini akan melakukannya:

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

dengan:

  • h menjadi jumlah periode untuk perkiraan.
  • alpha menjadi parameter level smoothing.
  • initial menjadi metode untuk memilih nilai keadaan awal

(Lihat ?ses.)

Rob Hyndman
sumber
Apa perbedaan antara sesdan etsfungsinya? Apakah ada yang lebih baik?
MysteryGuy
3

Anda juga dapat menggunakan fungsi HoltWinters, yang tersedia di basis R:

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

Untuk mendapatkan prediksi selama 30 periode berikutnya, gunakan

predict(mod1, n.ahead=30)
Vik
sumber