GUIA DE INTRODUCCIÓN A LA ECONOMETRÍA UTILIZANDO GRETL

GUIA DE INTRODUCCIÓN A LA ECONOMETRÍA UTILIZANDO GRETL

Mª Isabel Cal Bouzada
Mª Victoria Verdugo Matés
(CV)

Volver al índice

¿Cómo generar vectores y matrices?

Existen varias alternativas para generar vectores y matrices:

  • Utilizar el menú Añadir de la Barra de Menú de la Ventana Principal.
  • Utilizar el comando matrix.

Utilizar el menú Añadir

Utilizando el menú Añadir de la Barra de Menú de la Ventana Principal se pueden definir matrices de tres formas:

  • A partir de variables existentes (véase ejemplo de la parte superior de la Ilustración 2‑13).
  • Definiendo su dimensión y el valor inicial de relleno, que podría ser modificado (véase ejemplo de la parte central de la Ilustración 2‑13).
  • A partir de expresiones algebraicas, para lo que es necesario conocer los operadores disponibles en Gretl y las reglas de álgebra matricial (véase ejemplo de la parte inferior de la Ilustración 2‑13).

Utilizando el menú emergente que aparece cuando en la ventana “vista de iconos” se  selecciona el icono de la matriz correspondiente y se presiona el botón derecho del ratón, la matriz se puede visualizar, modificar, renombrar, borrar, … (véase ejemplo de la Ilustración 2‑14).
A continuación se hará una breve referencia a cada una de las tareas a las que se puede acceder a través de este menú:
Ver à permite visualizar el contenido de la matriz e informa de su dimensión. Además, informa del rango muestral utilizado si la matriz ha sido definida a partir de las variables existentes en la sesión de trabajo.
Editar à permite acceder al editor de matrices. Utilizando el botón Rellenar del editor de matrices, el usuario puede modificar sus valores situando el cursor en la celda correspondiente y tecleando el nuevo valor (para que estos cambios sean permanentes es necesario guardarlos antes de cerrar dicha ventana). El botón Propiedades de este editor, es otra forma de poder visualizar las propiedades de la matriz. El botón Transformar permite trasponer la matriz, calcular el producto de la traspuesta de la matriz por la matriz, multiplicar y dividir la matriz por un escalar, ….
Propiedades à permite ver algunas “propiedades” o características de la matriz. Las “propiedades” varian en función del tipo de matriz. Así, para matrices cuadradas, además de informar de su dimensión, rango y norma, proporciona la traza, el determinante, los valores propios, si es simétrica, si es definida positiva y si es idempotente.
Renombrar à permite cambiar el nombre de la matriz. Debe tenerse en cuenta que cuando se renombra una matriz esta deja de existir con el nombre antiguo y pasa a estar disponible bajo la nueva denominación.
Borrar à permite borrar la matriz. Debe tenerse en cuenta que cuando se borra una matriz esta deja de estar disponible.

Utilizar el comando matrix

El comando matrix permite generar matrices a partir de:

  • Variables o series existentes en la sesión de trabajo:

matrix    nombre nueva matriz = {v1, v2, …, vk}
donde  v1, v2, ... y vk son las variables a partir de las cuales se define la matriz.
El número de filas de la matriz coincidirá con el rango muestral corriente y el número de columnas con el número de variables. Los datos de la primera columna de la matriz hacen referencia a la primera variable (v1),  los de la segunda columna a la segunda variable (v2) y así sucesivamente.


? matrix X = {const, x1, x2}
Se ha generado la matriz X

? print X
X (10 x 3) [t1 = 1, t2 = 10]
      1.0000       2.4600       1079.5
      1.0000       2.5100       1108.2
      1.0000       2.7300       1116.8
      1.0000       2.7300       978.09
      1.0000       2.6300       809.62
      1.0000       2.3800       1047.1
      1.0000       2.4400       1164.3
      1.0000       2.7500       1069.6
      1.0000       2.9800       1040.3
      1.0000       1.9500       1067.8

? smpl 2 4
Rango de datos completo: 1 - 10 (n = 10)
Muestra actual: 2 - 4 (n = 3)

? matrix A = {const, x1, x2}
Se ha generado la matriz A

