Facultad de Economía - seriesdetiempo · PDF filePrincipios de Descomposición de...

55
Curso de Econometría de Series de Tiempo Facultad de Economía Universidad Nacional Autónoma de México Profesor: Juan Francisco Islas Adjunto: Miguel Heras Ciudad Universitaria, Agosto 2012 Descomposición de Series de Tiempo

Transcript of Facultad de Economía - seriesdetiempo · PDF filePrincipios de Descomposición de...

Curso de Econometría de Series de Tiempo

Facultad de Economía

Universidad Nacional Autónoma de México

Profesor: Juan Francisco Islas

Adjunto: Miguel Heras

Ciudad Universitaria, Agosto 2012

Descomposición de Series de Tiempo

Principios de Descomposición de Series de Tiempo

Componentes de separación

Tendencia-Ciclo: Representa los cambios de largo plazo en el nivel de la serie de tiempo.

Estacionalidad: Caracteriza fluctuaciones periódicas de longitud constante causadas por factores tales como temperatura, estación del año, periodo vacacional, políticas, etc.

datos=patrón+error ( )error idad,estacional ciclo,-tendenciaf=( )tttt ETSfY ,,=

Principios de Descomposición de Series de Tiempo

Descomposición Aditivatttt ETSY ++=

Descomposición Multiplicativatttt ETSY ××=

Transformación logarítmica

tttt ETSY loglogloglog ++=

Descomposición Pseudo-Aditiva

( )1−+= tttt ESTY

tttt ETSY +=−Ajuste estacional

Promedios Móviles Simples: 3MA

Serie 3MA

( )

( )

( )

( )

( )

( )TTT

TTTT

TTTT

MAtt

YYYT

YYYYT

YYYYT

YYYY

YYYY

YYY

YYt

+

++−

++−

++

++

+

−−−

−−−−

1

121

1232

4323

3212

211

3

21

311

312

313312

211

MMM

( )113

31

+− ++= tttMA

t YYYY

1,...,2 −= Ttpara

( )1,1,1window

( )

( )

( )

( )

( )

( )

( )

( )TTTT

TTTTT

TTTTTT

TTTTTT

MAtt

YYYYT

YYYYYT

YYYYYYT

YYYYYYT

YYYYYY

YYYYYY

YYYYY

YYYY

YYt

++

+++−

++++−

++++−

++++

++++

+++

++

−−

−−−−

−−−−−

−−−−−−

12

1231

12342

123453

654324

543213

43212

3211

5

31

411

512

513

514513

412

311

MMM

Promedios Móviles Simples: 5MA

Serie 5MA

( )21125

51

++−− ++++= tttttMA

t YYYYYY

2,...,3 −= Ttpara

( )2,1,2window

Promedios Móviles Simples: Generalización MA orden impar

En general, para cualquier impar

⎟⎟⎠

⎞⎜⎜⎝

⎛++= −

+−

−2

12

11

jtjt

jMAt YY

jY L

21,,1

21 −

−+−

=jTjt Lpara

3≥j

y ajuste para las primeras observaciones y

últimas.2

1−j2

1−j

⎟⎠⎞

⎜⎝⎛ −−

21,1,

21window jj

020

040

060

080

0To

tal s

ales

(lite

rs)

0 10 20 30 40Month

Ejemplos

shampoo.csvSerie original

020

040

060

080

0To

tal s

ales

(lite

rs)

0 10 20 30 40Month

Total sales (liters) m a: x(t)= liters: window(1 1 1)

3 MA smootherEjemplos

( )1131

+− ++= tttt YYYT

Suavizamiento mediante Promedios Móviles Simples

Ajuste en los puntos extremos de la serie 3MA

( )211 21 YYY Aj +=

( )TTAj

T YYY += −121

M

020

040

060

080

0To

tal s

ales

(lite

rs)

0 10 20 30 40Month

To tal sales (liters) m a: x(t)= liters: window(2 1 2)

5 MA smootherEjemplos

( )211251

++−− ++++= tttttt YYYYYT

Suavizamiento mediante Promedios Móviles Simples

Ajuste en los puntos extremos de la serie 5MA

( )43212 41 YYYYY Aj +++=

( )TTTTAj

T YYYYY +++= −−−− 1231 41

( )3211 31 YYYY Aj ++=

( )TTTAj

T YYYY ++= −− 1231

M

( )

( )

( )

( )

( )TT

TTT

TTT

MAtt

YYT

YYYT

YYYT

YYY

YYY

YYY

YYt

+−

+−

+

+

+

−−

−−−

11

122

433

322

211

2

211

212

213212211

MMM

Promedios Móviles Simples. Generalización 2MA

Serie 2MA

( )

( )

( )

( )

( )TTT

TTT

TTT

MAtt

YYYT

YYYT

YYYT

YYY

YYY

YYYYt

+

+−

+−

+

+

−−−

−−−

1

121

232

323

212

11

2

21

211212

213212

1

MMM

( )12

21

++= ttMA

t YYY

1,,1 −= Tt Lparay ajuste de la última observación.

pivote izquierdo pivote derecho

( )ttMA

t YYY += −12

21

Tt ,,2 L=paray ajuste de la primera observación.

( )1,1,0window ( )0,1,1window

Promedios Móviles Simples. Generalización 4MA

Serie 4MA

( )2114

41

++− +++= ttttMA

t YYYYY

