Figura 9.2: Janela de cria¸c˜ao de um objeto matricial
9.2
Fun¸c˜oes gerais para constru¸c˜ao de matrizes
S˜ao descritas a seguir as fun¸c˜oes disponibilizadas pelo EViews que auxiliam na constru¸c˜ao de matrizes. Sempre que necess´ario ser´a feito uso de exemplos para ilustrar a explica¸c˜ao.
1. Comando: colplace(M,V,n)
Insere o vetor coluna V na n-´esima coluna da matriz M. O n´umero de linhas de M e V deve ser o mesmo e a coluna destino j´a deve existir em M.
Exemplo 9.6 O comando colplace(M,V,2)
insere os valores do vetor coluna V (com trˆes linhas, por exemplo) na segunda coluna da matriz M (3 x 3, por exemplo). Caso queira incluir os valores do vetor V na quarta coluna, aparecer´a uma mensagem de erro indicando a impossibilidade de executar a fun¸c˜ao. Isto ocorrer´a porque no exemplo em quest˜ao, a matriz M ´e 3x3 e n˜ao aceitar´a instru¸c˜oes que se refiram `a sua quarta coluna, pois ela n˜ao existe. A solu¸c˜ao para este problema ´e muito simples. Basta entrar com o comando matrix(3,4) M na janela de comandos, que o EViews ir´a automaticamente redimensionar a matriz M para (3x4).
2. Comando: @columnextract(M,n)
Extrai a n-´esima coluna da matriz M, podendo M ser um objeto do tipo matrix ou sym (matriz sim´etrica).
3. Comando: @columns(O)
Informa o n´umero de colunas da matriz O.
60 CAP´ITULO 9. TRABALHANDO COM MATRIZES E VETORES NO EVIEWS Esta fun¸c˜ao ´e utilizada para converter objetos de um tipo em outro tipo compat´ıvel em rela¸c˜ao `a dimens˜ao.
Exemplo 9.1 Sendo X1 uma s´erie, o comando vector S=@convert(X1)
ir´a converter a s´erie X1 em um vetor coluna denominado S. ´E importante notar que a s´erie X1 continuar´a existindo.
Exemplo 9.1 O comando matrix x=@convert(group01)
ir´a converter group01 em um objeto do tipo matriz denominado X, considerando group01 como sendo um objeto do tipo grupo contendo as s´eries X1, X2 e X3. As s´eries do grupo group01 ser˜ao inclu´ıdas na matriz X na mesma ordem que est˜ao dispostas no grupo. Se alguma das s´eries do grupo contiver valores NA (n˜ao num´ericos), a observa¸c˜ao ser´a omitida para todas as s´eries.
5. Comando: @filledmatrix(n1, n2, n3)
Retorna uma matriz com n1 (inteiro) linhas e n2 (inteiro) colunas, com cada entrada da matriz preenchida pelo n´umero n3.
6. Comando: @filledrowvector(n1, n2)
Retorna um vetor linha com n1 (inteiro) colunas, onde cada elemento cont´em o n´umero n2.
7. Comando: @filledsym(n1, n2)
Gera uma matriz sim´etrica de ordem n1, onde cada entrada da matriz cont´em o n´umero n2.
Exemplo 9.1 O comando matrix W = @filledsym(4,1)
gera uma matriz quadrada de ordem 4, denominada W, onde cada entrada cont´em o valor 1. Note que o tipo de objeto ´e definido pelo usu´ario, assim:
Exemplo 9.1 O comando matrix X = @filledsym(3,2)
gera uma matriz quadrada de ordem 3, denominada X, contendo 2 em cada uma de suas entradas. Exemplo 9.1 O comando sym Y = @filledsym(3,2)
9.2. FUN ¸C ˜OES GERAIS PARA CONSTRU ¸C ˜AO DE MATRIZES 61 gera uma matriz sim´etrica (sym) quadrada de ordem 3, denominada Y, contendo 2 em cada uma de suas entradas.
Obs: Note a diferen¸ca entre matriz (matrix) e matriz sim´etrica (sym). Os simbolos de cada objeto podem ser conferidos na figura 1.2. Al´em disso, o objeto do tipo matrix aceita qualquer valor em suas entradas, enquanto que o objeto do tipo sym aceita apenas valores em pares, respeitando a seguinte condi¸c˜ao: aij = aji. Caso essa condi¸c˜ao n˜ao seja respeitada, o
EViews ir´a ajustar arbitrariamente o objeto do tipo sym de modo a tornar a matriz sim´etrica.
8. Comando: @filledvector(n1,n2)
Retorna um vetor coluna com n1 linhas, todas contendo o n´umero n2.
9. Comando: @getmaindiagonal(M)
Retorna um vetor criado a partir da diagonal principal do objeto do tipo matrix (ou sym) denominada M.
10. Comando: @identity(n)
Gera uma matriz identidade de ordem n.
11. Comando: @makediagonal(V,k)
Gera uma matriz quadrada com o vetor especificado, V, na k-´esima diagonal relativamente `
a diagonal principal e zero nas outras entradas da matriz. Se n˜ao for especificado um valor para k ou se k=0, a matriz resultante ser´a quadrada de ordem igual ao n´umero de elementos do vetor V. No caso de k diferente de zero, a matriz ser´a quadrada de ordem igual ao n´umero de elementos do vetor V mais o valor absoluto de k, e ir´a incluir os valores de V na diagonal distante da principal por k.
Exemplo 9.1 matrix M1=@makediagonal(V1)
Exemplo 9.1 matrix M2=@makediagonal(V1,1)
Exemplo 9.1 matrix M3=@makediagonal(R1,-3)
M1 ir´a conter V1 na diagonal principal; M2 ir´a conter V1 na diagonal imediatamente acima da diagonal principal; M3 ir´a conter R1 trˆes posi¸c˜oes abaixo da diagonal principal. ´E
62 CAP´ITULO 9. TRABALHANDO COM MATRIZES E VETORES NO EVIEWS importante notar que o sinal de k est´a relacionado com a posi¸c˜ao de V acima (sinal positivo) ou abaixo (sinal negativo) da diagonal principal.
12. Comando: matplace(M1,M2,n1,n2)
Insere a matriz M2 na matriz M1 na linha n1 e coluna n2. As dimens˜oes das duas matrizes n˜ao importam, desde que M1 seja suficientemente grande para conter M2 completa com a c´elula superior esquerda de M2 localizada na linha n1 e na coluna n2 de M1.
Exemplo 9.1
matrix(100,5) M1=1 matrix(100,2) M2 matplace(M1,M2,1,1)
O primeiro comando gera uma matriz 100 × 5 denominada M1, contendo 1 em todas as suas entradas. O segundo comando gera uma matriz 100 × 2 denominada M2. Como n˜ao foram especificados os valores de cada entrada, todas conter˜ao o valor zero.
IMPORTANTE!!! Para alterar os n´umeros de um objeto do tipo matrix ou sym, basta selecionar Edit +/− na barra de ferramentas do objeto. Este procedimento ´e semelhante ao
usado em s´eries.
13. Comando: mtos(V1,ser1,sample) ou mtos(M1,G1,sample)
onde: V1 ´e um vetor, ser1 ´e uma s´erie, sample representa o Sample do vetor (ou da matriz), M1 ´e uma matriz e G1 ´e um grupo.
Converte um vetor (ou uma matriz) em uma s´erie (ou em um grupo). Preenche a s´erie ou o grupo com os dados do vetor ou da matriz. O n´umero de observa¸c˜oes inclu´ıdas no Sample deve ser igual ao n´umero de linhas da matriz (ou do vetor) a ser convertida. Se n˜ao for especificado o Sample, a matriz ser´a convertida com base no Sample atual. Acredita-se que os exemplos a seguir colaboram para um melhor entendimento do comando:
Exemplo 9.1 O comando mtos(A,group01)
converte a primeira coluna da matriz A na primeira s´erie do group01, a segunda coluna de A na segunda s´erie do group01 e assim por diante. Para isso, o Sample atual do workfile deve ser igual ao n´umero de linhas da matriz A. O n´umero de s´eries do group01 que ser´a criado ser´a igual ao n´umero de colunas da matriz A. As s´eries criadas recebem os nomes de SER1, SER2 e assim por diante.
Exemplo 9.1 sample S 1980 2002
9.2. FUN ¸C ˜OES GERAIS PARA CONSTRU ¸C ˜AO DE MATRIZES 63 A primeira linha cria um objeto do tipo Sample, abrangendo o per´ıodo 1980-2002, que ir´a compor o argumento da fun¸c˜ao mtos. A segunda linha trata da cria¸c˜ao de um grupo denominado gr1 a partir da matriz A. O grupo gr1 ter´a 23 linhas e o numero de s´eries a serem criadas ´e igual ao n´umero de colunas de A.
Para trabalhar com o caso de vetores, basta substituir A por um vetor, que teremos como resposta ao comando a gera¸c˜ao de uma s´erie e n˜ao mais um grupo.
14. Comando: @rowextract(M, n)
Extrai um vetor linha da n-´esima linha da matriz M.
15. Comando: rowplace(M,R,n)
Insere o vetor linha R na n-´esima linha da matriz M. O n´umero de colunas de R e M deve ser o mesmo e a n-´esima linha j´a deve existir em M.
16. Comando: @rows(O)
Informa o n´umero de linhas da matriz O.
17. Comando: stom(series,vector,sample) ou stom(group,matrix,sample)
Converte uma s´erie ou um grupo em um vetor ou em uma matriz. Preenche o vetor ou a matriz com os dados da s´erie ou do grupo. Caso o Sample n˜ao seja indicado, o EViews utiliza o Sample atual como padr˜ao. ´E importante saber que se alguma s´erie contiver observa¸c˜oes NA (falta de observa¸c˜oes), estas observa¸c˜oes ser˜ao exclu´ıdas do vetor ou da matriz. Se o vetor ou a matriz j´a existir no workfile, o EViews redimensionar´a automaticamente o vetor ou a matriz de modo a ajustar a s´erie ou o grupo.
Exemplo 9.1 O comando series LNX=log(X)
stom(LNX,VET1)
converte a s´erie LNX no vetor denominado VET1 usando o Sample atual do workfile. Poss´ıveis observa¸c˜oes contendo NA em LNX ser˜ao exclu´ıdas de VET1.
Exemplo 9.1 O comando
group group01 X1 X2 X3 sample s 1961 2000 stom(group01,X,S)
64 CAP´ITULO 9. TRABALHANDO COM MATRIZES E VETORES NO EVIEWS converte o grupo group01 contendo as s´eries X1, X2 e X3 em uma matriz denominada X utilizando o Sample S. Devido `a constru¸c˜ao do Sample, a matriz X ter´a 40 linhas e 3 colunas, uma para cada s´erie (X1, X2 e X3), desde que n˜ao haja nenhuma observa¸c˜ao ausente (NA).
18. Comando: stomna(series,vector,sample) ou stomna(group,matrix,sample)
Funciona exatamente como a fun¸c˜ao stom, entretanto n˜ao exclui observa¸c˜oes contendo NA.
19. Comando: @subextract(O,n1,n2,n3,n4)
Retorna uma submatriz de uma matriz especificada, O. n1 (inteiro) ´e a linha e n2 (inteiro) ´
e a coluna do primeiro elemento (elemento do canto superior esquerdo) a ser extra´ıdo. Os argumentos opcionais n3 (inteiro) e n4 (inteiro) indicam a linha e a coluna do elemento do canto inferior direito (´ultimo elemento) da matriz. A menos que n3 e n4 sejam informados, esta fun¸c˜ao ir´a retornar uma matriz contendo todos os elementos abaixo e `a direita do primeiro elemento (n2). Espera-se que os exemplos esclare¸cam mais o entendimento da fun¸c˜ao.
Considere a matriz M1 (8 × 5) representada na figura 9.3.
Figura 9.3: Ilustra¸c˜ao da fun¸c˜ao @subtract
Exemplo 9.1 matrix M2 = @subextract(M1,2,2,7,4) matrix M2 = @subextract(M1,3,1)
O primeiro comando extrai a parte demarcada pela borda larga cont´ınua, come¸cando na linha 2 e coluna 2 e terminando na linha 7 e coluna 4. O segundo comando extrai a parte demarcada pela borda pontilhada, come¸cando na linha 3 e coluna 1 e terminando no final da matriz M1, pois n˜ao foram especificados os termos n3 e n4.