? print A
A (3 x 3) [t1 = 2, t2 = 4]
      1.0000       2.5100       1108.2
      1.0000       2.7300       1116.8
      1.0000       2.7300       978.09

? smpl 1 10
Rango de datos completo: 1 - 10 (n = 10)

Obsérvese que dado que las matrices X y A se han generado a partir de las series const, x1 y x2 existentes en la sesión de trabajo, Gretl además de informar de la dimensión de la matriz, informa del rango muestral utilizado para generarla y que en el caso de la matriz X es de la primera observación (t1=1) hasta la décima (t2=10) y que en el caso de la matriz A es de la observación segunda (t1=2) hasta la cuarta (t2=4). Se puede comprobar que el número de filas de la matriz A (3) coincide con el tamaño del rango muestral vigente en el momento de su creación y el número de columnas (3) coincide con el número de variables que han intervenido en su generación.

  • A partir de una lista de variables:

matrix    nombre nueva matriz = {nombre de la lista de variables}


? genr list xlist = x1 x2
Se ha generado la lista xlist

? print xlist --byobs
             x1           x2
 1         2.46      1079.50
 2         2.51      1108.20
 3         2.73      1116.80
 4         2.73       978.09
 5         2.63       809.62
 6         2.38      1047.10
 7         2.44      1164.30
 8         2.75      1069.60
 9         2.98      1040.30
10         1.95      1067.80

? matrix X={const, xlist}
Se ha reemplazado la matriz X

? print X
X (10 x 3) [t1 = 1, t2 = 10]
      1.0000       2.4600       1079.5
      1.0000       2.5100       1108.2
      1.0000       2.7300       1116.8
      1.0000       2.7300       978.09
      1.0000       2.6300       809.62
      1.0000       2.3800       1047.1
      1.0000       2.4400       1164.3
      1.0000       2.7500       1069.6
      1.0000       2.9800       1040.3
      1.0000       1.9500       1067.8

En el argumento del comando matrix pueden intervenir simultáneamente variables y series, siempre que tengan la misma longitud.
Obsérvese que las dos últimas columnas de la matriz X se corresponden con las variables que forman la lista “xlist” y la primera se corresponde con la variable const.

  • Introduciendo los valores numéricos de los elementos de la matriz:

matrix    nombre nueva matriz = { v11,v12,...,v1p; v21,v22,...,v2p; …; vn1,vn2,...,vnp }
donde vij es el valor numérico correspondiente al elemento que ocupa la fila i-ésima y la columna j-ésima,  el subíndice i varia desde 1 hasta n (siendo n el número de filas de la matriz) y el subíndice j varia desde 1 hasta p (siendo p el número de columnas de la matriz).
Los datos numéricos, correspondientes a los elementos de la matriz, se deben introducir por filas y separados por una “coma”. Para separar unas filas de otras se debe utilizar un “punto y coma”.


? matrix C  =  {1, 2, 3; 4, 5, 6; 7, 8, 9}
Se ha generado la matriz C

? print C
C (3 x 3)
  1   2   3
  4   5   6
  7   8   9

? matrix dt = {1, 2, 3, 4, 5, 6, 7, 8, 9}
Se ha generado la matriz dt

? print dt
dt (1 x 9)
  1   2   3   4   5   6   7   8   9

? matrix d = {1; 2; 3; 4; 5; 6; 7; 8; 9}
Se ha generado la matriz d

? print d
d (9 x 1)
  1
  2
  3
  4
  5
  6
  7
  8
  9

  • A partir de matrices 1 existentes en la sesión de trabajo:

matrix    nombre nueva matriz = f(matrices existentes)

Si se aplican estos operadores a los datos disponibles:


# Se genera XT como la traspuesta de la matriz X
? matrix XT = X'
Se ha generado la matriz XT

? print X XT
X (10 x 3) [t1 = 1, t2 = 10]
      1.0000       2.4600       1079.5
      1.0000       2.5100       1108.2
      1.0000       2.7300       1116.8
      1.0000       2.7300       978.09
      1.0000       2.6300       809.62
      1.0000       2.3800       1047.1
      1.0000       2.4400       1164.3
      1.0000       2.7500       1069.6
      1.0000       2.9800       1040.3
      1.0000       1.9500       1067.8