2,,2 −= Tt Lparay ajuste de la primera y últimas dos observaciones.

1,,3 −= Tt Lpara( )112

4

41

+−− +++= ttttMA

t YYYYY

y ajuste de las primeras dos y última observaciones.

( )

( )

( )

( )

( )

( )TTT

TTTT

TTTTT

MAtt

YYYT

YYYYT

YYYYYT

YYYYY

YYYYY

YYYY

YYt

+

++−

+++−

+++

+++

++

−−−

−−−−

1

121

1232

54323

43212

3211

4

21

311

412

413412

311

MMM

( )

( )

( )

( )

( )

( )TTTT

TTTTT

TTTTT

MAtt

YYYYT

YYYYYT

YYYYYT

YYYYY

YYYY

YYY

YYt

++

+++−

+++−

+++

++

+

−−

−−−−

−−−−−

12

1231

12342

43213

3212

211

4

31

411

412

413

312

211

MMM

pivote izquierdo pivote derecho( )2,1,1window ( )1,1,2window

En general, para cualquier par y pivote izquierdo

⎟⎟⎠

⎞⎜⎜⎝

⎛++=

++−2

12

1jtjt

jMAt YY

jY L

2,,

2jTjt −= Lpara

2≥j

y ajuste para las primeras observaciones y

últimas.

12−

j2j

Promedios Móviles Simples: Generalización MA orden par

En general, para cualquier par y pivote derecho

⎟⎟⎠

⎞⎜⎜⎝

⎛++=

−+− 122

1jtjt

jMAt YY

jY L

12

,,12

+−+=jTjt Lpara

2≥j

y ajuste para las primeras observaciones y

últimas.2j 1

2−

j

Promedios Móviles Simples: Generalización MA orden par

020

040

060

080

0To

tal s

ales

(lite

rs)

0 10 20 30 40Month

Total sales (liters) ma: x(t)= liters: window(1 1 2)

4 MA smoother

( )21141

++− +++= ttttt YYYYT

Ejemplos

Se aplicó 4MA con pivote izquierdo a la serie Y

Se ajusta la primera y las dos últimas observaciones de la serie 4 MA.

( )TTTAj

T YYYY ++= −−− 121 31

( )TTAj

T YYY += −121

( )3211 31 YYYY Aj ++=

020

040

060

080

0To

tal s

ales

(lite

rs)

0 10 20 30 40Month

Total sales (liters) ma: x(t)= ma4: window(1 1 0)

2x4 MA smoother

Promedios Móviles Compuestos (Caso de Centrados 2xj MA)

Se aplicó 2MA con pivote derecho a la serie 4MA4

11MAAj YY =Se ajusta la primera observación de la serie 2x4 MA:

2040

6080

100

Tota

l sal

es

1975m1 1980m1 1985m1 1990m1 1995m1Month

Monthly sales of new-one family sold in the USA since 1973

hsales.csvserie original

Descomposición de una Serie de Tiempo

2040

6080

100

Tota

l sal

es

1975m1 1980m 1 1985m1 1990m1 1995m1Month

hsales ma: x(t)= hsales: window (3 1 3 )

7 MA smootherSuavizamiento mediante Promedios Móviles

( )32112371

+++−−− ++++++= tttttttt YYYYYYYT

Suavizamiento mediante Promedios Móviles

Ajuste en los puntos extremos de la serie 7MA

( )543212 51 YYYYYY Aj ++++=

( )43211 41 YYYYY Aj +++=

M( )6543213 6

1 YYYYYYY Aj +++++=

( )TTTTAj

T YYYYY +++= −−− 12341

( )TTTTTAj

T YYYYYY ++++= −−−−− 12341 51

( )TTTTTTAj

T YYYYYYY +++++= −−−−−− 123452 61

2040

6080

100

Tota

l sal

es

1975m1 1980m1 1985m1 1990m1 1995m1Month

hsales ma: x(t)= hsales: window(6 1 5)

12 MA smoother (uncentered)Promedios Móviles Simples (Caso par con pivote derecho)

Suavizamiento mediante Promedios MóvilesAjuste en los extremos de la serie 12MA con pivote derecho

M

∑=

=6

11 6

1t

tAj YY ∑

=

=7

12 7

1t

tAj YY ∑

=

=8

13 8

1t

tAj YY

∑=

=9

14 9

1t

tAj YY ∑

=

=10

15 10

1t

tAj YY ∑

=

=11

16 11

1t

tAj YY

∑−=

− =T

Ttt

AjT YY

104 11

1 ∑−=

− =T

Ttt

AjT YY

93 10

1 ∑−=

− =T

Ttt

AjT YY

82 9

1

∑−=

− =T

Ttt

AjT YY

71 8

1 ∑−=

=T

Ttt

AjT YY

671

( )5,1,6window

2040

6080

100

Tota

l sal

es

1975m1 1980m1 1985m1 1990m1 1995m1Month

hsales ma: x(t)= ma12: window(1 1 0)

Centered 12 MA smootherPromedios Móviles Compuestos (Caso de Centrados 2xj MA)

1211MAAj YY =

Ajuste MA2 por pivote derecho a la serie MA12:

