Käytän HoltWinters-funktiota R: ssä ja yritän ymmärtää, mitä ”kertoimet” edustavat objektissa, jonka funktio palauttaa. Ne eivät näytä vastaavan mitään ilmeistä tapaa, joka palasi, kun tarkastelette $

Kommentit

  • Jättikö jotain kysymyksesi loppu?

Vastaa

+1 tämä on hämmentävää. Jos aikasarjan pituus on $ N $ ja taajuus $ p $, niin kutsutut ”kertoimet” (joita voidaan käyttää nimellä HW$coeff, jos HW on palautettu objekti HoltWinters) ovat tarkalleen arvot $ a [N] $, $ b [N] $ ja $ s [N-p + 1] $, $ s [N-p + 2], \ cdots s [N] $, missä nämä määritetään Holt Winters -ohjesivun kaavoilla, joihin pääsee R: stä ?HoltWinters.

Oletusarvoisen additiivimallin osalta oletetaan, että my.ts on aikasarjaobjekti, jonka taajuus on positiivinen $ p $. $ a [N-1] $, $: n arvot b [N-1] $ ja kaikki aikaisemmat $ s [t] $ – $ s [Np] $ on annettu taulukossa HoltWinters(my.ts)$fitted. Arvot i n HoltWinters(my.ts)$coeff lasketaan näistä käyttäen kaavoja $$ a [t] = α (Y [t] – s [tp]) + (1-α) (a [t- 1] + b [t-1]) $$

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

kanssa $ t = N $ ja $ \ alpha = $ HoltWinters(my.ts)$alpha, $ \ beta = $ HoltWinters(my.ts)$beta, ja

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

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

Tämä toimii $ a $: lla ja $ b $: lla (taso ja trendi), mutta kun teen laskutoimituksen kausiluontoisille saan hieman erilaiset arvot (noin 5%: n sisällä) kuin tuotoksessa ilmoitetaan. Toivon, että joku voi muokata tätä vastausta selittääkseen, mitä kausiluonteisilla tapahtumilla tapahtuu. Tässä on linkki hw -funktion C-koodiin, jota kutsuu funktio HoltWinters:

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

Vastaa

a, b, s, alfa, beeta ja gamma-parametrien merkitys on kuvattu HoltWinters-toiminnon ohjeessa (kokeile ?HoltWinters R: ssä) kohdassa Tiedot .

esim. additiivimalli on kuvattu siten:

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] 

Jos tarkastelemme ohjetta, yksi esimerkkejä on:

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

Lähdöllä:

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 

kaavion (m) lähtö

kaavion lähtö (asennettu (m))

Tarkastellaan nyt kutsukertoimien lähtöä:

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 

jotka vastaavat tarkalleen samojen määrien tuotosta kuin aikaisemmin.

Otetaan huomioon kohteen a, b, s, alpha, beta ja gamma ohjesivulla, mitkä osat ovat sinulle epäselviä?

Kommentit

  • Voisitteko kertoa, mitkä ajankohdat ovat ” a ” ja ” b ” edustaa?

Vastaa

Olen samaa mieltä siitä, että pulmapeli on olemassa. Jos haluat nähdä palapelin, pidin Co2-sarjaa saatavana R.: ssä. Vastaus on pitkä. Toivotan teille vain tänään lisäämäni * -osan.

Olen odottanut, että

co2HWBis$coefficients[2] 

on yhtä suuri

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

ie kerroin on sama kuin viimeinen laajennettu trendi. Alla voit tarkistaa, että näin ei ole.

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

on kuitenkin sama kerroin, jonka sait, jos pudotat sarjan viimeisen arvon, kuten alla on määritelty. Epäilen, että kerroin on jotenkin ”kirjoitettu eteenpäin”. Minusta on edelleen hämmentävää, että asiat ovat erilaiset, jos sallit beetan arvioinnin.

Luen lähdekoodia ( http://svn.r-project.org/R/trunk/src/library/stats/R/HoltWinters.R ), mutta en ole vielä varma, mitä tapahtuu.

Tämä on täydellinen koodi

 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] 