XT (3 x 10)
1.0000       1.0000       1.0000       1.0000       1.0000       1.0000       1.0000       1.0000       1.0000       1.0000
2.4600       2.5100       2.7300       2.7300       2.6300       2.3800       2.4400       2.7500       2.9800       1.9500
1079.5       1108.2       1116.8       978.09       809.62       1047.1       1164.3       1069.6       1040.3       1067.8

Recuerde que la trasposición de matrices consiste en intercambiar filas por columnas y, por tanto, si la dimensión de una matriz es mxn, el orden de su traspuesta será nxm (en este ejemplo 10x3 y 3x10, respectivamente).
Obsérvese que como Gretl no dispone de espacio suficiente para mostrar las 10 columnas que forman la matriz traspuesta, utiliza dos líneas para mostrar cada fila de la matriz.


# Se genera XTX como el producto de la traspuesta de X por X
? matrix XTX = XT * X
Se ha generado la matriz XTX

? print XTX
XTX (3 x 3)
      10.000       25.560       10481.
      25.560       66.038       26742.
      10481.       26742.  1.1071e+007

Para que el operador matrix funcione correctamente es necesario que las matrices que intervienen en la expresión de cálculo tengan la estructura adecuada para realizar la operación.


? matrix XX = X * X
Las matrices no tienen la estructura adecuada para poder realizar la operación

Obsérvese que la matriz XTX está definida, mientras que la matriz XX no, ello es debido a que para multiplicar matrices es necesario que el número de columnas de la primera matriz coincida con el número de filas de la segunda y, en el caso de la matriz XX esto no se cumple y Gretl emite el mensaje de error: “las matrices no tienen la estructura adecuada para poder realizar la operación”.


# Se genera XTXD como el determinante de XTX
? matrix XTXD = det(XTX)
Se ha generado la matriz XTXD

? print XTXD
XTXD (1 x 1)
 5.8098e+005

Recuerde que el determinante sólo esta definido para matrices cuadradas.


# Se genera XTXI como la inversa de XTX
? matrix XTXI = inv(XTX)
Se ha generado la matriz XTXI

? print XTXI
XTXI (3 x 3)
      27.503      -4.6284    -0.014858
     -4.6284       1.4718   0.00082674
   -0.014858   0.00082674  1.2159e-005

Recuerde que sólo se pueden invertir matrices cuadradas cuyo determinante sea no nulo (XTX tiene inversa porque es una matriz no singular).


# Se genera DXTX como la diagonal de XTX
? matrix DXTX = diag(XTX)
Se ha generado la matriz DXTX

? print DXTX
DXTX (3 x 1)
      10.000
      66.038
 1.1071e+007

La función diag genera un vector columna que contiene los elementos de la diagonal principal de la matriz.


# Se genera S como suma de XTX y C
? matrix S = XTX + C
Se ha generado la matriz S

# Se genera D como diferencia de XTX y C
? matrix D = XTX - C
Se ha generado la matriz D

? print XTX C S D
XTX (3 x 3)
      10.000       25.560       10481.
      25.560       66.038       26742.
      10481.       26742.  1.1071e+007

C (3 x 3)
  1   2   3
  4   5   6
  7   8   9

S (3 x 3)
      11.000       27.560       10484.
      29.560       71.038       26748.
      10488.       26750.  1.1071e+007

D (3 x 3)
      9.0000       23.560       10478.
      21.560       61.038       26736.
      10474.       26734.  1.1071e+007

Recuerde que para poder sumar o restar matrices es necesario que tengan la misma dimensión.


# Se genera CE como la matriz resultante de aplicar la exponencial a cada uno de los elementos de C
? matrix CE = exp(C)
Se ha generado la matriz CE

? print CE
CE (3 x 3)
      2.7183       7.3891       20.086
      54.598       148.41       403.43
      1096.6       2981.0       8103.1

# Se genera CEL como la matriz resultante de aplicar el logaritmo natural a cada uno de los elementos de CE
? matrix CEL = log(CE)
Se ha generado la matriz CEL

? print CEL
CEL (3 x 3)
  1   2   3
  4   5   6
  7   8   9