Código en STATA* Suavizamiento mediante Promedios Móviles Simples 3MA y 5MAinsheet liters using "c:\mwhdata\shampoo.csv", cleargen month=.for num 1 13 25:replace month=1 in Xfor num 2 14 26:replace month=2 in Xfor num 3 15 27:replace month=3 in Xfor num 4 16 28:replace month=4 in Xfor num 5 17 29:replace month=5 in Xfor num 6 18 30:replace month=6 in Xfor num 7 19 31:replace month=7 in Xfor num 8 20 32:replace month=8 in Xfor num 9 21 33:replace month=9 in Xfor num 10 22 34:replace month=10 in Xfor num 11 23 35:replace month=11 in Xfor num 12 24 36:replace month=12 in Xlabel define month 1 "Jan" 2 "Feb" 3 "Mar" 4 "Apr" 5 "May" 6 "Jun" 7 "Jul" 8 "Aug" 9 "Sep" 10 "Oct" 11 "Nov" 12 "Dec"label values month monthlabel var liters "Total sales (liters)"gen year=.replace year=1 in 1/12replace year=2 in 13/24replace year=3 in 25/36gen t=_nlabel var t "Month"line liters t, saving("c:\mwhdata\shampoo.gph", replace)tsset ttssmooth ma ma3=liters, window(1 1 1)listgraph twoway (line liters t) (line ma3 t), title("3 MA smoother") ytitle("Total sales (liters)") saving("c:\mwhdata\shampooMA3.gph", replace)

Código en STATA

* Suavizamiento mediante Promedios Móviles 3MA y 5MA (continuación)tssmooth ma ma5=liters, window(2 1 2)graph twoway (line liters t) (line ma5 t), title("5 MA smoother") ytitle("Total sales (liters)") saving("c:\mwhdata\shampooMA5.gph", replace)

* Promedios Móviles centrados* Construcción de la Serie 2x4 MA* Se genera la serie MA4tssmooth ma ma4=liters, window(1 1 2)graph twoway (line liters t) (line ma4 t), title("4 MA smoother") ytitle("Total sales (liters)") saving("c:\mwhdata\shampooMA4.gph", replace)* Se aplican promedios móviles MA2 a la serie MA4 obtenidatssmooth ma ma2ma4=ma4, window(1 1 0) graph twoway (line liters t) (line ma2ma4 t), title("2x4 MA smoother") ytitle("Total sales (liters)") saving("c:\mwhdata\shampoo2x4MA.gph", replace)list

Código en STATA* 7 MA smoother for Housing sales datainsheet hsales using "c:\mwhdata\hsales.csv", cleargen t=.replace t=ym(1973,1) in 1for num 2/275: replace t=t[X-1]+1 in Xformat t %tmlabel var t "Month"tsset t graph twoway (line hsales t, lcolor(blue)), title("Monthly sales of new-one family sold in the USA since 1973") ytitle("Total sales") saving("c:\mwhdata\hsales.gph",replace)tssmooth ma ma7=hsales, window(3 1 3)graph twoway (line hsales t, lcolor(yellow)) (line ma7 t, lcolor(black)), title("7 MA smoother") ytitle("Total sales") saving("c:\mwhdata\hsales7MA.gph",replace)

* 2x12 MA smoother for Housing sales data* Serie de Promedios Móviles Centrados 2x12 MA* Se genera la serie MA12tssmooth ma ma12=hsales, window(6 1 5)graph twoway (line hsales t, lcolor(yellow)) (line ma12 t, lcolor(black)), title("12 MA smoother (uncentered)") ytitle("Total sales") saving("c:\mwhdata\hsales12MA.gph",replace)* Se aplican promedios móviles MA2 a la serie MA12 obtenidatssmooth ma ma2ma12=ma12, window(1 1 0)graph twoway (line hsales t, lcolor(yellow)) (line ma2ma12 t, lcolor(black)), title("Centered 12 MA smoother") ytitle("Total sales") saving("c:\mwhdata\hsales2x12MA.gph",replace)list

⎟⎠⎞

⎜⎝⎛=⎟

⎠⎞

⎜⎝⎛ ++++++++ 54321543432321 9

1,92,

31,

92,

91

31

31

31

31

31

31

31

31

31

31 YYYYYYYYYYYYYY

Promedios Móviles Ponderados

Fuente: http://www.robjhyndman.com/papers/movingaverage.pdf

Cualquier combinación de promedios móviles simples puede ser utilizada para formar un promedio móvil doble (o compuesto) y al modificarse los ponderadores se obtiene una serie de promedios móviles ponderados.Por ejemplo, MA 3x3 es equivalente a MA 5 con ponderadores:

Algunas funciones de ponderación en promedios móviles:

Promedios Móviles Ponderados. Ejemplo MA 19

En general, un promedio móvil ponderado tiene la forma:

∑−=

+=m

mjjtj

wMAt YaY

Por ejemplo, se obtiene un promedio móvil MA 19 ponderado bajo la función cuártica:

( )⎪⎪⎩

⎪⎪⎨

⎧<<−⎟

⎟⎠

⎞⎜⎜⎝

⎛⎟⎠⎞

⎜⎝⎛−

=

casootroen0

para1,

22

mjmmj

mjQ

Normalizando, el ponderador para la j-ésima observación es:

( )( )∑

−=

= m

mi

j

miQ

mjQa,

,

con ∑−=

=m

mjja 1

020

040

060

080

0lit

ers

0 10 20 30 40t

020

040

060

080

0

0 10 20 30 40t

liters ma19w

020

040

060

080

0To

tal s

ales

(lite

rs)

0 10 20 30 40Month

liters m a19w

