A HoltWinters függvényt használom R-ben, és megpróbálom megérteni, hogy az “együtthatók” mit jelentenek abban az objektumban, amelyet az adott függvény ad vissza. Úgy tűnik, hogy ezek semmilyen nyilvánvaló módon nem egyeznek a visszaadott értékekkel, amikor megnézzük a $

Megjegyzések

  • Hagyott-e valamit a kérdésének vége?

Válasz

+1 ez zavaró. Ha az idősorod hossza $ N $ és $ p $ gyakoriság, akkor az úgynevezett “együtthatók” (amelyek HW$coeff néven érhetők el, ha a HW az objektum (HoltWinters) pontosan a $ a [N] $, $ b [N] $ és $ s [N-p + 1] $, $ s [N-p + 2], \ cdots s [N] $, ahol ezeket a Holt Winters súgó oldalán található képletek határozzák meg, amelyekhez R belülről a ?HoltWinters segítségével lehet hozzáférni.

Az alapértelmezett additív modellnél tegyük fel, hogy a my.ts egy idősoros objektum, amelynek pozitív gyakorisága $ p $. $ a [N-1] $, $ értékek b [N-1] $ és az összes korábbi $ s [t] $, legfeljebb $ s [Np] $, a HoltWinters(my.ts)$fitted táblázatban találhatók. n HoltWinters(my.ts)$coeff ezekből kiszámolva a $$ a [t] = α (Y [t] – s [tp]) + (1-α) (a [t- 1] + b [t-1]) $$

$$ b [t] = β (a [t] – a [t-1]) + (1-β) b [t- 1] $$

a következővel: $ t = N $ és $ \ alpha = $ HoltWinters(my.ts)$alpha, $ \ beta = $ HoltWinters(my.ts)$beta, és

$$ s [t] = γ (Y [t] – a [t]) + (1-γ) s [tp] $$

$ t = N-p + 1, \ ldots, N $ és $ \ alpha = $ HoltWinters(my.ts)$alpha, $ \ beta = $ HoltWinters(my.ts)$beta, és $ \ gamma = $ HoltWinters(my.ts)$gamma.

Ez a $ a $ és $ b $ (szint és trend) esetén működik, de amikor elvégzem a számítást a szezonálisok esetében kissé más értékeket kapok (kb. 5% -on belül), mint amit a kimenet megad. Remélem, hogy valaki szerkesztheti ezt a választ, hogy elmagyarázza, mi folyik az évszakokkal. Itt található egy link a hw függvény C-kódjára, amelyet a HoltWinters függvény hív meg:

https://svn.r-project.org/R/trunk/src/library/stats/src/HoltWinters.c

Válasz

Az a, b, s, alfa, béta és gamma paraméterek jelentését a HoltWinters függvény súgója írja le (próbálkozzon ?HoltWinters R-ben), Részletek .

pl az additív modell így van leírva:

Yhat[t+h] = a[t] + h * b[t] + s[t - p + 1 + (h - 1) mod p], where a[t], b[t] and s[t] are given by a[t] = α (Y[t] - s[t-p]) + (1-α) (a[t-1] + b[t-1]) b[t] = β (a[t] - a[t-1]) + (1-β) b[t-1] s[t] = γ (Y[t] - a[t]) + (1-γ) s[t-p] 

Ha megnézzük a súgót, az egyik példa:

(m <- HoltWinters(co2)) plot(m) plot(fitted(m)) 

Kimenettel:

Holt-Winters exponential smoothing with trend and additive seasonal component. Call: HoltWinters(x = co2) Smoothing parameters: alpha: 0.5126484 beta : 0.009497669 gamma: 0.4728868 Coefficients: [,1] a 364.7616237 b 0.1247438 s1 0.2215275 s2 0.9552801 s3 1.5984744 s4 2.8758029 s5 3.2820088 s6 2.4406990 s7 0.8969433 s8 -1.3796428 s9 -3.4112376 s10 -3.2570163 s11 -1.9134850 s12 -0.5844250 

a kimenet kimenete (m)

a telek kimenete (felszerelt (m))

Most nézzük meg a hívási együtthatók kimenetét:

coefficients(m) a b s1 s2 s3 s4 364.7616237 0.1247438 0.2215275 0.9552801 1.5984744 2.8758029 s5 s6 s7 s8 s9 s10 3.2820088 2.4406990 0.8969433 -1.3796428 -3.4112376 -3.2570163 s11 s12 -1.9134850 -0.5844250 

amelyek pontosan megegyeznek a korábban generált azonos mennyiségek kimenetével.

Figyelembe véve a a, b, s, alpha, beta és gamma a súgó oldalon, mely részek nem világosak az Ön számára?

Megjegyzések

  • Meg tudná mondani, melyik időpont ” a ” és ” b ” képviseli?

Válasz

Egyetértek azzal, hogy van rejtvény. A rejtvény megtekintéséhez úgy gondoltam, hogy a co2 sorozat elérhető az R-ben. A válasz hosszú. Csak a * -részhez, amelyet ma hozzáadtam

Arra számítottam, hogy

co2HWBis$coefficients[2] 

egyenlő

co2HW$fitted[length(co2HW$fitted[,3]),3] 

ie a coeff megegyezik az utoljára kiterjesztett trenddel. Az alábbiakban ellenőrizheti, hogy nem erről van-e szó. Azonban

co2HW$fitted[length(co2HW$fitted[,3]),3] 

megegyezik az együtthatóval, amelyet akkor kellett elérnie, ha eldobja a sorozat utolsó értékét, ahogy az alábbiakban le van írva. Gyanítom, hogy az együtthatót valahogy “előre írják”. Továbbá zavarónak találom a kérdéseket, ha a béta becslését engedélyezzük.

Olvasom a forráskódot ( http://svn.r-project.org/R/trunk/src/library/stats/R/HoltWinters.R ), de még nem tudom biztosan, mi történik.

Ez a teljes kód

 rm(list=ls()) co2HW = HoltWinters(co2, alpha = 0.2, gamma = 0.2, beta = 0.5) # co2HW$coeff[2] co2HW$fitted[length(co2HW$fitted[,3]),3] co2Bis = window(co2,end=c(1997,11)) co2HWBis = HoltWinters(co2Bis, alpha=0.2, gamma=0.2, beta=0.5) co2HWBis$coefficients[2] # co2HWBis$fitted[length(co2HWBis$fitted[,3])-1,3] co2HW$beta*(co2HW$fitted[length(co2HW$fitted[,2]),2] - co2HW$fitted[length(co2HW$fitted[,2])-1,2]) + (1 - co2HW$beta)*co2HW$fitted[length(co2HW$fitted[,3])-1,3] ##################### co2HW = HoltWinters(co2, alpha = 0.2, gamma = 0.2) # co2HW$coeff[2] co2HW$fitted[length(co2HW$fitted[,3]),3] co2Bis = window(co2,end=c(1997,11)) co2HWBis = HoltWinters(co2Bis, alpha=0.2, gamma=0.2) co2HWBis$coefficients[2] # co2HWBis$fitted[length(co2HWBis$fitted[,3])-1,3] co2HW$beta*(co2HW$fitted[length(co2HW$fitted[,2]),2] - co2HW$fitted[length(co2HW$fitted[,2])-1,2]) + (1 - co2HW$beta)*co2HW$fitted[length(co2HW$fitted[,3])-1,3] 

* -rész

… egy éjjel később azt hiszem, hogy választ tudok adni. Véleményem szerint a probléma a co2HW $ asztal időzítése. Az utolsó sor nem a minta utolsó periódusának becsült trendszintje és saisonja. Az együtthatók az utolsó periódus becsült szintje, trendje és saisonja, de ezek az értékek nem szerepelnek a táblázatban.Remélem, hogy a következő kód meggyőző

rm(list=ls()) x = co2 m = HoltWinters(x) # m$fitted[length(m$fitted[,3]),3] aux1 = m$alpha*( x[length(x)] - m$fitted[length(m$fitted[,3]),4] ) + ( 1 - m$alpha )*( m$fitted[length(m$fitted[,3]),3] + m$fitted[length(m$fitted[,3]),2] ); aux1 m$coeff[1] aux2 = m$beta*(aux1 - m$fitted[length(m$fitted[,3]),2] ) + (1-m$beta)*m$fitted[length(m$fitted[,3]),3] aux2 m$coeff[2] m$coeff[14] aux3 = m$gamma*(x[length(x)] - aux1) + ( 1 - m$gamma )*m$fitted[length(m$fitted[,3]),4] aux3 

Megjegyzések

  • Üdvözöljük a webhelyen, te vagy eredeti poszter a kérdésről? Ez nem úgy tűnik, hogy ‘ válasz.
  • Köszönöm @ user28623! Egyetértek azzal, hogy van benne valami hal. Megpróbáltam elolvasni a forráskódot is, de nem értem el ‘ előrehaladást.
  • Feladtam a co2 cuccokat, és azt hiszem, rájöttem, hogy mi történik. Először is, a co2HW$fitted[,3] utolsó értéke nem a minta utolsó periódusának becsült trendje. Ez az utolsó periódus előtti időszak becsült tendenciája. Másodszor: co2HW$coeff[2] az elmúlt időszak trendje. Véleményem szerint a co2HW$fitted táblázat időzítése félrevezető.
  • @ user28623, a co2HW$fitted[,1] -re gondolsz co2HW$fitted[,3]? és a co2HW$fitted[,1] állítólag level, nem pedig trend. szerintem a válaszod valóban hasznos, de kissé zavaró

válasz

szerintem a legfontosabb az együtthatók, amelyeket a többi válaszban nem láttam, de esetleg elmulasztottam, az, hogy ezek az előrejelzés alapjául szolgáló / elkészített idősor utolsó periódusának simított szintje és simított trendjei; az idősor utolsó 12 hónapjára.

Az előrejelzéshez illesztett értékek táblázatának megértése is segít. A t időnek megfelelő minden sor esetében a szint és a trend értékei a t idő simított értékei. -1, és a szezon értéke a tp simított értéke. Ezeket hozzáadva adjuk meg a t, Xhat becsült valódi szintjét.

Az R-t csak nemrég kezdtem el használni, ezért elnézést, ha a terminológiám nem teljesen pontos.

Hozzászólások

  • Nem gondolom, hogy a kérdés egyértelműen megfogalmazódott. Amint a glen_b rámutat, hiányos. Mivel a kérdés nem világos, nem ‘ nem látom, hogyan lehet választ adni.

Válasz

Ez az R. HoltWinters dokumentációjából származik. Ugyanaz a kérdésem volt, és ez megválaszolja, miért nem tudtam kiszámítani ugyanazokat az évszakértékeket. A függvény bontási módszert használ az összes kezdeti érték megtalálásához, amikor a szezonalitást beépíti, míg az egy- és a kettős exponenciális simításhoz ezt nem teszi.

“Szezonális modelleknél az a, b és s arra következtetünk, hogy a trend és a szezonális komponens egyszerű lebontásával mozgó átlagokat használunk (lásd a bontási függvényt) a start.periodok első periódusai során (a kiindulási szinthez és trendhez a trend komponens egyszerű lineáris regresszióját használjuk). Szint / trend modelleknél (nincs szezonális komponens) az a és b kezdőértékei x [2], illetve x [2] – x [1]. Csak szintű modelleknél (normál exponenciális simítás) az a kezdőértéke x [1]. “

Találta meg ezt a weboldalt, amely elmagyarázza, hogyan szerezzen be kezdeti értékeket: https://robjhyndman.com/hyndsight/hw-initialization/

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük