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