Weighted MA19 smoother

020

040

060

080

0

0 10 20 30 40t

liters ma19w

Promedios Móviles Ponderados. Ejemplo MA 19

shampoo.csv

0.0

2.0

4.0

6.0

8.1

Pon

dera

dor

-10 -5 0 5 10Término

Función de Ponderadores MA 19 bajo función cuártica

0.0

5.1

.15

.2P

onde

rado

r-10 -8 -6 -4 -2 0

Término

Función de Ponderadores para la Observación 36

Función de Ponderadores. Ejemplo MA 19

Función de Ponderadores, bajo la función cuártica, para el ajuste (MA 10) de la Observación 36 de la serie MA 19

Función de Ponderadores, bajo la función cuártica, para

las observaciones 10 a 27 de la serie MA 19

Suavizamiento por Regresión Local

1

23

4

5 6

7 89

10

11

121314

15

16

17

18

19

2021

22

23

2425

26

27

2829

30

31

32

33

34

35

36

020

040

060

080

0

0 10 20 30 40t

liters Fitted valuesFitted values

Se estima la tendencia-ciclo en el periodo btaTt +=donde y son los estimadores de Mínimos Cuadrados Ponderados tales que resuelven el problema de

ta b

( )( )∑−=

+ +−−m

mjjtjba

jtbaYa 2

,min

Para cada periodo, mediante regresión local se obtiene un punto estimado de tendencia-ciclo, y los correspondientes ajustes para los extremos.

La trayectoria de tendencia-ciclo resultante se obtiene al enlazar los puntos estimados en las regresiones locales a cada periodo .

t

Se define una función de ponderadores. Para este ejemplo, los que se derivan de la función cuártica antes vista.

Descomposición Clásica

Descomposición Aditiva

Paso 1: Estimación de tendencia-ciclo. Mediante promedio móvil centrado MA 12.

Considerando los datos de la base hsales.csv

2040

6080

100

Tota

l sal

es

1975m1 1980m1 1985m1 1990m1 1995m1Month

hsales ma: x(t )= ma12: window(1 1 0)

Centered 12 MA smoother

Descomposición Clásica

Descomposición Aditiva

Paso 2: Eliminación de Tendencia. Al restar el componente tendencia-ciclo de los datos originales, quedando los términos de estacionalidad e irregularidad.

tttt ESTY +=−

-20

020

4060

80To

tal s

ales

1975m1 1980m1 1985m1 1990m1 1995m1Month

hsales ma: x(t)= ma12: window(1 1 0)detrend

original, trend-cycle & de-trended housing sales series

Descomposición Clásica

Descomposición AditivaPaso 3: Índice estacional. Una vez removido el componente tendencia-ciclo, bajo la descomposición aditiva se asume que el componente estacional es constante año con año. De acuerdo al conjunto de datos considerado se requiere calcular un valor paracada mes.

El índice estacional se construye promediando las observaciones sin tendencia correspondientes a cada mes para todos los años observados.

-15

-10

-50

510

seas

on

1975m1 1980m1 1985m1 1990m1 1995m1Month

Estacionalidad

-15

-10

-50

510

(mea

n) d

etre

nd

1 2 3 4 5 6 7 8 9 10 11 12month

Índice Estacional

Descomposición Clásica

Descomposición Aditiva

Paso 4: Serie de Irregularidad. Se obtiene a partir de:

tttt TSYE −−=-2

0-1

00

1020

irreg

1975m1 1980m1 1985m1 1990m1 1995m1Month

Irregularidad

2040

6080

100

hsal

es

1 9 7 5 m 1 1 9 8 0 m 1 1 9 8 5 m 1 1 9 9 0 m 1 1 9 9 5 m 1M o n t h

S e r i e o r i g i n a l

Resumen gráfico de la Descomposición Aditiva-2

0-1

00

1020

irreg

1 9 7 5 m 1 1 9 8 0 m 1 1 9 8 5 m 1 1 9 9 0 m 1 1 9 9 5 m 1M o n t h

I r r e g u l a r i d a d

-15

-10

-50

510

seas

on

1 9 7 5 m 1 1 9 8 0 m 1 1 9 8 5 m 1 1 9 9 0 m 1 1 9 9 5 m 1M o n t h

E s t a c i o n a l i d a d

3040

5060

70

ma:

x(t)

= m

a12:

win

dow

(1 1

0)

1 9 7 5 m 1 1 9 8 0 m 1 1 9 8 5 m 1 1 9 9 0 m 1 1 9 9 5 m 1M o n t h

T e n d e n c i a - C i c l o

tttt ESTY ++=

tT

tS

tE

Descomposición Clásica

Descomposición Multiplicativa

Paso 1: Estimación de tendencia-ciclo. Mediante promedio móvil centrado MA 12.

Considerando los datos de la base airline.csv

100

200

300

400

Pas

seng

ers

(thou

sand

s)

1949m1 1950m7 1952m1 1953m7 1955m1 1956m7Month

passengers ma: x(t)= ma12: window(0 1 1)

Centered 12 MA smoother

Descomposición Clásica

Descomposición Multiplicativa

Paso 2: Cálculo de la razón porcentual datos a promedio móvil.

ttt

ttt

t

tt ES

TETS

TY

R ===10

020

030

040

0P

asse

nger

s (th

ousa

nds)

1949m1 1950m7 1952m1 1953m7 1955m1 1956m7Month