# Se genera XR como la matriz resultante de aplicar la raíz cuadradada a cada uno de los elementos de X
? matrix XR = sqrt(X)
Se ha generado la matriz XR

? print  XR
XR (10 x 3)
      1.0000       1.5684       32.856
      1.0000       1.5843       33.290
      1.0000       1.6523       33.419
      1.0000       1.6523       31.274
      1.0000       1.6217       28.454
      1.0000       1.5427       32.359
      1.0000       1.5620       34.122
      1.0000       1.6583       32.705
      1.0000       1.7263       32.254
      1.0000       1.3964       32.677

Se debe tener en cuenta que las funciones exp, log y sqrt se aplican a cada uno de los elementos de la matriz.


# Se genera RX como el rango de X
? matrix RX = rank(X)
Se ha generado la matriz RX

? print RX
RX (1 x 1)
  3

Recuerde que el rango de una matriz es el número de columnas linealmente independientes y que para que una matriz cuadrada sea invertible es necesario que su rango coincida con su dimensión (XTX es una matriz cuadrada de orden 3 y con rango es 3, por tanto, tiene inversa).


# Se genera TXTX  como la traza de XTX
? matrix TXTX = tr(XTX)
Se ha generado la matriz TXTX

? print TXTX
TXTX (1 x 1)
 1.1071e+007

Recuerde que la traza de una matriz es la suma de los elementos de su diagonal principal (TXTX es la suma de los elementos de la diagonal principal de XTX).


# Se genera TRIIXTX como una matriz triangular inferior a partir de XTX
? matrix TRIIXTX = lower(XTX)
Se ha generado la matriz TRIIXTX

# Se genera TRISXTX como una matriz triangular superior a partir de XTX
? matrix TRISXTX = upper(XTX)
Se ha generado la matriz TRISXTX

? print XTX TRIIXTX TRISXTX
XTX (3 x 3)
      10.000       25.560       10481.
      25.560       66.038       26742.
      10481.       26742.  1.1071e+007

TRIIXTX (3 x 3)
      10.000       0.0000       0.0000
      25.560       66.038       0.0000
      10481.       26742.  1.1071e+007

TRISXTX (3 x 3)
      10.000       25.560       10481.
      0.0000       66.038       26742.
      0.0000       0.0000  1.1071e+007

Recuerde que sólo se pueden generar matrices triangulares a partir de matrices cuadradas. En las matrices triangulares inferiores los elementos que están por encima de la diagonal principal son nulos y en las matrices triangulares superiores lo son los que están por debajo, los restantes elementos coinciden con los de la matriz de partida.


# Se genera I3 como una matriz identidad de orden 3
? matrix I3 = I(3)
Se ha generado la matriz I3

? print I3
I3 (3 x 3)
  1   0   0
  0   1   0
  0   0   1

# Se genera I7 como una matriz identidad de orden 7
? matrix I7 = I(7)
Se ha generado la matriz I7

? print I7
I7 (7 x 7)

  1   0   0   0   0   0   0
  0   1   0   0   0   0   0
  0   0   1   0   0   0   0
  0   0   0   1   0   0   0
  0   0   0   0   1   0   0
  0   0   0   0   0   1   0
  0   0   0   0   0   0   1

# Se genera una matriz de ceros
? matrix O32  =  zeros(3,2)
Se ha generado la matriz O32

? print O32
O32 (3 x 2)
  0   0
  0   0
  0   0

# se genera una matriz de unos
? matrix l32  =  ones(3,2)
Se ha generado la matriz l32

? print l32
l32 (3 x 2)
  1   1
  1   1
  1   1

Recuerde que una matriz identidad es una matriz cuadrada con elementos diagonales iguales a uno y elementos no diagonales nulos.
La función zeros permite generar matrices nulas y la función ones, matrices con todos sus elementos iguales a uno.


# Se genera la matriz F
? matrix F  =  {1, 2, 3; 4, 5, 6}
Se ha generado la matriz F

# Producto de F por F elemento a elemento
? matrix FMEF  =  F .* F
Se ha generado la matriz FMEF

# División de D por D elemento a elemento
? matrix FDEF =  F ./ F
Se ha generado la matriz FDEF

