Download p - seriesdetiempo

Document related concepts
no text concepts found
Transcript
Curso de Econometría de Series de Tiempo
Facultad de Economía
Universidad Nacional Autónoma de México
Herramientas básicas de Pronósticos
Profesor: Juan Francisco Islas
Adjunto: Miguel Heras
Ciudad Universitaria, Agosto 2012
Tipos de Datos: Corte Transversal y Series de Tiempo
cars.csv
beer.csv
Tipos de Patrones en Series de Tiempo
Historical data
b. U.S. Treasury bill contracts
price
84 86 88 90 92
a. Australian electricity production
H : Horizontal
T,S,C
S : Estacional
0
million kwh
5000 1000015000
Four variables for which forecasts might be required
1955m1
1960m1
1965m1
1970m1
1975m1
1980m1
1985m1
1990m1
1995m1
Month
c. Sales of product C
20
millions units
200 300 400 500 600
0
10
60
80
100
day
d. Australian clay brick production
T : Tendencia
0
40
C : Cíclico
H
units sold
5
10
0
T
20
month
30
40
T,S,C
1955q1
1960q1
1965q1
1970q1
1975q1
1980q1
1985q1
1990q1
1995q1
Quarter
Monthly Australian beer production
H,S,C
120
140
megaliters
160
180
200
Visualización de Datos
1991m1
1992m 1
1993m1
Month
1994m 1
1995m1
Visualización de Datos: Estacionalidad
200
Monthly Australian beer production
120
140
megaliters
160
180
S
Jan
Feb
Mar
Apr
May
Jun
Jul
month
Aug
Sep
O ct
Nov
Dec
Visualización de Datos: Dispersión y Correlación
5000
Price (dolars)
10000
15000
20000
25000
Price/mileage relationship for 45 automobiles
15
20
25
Mileag e (mp g)
Ma de i n Ja p an
30
Mad e in USA
35
Estadística Descriptiva Univariada
Tendencia
Central
Media
Mediana
Dispersión
DAM
DMC
Varianza
Desv. Est.
Estadística Descriptiva Bivariada
30000
Japan
0
10000
20000
Covarianza
20
25
30
35
Mileage (mpg)
Price (dolars)
10000
20000
30000
USA
0
Correlación
Fitted values
15
20
25
Mileage (mpg)
Price (dolars)
30
Fitted values
35
Análisis Univariado de Series de Tiempo
Autocovarianza
T
∑(Y − Y )(Y
ck = t =k +1
t −k
t
−Y )
T
Autocorrelación
T
rk =
∑ (Y − Y )(Y
t = k +1
t −k
t
T
∑ (Y − Y )
t =1
2
t
−Y )
ck
= 2
SY
Cálculo de Autocovarianza y Autocorrelación
En Excel
Ver hoja de cálculo anexa
-0.40
Autocorrelations of production
-0.20
0.00
0.20
0.40
0.60
En STATA
0
5
10
Lag
Bartlett's formula for MA(q) 95% confidence bands
15
Cálculo de Autocovarianza y Autocorrelación
-0.50
Autocorrelations of production
0.00
0.50
Cálculo de Autocovarianza y Autocorrelación
0
5
10
15
Lag
Bartlett's formula for MA(q) 95% confidence bands
20
25
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
-50
error
0
50
Para el pronóstico ingenuo 1 (NF1)
1991m1
1992m1
1993m1
1994m1
t
1995m1
Error del Pronóstico
Función de Autocorrelación del Error de Pronóstico
Hay un patrón estacional
en la serie de error
0.40
Puede haber información adicional
en la serie, la cual no es
capturada por el método de
pronóstico utilizado.
Autocorrelations of error
-0.20
0.00
0.20
2
2
=
= 0.27
n
56
-0.40
2
2
−
=−
= −0.27
n
56
0
5
10
15
Lag
Bartlett's formula for MA(q) 95% confidence bands
20
25
Intervalos de Predicción del Pronóstico
Para el periodo n+1
[
]
P Fn+1 − z MSE < Yn+1 < Fn+1 + z MSE = 1 − α
Al 90% de confianza
Para septiembre 1995
[
]
P 140.5 − 1.645 142.52 < Yn +1 < 140.5 + 1.645 142.52 = 0.90
P[120.86 < Yn +1 < 160.14] = 0.90
Para octubre 1995
[
]
P 167.25 − 1.645 142.52 < Yn + 2 < 167.25 + 1.645 142.52 = 0.90
P[147.61 < Yn + 2 < 186.89] = 0.90
Intervalos de Predicción del Pronóstico
El cálculo del error cuadrático medio (MSE) bajo la fórmula
1 n 2
MSE = ∑ et
n t =1
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 MSE h
( )
n
1
(h)
MSE h =
e
∑
t
n − h t = h +1
El intervalo de predicción para el periodo
[
n+h
2
toma la forma
]
P Fn + h − z MSEh < Yn + h < Fn + h + z MSEh = 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.
Estimación por Mínimos Cuadrados
datos=patrón+error
Yi = Yˆ + ei
expendit.csv
Para 3 pronósticos propuestos, se calcula el error cuadrático medio MSE)
Estimación por Mínimos Cuadrados
Función de error cuadrático medio (MSE) para 21 pronósticos propuestos
100
Yˆ1 = 0, Yˆ2 = 1, Yˆ3 = 2, L , Yˆ19 = 18, Yˆ20 = 19, Yˆ21 = 20
Mean Squared Error (MSE)
40
60
80
Yˆ11 = 10
0
20
es el pronóstico que
minimiza el error
cuadrático medio
(MSE)
0
5
10
Estimate Value
15
20
Estimación por Mínimos Cuadrados
ei = Yi − Yˆ
error = datos - patrón
SSE = ∑ e = ∑ (Yi − Yˆ )
T
T
min
Yˆ
t =1
C.P.O.
2
i
T
dSSE
= −2∑ (Yi − Yˆ ) = 0
dYˆ
t =1
T
T
T
∑ Yi = ∑ Yˆ
t =1
t =1
T
TYˆ = ∑ Yi
t =1
Yˆ =
∑Y
t =1
T
i
=
120
12
Yˆ = Y = 10
2
t =1
C.S.O.
2
T
d SSE
ˆ
=
2
Y
>0
∑
2
dYˆ
t =1
Pronóstico con base en la media
Yˆ = Y = a
Yˆ = Y = 13.938
cars.csv
MSE = 27.63
Pronóstico con base en regresión lineal
25
Yˆ = αˆ + βˆX
20
Yˆ = 32.1 − 0.735 X
5
10
15
SSE = 246.913
20
25
30
mileage
pricem
Fitted values
35
MSE = 14.52
a. Australian electricity production
⎧− Yt p
⎪
Wt = ⎨log(Yt )
⎪ p
⎩Yt
p =1
5000
million kwh
10000
15000
Transformación potencia y transformación reversa
elec.csv
p=0
p>0
0
Power transformations
Australian electricity production series
p=0
25
1
2
scubprod
15
20
p=
1
p=
3
1956m7
1976m1
Month
1995m7
1956m7
1995m7
negrprod
-.0005
0
p=0
p = −1
-.001
7
1956m7
1976m1
Month
Negative reciprocal
logprod
8
9
10
Logarithm
p>0
Cube root
10
p<0
Square root
50
sqprod
100
150
1955m1 1960m1 1965m1 1970m1 1975m1 1980m1 1985m1 1990m1 1995m1
Month
1
⎧
⎪− (Wt ) p
⎪
Yt = ⎨exp(Wt )
⎪ 1
⎪W p
⎩ t
p<0
1976m1
Month
1995m7
1956m7
1976m1
Month
1995m7
1000
Ajuste de calendario
900
milk.csv
días por mes promedio
días en el mes t
365.25/12
Wt = Yt ×
días en el mes t
200
Para datos financieros:
Wt = Yt ×
días de operación por mes promedio
días operados en el mes t
Otros ajustes:
• Por inflación
• Demográficos
• etc.
1000
150
900
100
t
w
800
50
700
0
600
500
600
pounds
700
800
Wt = Yt ×
0
50
100
t
150
200
Código en STATA
* Tipos de Patrones en Series de Tiempo
insheet production notes using "c:\mwhdata\elec.csv", clear
label var production "million kwh"
gen t=.
replace t=ym(1956,3) in 1
for num 2/475: replace t=t[X-1]+1 in X
format t %tm
label 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", clear
label var price "price"
gen t=_n
label 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", clear
label var sold "units sold"
gen t=_n
label 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", clear
label var bricksq "millions units"
gen t=.
replace t=yq(1956,1) in 1
for num 2/154: replace t=t[X-1]+1 in X
format t %tq
label 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 Datos
insheet production using "c:\mwhdata\beer2.csv", clear
label var production "megaliters"
gen t=.
replace t=ym(1991,1) in 1
for num 2/56: replace t=t[X-1]+1 in X
format t %tm
label var t "Month"
gen year=1991 in 1/12
replace year=1992 in 13/24
replace year=1993 in 25/36
replace year=1994 in 37/48
replace year=1995 in 49/56
gen month=.
for num 1 13 25 37 49: replace month=1 in X
for num 2 14 26 38 50: replace month=2 in X
for num 3 15 27 39 51: replace month=3 in X
for num 4 16 28 40 52: replace month=4 in X
for num 5 17 29 41 53: replace month=5 in X
for num 6 18 30 42 54: replace month=6 in X
for num 7 19 31 43 55: replace month=7 in X
for num 8 20 32 44 56: replace month=8 in X
for num 9 21 33 45: replace month=9 in X
for num 10 22 34 46: replace month=10 in X
for num 11 23 35 47: replace month=11 in X
for num 12 24 36 48: replace month=12 in X
label 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 mes
twoway line production t, title("Monthly Australian beer production") saving("c:\mwhdata\c2g1.gph",replace)
* Visualización de Estacionalidad en los Datos
twoway (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("Monthly
Australian beer production") xlabel(1(1)12, valuelabel) legend(off) saving("c:\mwhdata\c2g2.gph",replace)
Código en STATA
* Dispersión y Correlación Lineal
insheet 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 Univariadas
bysort country: summarize mileage, detail
* Estadísticas Bivariadas
bysort country: correlate mileage price, covariance
bysort country: correlate mileage price
* Función de Autocorrelation para una Serie de Tiempo
insheet production using "c:\mwhdata\beer2.csv", clear
label var production "megaliters"
gen t=.
replace t=ym(1991,1) in 1
for num 2/56: replace t=t[X-1]+1 in X
format t %tm
label var t "Month"
tsset t
corrgram production, lags(14)
corrgram production
sum production
ac production
* Función de Autocorrelación del Error de Pronóstico
insheet production using "c:\mwhdata\beer2.csv", clear
label var production "megaliters"
gen t=.
replace t=ym(1991,1) in 1
for num 2/56: replace t=t[X-1]+1 in X
format t %tm
* Pronóstico Ingenuo 1 (NF1)
gen nf1=.
for num 2/56:replace nf1 = production[X-1] in X
gen double error = production - nf1
twoway (line error t)
tsset t
corrgram error
ac error
Código en STATA
* Estimación por Mínimos Cuadrados
insheet amount using "c:\mwhdata\expendit.csv", clear
label var amount "Amount Spent (dolars)"
gen y1f=7
gen y2f=10
gen y3f=12
for num 1/3:gen double errorX=amount-yXf
for num 1/3:gen double sqerrorX=errorX*errorX
list, sum mean
* Solución visual del problema de Mínimos Cuadrados
insheet amount using "c:\mwhdata\expendit.csv", clear
for num 0/20:gen yXf=X
for num 0/20:gen errorX=amount-yXf
for num 0/20:gen sqerrorX=errorX^2
tabstat sqerror*, col(stats)
* Llevar datos a Excel y generar base de MSE y est
label var mse "Mean Squared Error (MSE)"
label var est "Estimate Value"
line mse est
list, clean
* Pronóstico con base en la Media
insheet make country mileage price using "c:\mwhdata\Cars.csv", clear
keep if country=="Japan"
gen pricem=price/1000
sum pricem
gen mvalue=r(mean)
gen error=pricem-mvalue
gen sqerror=error*error
list, sum mean
* Pronóstico con base en Regresión Lineal
reg pricem mileage
graph twoway (scatter pricem mileage) (lfit pricem mileage)
Código en STATA
* Transformaciones
insheet production notes using "c:\mwhdata\elec.csv", clear
label var production "million kwh"
gen t=.
replace t=ym(1956,3) in 1
for num 2/475: replace t=t[X-1]+1 in X
format t %tm
label var t "Month"
twoway line production t, title("a. Australian electricity production") saving("c:\mwhdata\c1g1.gph",replace)
* Raíz cuadrada
gen 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úbica
gen double scubprod=production^(1/3)
twoway line scubprod t, xlabel(#3) ylabel(#3) title("Cube root") saving("c:\mwhdata\c1g1_b.gph",replace)
* Logaritmo
gen double logprod=log(production)
twoway line logprod t, xlabel(#3) ylabel(#3) title("Logarithm") saving("c:\mwhdata\c1g1_c.gph",replace)
* Recíproco negativo
gen double negrprod=-1/production
twoway 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 Calendario
insheet pounds using "c:\mwhdata\milk.csv", clear
gen t=_n
line pounds t
gen mes=""
replace mes="Ene" if mod(t,12)==1
replace mes="Feb" if mod(t,12)==2
replace mes="Mar" if mod(t,12)==3
replace mes="Abr" if mod(t,12)==4
replace mes="May" if mod(t,12)==5
replace mes="Jun" if mod(t,12)==6
replace mes="Jul" if mod(t,12)==7
replace mes="Ago" if mod(t,12)==8
replace mes="Sept" if mod(t,12)==9
replace mes="Oct" if mod(t,12)==10
replace mes="Nov" if mod(t,12)==11
replace mes="Dic" if mod(t,12)==0
gen 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