passengers ma: x(t)= ma12: window(0 1 1)ratio

original, trend-cycle & detrended passenger travel series

Descomposición Clásica

Descomposición Multiplicativa

8090

100

110

120

seas

on

1949m1 1950m7 1952m1 1953m7 1955m1 1956m7Month

Estacionalidad

Paso 3: Índice estacional. Una vez removido el componente tendencia-ciclo, bajo la descomposición multiplicativa se asume que el componente estacional es constante año con año. De acuerdo al conjunto de datos considerado se requiere calcular un valor para cada mes.

El índice estacional se construye promediando las observaciones sin tendencia correspondientes a cada mes para todos los años observados.

8090

100

110

120

(mea

n) ra

tio

1 2 3 4 5 6 7 8 9 10 11 12month

Índice Estacional

Descomposición Clásica

Descomposición Multiplicativa

Paso 4: Serie de Irregularidad. Se obtiene a partir de:

tt

tt TS

YE =.0

09.0

095

.01

.010

5.0

11irr

eg

1949m1 1950m7 1952m1 1953m7 1955m1 1956m7Month

Irregularidad

.009

.009

5.0

1.0

105

.011

irreg

1 9 4 9 m 1 1 9 5 0 m 7 1 9 5 2 m 1 1 9 5 3 m 7 1 9 5 5 m 1 1 9 5 6 m 7M o n t h

I r r e g u l a r i d a d

8090

100

110

120

seas

on

1 9 4 9 m 1 1 9 5 0 m 7 1 9 5 2 m 1 1 9 5 3 m 7 1 9 5 5 m 1 1 9 5 6 m 7M o n t h

E s t a c i o n a l i d a d

100

150

200

250

300

350

Pas

seng

ers

(thou

sand

s)

1 9 4 9 m 1 1 9 5 0 m 7 1 9 5 2 m 1 1 9 5 3 m 7 1 9 5 5 m 1 1 9 5 6 m 7M o n t h

T e n d e n c i a - C i c l o

100

200

300

400

pass

enge

r tra

ffic

(in t

hous

ands

)

1 9 4 9 m 1 1 9 5 0 m 7 1 9 5 2 m 1 1 9 5 3 m 7 1 9 5 5 m 1 1 9 5 6 m 7M o n t h

S e r i e o r i g i n a l

Resumen gráfico de la Descomposición Multiplicativa

tttt ESTY =

tT

tS

tE

Método X-12-ARIMA del Buró de Censos norteamericano

Para mayor detalle sobre la relevancia de este método, véase

http://www.census.gov/srd/www/x12a/

http://www.inegi.org.mx/prod_serv/contenidos/espanol/bvinegi/productos/derivada/coyuntura/igae/igae.pdf

Método X-12-ARIMA del Buró de Censos norteamericano

Código en STATA

* Promedios móviles ponderadosinsheet y using "C:\mwhdata\shampoo.csv", cleargen t=_ntsset tlabel var y "liters"scatter y t* Ponderadores MA 19 bajo la función cuárticafor num 0/9: scalar qX=(1-(X/9)^2)^2scalar sumaq=q9+q8+q7+q6+q5+q4+q3+q2+q1+q0+q1+q2+q3+q4+q5+q6+q7+q8+q9for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXgen ma19w=.for num 10/27: replace ma19w=a9*y[X-9]+a8*y[X-8]+a7*y[X-7]+a6*y[X-6]+a5*y[X-5]+a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4]+a5*y[X+5]+a6*y[X+6]+a7*y[X+7]+a8*y[X+8]+a9*y[X+9] in Xtwoway (scatter y t) (line ma19w t)* Ajuste de Observaciones de extrema izquierda* Observación 1scalar sumaq=q0+q1+q2+q3+q4+q5+q6+q7+q8+q9for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 1: replace ma19w=a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4]+a5*y[X+5]+a6*y[X+6]+a7*y[X+7]+a8*y[X+8]+a9*y[X+9] in X* Observación 2scalar sumaq=q1+q0+q1+q2+q3+q4+q5+q6+q7+q8+q9for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 2: replace ma19w=a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4]+a5*y[X+5]+a6*y[X+6]+a7*y[X+7]+a8*y[X+8]+a9*y[X+9] in X* Observación 3scalar sumaq=q2+q1+q0+q1+q2+q3+q4+q5+q6+q7+q8+q9for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 3: replace ma19w=a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4]+a5*y[X+5]+a6*y[X+6]+a7*y[X+7]+a8*y[X+8]+a9*y[X+9] in X

Código en STATA

