Professional Documents
Culture Documents
LS YCX1X2
GENRX=NRND
SHOWZ.HIST
LS Y Xl X2 C
SMPL IF RESID>O
1 =@OBS(RESID)/@ROWS(RESID)
Gráfico 3.1
l. Esto implica que pueden ser editados desde un procesador de textos estándar,
como MS Word, o incluso desde el Notepad (Block de notas) incluido en MS Windows.
Programación en Econometric Views 151
Imagen 3.1
Ventana de un programa
LS Y C X1 X2
SMPL IF RESID>O
=@OBS(RESID)!@ROWS(RESID)
RUN Ejemplol
Run Program ~
r frogr.n name or p a t h - - - - - - - ,
IID:\WORKS\EJEMPL01.PRG
cE~~--------------,
'
i (' Yerbose [slow) update screenlstatus line ~
i r. Q.uiet [fast) no screenlstatus fine updates
Maximum errors before halting: 11
· W Make this the f!ef ault execution mode i
'
~··-·------·--·------·----··--·--·----------J
¡
Programación en Econometric Viezvs 153
3.1. Macroejecutores
SMPL @ALL
GENR Xl = NRND
GENR X2 = NRND
GENR Y = 3 + 4*Xl - 5*X2 + 2*NRND
SMPL @ALL
GENR Xl = NRND
GENR X2 = NRND
GENR Y = @NRND + @NRND*Xl - @NRND*X2 + 2*NRND
En esta nueva versión, puede verse que los coeficientes han sido
reemplazados por funciones @NRND. Cabe señalar que la diferencia
entre la función NRND y la función @NRND es que la primera genera
series completas de datos aleatorios; mientras que la segunda, números
aleatorios (en ambos casos, extraídos de una distribución normal). Aho-
ra no sabemos a priori cuáles serán los valores de los coeficientes y, si
bien cabrían muchas otras mejoras al programa, podemos utilizarlo para
practicar nuestras técnicas de regresión durante algún tiempo.
GENR Xl = NRND
1-- GENR X2 = NRND
FOR ! i =
1 TO 5O
GENR X! i = NRND
1 NEXT ! i
F(x) = (x + 1) 2 (x- 4) -t + 2 x + 10
G(x) = (x + 1) (x2 + 5) -1
H(x) = (3 x-2) 1 (x2 + 1)
J(x)=F(G(H(x)))
!total=O
!h = (3*0.5-2) 1 (0.5"2 + 1)
!g = ( !h+1) * ( !h"2+5) - 1
!f = ( !g+1)"2 * ( !g-4)"-1 + 2*!g + 10
!total = !total + !f
!h = (3*1-2) 1 (1"2 + 1)
!g = ( !h+1) * ( !h"2+5) - 1
1f = ( !g+1)"2 * ( !g-4)"-1 + 2*!g + 10
!total = !total + !f
!h = (3*5.25-2) 1 (5.25"2 + 1)
!g = ( !h+1) * ( !h"2+5) - 1
!f = (!g+1)"2 * ( !g-4) "-1 + 2*! g + 10
!total = !total + !f
!h = (3*9.01-2) 1 (9.01"2 + 1)
!g = ( !h+1) * (! h"2+5) - 1
!f = (!g+1)"2 * (!g-4)"-l + 2*! g + 10
!total = !total + !f
!h = (3*17.5-2) 1 (17.5"2 + 1)
!g = ( !h+l) * ( !h"2+5) - 1
!f = ( !g+1)"2 * (!g-4)"-1 + 2*!g + 10
!total = !total + !f
=!total
!total==O
CALL AcumulaFoGoH(O.S)
CALL AcumulaFoGoH(l)
CALL AcumulaFoGoH(5.25)
CALL AcumulaFoGoH(9.01)
CALL AcumulaFoGoH(l7.25)
=!total
'EPÍLOGO
,=======================================================
'Finalmente sumamos los valores en el resultado final.
=@SUM(_ErrTmp)
2. Los siguientes nombres no pueden ser utilizados: ABS, ACOS, AR, ASIN, C,
Programación en Econometric Views 165
'PRÓLOGO
'============================================
'Inicialización de variables.
!Nurn = O
!Variableimportante = 100
!Observacion = 10.0
!1 = 2
'CUERPO
'============================================
'Uso de las variables en expresiones.
GENR X = !Variableimportante * Z
SMPL !1+1 !Observacion
LS Z X!Nurn C
'PRÓLOGO
'============================================
'Inicialización de variables con errores.
CON, CNORM, COEF, COS, D, DLOG, DNORM, ELSE, ENDIF, EXP, LOG, LOGIT,
.
LPTl, LPT2, MA, NA, NRND, PDL, RESID, RND, SAR, SIN, SMA, SQR y THEN .
166 Juan Francisco Castro 1 Roddy Rivas-Llosa
'PRÓLOGO
'============================================
'Inicialización de variables.
%Nombre = "Charles"
%SerieDep = "Y"
%Seriesindepl =
"Xl X2 X4 Z7 Z9"
%Seriesindep2 =
"K20 Mll"
'CUERPO
'============================================
'Uso de las variables en expresiones.
RunPmgram ~
.Erogram name or path
jMiPrograma
%0 = ''Y,
%1 = "Z"
%2 = ''K,
%3 = "100"
%4 = "M"
%5 = "9.33"
168 Juan Francisco Castro 1 Roddy Rivas-Llosa
!Numero = 5
%Pais = "PERU"
!Fecha= 1990
%Nombre = "VAR"
GENR {%Nornbre}{!Fecha}{%Pais} = NRND
LS Y C Xl X2
!R2_1 = @R2
LS Y C X3 X4
!R2_2 = @R2
1 = ! Cociente
'PRÓLOGO
·================================================
SCALAR Cociente
'CUERPO
·================================================
LS Y C Xl X2
'R2_1 = @R2
LS Y C X3 X4
!R2_2 = @R2
'EPÍLOGO
·================================================
Cociente= !R2_1 1 !R2_2
=(Cociente -1)/(Cociente + 1)
4.6. Bucles
y el incremento del bucle. En caso contrario, pasa por alto toda la estruc-
tura y continúa ejecutando el programa después de la instrucción NEXT.
Pueden darse dos casos en cuanto a esta compatibilidad de valores: si
el Incremento es positivo (recuérdese que 1 es el valor por defecto al no
incluir la cláusula STEP) y el Valor Inicial es mayor que el Valor Final, el
bucle no se ejecutará ni una sola vez; y si el Incremento es negativo y el
Valor Inicial es menor que el Valor Final, el bucle tampoco se ejecutará ni
una sola vez. Independientemente del signo del Incremento, de ser igua-
les el Valorinicial y el Valor Final, el bucle se ejecutará una sola vez.
Aquí un ejemplo sencillo:
FOR !Q = 10 TO 100
NEXT !Q
FOR !i =
1 TO 100
LS Y C X! i
R2 S ( ! i) = @R2
NEXT ! i
Note que el objeto R2s debe existir con anticipación y ser una serie
de datos o un vector. La notación Objeto(número) representa un com-
ponente del objeto. En el ejemplo, nos referimos a la observación i-ésima
de la serie de datos llamada R2s.
174 Juan Francisco Castro 1 Roddv Ri\·as-Llosa
Resulta posible colocar los bucles uno dentro de otro. Esta opera-
ción, conocida como anidación, permite disponer simultáneamente de
más de una variable móviL El siguiente ejemplo muestra una estructura
anidada típica:
FOR ti = 1 TO 10
'Punto A
FOR ! j = 1 TO 1 O
'Punto B
FOR !k = 1 TO 10
'Punto C
[
NEXT !k
'Punto D
EXT !j
'Punto E
NEXT ! i
•• WHILE CondicionLogica
•••
•• (Aquí van los comandos que se repetirán)
••
• WEND
!R2 = O
!Prueba= O
LS Y C NRND
!R2 = @R2
!Prueba= !Prueba+ 1
WEND
dos incluida en las líneas siguientes hasta la palabra ENDIF, que cierra
la cláusula condicional. En caso contrario, de no cumplirse la condi-
ción, la ejecución saltará hasta la línea siguiente al ENDIF. La sintaxis
es, entonces, la siguiente:
•
••• (Aquí van los comandos que se ejecutarán
•••
si se cumple la condición lógica)
••• ELSE
'=====================================================
Programación en Eco11ometric Vinus 179
'USO:
RUN NombrePrograma NombreSerie
'-----------------------------------------------------
-----------------------------------------------------
'El escalar Pos contendrá el número de
'valores positivos y el escalar Neg el número
'de valores negativos:
SCALAR Pos = O
SCALAR Neg = O
'---------------------------------------------
---------------------------------------------
'Fin del programa.
1 IF CondicionLogical THEN
••
•• (Aquí van los comandos que se ejecutarán
••• si se cumple la condición lógica 1)
••• ELSE
••
•• IF CondicionLogica2 THEN
••
•• (Aquí van los comandos que se ejecutarán
•• si no se cumple la condición lógica 1, pero
•• sí se cumple la condición lógica 2)
••
•• ELSE
••
•• (Aquí van los comandos que se ejecutarán
•• si no se cumple la condición lógica 1 ni la
•• condición lógica 2)
••
•• ENDIF
••
•- ENDIF
SMPL @ALL
5. Objetos en EViews
1 SCALAR X
1 X = O
1 SCALAR X = O
1
1
•• FOR 1 i
1 TO 100 =
•• S CALAR V = ! i A 2 - 1o * 1 i
•• NEXT 1 i
•••
La presentación correcta en este caso será:
•••
1
FOR !i = 1 TO 10
SCALAR X r i = ! i
NEXT ! i
Por otro lado, tampoco sería sensato intentar borrar los objetos en
cuestión directamente, porque en caso de no existir el programa genera-
ría un error.
FOR !i = 1 TO 10
D X! i
SCALAR X!i = !i
NEXT ! i
FOR !i = 1 TO 10
IF @ISOBJECT ("X" +@STR ( ! i) ) THEN
D X! i
ENDIF
SCALAR X!i = !i
NEXT ! i
1Suma =O
SCALAR Respuesta
FOR 1 i = 1 TO 100
SCALAR V 1 i = 1 i + 10
'Suma= !Suma+ V!i
NEXT ! i
Respuesta= !Suma
Este programa declara efectivamente una sola vez cada una de las
cien variables de la forma Vl, V2, ... , VlOO que se crearán como resulta-
do de su ejecución, pero al término del programa se tendrá el archivo de
trabajo con cien objetos V!i nuevos. Cabe destacar que el propósito del
programa no es generar las variables en cuestión, sino sumar sus valo-
res y devolver el resultado en el objeto escalar Respuesta. Podemos pre-
guntamos, ¿es necesario generar los escalares V!i para acumular sus
valores en la variable !Suma? Evidentemente no. Una versión alternati-
va del programa podría acumular directamente el valor de V!i sin pa-
sarlo a una variable permanente (los paréntesis destacan el valor de
V!i):
!Suma = O
SCALAR Respuesta
Respuesta= !Suma
NombreObjeto.Comando
Sintaxis MATRIX
MATRIX
'Declaración.
·===========================================
MATRIX(3,3) Cuadrada
VECTOR(S) Primero
'Asignación de elementos
·===========================================
'Aquí se asigna el elemento que se encuentra
'en el cruce de la primera fila y primera
'columna:
Cuadrada(!,!)= 5
utilice un objeto tipo SYM como argumento. Los objetos de esta clase
se operan con mayor velocidad y ocupan menos memoria que sus
correspondientes versiones de la clase MATRIX, debido a que EViews
toma en cuenta la redundancia de los elementos alrededor de la dia-
gonal principal. Estos objetos se declaran mediante la siguiente sin-
taxis:
Cuadro3.1
Cuadro 3.2
Cuadro3.3
Cuadro3.4
Cuadro3.5
Cuadro 3.6
Cuadro3.7
Vista histograma Sí No
Utilizable en
regresiones Sí No
Cuadro3.8
N ombreSerie(N umObservacion)
GENR X = NRND
GENR Yl = O
GENR Y2 = O
!i = X(2)
Yl = X(2)
Y2 = !i
Sintaxis EQUATION
Objeto: EQUATION
Crea una ecuación.
Uso:
EQUATION Nombre
EQUATION Nombre.lS VariableExplicada C VariablesExplicativas
Ejemplos:
EQUATIONPrimera
EQUATION Segunda.I.SY C Xl X2
·==================================================
'Fin del programa.
Programación en Econometric Views 207
Cuadro3.9
CHOW Obsl Obs2 ... Lleva a cabo los tests de Chow sobre estabili-
dad estructural en los puntos indicados.
TESTADO Seriel Serie2 ... Muestra el resultado de una prueba de hipó te-
sis sobre la omisión de las variables indicadas
en la regresión.
Ejemplo: eql.TESTADD x4 x7
Cuadro 3.10
@F Estadístico F de la regresión.
Cuadro 3.ll
Cuadro 3.12
Cuadro 3.13
ADD Seriel Serie2 ... SerieN Añade lma o más series a lffi grupo.
DROP Seriel Serie2 ... SerieN Elimina tma o más series de un grupo.
Cuadro 3.14
FOR !i = 1 TO Grupol.@COUNT
IF ABS (Resultado. @TSTAT ( ! i) ) < 'TMin THEN
!Min=!i
!TMin=ABS(Resultado.@TSTAT( 1 i))
ENDIF
NEXT ! i
%Nombre = Grupol. @SERIESNAME ( ! Min)
Grupol.DROP %Nombre
Resultado.LS Y Grupol
WEND
Sintaxis SAMPLE
Objeto: SAMPLE :
Crea una muestra (el procedimiento SEr sirve para redefinir una
muestra previamente declarada). Luego, puede utilizarse el coman-
do SMPL acompañando al nombre del objeto SAMPLE para activar
la muestra definida. ·
Ejemplos:
SAMPLE Muestrall940.011980.12 >
SAMPLE Muestra2 @FIRST1928.071940.0l··..,.,..,,....,u
1ipoGobtern9:f2 :, . , ,
SMPL MueStia1 ....
Muestra2.SEr @FIRST 192K071940.ót...-~:>-V l'.JF~lpoGQI>i@ri(
mente útiles para construir reportes de resultados que puedan ser co-
piados y pegados directamente en un procesador de textos para su
edición final.
Sintaxis TABLE
' FREEZE(NombreTextoNuevo) ·
NombreObjetoFuente. VistaTipoTexto
FREEZE(fablaResultados)Regrl.EESULTS
~(fablaFinal)pr3.TABLE
Cuadro 3.15
Cuadro 3.16
Cuadro3.17
Veamos un ejemplo del uso de esta clase de objetos; con tal finali-
dad desarrollaremos un programa para elaborar regresiones
univariadas4 • El programa tomará como argumentos el nombre de una
variable explicada y de un grupo de potenciales explicativas (el uso de
un grupo evita el problema de restringir el número de posibles regresares,
logrando que el programa gane generalidad). Luego llevará a cabo, por
tumos, regresiones lineales sucesivas de la variable explicada contra
un intercepto y cada una de las variables explicativas, para finalmente
presentar un reporte de resultados en forma de tabla. Preste atención al
correcto uso de las llaves como delimitadores de reemplazo textual.
Siempre se utilizarán llaves para dar validez al acceso a un objeto, cuyo
nombre se encuentra dentro de una variable de texto.
4. El lector podrá encontrar una versión mucho más completa de este programa
en el capítulo 4.
220 Juan Francisco Castro 1 Rodd\· Ri\·as-Liosa
!==================================================
'Primero hallarnos el número de regresares dentro
'del grupo:
'NurnSeries={%1}.@COUNT
NEXT ! i
No Regresar R-Cuadrado
1 X1 0.3321181396
2 X2 0.8907116684
3 X3 0.9312525597
4 X4 0.1471068665
5 X5 0.2957055195
Sintaxis GRAPH
Objeto: GRAPH .
Uso:
GRAPH .Nombre.Método Argumentos
Ejemplos:
GRAPH Grafl.LINE XlX2 X3
GRAPH Graf2.SCAT Yl X4
Cuadro 3.18
MERGE Graficol Grafico2 ... Combina los gráficos indicados dentro del ob-
jeto gráfico al que se le aplica el método.
Cuadro 3.19
Cuadro 3.20
Programa 3.1
'======================================================
'En este punto se desarrolla el análisis requerido.
'======================================================
'Reponemos la muestra:
SMPL @ALL
·======================================================
'En este punto se registran los resultados
'del análisis.
'======================================================
'Y eliminamos las variables auxiliares:
D _Ordeninicial _AleatoriaAuxiliar
• Que el número de casos por registrar no sea mayor que el rango del
archivo de trabajo.
Programa 3.2.
'======================================================
'En este punto se desarrolla el análisis requerido.
'======================================================
'Registrarnos los resultados:
_Registro ( ! i ) = ( ... )