? print F FMEF FDEF
F (2 x 3)
  1   2   3
  4   5   6

FMEF (2 x 3)
   1    4    9
  16   25   36

FDEF (2 x 3)
  1   1   1
  1   1   1

Para poder realizar el producto y el cociente de dos matrices elemento a elemento, es necesario que ambas tengan la misma dimensión. La matriz resultante se obtiene multiplicando o dividiendo los elementos que ocupan el mismo lugar en ambas matrices.


# Se genera la matriz G
? matrix G  =  {7, 8, 9; 10, 11, 12}
Se ha generado la matriz G

# Concatenación por filas
? matrix FGrows  =  F | G
Se ha generado la matriz FGrows

# Concatenación por columnas
? matrix FGcols  =  F ~ G
Se ha generado la matriz FGcols

? print F G FGrows FGcols
F (2 x 3)
  1   2   3
  4   5   6

G (2 x 3)
   7    8    9
  10   11   12

FGrows (4 x 3)
   1    2    3
   4    5    6
   7    8    9
  10   11   12

FGcols (2 x 6)
   1    2    3    7    8    9
   4    5    6   10   11   12

Para poder concatenar matrices es necesario que tengan la misma dimensión. El usuario debe tener en cuenta que en la concatenación por filas, las filas de la segunda matriz se añaden a las de la primera por la parte inferior y en la concatenación por columnas, las columnas de la segunda matriz se añaden a las de la primera por la parte derecha.  


# Se genera vF como un vector a partir de la matriz F
? matrix vF = vec(F)
Se ha generado la matriz vF

? print F vF
F (2 x 3)
  1   2   3
  4   5   6

vF (6 x 1)
  1
  4
  2
  5
  3
  6  

La función vec permite convertir una matriz en un vector columna. Obsérvese que vF es un vector columna de 6 filas, donde en primer lugar aparecen los elementos de la primera columna de F, a continuación los de la segunda y, por último, los de la tercera columna.


# Se genera la matriz H
? matrix H  =  {1, 2; 3, 4}
Se ha generado la matriz H

# Se genera la matriz J
? matrix J  =  ones(3,2)
Se ha generado la matriz J

# Se genera HPKJ como el producto kronecker de H por J
? matrix HPKJ  =  H ** J
Se ha generado la matriz HPKJ

? print H J HPKJ
H (2 x 2)
  1   2
  3   4

J (3 x 2)
  1   1
  1   1
  1   1

HPKJ (6 x 4)
  1   1   2   2
  1   1   2   2
  1   1   2   2
  3   3   4   4
  3   3   4   4
  3   3   4   4

Recuerde que el producto kronecker de una matriz Amxn por una matriz Bpxq es una matriz C(mxp)x(nxq) formada por (mxn) bloques de (pxq) elementos, donde cada uno de los bloques es el resultado de multiplicar cada uno de los elementos de la primera matriz por cada uno de los elementos de la segunda matriz. En este caso, la matriz resultante del producto kronecker de H por J consta de cuatro bloques de dimensiones 3x2 cada uno, donde el primer bloque es el resultado de multiplicar el primer elemento de la primera fila de H por cada uno de los elementos de J; el segundo bloque es el resultado de multiplicar el segundo elemento de la primera fila de H por cada uno de los elementos de J; el tercer  bloque es el resultado de multiplicar el primer elemento de la segunda fila de H por cada uno de los elementos de J y el cuarto bloque es el resultado de multiplicar el segundo elemento de la segunda fila de H por cada uno de los elementos de J.


 # Se genera el número de columnas de G
? matrix colsG  =  cols(G)
Se ha generado la matriz colsG

# Se genera el número de filas de G
? matrix rowsG  =  rows(G)
Se ha generado la matriz rowsG

? print G colsG rowsG
G (2 x 3)
   7    8    9
  10   11   12

colsG (1 x 1)
  3

rowsG (1 x 1)
  2

Las funciones cols y rows hacen referencia al número de filas y columnas de una matriz respectivamente.


# Raices y vectores característicos
? matrix eigenC  =  eigengen(C,null)
Se ha generado la matriz eigenC

? matrix vcC  =  I(2)
Se ha generado la matriz vcC