* Observación 4scalar sumaq=q3+q2+q1+q0+q1+q2+q3+q4+q5+q6+q7+q8+q9for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 4: replace ma19w=a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4]+a5*y[X+5]+a6*y[X+6]+a7*y[X+7]+a8*y[X+8]+a9*y[X+9] in X* Observación 5scalar sumaq=q4+q3+q2+q1+q0+q1+q2+q3+q4+q5+q6+q7+q8+q9for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 5: replace ma19w=a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4]+a5*y[X+5]+a6*y[X+6]+a7*y[X+7]+a8*y[X+8]+a9*y[X+9] in X* Observación 6scalar sumaq=q5+q4+q3+q2+q1+q0+q1+q2+q3+q4+q5+q6+q7+q8+q9for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 6: replace ma19w=a5*y[X-5]+a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4]+a5*y[X+5]+a6*y[X+6]+a7*y[X+7]+a8*y[X+8]+a9*y[X+9] in X* Observación 7scalar sumaq=q6+q5+q4+q3+q2+q1+q0+q1+q2+q3+q4+q5+q6+q7+q8+q9for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 7: replace ma19w=a6*y[X-6]+a5*y[X-5]+a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4]+a5*y[X+5]+a6*y[X+6]+a7*y[X+7]+a8*y[X+8]+a9*y[X+9] in X* Observación 8scalar sumaq=q7+q6+q5+q4+q3+q2+q1+q0+q1+q2+q3+q4+q5+q6+q7+q8+q9for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 8: replace ma19w=a7*y[X-7]+a6*y[X-6]+a5*y[X-5]+a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4]+a5*y[X+5]+a6*y[X+6]+a7*y[X+7]+a8*y[X+8]+a9*y[X+9] in X* Observación 9scalar sumaq=q8+q7+q6+q5+q4+q3+q2+q1+q0+q1+q2+q3+q4+q5+q6+q7+q8+q9for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 9: replace ma19w=a8*y[X-8]+a7*y[X-7]+a6*y[X-6]+a5*y[X-5]+a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4]+a5*y[X+5]+a6*y[X+6]+a7*y[X+7]+a8*y[X+8]+a9*y[X+9] in Xtwoway (scatter y t) (line ma19w t)

Código en STATA

* Ajuste de Observaciones de extrema derecha* Observación 28scalar sumaq=q9+q8+q7+q6+q5+q4+q3+q2+q1+q0+q1+q2+q3+q4+q5+q6+q7+q8for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 28: replace ma19w=a9*y[X-9]+a8*y[X-8]+a7*y[X-7]+a6*y[X-6]+a5*y[X-5]+a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4]+a5*y[X+5]+a6*y[X+6]+a7*y[X+7]+a8*y[X+8] in X* Observación 29scalar sumaq=q9+q8+q7+q6+q5+q4+q3+q2+q1+q0+q1+q2+q3+q4+q5+q6+q7for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 29: replace ma19w=a9*y[X-9]+a8*y[X-8]+a7*y[X-7]+a6*y[X-6]+a5*y[X-5]+a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4]+a5*y[X+5]+a6*y[X+6]+a7*y[X+7] in X* Observación 30scalar sumaq=q9+q8+q7+q6+q5+q4+q3+q2+q1+q0+q1+q2+q3+q4+q5+q6for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 30: replace ma19w=a9*y[X-9]+a8*y[X-8]+a7*y[X-7]+a6*y[X-6]+a5*y[X-5]+a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4]+a5*y[X+5]+a6*y[X+6] in X* Observación 31scalar sumaq=q9+q8+q7+q6+q5+q4+q3+q2+q1+q0+q1+q2+q3+q4+q5for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 31: replace ma19w=a9*y[X-9]+a8*y[X-8]+a7*y[X-7]+a6*y[X-6]+a5*y[X-5]+a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4]+a5*y[X+5] in X* Observación 32scalar sumaq=q9+q8+q7+q6+q5+q4+q3+q2+q1+q0+q1+q2+q3+q4for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 32: replace ma19w=a9*y[X-9]+a8*y[X-8]+a7*y[X-7]+a6*y[X-6]+a5*y[X-5]+a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3]+a4*y[X+4] in X* Observación 33scalar sumaq=q9+q8+q7+q6+q5+q4+q3+q2+q1+q0+q1+q2+q3for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 33: replace ma19w=a9*y[X-9]+a8*y[X-8]+a7*y[X-7]+a6*y[X-6]+a5*y[X-5]+a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2]+a3*y[X+3] in X

Código en STATA

* Observación 34scalar sumaq=q9+q8+q7+q6+q5+q4+q3+q2+q1+q0+q1+q2for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 34: replace ma19w=a9*y[X-9]+a8*y[X-8]+a7*y[X-7]+a6*y[X-6]+a5*y[X-5]+a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1]+a2*y[X+2] in X* Observación 35scalar sumaq=q9+q8+q7+q6+q5+q4+q3+q2+q1+q0+q1for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 35: replace ma19w=a9*y[X-9]+a8*y[X-8]+a7*y[X-7]+a6*y[X-6]+a5*y[X-5]+a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X]+a1*y[X+1] in X* Observación 36scalar sumaq=q9+q8+q7+q6+q5+q4+q3+q2+q1+q0for num 0/9: scalar aX=qX/sumaqfor num 0/9: display aXfor num 36: replace ma19w=a9*y[X-9]+a8*y[X-8]+a7*y[X-7]+a6*y[X-6]+a5*y[X-5]+a4*y[X-4]+a3*y[X-3]+a2*y[X-2]+a1*y[X-1]+a0*y[X] in X* Gráfica final Serie Original y Serie MA19 Ponderadatwoway (scatter y t) (line ma19w t), title("Weighted MA19 smoother") xtitle("Month") ytitle("Total sales (liters)") saving("C:\mwhdata\AvMA19.gph", replace) * Listado de Observaciones Serie Original y Serie MA19 Ponderadalist

Código en STATA

* Función de Ponderadores MA 19 bajo la función cuárticaclearset obs 19gen j=_n-10gen double q=(1-(j/9)^2)^2sum qgen double a=q/r(sum)list, sumline a j, title("Función de Ponderadores MA 19 bajo función cuártica") xtitle("Término") ytitle("Ponderador") saving("C:\mwhdata\Weights.gph", replace)

