1.1. Ruido Blanco
clear all
*Generar un Ruido Blanco
set obs 100
gen obs=_n
tsset obs
generate normal=invnorm(uniform())
line normal obs
|
1.2. Paseo aleatorio
*----------------------------------------------------------------
*RANDOM WALKS
forvalues i=1(1)3 {
gen
random_walk_`i'=100
}
*Initial condition: y(0) = 100
*N(0,1) *N(0,5) *N(0,10)
replace
random_walk_1= random_walk_1[_n-1] +
normal if _n>=2
replace
random_walk_2= random_walk_2[_n-1] +
5*normal if _n>=2
replace random_walk_3=
random_walk_3[_n-1] + 10*normal if _n>=2
|
Se
gráfican las series generadas
twoway line random_walk_1 obs ||line
random_walk_2 obs ||line // random_walk_3 obs, ylabel(, nogrid)
|
Una vez obtenidas las series se calculan las funciones de autocorrelación simple y parcial del proceso son:
ac
random_walk_2, saving(Random_Walks_ac, replace)
pac random_walk_2, saving(Random_Walks_pac, replace)
gr combine Random_Walks_ac.gph Random_Walks_pac.gph
|
Modificando el código anterior
se puede generar caminatas aleatorias partiendo del cero.
*RANDOM
WALKS (Around zero)
*Initial
condition: y(0) = 0
gen random_walk00 = 0
replace random_walk00 =
random_walk00[_n-1] + 5*normal if
_n>=2
line random_walk00 obs
|
1.3. Proceso
autoregresivo
forvalues i=1(1)3 {
gen
AR_`i'=0
}
* AR-coef: ,99 *
AR-coef: ,90 *AR-coef: ,30
replace AR_1 =
(0.99*AR_1[_n-1]) + 5*normal if
_n>=2
replace
AR_2 = (0.90*AR_2[_n-1]) + 5*normal if
_n>=2
replace
AR_3 = (0.30*AR_3[_n-1]) + 5*normal if
_n>=2
twoway line AR_1 obs ||line AR_2 obs ||line AR_3
obs, ylabel(, nogrid)
|
Las funciones de
autocorrelación simple y parcial se obtienen en el siguiente comando,
observando como a medida que el parámetro se acerca a 1, este se aleja de la
estacinariedad.
*Funciones
ACS y ACP
ac AR_3, saving(AR_ac30, replace)
pac
AR_3, saving(AR_pac30, replace)
gr
combine AR_ac30.gph AR_pac30.gph
*Funciones
ACS y ACP
ac AR_1, saving(AR_ac99, replace)
pac
AR_1, saving(AR_pac99, replace)
gr
combine AR_ac99.gph AR_pac99.gph
|
Las series anteriores podrían
incluir una una constante, simplemente modificando las lineas de comando donde
generamos las series.
*---------------------------------------------
local
alpha=5
forvalues
i=1(1)3 {
gen AR_`i'`i'=0
}
AR-coef: ,99 * AR-coef: ,90 *AR-coef: ,30
replace AR_11 = `alpha'+(0.99*AR_1[_n-1]) + 5*normal if _n>=2
replace AR_22 =
`alpha'+(0.90*AR_2[_n-1]) + 5*normal
if _n>=2
replace AR_33 =
`alpha'+(0.30*AR_3[_n-1]) + 5*normal
if _n>=2
twoway
line AR_11 obs ||line AR_22 obs ||line AR_33 obs, ylabel(, nogrid) saving(AR,
replace)
|
1.4. Ruido Blanco
con constante
Continuando el primer apartado. un camino aleatorio puede tener una
constante, A la innovación, se le suman constante iguales a 4 o 5. Estos pueden
tener media no nula.
gen
ruido_noise_drift3 = 3+normal
gen
ruido_noise_drift5 = 5+normal
twoway line ruido_noise_drift3 obs
||line ruido_noise_drift5 obs
|
Las
funciones de autocorrelación simple y parcial del proceso se representan por:
*Funciones ACS y ACP
ac ruido_noise_drift3,
saving(ruido_noise_drift3ac, replace)
pac ruido_noise_drift3,
saving(ruido_noise_drift3pac, replace)
gr combine ruido_noise_drift3ac.gph
ruido_noise_drift3pac.gph
|
1.5. Ruido Blanco
con deriva
Sumar una constante a un
camino aleatoria, se genera una tendencia, No determinista. No se parece a una
tendencia determinista, aunque parecería
T(t)= alpha+t(t-1)+e(t)
*WHITE NOISE with drift
forvalues i=1(1)2 {
gen
random_walk_drift_`i'=100
}
*Initial condition: y(0) = 100
*N(0,5)
replace
random_walk_drift_1 = random_walk_drift_1[_n-1]+ 1 + 5*normal if _n>=2
replace
random_walk_drift_2 = random_walk_drift_2[_n-1]+ 5 + 5*normal if _n>=2
twoway line random_walk_drift_1 obs ||line
random_walk_drift_1 obs
|
1.6. Proceso
autoregresivo con tendencia estocástica y deterministica
*----------------------------------------------------------------
*AUTOREGRESSIVE PROCESSES with tendencia estocastica
y deterministica
gen AR_det_1 = 150
gen AR_est_1 = 150
local alpha=10
*AR-coef: ,99
replace
AR_est_1 = `alpha'+(0.9*AR_est_1[_n-1]) +
0.5*normal if _n>=2
replace
AR_det_1 = `alpha'+(0.9*AR_det_1[_n-1]) if _n>=2
twoway line AR_est_1 obs ||line AR_det_1 obs
|
*AUTOREGRESSIVE PROCESSES AR(2)
*stationary
gen
AR_sta_2 = 100
replace AR_sta_2 = 100+normal if _n==2
replace AR_sta_2 = `alpha'+ 0.6*AR_sta_2[_n-1] + 0.3*AR_sta_2[_n-2] + normal if _n>=3
twoway line AR_sta_2 obs
|
Ahora se genera un proceso no estacionario de orden 2.
No estacionario
*Nostationary
gen
AR_nsta_2 = 100
replace AR_nsta_2 = 100+normal if _n==2
replace AR_nsta_2 = 1.5*AR_nsta_2[_n-1] - 0.5*AR_nsta_2[_n-2] + normal if _n>=3
twoway line AR_nsta_2 obs
|| line AR_sta_2 obs
|
1.8. Proceso
media móvil, MA(1)