? matrix eigenC  =  eigengen(C,&vcC)
Se ha reemplazado la matriz eigenC

? print eigenC vcC
eigenC (3 x 1)
      16.117
     -1.1168
-1.2220e-015

vcC (3 x 3)
    -0.23197     -0.78583      0.40825
    -0.52532    -0.086751     -0.81650
    -0.81867      0.61233      0.40825

La función eigengen permite calcular y guardar las raíces y vectores característicos de una matriz cuadrada. Para guardar los vectores característicos es necesario hacerlo en una matriz que haya sido definida previamente.


# Matriz cholesky
? matrix P  =  cholesky(XTX)
Se ha generado la matriz P

? matrix XTXc  =  P * P'
Se ha generado la matriz XTXc

? print P XTX XTXc
P (3 x 3)
      3.1623       0.0000       0.0000
      8.0828      0.84050       0.0000
      3314.5      -57.147       286.78

XTX (3 x 3)
      10.000       25.560       10481.
      25.560       66.038       26742.
      10481.       26742.  1.1071e+007

XTXc (3 x 3)
      10.000       25.560       10481.
      25.560       66.038       26742.
      10481.       26742.  1.1071e+007

Recuerde que la función cholesky sólo es aplicable a matrices definidas positivas: si A es una matriz definida positiva Þ existe una matriz P tal que P’P=A (dado que XTX es una matriz definida positiva P*P’=XTX). 


# Se genera VXraya como la matriz de cuasivarianzas-cuasicovarianzas de x1 y x2
? matrix Xraya = {x1, x2}
Se ha generado la matriz Xraya

? matrix VXraya = mcov(Xraya)
Se ha generado la matriz VXraya

? print VXraya
VXraya (2 x 2)
    0.078493      -5.3369
     -5.3369       9500.7

La función mcov permite calcular la matriz de cuasivarianzas-cuasicovarianzas de las variables incluidas en las columnas de la matriz inicial. Dichas matrices son cuadradas y simétricas. En el ejemplo anterior, dado que la primera columna de VXraya se corresponde con la variable x1 y la segunda con x2, el primer elemento de la diagonal principal de VXraya es la cuasivarianza de x1, segundo la cuasivarianza de x2 y el elemento no diagonal es la cuasicovarianza de x1 y x2.


# Se genera RXraya como la matriz de correlación de x1 y x2
? matrix RXraya = mcorr(Xraya)
Se ha generado la matriz RXraya

? print RXraya
RXraya (2 x 2)

      1.0000     -0.19543
    -0.19543       1.0000

La función mcorr permite calcular la matriz de correlaciones de las variables incluidas en las columnas de la matriz inicial. Dicha matriz es cuadrada, simétrica y sus elementos diagonales son iguales a uno. En el ejemplo anterior, dado que la primera columna de VXraya se corresponde con la variable x1 y la segunda con x2, el elemento no diagonal es la correlación entre x1 y x2.
Gretl permite calcular vectores que recogen la suma, media, valores máximos y mínimos tanto por filas como por columnas. Además, por columnas permite calcular el vector que recoge las cuasidesviaciones típicas.


# Cálculos por columnas
# Vector fila que contiene la suma de los elementos de cada columna de la matriz C
? matrix Csc = sumc(C)
Se ha generado la matriz Csc

# Vector fila que contiene la media de los elementos de cada columna de la matriz C
? matrix Cmc = meanc(C)
Se ha generado la matriz Cmc

# Vector fila que contiene los valores máximos de los elementos de cada columna de la matriz C
? matrix Cmaxc = maxc(C)
Se ha generado la matriz Cmaxc

# Vector fila que contiene los valores mínimos de los elementos de cada columna de la matriz C
? matrix Cminc = minc(C)
Se ha generado la matriz Cminc

# Vector fila que contiene las desviaciones estándar de los elementos de cada columna de la matriz C
? matrix Csd = sdc(C)
Se ha generado la matriz Csd

? print C Csc Cmc Cmaxc Cminc Csd
C (3 x 3)
  1   2   3
  4   5   6
  7   8   9

Csc (1 x 3)
  12   15   18

Cmc (1 x 3)
  4   5   6

Cmaxc (1 x 3)
  7   8   9

Cminc (1 x 3)
  1   2   3

Csd (1 x 3)
      2.4495       2.4495       2.4495

# Cálculos por filas
# Vector columna que contiene la suma de los elementos de cada fila de la matriz C
? matrix Csr = sumr(C)
Se ha generado la matriz Csr

# Vector columna que contiene la media de los elementos de cada fila de la matriz C
? matrix Cmr = meanr(C)
Se ha generado la matriz Cmr

# Vector columna que contiene los valores máximos de los elementos de cada fila de la matriz C
? matrix Cmaxr = maxr(C)
Se ha generado la matriz Cmaxr

# Vector columna que contiene los valores mínimos de los elementos de cada fila de la matriz C
? matrix Cminr = minr(C)
Se ha generado la matriz Cminr

? print C Csr Cmr Cmaxr Cminr
C (3 x 3)
  1   2   3
  4   5   6
  7   8   9

Csr (3 x 1)
   6
  15
  24

Cmr (3 x 1)
  2
  5
  8

Cmaxr (3 x 1)
  3
  6
  9

Cminr (3 x 1)
  1
  4
  7

Obsérvese que los cálculos por columnas se recogen en vectores fila y los cálculos por filas se recogen en vectores columna.

¿Cómo identificar los elementos de una matriz?

Los elementos de una matriz se identifican por el nombre de la matriz seguido de dos números entre corchetes, donde el primero hace referencia a la fila y el segundo hace referencia a la columna en las que se encuentra ese elemento dentro de la matriz:
Nombre de la matriz[nº1,nº2]


? print C
C (3 x 3)
  1   2   3
  4   5   6
  7   8   9

? matrix c11 = C[1,1]
Se ha generado la matriz c11

? genr c33 = C[3,3]
Se ha generado el escalar c33 = 9

? scalar c12 = C[1,2]
Se ha generado el escalar c12 = 2

? series c21 = C[2,1]
Se ha generado la serie c21 (ID 30)

? print c11 c33 c12 c21  --byobs
            c21
 1            4
 2            4
 3            4
 4            4
 5            4
 6            4
 7            4
 8            4
 9            4
10            4

c11 (1 x 1)
  1
            c33 =  9.0000000

            c12 =  2.0000000

Dado que los elementos de una matriz se pueden considerar escalares, pueden ser utilizados no sólo con el comando matrix, sino también con los comandos scalar, series y genr.
Cuando en un comando print intervienen matrices, escalares y series, Gretl visualiza en primer lugar las series, en segundo lugar las matrices y en último lugar los escalares, independientemente del lugar que ocupen los mismos en el comando.

¿Cómo identificar las filas de una matriz?

Para identificar las filas de una matriz se indica el primer número que hace referencia a la fila y el segundo, que hace referencia a la columna se deja en blanco:
Nombre de la matriz[nº1, ]


? matrix c1t = C[1]
Se ha generado la matriz c1t

? matrix c3t = C[3]
Se ha generado la matriz c3t

? print c1t c3t
c1t (1 x 3)
  1   2   3

c3t (1 x 3)
  7   8   9

Obsérvese que c1t y c3t son vectores filas de orden (1x3) que contienen los elementos de la primera y tercera fila de la matriz C, respectivamente.

¿Cómo identificar las columnas de una matriz?

Para identificar las columnas de una matriz se indica el segundo número que hace referencia a la columna y el primero, que hace referencia a la fila se deja en blanco:  
Nombre de la matriz[ ,nº2]


? print C
C (3 x 3)
  1   2   3
  4   5   6
  7   8   9

? matrix c1 = C[ , 1]
Se ha generado la matriz c1

? matrix c3 = C[ ,3 ]
Se ha generado la matriz c3

? print c1 c3
c1 (3 x 1)
  1
  4
  7

c3 (3 x 1)
  3
  6
  9

Obsérvese que c1 y c3 son vectores columna de orden (3x1) que contienen los elementos de la primera y tercera columnas de la matriz C, respectivamente.

1 Las variables o series se pueden considerar como matrices de una columna (vectores columna) y los escalares como matrices de una fila y una columna. Por tanto, en las expresiones de cálculo, para definir nuevas matrices pueden intervenir no sólo matrices sino también escalares y series.