* Función de Ponderadores bajo la función cuártica para el Ajuste (MA 10) de la Observación 36 de la serie MA 19 clearset obs 10gen j=_n-10gen double q=(1-(j/9)^2)^2sum qgen double a=q/r(sum)list, sumline a j, title("Función de Ponderadores para la Observación 36") xtitle("Término") ytitle("Ponderador") saving("C:\mwhdata\Weights36.gph", replace)

Código en STATA

* Suavizamiento por Regresión Localinsheet y using "C:\mwhdata\shampoo.csv", cleargen t=_ntsset tlabel var y "liters"gen yreg=.

* Observación 22* Paso 1 Identificar las observaciones de la muestra a considerarscatter y t, xline(13 31)gen j=.replace j=_n-22 in 13/31* Paso 2 Definición de Ponderadoresgen double q=.replace q=(1-(j/9)^2)^2 in 13/31sum qgen double a=q/r(sum)* Paso 3 Estimación por Mínimos Cuadrados Ponderadosregress y t in 13/31 [aw=a]predict yhattwoway (scatter y t, xline(13 31) mlabel(t)) (line yhat t) (scatter yhat t if t==22, mcolor(red) msize(large))replace yreg=yhat[22] in 22drop j q a yhat* Paso 4 Repetir para las observaciones 10 a 21 y 23 a 27 y ajustes restantes para trazar* curva de tendencia-ciclo estimada a partir de los puntos locales de las respectivas* regresiones.

Código en STATA

* Descomposición Aditiva* Paso 0 Preparar la Serie de Tiempo para su Descomposiciónlabel drop _allinsheet hsales using "c:\mwhdata\hsales.csv", cleargen t=.replace t=ym(1973,1) in 1for num 2/275: replace t=t[X-1]+1 in Xformat t %tmlabel var t "Month"tsset t* Paso 1 Estimar Tendencia-Ciclo * 2x12 MA smoother for Housing sales data* Serie de Promedios Móviles Centrados 2x12 MA* Se genera la serie MA12tssmooth ma ma12=hsales, window(6 1 5)graph twoway (line hsales t, lcolor(yellow)) (line ma12 t, lcolor(black)), title("12 MA smoother (uncentered)") ytitle("Total sales") saving("c:\mwhdata\hsales12MA.gph",replace)* Se aplican promedios móviles MA2 a la serie MA12 obtenidatssmooth ma ma2ma12=ma12, window(1 1 0)graph twoway (line hsales t, lcolor(yellow)) (line ma2ma12 t, lcolor(black)), title("Centered 12 MA smoother") ytitle("Total sales") saving("c:\mwhdata\hsales2x12MA.gph",replace)* Paso 2 Eliminar Tendencia-Ciclo gen double detrend=hsales-ma2ma12graph twoway (line hsales t, lcolor(yellow)) (line ma2ma12 t, lcolor(red)) (line detrend t, lcolor(blue)), title("original, trend-cycle & de-trended housing sales series") ytitle("Total sales") saving("c:\mwhdata\detrendedMA2x12.gph",replace)

Código en STATA

* Paso 3 Obtener el componente de Estacionalidadgen obs=_ngen mes=""replace mes="Ene" if mod(obs,12)==1replace mes="Feb" if mod(obs,12)==2replace mes="Mar" if mod(obs,12)==3replace mes="Abr" if mod(obs,12)==4replace mes="May" if mod(obs,12)==5replace mes="Jun" if mod(obs,12)==6replace mes="Jul" if mod(obs,12)==7replace mes="Ago" if mod(obs,12)==8replace mes="Sept" if mod(obs,12)==9replace mes="Oct" if mod(obs,12)==10replace mes="Nov" if mod(obs,12)==11replace mes="Dic" if mod(obs,12)==0gen month=.replace month=1 if mes=="Ene"replace month=2 if mes=="Feb"replace month=3 if mes=="Mar"replace month=4 if mes=="Abr"replace month=5 if mes=="May"replace month=6 if mes=="Jun"replace month=7 if mes=="Jul"replace month=8 if mes=="Ago"replace month=9 if mes=="Sept"replace month=10 if mes=="Oct"replace month=11 if mes=="Nov"replace month=12 if mes=="Dic"label define month 1 "Jan" 2 "Feb" 3 "Mar" 4 "Apr" 5 "May" 6 "Jun" 7 "Jul" 8 "Aug" 9 "Sep" 10 "Oct" 11 "Nov" 12 "Dec"label values month monthsort monthtable month, c(mean detrend) f(%19.9f)

Código en STATAgen double season=.replace season=-7.077898274 if month==1replace season=-1.293995899 if month==2replace season=8.977742568 if month==3replace season=7.868356705 if month==4replace season=7.246618354 if month==5replace season=4.677504000 if month==6replace season=1.483531288 if month==7replace season=2.823056428 if month==8replace season=-1.488043578 if month==9replace season=-2.557064720 if month==10replace season=-9.138068655 if month==11replace season=-12.443181645 if month==12tsset tgraph twoway (line season t), title("Estacionalidad") saving("c:\mwhdata\season.gph",replace)* Paso 4 Obtener el componente de Irregularidadgen double irreg=.replace irreg=hsales-season-ma2ma12tsset tgraph twoway (line irreg t), title("Irregularidad") saving("c:\mwhdata\irregular.gph",replace)* Gráfica del Índice de Estacionalidadcollapse (mean) detrend, by(mes)gen month=.replace month=1 if mes=="Ene"replace month=2 if mes=="Feb"replace month=3 if mes=="Mar"replace month=4 if mes=="Abr"replace month=5 if mes=="May"replace month=6 if mes=="Jun"replace month=7 if mes=="Jul"replace month=8 if mes=="Ago"replace month=9 if mes=="Sept"replace month=10 if mes=="Oct"replace month=11 if mes=="Nov"replace month=12 if mes=="Dic"label values month monthsort monthline detrend month, title("Índice Estacional") xlabel(1(1)12) saving("c:\mwhdata\seasonindex.gph",replace)