* -osa

… yhden yön myöhemmin luulen voivani antaa vastauksen näyttävän vastauksen. Mielestäni ongelmana on taulukon co2HW $ ajoitus. Viimeinen rivi ei ole otoksen viimeisen jakson arvioitu trenditaso ja saison. Kertoimet ovat arvioitu taso, trendi ja viimeinen jakso, mutta näitä arvoja ei näytetä taulukossa.Toivon, että seuraava koodi on vakuuttava

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 

Kommentit

  • Tervetuloa sivustolle, oletko alkuperäinen kysymyksen juliste? Tämä ei näytä olevan ’ vastausta.
  • Kiitos @ user28623! Olen samaa mieltä siitä, että siinä on jotain hämärää. Yritin myös lukea lähdekoodin, mutta en edennyt ’.
  • Lähetin CO2-jutut ja luulin, että tajusin, mitä on tekeillä. Ensinnäkin co2HW$fitted[,3]: n viimeinen arvo ei ole otoksen viimeisen jakson arvioitu suuntaus. Se on yhden jakson arvioitu kehitys edeltävää jaksoa edeltävänä aikana. Toiseksi, co2HW$coeff[2] on viime kauden trendi. Mielestäni taulukon co2HW$fitted taulukon ajoitus on harhaanjohtava.
  • @ user28623, tarkoitatko sen sijaan co2HW$fitted[,1] co2HW$fitted[,3]? ja co2HW$fitted[,1] oletetaan olevan level, ei trend. mielestäni vastauksestasi on todella hyötyä, mutta hieman hämmentävä

vastaus

Mielestäni kertoimet, joita en voinut nähdä muissa vastauksissa, mutta olen ehkä unohtanut, ovat ne, että ne ovat tasoitetun tason ja tasoitetun trendin arvot viimeisen ajanjakson ajalta, johon ennuste perustui / tehtiin; ja tasoitetut kausikomponentit kyseisen aikasarjan viimeisten 12 kuukauden ajalta.

Myös ennusteen sovitettujen arvojen taulukon ymmärtäminen auttaa. Jokaiselle ajalle t vastaavalle riville tason ja trendin arvot ovat tasoitettuja ajanjakson t arvoja. -1, ja kauden arvo on tasoitettu arvo tp: lle. Nämä lisätään antamaan arvioitu todellinen taso ajalle t, Xhat.

Olen alkanut käyttää R: tä vasta äskettäin, joten anteeksi, jos terminologiani ei ole täysin tarkka.

kommentit

  • En usko ’ uskoa, että kysymys on selvästi esitetty. Kuten glen_b huomauttaa, se on epätäydellinen. Koska kysymys on epäselvä, en ’ näe, miten vastaus voidaan antaa.

Vastaa

Tämä on R: n HoltWinters-dokumentaatiosta. Minulla oli sama kysymys ja tämä vastasi siihen, miksi en voinut laskea samoja kausiarvoja. Funktio käyttää hajoamismenetelmää kaikkien lähtöarvojen löytämiseen, kun otetaan huomioon kausiluonteisuus, kun taas yhden ja kahden eksponentiaalisen tasoituksen tapauksessa se ei tee tätä.

”Kausimallien aloitusarvot a: lle, b: lle ja b: lle s päätellään suorittamalla yksinkertainen trendin ja kausikomponentin hajoaminen käyttämällä liikkuvia keskiarvoja (katso funktio hajoaa) alkamisjaksojen ensimmäisillä jaksoilla (lähtötasolle ja trendille käytetään trendikomponentin yksinkertaista lineaarista regressiota). Taso- / trendi-malleissa (ei kausikomponentteja) aloitusarvot a: lle ja b ovat x [2] ja x [2] – x [1]. Vain tasomalleissa (tavallinen eksponentiaalinen tasoitus) a: n alkuarvo on x [1]. ”

Löysi tämän sivuston, jossa kerrotaan, miten alkuarvot saadaan: https://robjhyndman.com/hyndsight/hw-initialization/

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *