Herramientas básicas de Pronósticos...0 5000 10000 15000 million kwh...
Transcript of Herramientas básicas de Pronósticos...0 5000 10000 15000 million kwh...
Curso de Econometría de Series de Tiempo
Facultad de Economía
Universidad Nacional Autónoma de México
Profesor: Juan Francisco Islas
Ciudad Universitaria, 5 de febrero 2013
Herramientas básicasde Pronósticos
Tipos de Datos: Corte Transversal y Series de Tiempocars.csv beer.csv
050
0010
0001
5000
mill
ion
kwh
1955m11960m11965m11970m11975m11980m11985m11990m11995m1Month
a. Australian electricity production
8486
8890
92pr
ice
0 20 40 60 80 100day
b. U.S. Treasury bill contracts
05
10un
its s
old
0 10 20 30 40month
c. Sales of product C
200
300
400
500
600
mill
ions
uni
ts
1955q11960q11965q11970q11975q11980q11985q11990q11995q1Quarter
d. Australian clay brick production
Four variables for which forecasts might be requiredHistorical data
Tipos de Patrones en Series de Tiempo
H : Horizontal
S : Estacional
C : Cíclico
T : Tendencia
T,S,C T
T,S,C
H
120
140
160
180
200
meg
alite
rs
1991m1 1992m1 1993m1 1994m1 1995m1Month
Monthly Australian beer production
Visualización de Datos
H,S,C
120
140
160
180
200
meg
alite
rs
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Decmonth
Monthly Australian beer production
Visualización de Datos: Estacionalidad
S
Visualización de Datos: Dispersión y Correlación50
0010
000
1500
020
000
2500
0P
rice
(dol
ars)
15 20 25 30 35Mileage (mpg)
Made in Japan Made in USA
Price/mileage relationship for 45 automobiles
Estadística Descriptiva Univariada
MediaMediana
DAMDMCVarianzaDesv. Est.
Tendencia Central
Dispersión
010
000
2000
030
000
20 25 30 35Mileage (mpg)
Price (dolars) Fitted values
Japan
Estadística Descriptiva Bivariada
Covarianza
Correlación0
1000
020
000
3000
0
15 20 25 30 35Mileage (mpg)
Price (dolars) Fitted values
USA
Análisis Univariado de Series de Tiempo
Autocovarianza
Autocorrelación
( )( )
T
YYYYc
T
ktktt
k
∑+=
− −−= 1
( )( )
( )2
1
2
1
Y
kT
tt
T
ktktt
k Sc
YY
YYYYr =
−
−−=
∑
∑
=
+=−
Cálculo de Autocovarianza y Autocorrelación
En Excel
En STATA
-0.4
0-0
.20
0.00
0.20
0.40
0.60
Auto
corre
latio
ns o
f pro
duct
ion
0 5 10 15Lag
Bartlett's formula for MA(q) 95% confidence bands
Ver hoja de cálculo anexa
Cálculo de Autocovarianza y Autocorrelación
-0.5
00.
000.
50A
utoc
orre
latio
ns o
f pro
duct
ion
0 5 10 15 20 25Lag
Bartlett's formula for MA(q) 95% confidence bands
Cálculo de Autocovarianza y Autocorrelación
Medidas de precisión de pronóstico
Contenido de la plantilla Excel para los cálculos de
• Pronóstico (F)• Error Medio (ME)• Error Absoluto Medio (MAE) • Error Cuadrático Medio (MSE)• Error Porcentual Medio (MPE)• Error Absoluto Porcentual Medio (MAPE)• Pronóstico Ingenuo 1 (NF1)
Este pronóstico es la observación disponible más reciente.
• U de Theil
Error del Pronóstico-5
00
50er
ror
1991m1 1992m1 1993m1 1994m1 1995m1t
Para el pronóstico ingenuo 1 (NF1)
Error del Pronóstico
Función de Autocorrelación del Error de Pronóstico-0
.40
-0.2
00.
000.
200.
40A
utoc
orre
latio
ns o
f err
or
0 5 10 15 20 25Lag
Bartlett's formula for MA(q) 95% confidence bands
Hay un patrón estacional en la serie de error
Puede haber información adicional en la serie, la cual no es capturada por el método de pronóstico utilizado.
27.05622
==n
27.05622
−=−=−n
Intervalos de Predicción del Pronóstico
[ ] α−=+<<− +++ 1111 MSEzFYMSEzFP nnn
Al 90% de confianza
[ ] 90.052.142645.15.14052.142645.15.140 1 =+<<− +nYPPara septiembre 1995
[ ] 90.014.16086.120 1 =<< +nYP
[ ] 90.052.142645.125.16752.142645.125.167 2 =+<<− +nYPPara octubre 1995
[ ] 90.089.18661.147 2 =<< +nYP
Para el periodo n+1
Intervalos de Predicción del Pronóstico
( )∑+=−
=n
ht
hth e
hnMSE
1
2)(1
Antes de estimar intervalos de predicción mediante este método, deben verificarse los supuestos de media cero y distribución normal de los errores.
El cálculo del error cuadrático medio (MSE) bajo la fórmula
es aplicable a pronósticos de un sólo periodo.
Para pronósticos multi-periodo se requiere utilizar una forma modificada del error cuadrático medio hMSE
∑=
=n
tte
nMSE
1
21
[ ] α−=+<<− +++ 1hhnhnhhn MSEzFYMSEzFP
El intervalo de predicción para el periodo toma la formahn +
Estimación por Mínimos Cuadrados
expendit.csvdatos=patrón+error ii eYY += ˆ
Para 3 pronósticos propuestos, se calcula el error cuadrático medio MSE)
Estimación por Mínimos Cuadrados
020
4060
8010
0M
ean
Squ
ared
Err
or (M
SE
)
0 5 10 15 20Estimate Value
Función de error cuadrático medio (MSE) para 21 pronósticos propuestos
20ˆ,19ˆ,18ˆ,,2ˆ,1ˆ,0ˆ212019321 ====== YYYYYY L
101̂1 =Yes el pronóstico que minimiza el error cuadrático medio (MSE)
Estimación por Mínimos Cuadrados
( )∑∑==
−==T
ti
T
tiY
YYeSSE1
2
1
2ˆ
ˆmin
C.P.O.
( )∑=
=−−=T
ti YY
YddSSE
10ˆ2ˆ
∑∑==
=T
t
T
ti YY
11
ˆ
∑=
=T
tiYYT
1
ˆ
12120ˆ 1 ==
∑=
T
YY
T
ti
10ˆ == YY
C.S.O.
∑=
>=T
tY
YdSSEd
12
2
0ˆ2ˆ
error = datos - patrón YYe iiˆ−=
Pronóstico con base en la media
aYY ==ˆ
938.13ˆ == YY 63.27=MSE
cars.csv
510
1520
25
20 25 30 35mileage
pricem Fitted values
Pronóstico con base en regresión lineal
XY βα ˆˆˆ +=
52.14=MSE
XY 735.01.32ˆ −=913.246=SSE
5010
015
0sq
prod
1956m7 1976m1 1995m7Month
Square root
1015
2025
scub
prod
1956m7 1976m1 1995m7Month
Cube root7
89
10lo
gpro
d
1956m7 1976m1 1995m7Month
Logarithm
-.001
-.000
50
negr
prod
1956m7 1976m1 1995m7Month
Negative reciprocal
Australian electricity production seriesPower transformations
050
0010
000
1500
0m
illio
n kw
h
1955m1 1960m1 1965m1 1970m1 1975m1 1980m1 1985m1 1990m1 1995m1Month
a. Australian electricity production
Transformación potencia y transformación reversa
elec.csv( )⎪⎩
⎪⎨
⎧
>
=<−
=
0
0log0
pY
pYpY
Wp
t
t
pt
t1=p
21
=p
1−=p
31
=p
0=p
( )( )
⎪⎪
⎩
⎪⎪
⎨
⎧
>
=<−
=
0
0exp0
1
1
pW
pWpW
Y
pt
t
pt
t
500
600
700
800
900
1000
poun
ds
0 50 100 150 200t
Ajuste de calendario
600
700
800
900
1000
w
0 50 100 150 200t
tYW tt mes elen días
promedio mespor días×=
milk.csv
tYW tt mes elen días
365.25/12×=
tYW tt mes elen operados días
promedio mespor operación de días×=
Para datos financieros:
Otros ajustes:• Por inflación• Demográficos• etc.
Código en STATA* Tipos de Patrones en Series de Tiempoinsheet production notes using "c:\mwhdata\elec.csv", clearlabel var production "million kwh"gen t=.replace t=ym(1956,3) in 1for num 2/475: replace t=t[X-1]+1 in Xformat t %tmlabel var t "Month"twoway line production t, xlabel(#3) title("a. Australian electricity production") saving("c:\mwhdata\c1g1.gph",replace)
insheet price using "c:\mwhdata\ustreas.csv", clearlabel var price "price"gen t=_nlabel var t "day"twoway line price t, title("b. U.S. Treasury bill contracts") saving("c:\mwhdata\c1g2.gph",replace)
insheet sold using "c:\mwhdata\prodc.csv", clearlabel var sold "units sold"gen t=_nlabel var t "month"twoway line sold t, title("c. Sales of product C") saving("c:\mwhdata\c1g3.gph",replace)
insheet bricksq notes using "c:\mwhdata\bricksq.csv", clearlabel var bricksq "millions units"gen t=.replace t=yq(1956,1) in 1for num 2/154: replace t=t[X-1]+1 in Xformat t %tqlabel var t "Quarter"twoway line bricksq t, xlabel(#3) title("d. Australian clay brick production") saving("c:\mwhdata\c1g4.gph",replace)
graph combine "c:\mwhdata\c1g1.gph" "c:\mwhdata\c1g2.gph" "c:\mwhdata\c1g3.gph" "c:\mwhdata\c1g4.gph", title("Historical data") subtitle("Four variables for which forecasts might be required") saving("c:\mwhdata\c1g5.gph",replace)
Código en STATA* Visualización de Datosinsheet production using "c:\mwhdata\beer2.csv", clear label var production "megaliters"gen t=.replace t=ym(1991,1) in 1for num 2/56: replace t=t[X-1]+1 in Xformat t %tmlabel var t "Month"gen year=1991 in 1/12replace year=1992 in 13/24replace year=1993 in 25/36replace year=1994 in 37/48replace year=1995 in 49/56gen month=.for num 1 13 25 37 49: replace month=1 in Xfor num 2 14 26 38 50: replace month=2 in Xfor num 3 15 27 39 51: replace month=3 in Xfor num 4 16 28 40 52: replace month=4 in Xfor num 5 17 29 41 53: replace month=5 in Xfor num 6 18 30 42 54: replace month=6 in Xfor num 7 19 31 43 55: replace month=7 in Xfor num 8 20 32 44 56: replace month=8 in Xfor num 9 21 33 45: replace month=9 in Xfor num 10 22 34 46: replace month=10 in Xfor num 11 23 35 47: replace month=11 in Xfor num 12 24 36 48: replace month=12 in Xlabel define mes 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 mestwoway line production t, title("Monthly Australian beer production") saving("c:\mwhdata\c2g1.gph",replace)
* Visualización de Estacionalidad en los Datostwoway (line production month if year==1991) (line production month if year==1992) (line production month if year==1993) (line production month if year==1994) (line production month if year==1995), title("MonthlyAustralian beer production") xlabel(1(1)12, valuelabel) legend(off) saving("c:\mwhdata\c2g2.gph",replace)
Código en STATA* Dispersión y Correlación Linealinsheet make country mileage price using "c:\mwhdata\Cars.csv", clear label var mileage "Mileage (mpg)"label var price "Price (dolars)"twoway (scatter price mileage if country=="Japan", msymbol(O)) (scatter price mileage if country=="USA", msymbol(T)), title("Price/mileage relationship for 45 automobiles") saving("c:\mwhdata\c2g3.gph",replace)* Estadísticas Univariadasbysort country: summarize mileage, detail* Estadísticas Bivariadasbysort country: correlate mileage price, covariancebysort country: correlate mileage price
* Función de Autocorrelation para una Serie de Tiempoinsheet production using "c:\mwhdata\beer2.csv", clear label var production "megaliters"gen t=.replace t=ym(1991,1) in 1for num 2/56: replace t=t[X-1]+1 in Xformat t %tmlabel var t "Month"tsset t corrgram production, lags(14)corrgram productionsum productionac production* Función de Autocorrelación del Error de Pronósticoinsheet production using "c:\mwhdata\beer2.csv", clear label var production "megaliters"gen t=.replace t=ym(1991,1) in 1for num 2/56: replace t=t[X-1]+1 in Xformat t %tm* Pronóstico Ingenuo 1 (NF1)gen nf1=.for num 2/56:replace nf1 = production[X-1] in Xgen double error = production - nf1twoway (line error t)tsset t corrgram errorac error
Código en STATA* Estimación por Mínimos Cuadradosinsheet amount using "c:\mwhdata\expendit.csv", clearlabel var amount "Amount Spent (dolars)"gen y1f=7gen y2f=10gen y3f=12for num 1/3:gen double errorX=amount-yXffor num 1/3:gen double sqerrorX=errorX*errorXlist, sum mean
* Solución visual del problema de Mínimos Cuadradosinsheet amount using "c:\mwhdata\expendit.csv", clearfor num 0/20:gen yXf=Xfor num 0/20:gen errorX=amount-yXffor num 0/20:gen sqerrorX=errorX^2tabstat sqerror*, col(stats)* Llevar datos a Excel y generar base de MSE y estlabel var mse "Mean Squared Error (MSE)"label var est "Estimate Value"line mse estlist, clean
* Pronóstico con base en la Mediainsheet make country mileage price using "c:\mwhdata\Cars.csv", clearkeep if country=="Japan"gen pricem=price/1000sum pricemgen mvalue=r(mean)gen error=pricem-mvaluegen sqerror=error*errorlist, sum mean* Pronóstico con base en Regresión Linealreg pricem mileagegraph twoway (scatter pricem mileage) (lfit pricem mileage)
Código en STATA
* Transformacionesinsheet production notes using "c:\mwhdata\elec.csv", clearlabel var production "million kwh"gen t=.replace t=ym(1956,3) in 1for num 2/475: replace t=t[X-1]+1 in Xformat t %tmlabel var t "Month"twoway line production t, title("a. Australian electricity production") saving("c:\mwhdata\c1g1.gph",replace)* Raíz cuadradagen double sqprod=sqrt(production)twoway line sqprod t, xlabel(#3) ylabel(#3) title("Square root") saving("c:\mwhdata\c1g1_a.gph",replace)* Raíz cúbicagen double scubprod=production^(1/3)twoway line scubprod t, xlabel(#3) ylabel(#3) title("Cube root") saving("c:\mwhdata\c1g1_b.gph",replace)* Logaritmogen double logprod=log(production)twoway line logprod t, xlabel(#3) ylabel(#3) title("Logarithm") saving("c:\mwhdata\c1g1_c.gph",replace)* Recíproco negativogen double negrprod=-1/productiontwoway line negrprod t, xlabel(#3) ylabel(#3) title("Negative reciprocal") saving("c:\mwhdata\c1g1_d.gph",replace)graph combine "c:\mwhdata\c1g1_a.gph" "c:\mwhdata\c1g1_b.gph" "c:\mwhdata\c1g1_c.gph" "c:\mwhdata\c1g1_d.gph", title("Power transformations") subtitle("Australian electricity production series") saving("c:\mwhdata\c1g1_abcd.gph",replace)
Código en STATA
* Ajuste de Calendarioinsheet pounds using "c:\mwhdata\milk.csv", cleargen t=_nline pounds tgen mes=""replace mes="Ene" if mod(t,12)==1replace mes="Feb" if mod(t,12)==2replace mes="Mar" if mod(t,12)==3replace mes="Abr" if mod(t,12)==4replace mes="May" if mod(t,12)==5replace mes="Jun" if mod(t,12)==6replace mes="Jul" if mod(t,12)==7replace mes="Ago" if mod(t,12)==8replace mes="Sept" if mod(t,12)==9replace mes="Oct" if mod(t,12)==10replace mes="Nov" if mod(t,12)==11replace mes="Dic" if mod(t,12)==0gen w=pounds*(365.25/12)/31 if mes=="Ene" | mes=="Mar" | mes=="May" | mes=="Jul" | mes=="Ago" | mes=="Oct" | mes=="Dic"replace w=pounds*(365.25/12)/28 if mes=="Feb"replace w=pounds*(365.25/12)/30 if mes=="Abr" | mes=="Jun" | mes=="Sept" | mes=="Nov"line w t