Código en STATA

* Descomposición Multiplicativainsheet passengers using "c:\mwhdata\airline.csv", clear* Paso 0 Preparar la Serie de Tiempo para su Descomposiciónlabel drop _allgen t=.replace t=ym(1949,1) in 1for num 2/96: replace t=t[X-1]+1 in Xformat t %tmlabel var t "Month"tsset t* Paso 1 Estimar Tendencia-Ciclo * 2x12 MA smoother * Serie de Promedios Móviles Centrados 2x12 MA* Se genera la serie MA12tssmooth ma ma12=passengers, window(6 1 5)graph twoway (line passengers t, lcolor(yellow)) (line ma12 t, lcolor(black)), title("12 MA smoother (uncentered)") ytitle("passenger traffic (in thousands)") saving("c:\mwhdata\passengers12MA.gph",replace)* Se aplican promedios móviles MA2 a la serie MA12 obtenidatssmooth ma ma2ma12=ma12, window(0 1 1)graph twoway (line passengers t, lcolor(yellow)) (line ma2ma12 t, lcolor(black)), title("Centered 12 MA smoother") ytitle("Passengers (thousands)") saving("c:\mwhdata\passeng2x12MA.gph",replace)* Paso 2 Cálculo de la razón porcentual datos a promedio móvilgen double ratio=passengers*100/ma2ma12graph twoway (line passengers t, lcolor(yellow)) (line ma2ma12 t, lcolor(black)) (line ratio t, lcolor(red)), title("original, trend-cycle & detrended passenger travel series") ytitle("Passengers (thousands)") saving("c:\mwhdata\detrendedMA2x12mult.gph",replace)

Código en STATA* Paso 3 Cálculo del Índice Estacionalgen obs=_ngen mes=""replace mes="Ene" if mod(obs,12)==1replace mes="Feb" if mod(obs,12)==2replace mes="Mar" if mod(obs,12)==3replace mes="Abr" if mod(obs,12)==4replace mes="May" if mod(obs,12)==5replace mes="Jun" if mod(obs,12)==6replace mes="Jul" if mod(obs,12)==7replace mes="Ago" if mod(obs,12)==8replace mes="Sept" if mod(obs,12)==9replace mes="Oct" if mod(obs,12)==10replace mes="Nov" if mod(obs,12)==11replace mes="Dic" if mod(obs,12)==0gen month=.replace month=1 if mes=="Ene"replace month=2 if mes=="Feb"replace month=3 if mes=="Mar"replace month=4 if mes=="Abr"replace month=5 if mes=="May"replace month=6 if mes=="Jun"replace month=7 if mes=="Jul"replace month=8 if mes=="Ago"replace month=9 if mes=="Sept"replace month=10 if mes=="Oct"replace month=11 if mes=="Nov"replace month=12 if mes=="Dic"label define month 1 "Jan" 2 "Feb" 3 "Mar" 4 "Apr" 5 "May" 6 "Jun" 7 "Jul" 8 "Aug" 9 "Sep" 10 "Oct" 11 "Nov" 12 "Dec"label values month monthsort monthtable month, c(mean ratio) f(%19.9f)

Código en STATAgen double season=.replace season=90.797389974 if month==1replace season=90.438392078 if month==2replace season=102.947138301 if month==3replace season=98.663833075 if month==4replace season=97.402091271 if month==5replace season=109.434043862 if month==6replace season=120.609398326 if month==7replace season=119.058600173 if month==8replace season=105.526891616 if month==9replace season=91.695788069 if month==10replace season=79.634994776 if month==11replace season=90.229136994 if month==12tsset tgraph twoway (line season t), title("Estacionalidad") saving("c:\mwhdata\seasonmult.gph",replace)* Paso 4 Obtener el componente de Irregularidadgen double irreg=.replace irreg=passengers/(season*ma2ma12)tsset tgraph twoway (line irreg t), title("Irregularidad") saving("c:\mwhdata\irregularmult.gph",replace)* Gráfica del Índice de Estacionalidadcollapse (mean) ratio, by(mes)gen month=.replace month=1 if mes=="Ene"replace month=2 if mes=="Feb"replace month=3 if mes=="Mar"replace month=4 if mes=="Abr"replace month=5 if mes=="May"replace month=6 if mes=="Jun"replace month=7 if mes=="Jul"replace month=8 if mes=="Ago"replace month=9 if mes=="Sept"replace month=10 if mes=="Oct"replace month=11 if mes=="Nov"replace month=12 if mes=="Dic"label values month monthsort monthline ratio month, title("Índice Estacional") xlabel(1(1)12) saving("c:\mwhdata\seasonindexmult.gph",replace)