1 2## Accessors 3 4# $ahat access 5Resultado: série 6 7Deve seguir a estimação de um modelo de dados em painel com efeitos fixos. Retorna uma série com as estimativas dos efeitos individuais fixos (interceptos por unidade). 8 9# $aic access 10Resultado: escalar 11 12Retorna o Critério de Informação de Akaike do último modelo estimado, quando disponível. Veja <@pdf="guia de utilização do Gretl#chap:criteria"> (Capítulo 28) para detalhes sobre os cálculos. 13 14# $bic access 15Resultado: escalar 16 17Retorna o Critério de Informação Bayesiano de Schwarz para o último modelo estimado, quando disponível. Veja <@pdf="guia de utilização do Gretl#chap:criteria"> (Capítulo 28) para detalhes sobre os cálculos. 18 19# $chisq access 20Resultado: escalar 21 22Retorna estatística qui-quadrado global do último modelo estimado, quando disponível. 23 24# $coeff access 25Resultado: matriz ou escalar 26Argumento: <@var="s"> (nome do coeficiente, opcional) 27 28Quando utilizado sem argumentos, <@lit="$coeff"> retorna um vetor coluna com os coeficientes estimados do último modelo. Com o argumento opcional de texto (string) a função retorna, na forma de um escalar, o parâmetro estimado <@var="s">. Ver também <@ref="$stderr">, <@ref="$vcv">. 29 30Exemplo: 31 32<code> 33 open bjg 34 arima 0 1 1 ; 0 1 1 ; lg 35 b = $coeff # fornece um vetor 36 macoef = $coeff(theta_1) # fornece um escalar 37</code> 38 39Se o “modelo” em questão for um sistema, o resultado dependerá das características do sistema: para VARs e VECMs o valor retornado será uma matriz com uma coluna por equação, caso contrário será um vetor coluna contendo os coeficientes da primeira equação seguidos pelos coeficientes da segunda equação e assim sucessivamente. 40 41# $command access 42Resultado: texto 43 44Deve ser utilizada após a estimação de um modelo e retorna o seu tipo, por exemplo <@lit="ols"> ou <@lit="probit">. 45 46# $compan access 47Resultado: matriz 48 49Deve ser utilizada após a estimação de um VAR ou um VECM e retorna a matriz companheira. 50 51# $datatype access 52Resultado: escalar 53 54Retorna um número representando o tipo dos dados que estão sendo atualmente utilizados: 0 = sem dados, 1 = dados de corte transversal (não datados), 2 = dados de séries temporais, 3 = dados em painel. 55 56# $depvar access 57Resultado: texto 58 59Deve ser utilizada após a estimação de um modelo com equação única e retorna o nome da variável dependente. 60 61# $df access 62Resultado: escalar 63 64Retorna os graus de liberdade do último modelo estimado. Se o último modelo for um sistema de equações, o valor retornado será o número de graus de liberdade por equação. Se os graus de liberdade das equações forem diferentes então o valor dado será calculado como a diferença entre o número de observações e a média do número de coeficientes por equação (essa média será arredondada para o valor inteiro imediatamente superior). 65 66# $diagpval access 67Resultado: escalar 68 69Deve ser utilizada após a estimação de um sistema de equações e retorna o <@mth="P">-valor associado com a estatística <@ref="$diagtest">. 70 71# $diagtest access 72Resultado: escalar 73 74Deve ser utilizada após a estimação de um sistema de equações. Retorna a estatística de teste para a hipótese nula de que a matriz de covariâncias dos resíduos das equações do sistema é diagonal. Este é o teste de Breusch–Pagan, exceto quando o estimador for o SUR iterado (irrestrito), nesse caso será um teste de razão de verossimilhança. Veja <@pdf="guia de utilização do Gretl#chap:system"> (Capítulo 34) para detalhes e também <@ref="$diagpval">. 75 76# $dotdir access 77Resultado: texto 78 79Este acessor retorna o caminho onde Gretl guarda os ficheiros temporários, por exemplo quando se usa a função <@ref="mwrite"> com um argumento não-nulo. 80 81# $dw access 82Resultado: escalar 83 84Retorna a estatística de Durbin–Watson para a correlação de primeira ordem do último modelo estimado (quando disponível). 85 86# $dwpval access 87Resultado: escalar 88 89Retorna o p-valor para a estatística de Durbin–Watson do último modelo estimado (quando disponível). É calculada via procedimento de Imhof. 90 91Devido à precisão limitada da aritmética computacional, a integral de Imhof pode se tornar negativa quando a estatística de Durbin–Watson estiver próxima de seu limite inferior. Nesse caso a função de acesso retorna <@lit="NA">. Uma vez que qualquer outra falha será sinalizada, é possivelmente seguro assumir que um resultado NA indica que o verdadeiro p-valor é “muito pequeno”, embora não seja possível quantificá-lo. 92 93# $ec access 94Resultado: matriz 95 96Deve ser utilizada após a estimação de um VECM e retorna uma matriz contendo os termos de correção de erros. O número de linhas é igual ao número de observações utilizadas e o número de colunas é igual à ordem de cointegração do sistema. 97 98# $error access 99Resultado: escalar 100 101Retorna o código interno de erro do programa. Esse código será um valor não-nulo quando a função <@xrf="catch"> tiver sido utilizada. Note que o código interno de erro irá retornar para zero quando esta função de acesso for utilizada novamente. Para consultar, posteriormente, a mensagem de erro associada a um dado <@lit="$error"> será necessário armazená-la em uma variável. Isso pode ser feito da seguinte forma: 102 103<code> 104 err = $error 105 if (err) 106 printf "Got error %d (%s)\n", err, errmsg(err); 107 endif 108</code> 109 110Ver também <@xrf="catch">, <@ref="errmsg">. 111 112# $ess access 113Resultado: escalar 114 115Retorna o erro da soma dos quadrados do último modelo estimado, quando disponível. 116 117# $evals access 118Resultado: matriz 119 120Deve ser utilizada após a estimação de um VECM e retorna um vetor contendo os autovalores que foram utilizados no cálculo do teste traço para verificação da cointegração. 121 122# $fcast access 123Resultado: matriz 124 125Deve ser utilizada após o comando <@xrf="fcast"> e retorna os valores previstos na forma de uma matriz. Se foi utilizado um sistema de equações para realizar as previsões a matriz será composta por uma coluna para cada equação, caso contrário será um vetor coluna. 126 127# $fcse access 128Resultado: matriz 129 130Deve ser utilizada após o comando <@xrf="fcast"> e retorna os erros padrão das previsões, quando disponíveis, na forma de uma matriz. Se foi utilizado um sistema de equações para realizar as previsões a matriz será composta por uma coluna para cada equação, caso contrário será um vetor coluna. 131 132# $fevd access 133Resultado: matriz 134 135Deve ser utilizada após a estimação de um VAR e retorna uma matriz contendo a decomposição da variância dos erros de previsão (FEVD, na sigla em inglês). Essa matriz possui <@mth="h"> linhas, onde <@mth="h"> indica a quantidade de períodos do horizonte de previsão que, por sua vez, pode ser escolhida via comando <@lit="set horizon"> ou de forma automática com base na frequência dos dados. 136 137Para um VAR com <@mth="p"> variáveis, a matriz possui <@mth="p"> <@sup="2"> colunas: as primeiras <@mth="p"> colunas contêm a FEVD para a primeira variável do VAR, as <@mth="p"> colunas seguintes contêm a FEVD para a segunda variável do VAR e assim sucessivamente. A fração (em termos decimais) do erro de previsão da variável <@mth="i"> causado por uma inovação na variável <@mth="j"> é então encontrado na coluna (<@mth="i"> – 1) <@mth="p"> + <@mth="j">. 138 139Para uma variante mais flexível desta funcionalidade, ver a função <@ref="fevd">. 140 141# $Fstat access 142Resultado: escalar 143 144Retorna estatística F global do último modelo estimado, quando disponível. 145 146# $gmmcrit access 147Resultado: escalar 148 149Deve ser utilizada após um bloco <@lit="gmm">. Retorna o valor da função objetivo GMM em seu mínimo. 150 151# $h access 152Resultado: série 153 154Deve ser utilizada após o comando <@lit="garch">. Retorna a série da variância condicional estimada. 155 156# $hausman access 157Resultado: vetor linha 158 159Deve ser utilizada após a estimação de um modelo via <@lit="tsls"> ou <@lit="panel"> com a opção de efeitos aleatórios. Retorna um vetor 1×3 contendo o valor da estatística do teste de Hausman, os graus de liberdade correspondentes e o p-valor para o teste, respectivamente. 160 161# $hqc access 162Resultado: escalar 163 164Retorna o Critério de Informação de Hannan-Quinn para o último modelo estimado, quando disponível. Veja <@pdf="guia de utilização do Gretl#chap:criteria"> (Capítulo 28) para detalhes sobre os cálculos. 165 166# $huge access 167Resultado: escalar 168 169Retorna um número positivo com valor bastante elevado. Por padrão é igual a 1.0E100, mas pode ser alterado via comando <@xrf="set">. 170 171# $jalpha access 172Resultado: matriz 173 174Deve ser utilizada após a estimação de um VECM e retorna a matriz de cargas. O número de linhas dessa matriz é igual ao número de variáveis do VECM e o número de colunas é igual a ordem de cointegração. 175 176# $jbeta access 177Resultado: matriz 178 179Deve ser utilizada após a estimação de um VECM e retorna a matriz de cointegração. O número de linhas dessa matriz é igual ao número de variáveis no VECM (se existirem variáveis exógenas restritas ao espaço de cointegração adiciona-se mais uma linha) e o número de colunas é igual a ordem de cointegração. 180 181# $jvbeta access 182Resultado: matriz quadrada 183 184Deve ser utilizada após a estimação de um VECM e retorna a matriz de covariâncias estimada para os elementos dos vetores de cointegração. 185 186No caso de uma estimação sem restrições, o número de linhas dessa matriz é igual ao número de elementos irrestritos do espaço de cointegração após a normalização de Phillips. Entretanto, se for estimado um sistema restrito via comando <@lit="restrict"> com a opção <@lit="--full">, uma matriz singular com <@mth="(n+m)r "> linhas será retornada (sendo <@mth="n"> o número de variáveis endógenas, <@mth="m"> o número de variáveis exógenas restritas ao espaço de cointegração e <@mth="r"> a ordem de cointegração). 187 188Exemplo: o código 189 190<code> 191 open denmark.gdt 192 vecm 2 1 LRM LRY IBO IDE --rc --seasonals -q 193 s0 = $jvbeta 194 195 restrict --full 196 b[1,1] = 1 197 b[1,2] = -1 198 b[1,3] + b[1,4] = 0 199 end restrict 200 s1 = $jvbeta 201 202 print s0 203 print s1 204</code> 205 206produz a seguinte saída. 207 208<code> 209 s0 (4 x 4) 210 211 0.019751 0.029816 -0.00044837 -0.12227 212 0.029816 0.31005 -0.45823 -0.18526 213 -0.00044837 -0.45823 1.2169 -0.035437 214 -0.12227 -0.18526 -0.035437 0.76062 215 216 s1 (5 x 5) 217 218 0.0000 0.0000 0.0000 0.0000 0.0000 219 0.0000 0.0000 0.0000 0.0000 0.0000 220 0.0000 0.0000 0.27398 -0.27398 -0.019059 221 0.0000 0.0000 -0.27398 0.27398 0.019059 222 0.0000 0.0000 -0.019059 0.019059 0.0014180 223</code> 224 225# $lang access 226Resultado: texto 227 228Retorna o texto (string) com o código do idioma que está sendo utilizado no momento, desde que este possa ser determinado. O texto é composto pelo código ISO 639-1 com duas letras (por exemplo, <@lit="en"> para inglês, <@lit="jp"> para japonês, <@lit="el"> para grego) seguido de um sublinhado e o código do país de acordo com o ISO 3166-1. Assim, por exemplo, o português de Portugal é representado por <@lit="pt_PT"> enquanto o português do Brasil é representado por <@lit="pt_BR">. 229 230Se o idioma não puder ser determinado será retornado o texto “<@lit="unknown">”. 231 232# $llt access 233Resultado: série 234 235Para determinados modelos estimados via Máxima Verossimilhança a função retorna os valores do log da verossimilhança para cada observação. Atualmente essa função está disponível para logit e probit binários, tobit e heckit. 236 237# $lnl access 238Resultado: escalar 239 240Retorna a log-verossimilhança para o último modelo estimado (quando for aplicável). 241 242# $macheps access 243Resultado: escalar 244 245Retorna o valor do “épsilon da máquina” que, por sua vez, fornece um limite superior para o erro relativo devido ao arredondamento na aritmética de ponto flutuante com precisão dupla. 246 247# $mapfile access 248Resultado: texto 249 250Se tiver sido carregado dados de um ficheiro de formas GeoJSON ou ESRI, retorna o nome do ficheiro que deve obter o mapa de polígonos, caso contrário retorna uma cadeia de texto vazia. Isto está preparado para ser usado com a função <@ref="geoplot">. 251 252# $mnlprobs access 253Resultado: matriz 254 255Deve seguir a estimação de um modelo logit multinomial (apenas) e retorna uma matriz com as probabilidades estimadas para cada resultado possível em cada observação dentro da amostra utilizada na estimação do modelo. Cada linha representa uma observação e cada coluna representa um resultado. 256 257# $model access 258Resultado: lote 259 260Deve seguir a estimação de modelos de equação única e retorna um pacote (bundle) contendo vários itens pertencentes ao modelo. Todas as funções de acesso de modelos regulares são incluídas e são referenciados por chaves iguais aos nomes das funções de acesso regulares menos o cifrão inicial. Assim, por exemplo, os resíduos aparecem sob a chave <@lit="uhat"> e o quadrado da soma dos erros sob <@lit="ess">. 261 262Dependendo do estimador, informações adicionais podem ser disponibilizadas. As chaves para tais informações são normalmente auto-explicativas. Para ver o que está disponível basta salvar o pacote e imprimir seu conteúdo. Isso é mostrado no exemplo a seguir: 263 264<code> 265 ols y 0 x 266 bundle b = $model 267 print b 268</code> 269 270# $mpirank access 271Resultado: número inteiro 272 273Se gretl foi compilado com suporte MPI, e o programa foi iniciado em modo MPI, retorna o “posto” de base 0 o ID do processo actual. Caso contrário retorna –1. 274 275# $mpisize access 276Resultado: número inteiro 277 278Se gretl foi compilado com suporte MPI, e o programa foi iniciado em modo MPI, retorna o número do processo MPi actualmente em execução. Caso contrário retorna 0. 279 280# $ncoeff access 281Resultado: número inteiro 282 283Retorna o número total de coeficientes estimados no último modelo. 284 285# $nobs access 286Resultado: número inteiro 287 288Retorna o número de observações na amostra atualmente selecionada. Veja também: <@ref="$tmax">. 289 290# $now access 291Resultado: vetor 292 293Produz um vector de dois elementos: o primeiro elemento é o número de segundos decorridos desde1970-01-01 00:00:00 +0000 (UTC), que é uma medida utilizada muito frequentemente no mundo da informatica para representar a hora. O segundo é a data actual no formato “básico” ISO 8601, que é <@lit="YYYYMMDD">; para processar o segundo elemento pode-se usar a função <@ref="epochday">. 294 295# $nvars access 296Resultado: número inteiro 297 298Retorna o número de variáveis no conjunto de dados (incluindo a constante). 299 300# $obsdate access 301Resultado: série 302 303Deve ser utilizada quando o conjunto de dados corrente for composto por séries temporais com frequência decenal, anual, trimestral, mensal, semanal (datada) ou diária (datada). Pode ser utilizada também com dados em painel quando a informação temporal estiver ajustada corretamente (veja o comando <@xrf="setobs">). A série que será retornada é composta por números com 8 dígitos seguindo o padrão <@lit="YYYYMMDD"> (formato de dados “básico” do ISO 8601), que correspondem ao dia da observação ou ao primeiro dia da observação no caso de frequências de séries temporais menores que a diária. 304 305Esta série pode ser útil na utilização do comando <@xrf="join">. 306 307# $obsmajor access 308Resultado: série 309 310É aplicável quando as observações no conjunto de dados corrente têm uma estrutura maior:menor, como em séries temporais trimestrais (ano:trimestre), séries temporais mensais (ano:mês), dados de horas (dia:hora) e dados em painel (indivíduo:período). Retorna uma série contendo o componente maior, ou de menor frequência, de cada observação (por exemplo, o ano). 311 312Ver também <@ref="$obsminor">, <@ref="$obsmicro">. 313 314# $obsmicro access 315Resultado: série 316 317É aplicável quando as observações no conjunto de dados corrente têm uma estrutura maior:menor:micro, como em séries temporais datadas diárias (ano:mês:dia). Retorna uma série contendo o componente micro, ou de maior frequência, de cada observação (por exemplo, o dia). 318 319Ver também <@ref="$obsmajor">, <@ref="$obsminor">. 320 321# $obsminor access 322Resultado: série 323 324É aplicável quando as observações no conjunto de dados corrente têm uma estrutura maior:menor, como em séries temporais trimestrais (ano:trimestre), séries temporais mensais (ano:mês), dados de horas (dia:hora) e dados em painel (indivíduo:período). Retorna uma série contendo o componente menor, ou de maior frequência, de cada observação (por exemplo, o mês). 325 326No caso de dados diários datados, <@lit="$obsminor"> retorna o mês de cada observação. 327 328Ver também <@ref="$obsmajor">, <@ref="$obsmicro">. 329 330# $parnames access 331Resultado: cadeia de texto 332 333Depois da estimação de um modelo de uma só equação, produz um vector de texto contendo os nomes dos parâmetros do modelo. Os números do nomes correspondem ao número dos elementos no vector <@ref="$coeff"> . 334 335Para modelos especificados com uma lista de regressores o resultado será o mesmo que 336 337<code> 338 varnames($xlist) 339</code> 340 341(ver <@ref="varnames">), mas <@lit="$parnames"> é mais geral, pois que funciona também com modelos sem lista de regressores (<@xrf="nls">, <@xrf="mle">, <@xrf="gmm">). 342 343# $pd access 344Resultado: número inteiro 345 346Retorna a frequência ou periodicidade dos dados (por exemplo: 4 para dados trimestrais). No caso de dados em painel o valor retornado será a quantidade de períodos de tempo no conjunto de dados. 347 348# $pi access 349Resultado: escalar 350 351Retorna o valor de π com dupla precisão. 352 353# $pkgdir access 354Resultado: texto 355 356Uma ferramenta especial para ser usada por autores de pacotes de funções. Retorna uma cadeia de texto vazia se não estiver em execução, e se estiver, retorna o caminho completo (de acordo com a plataforma) de onde o pacote está instalado. Por exemplo, o valor retornado pode ser: 357 358<code> 359 /usr/share/gretl/functions/foo 360</code> 361 362se for essa a directoria onde <@lit="foo.gfn"> estiver localizado. Isto permite escritores de pacotes aceder a recursos como sejam ficheiros de matrizes que tenham sido incluidos nos seus pacotes. 363 364# $pvalue access 365Resultado: escalar ou matriz 366 367Retorna o p-valor da estatística de teste que foi gerada pelo último comando explícito de teste de hipóteses (por exemplo: <@lit="chow">). Veja <@pdf="guia de utilização do Gretl#chap:genr"> (Capítulo 10) para detalhes. 368 369Geralmente retorna um escalar, mas em alguns casos retorna uma matriz. Isso ocorre, por exemplo, com os p-valores dos testes lambda traço e lambda máximo associadas ao teste de cointegração de Johansen). Nesse caso os valores na matriz estarão dispostos da mesma forma que na saída do teste. 370 371Ver também <@ref="$test">. 372 373# $qlrbreak access 374Resultado: escalar 375 376Deve ser utilizada após o comando <@xrf="qlrtest"> (que realiza o teste QLR para quebra estrutural em um ponto desconhecido. Retorna o número da observação no qual a estatística de teste é maximizada. 377 378# $result access 379Resultado: matriz ou bundle 380 381Fornece a informação armazenada de alguns comandos que não têm acessores específicos. Tais comandos incluem <@xrf="corr">, <@xrf="fractint">, <@xrf="freq">, <@xrf="summary">, <@xrf="xtab">, <@xrf="vif"> e <@xrf="bkw"> ; neste caso o resultado é uma matriz, e ainda <@xrf="pkg">, que opcionalmente guarda como um resultado bundle. 382 383# $rho access 384Resultado: escalar 385Argumento: <@var="n"> (escalar, opcional) 386 387Se for utilizada sem argumentos a função retorna o coeficiente autorregressivo de primeira ordem para os resíduos do último modelo. Após a estimação de um modelo via comando <@lit="ar">, a sintaxe <@lit="$rho(n)"> retorna a estimativa correspondente de ρ(<@mth="n">). 388 389# $rsq access 390Resultado: escalar 391 392Retorna o <@mth="R"><@sup="2"> não ajustado do último modelo estimado, quando disponível. 393 394# $sample access 395Resultado: série 396 397Deve ser utilizada após a estimação de um modelo com equação simples e retorna uma variável dummy com valores iguais a 1 nas observações utilizadas na estimação, 0 nas observações na amostra corrente e que não foram utilizadas na estimação (possivelmente devido a valores ausentes) e NA nas observações fora da amostra selecionada corrente. 398 399Caso se queira calcular estatísticas baseadas na amostra que foi utilizada para um dado modelo, pode-se fazer, por exemplo: 400 401<code> 402 ols y 0 xlist 403 genr sdum = $sample 404 smpl sdum --dummy 405</code> 406 407# $sargan access 408Resultado: vetor linha 409 410Deve ser utilizada após o comando <@lit="tsls">. Retorna um vetor 1×3 contendo a estatística do teste de sobre-identificação de Sargan e os correspondentes graus de liberdade e p-valor, respectivamente. Se o modelo for exatamente identificado a estatística não estará disponível e tentar acessá-la irá provocar um erro. 411 412# $seed access 413Resultado: escalar 414 415Retorna o valor com que o gerador de números aleatórios de gretl foi inicializado (“semeado”). Se tiver sido definido por você, então não há necessidade de usar este acessor, mas pode ser de interesse se a “semente” tiver sido inicializada automaticamente (baseado no tempo em que o programa foi iniciado). 416 417# $sigma access 418Resultado: escalar ou matriz 419 420Se o último modelo estimado foi uma equação simples, retorna o erro padrão da regressão na forma de um escalar (ou, em outras palavras, retorna o desvio padrão dos resíduos com uma correção apropriada de graus de liberdade). Se o último modelo foi um sistema de equações, retorna a matriz de covariâncias dos resíduos das equações do sistema. 421 422# $stderr access 423Resultado: matriz ou escalar 424Argumento: <@var="s"> (nome do coeficiente, opcional) 425 426Quando utilizado sem argumentos, <@lit="$stderr"> retorna um vetor coluna com os erros padrão dos coeficientes do último modelo estimado. Com o argumento opcional de texto (string) a função retorna, na forma de um escalar, o parâmetro estimado <@var="s">. 427 428Se o “modelo” um sistema, o resultado dependerá de suas características: para VARs e VECMs o valor retornado será uma matriz contendo uma coluna para cada equação, caso contrário, será um vetor coluna contendo os coeficientes da primeira equação seguidos pelos coeficientes da segunda equação e assim sucessivamente. 429 430Ver também <@ref="$coeff">, <@ref="$vcv">. 431 432# $stopwatch access 433Resultado: escalar 434 435Deve ser precedida pelo comando <@lit="set stopwatch"> que, por sua vez, ativa a medição de tempo da CPU. Na primeira utilização da função de acesso obtém-se a quantidade de segundos que se passaram desde o comando <@lit="set stopwatch">. A cada acesso o relógio será reiniciado de forma que as utilizações subsequentes de <@lit="$stopwatch"> irão fornecer os segundos da CPU entre as duas utilizações. 436 437# $sysA access 438Resultado: matriz 439 440Deve ser utilizada após a estimação de um sistema de equações simultâneas. Retorna a matriz com os coeficientes das variáveis endógenas defasadas, caso existam, na forma estrutural do sistema. Veja o comando <@xrf="system">. 441 442# $sysB access 443Resultado: matriz 444 445Deve ser utilizada após a estimação de um sistema de equações simultâneas. Retorna a matriz com os coeficientes das variáveis exógenas na forma estrutural do sistema. Veja o comando <@xrf="system">. 446 447# $sysGamma access 448Resultado: matriz 449 450Deve ser utilizada após a estimação de um sistema de equações simultâneas. Retorna a matriz com os coeficientes das variáveis endógenas contemporâneas na forma estrutural do sistema. Veja o comando <@xrf="system">. 451 452# $sysinfo access 453Resultado: lote 454 455Retorna um pacote (bundle) contendo informações sobre o Gretl e o sistema operacional onde está sendo executado. O elementos do pacote são especificados a seguir. 456 457<indent> 458• <@lit="mpi">: inteiro, igual a 1 se o sistema suporta MPI (Message Passing Interface), caso contrário 0. 459</indent> 460 461<indent> 462• <@lit="omp">: inteiro, igual a 1 se o Gretl foi compilado com suporte a Open MP, caso contrário 0. 463</indent> 464 465<indent> 466• <@lit="nproc">: inteiro, indica o número de processadores disponíveis. 467</indent> 468 469<indent> 470• <@lit="mpimax">: inteiro, indica o número máximo de processos MPI que podem ser executados em paralelo. É igual a zero se não houver suporte para MPI, caso contrário é igual ao valor de <@lit="nproc"> local. Se for especificado um arquivo de hosts MPI, <@lit="mpimax"> será igual a soma do número de processadores ou “slots” ao longo de todas a máquinas referenciadas no arquivo. 471</indent> 472 473<indent> 474• <@lit="wordlen">: inteiro, igual a 32 ou 64 para sistemas de 32 bit e 64, respectivamente. 475</indent> 476 477<indent> 478• <@lit="os">: texto representando o sistema operacional e é igual a <@lit="linux">, <@lit="osx">, <@lit="windows"> ou <@lit="other">. 479</indent> 480 481<indent> 482• <@lit="hostname">: informa o nome da máquina (ou “host”) onde o Gretl está sendo executado no momento. Se não for possível determinar o nome, será retornado o <@lit="localhost">. 483</indent> 484 485Note que elementos individuais no pacote podem ser acessados via utilização da notação “dot” sem a necessidade de copiar o pacote inteiro. Por exemplo, 486 487<code> 488 if $sysinfo.os == "linux" 489 # faça alguma coisa que seja própria do Linux 490 endif 491</code> 492 493# $system access 494Resultado: lote 495 496Deve seguir a estimação de um sistema de equações via comandos <@xrf="system">, <@xrf="var"> ou <@xrf="vecm">. Retorna um pacote (bundle) contendo os ítems que fazem parte do sistema. Todas as funções de acesso regulares são incluídas: estas estão referenciadas de acordo com indicadores que são iguais aos nomes de acesso regular, sem utilizar o símbolo cifrão. Por exemplo, os resíduos aparecem sob o indicador <@lit="uhat"> e os coeficientes sob <@lit="coeff">. Os os indicadores para as informações adicionais deverão ser auto-explicativos. Para verificar quais estão disponíveis pode-se exibir os conteúdos do pacote. Exemplo: 497 498<code> 499 var 4 y1 y2 y2 500 bundle b = $system 501 print b 502</code> 503 504Um pacote definido dessa forma pode ser utilizado como o argumento final (que é opcional) nas funções <@ref="fevd"> e <@ref="irf">. 505 506# $T access 507Resultado: número inteiro 508 509Retorna o número de observações utilizadas na estimação do último modelo. 510 511# $t1 access 512Resultado: número inteiro 513 514Retorna o número da primeira observação na amostra selecionada corrente. 515 516# $t2 access 517Resultado: número inteiro 518 519Retorna o número da última observação na amostra selecionada corrente. 520 521# $test access 522Resultado: escalar ou matriz 523 524Retorna o valor da estatística de teste que foi gerada pelo último comando explícito de teste de hipóteses (por exemplo: <@lit="chow">). Veja <@pdf="guia de utilização do Gretl#chap:genr"> (Capítulo 10) para detalhes. 525 526Geralmente retorna um escalar, mas em alguns casos retorna uma matriz. Isso ocorre, por exemplo, com as estatísticas lambda traço e lambda máximo associadas ao teste de cointegração de Johansen). Nesse caso os valores na matriz estarão dispostos da mesma forma que na saída do teste. 527 528Ver também <@ref="$pvalue">. 529 530# $tmax access 531Resultado: número inteiro 532 533Devolve o máximo valor possível para indicar o fim do intervalo de uma amostra alterada com o comando <@xrf="smpl">. Na maior parte das vezes, isto vai ser igual ao número de observações do conjunto de dados, mas numa função em Hansl, o valor <@lit="$tmax"> pode ser menor, pois em geral o acesso aos dados a partir do interior de funções está limitado ao intervalo amostral definido pela função chamadora. 534 535Notar que, em geral, o <@lit="$tmax"> não é igual a <@ref="$nobs">, que indica número de observações do intervalo da amostra actual. 536 537# $trsq access 538Resultado: escalar 539 540Retorna <@mth="TR"><@sup="2"> (tamanho da amostra multiplicado pelo R-quadrado) do último modelo, quando disponível. 541 542# $uhat access 543Resultado: série 544 545Retorna os resíduos do último modelo. Isto pode ter diferentes significados a depender dos estimadores utilizados. Por exemplo, após a estimação de um ARMA <@lit="$uhat"> irá conter os erros de previsão de 1 passo à frente, após a estimação de um probit irá conter os resíduos generalizados. 546 547Se o “modelo” em questão for um sistema (um VAR, um VECM ou um sistema de equações simultâneas), o <@lit="$uhat"> sem parâmetros fornece a matriz de resíduos, uma coluna por equação. 548 549# $unit access 550Resultado: série 551 552Vale apenas para dados de painel. Retorna uma série com valor igual a 1 em todas as observações na primeira unidade ou grupo, 2 em todas as observações na segunda unidade ou grupo e assim sucessivamente. 553 554# $vcv access 555Resultado: matriz ou escalar 556Argumentos: <@var="s1"> (nome do coeficiente, opcional) 557 <@var="s2"> (nome do coeficiente, opcional) 558 559Quando utilizado sem argumentos, <@lit="$vcv"> retorna uma matriz contendo a matriz de covariâncias estimadas para os coeficientes do último modelo. Se o último modelo foi uma equação simples, então é possível fornecer os nomes dos dois parâmetros entre parênteses para se obter a covariância estimada entre <@var="s1"> e <@var="s2">. Ver também <@ref="$coeff">, <@ref="$stderr">. 560 561Este acessor não está disponível para VARs ou VECMs. Para modelos desse tipo <@ref="$sigma"> e <@ref="$xtxinv">. 562 563# $vecGamma access 564Resultado: matriz 565 566Deve ser utilizada após a estimação de um VECM e retorna uma matriz na qual as matrizes Gama (coeficientes das diferenças defasadas das variáveis cointegradas) são empilhadas lado a lado. Cada linha representa uma equação. Para um VECM de ordem <@mth="p"> existem <@mth="p"> – 1 sub-matrizes. 567 568# $version access 569Resultado: escalar 570 571Retorna um valor inteiro que identifica a versão do Gretl. Atualmente a versão do Gretl é composta por um texto com o seguinte formato: ano, com 4 dígitos, seguido de uma letra, de a até j, representando as atualizações dentro desse ano (por exemplo, 2015d). O valor retornado por essa função é igual ao ano multiplicado por 10 e adicionado de um número representando, em ordem léxica, a letra. Assim, 2015d seria representado por 20153. 572 573Em versões anteriores ao Gretl 2015d, o identificador possuia a seguinte forma: x.y.z (três inteiros separados por pontos) e o valor da função era calculado como <@lit="10000*x + 100*y + z ">. Assim, por exemplo, a versão 1.10.2 era traduzida como 11002. Note que dessa forma a ordem numérica de <@lit="$version "> foi preservada mesmo com a mudança no esquema de versões. 574 575# $vma access 576Resultado: matriz 577 578Deve ser utilizada após a estimação de um VAR ou um VECM e retorna uma matriz contendo a representação VMA até a ordem especificada via comando <@lit="set horizon">. Veja <@pdf="guia de utilização do Gretl#chap:var"> (Capítulo 32) para detalhes. 579 580# $windows access 581Resultado: número inteiro 582 583Retorna o valor 1 se o Gretl estiver sendo utilizado no Windows e 0 caso contrário. Através dessa função é possível utilizar comandos “shell” em scripts que possam ser executados em diferentes sistemas operacionais. 584 585Veja também o comando <@xrf="shell">. 586 587# $workdir access 588Resultado: texto 589 590Este acessor retorna o caminho por defeito onde Gretl lê e escreve os ficheiros. Uma descrição mais detalhada pode ser encontrada no Guia de Referência dos Comandos em <@xrf="workdir">.Note-se que esta variável pode ser alterada por meio do comando <@xrf="set">. 591 592# $xlist access 593Resultado: lista 594 595Se o último modelo estimado foi um equação simples a função retorna uma lista com os regressores. Se o último modelo foi um sistema de equações ela retorna uma lista “global” com as variáveis exógenas e predeterminadas (na mesma ordem que aparecem na função <@ref="$sysB">). Se o último modelo foi um VAR ela retorna uma lista com os regressores exógenos, caso existam. 596 597# $xtxinv access 598Resultado: matriz 599 600Após a estimação de um VAR ou VECM (apenas), retorna <@mth="X'X"><@sup="-1">, onde <@mth="X"> é a matriz comum de regressores utilizados em cada equação. Essa função de acesso não está disponível para VECMs estimados com restrições impostas na matriz de cargas(α). 601 602# $yhat access 603Resultado: série 604 605Retorna os valores ajustados da última regressão. 606 607# $ylist access 608Resultado: lista 609 610Se o último modelo estimado foi um VAR, um VECM ou um sistema de equações simultâneas a função retorna uma lista com as variáveis endógenas. Se o último modelo foi uma equação simples a função de acesso retorna uma lista com apenas um elemento, a variável dependente. No caso especial do modelo biprobit a lista irá conter dois elementos. 611 612## Functions proper 613 614# abs math 615Resultado: o mesmo tipo que o argumento 616Argumento: <@var="x"> (escalar, série ou matriz) 617 618Retorna o valor absoluto de <@var="x">. 619 620# acos math 621Resultado: o mesmo tipo que o argumento 622Argumento: <@var="x"> (escalar, série ou matriz) 623 624Retorna o arco-cosseno de <@var="x">, isto é, o valor cujo cosseno é <@var="x">. Resultado em radianos e o argumento deve estar entre –1 e 1. 625 626# acosh math 627Resultado: o mesmo tipo que o argumento 628Argumento: <@var="x"> (escalar, série ou matriz) 629 630Retorna o cosseno hiperbólico inverso de <@var="x"> (solução positiva). <@var="x"> deve ser maior que 1, caso contrário a função retornará NA. Ver também <@ref="cosh">. 631 632# aggregate stats 633Resultado: matriz 634Argumentos: <@var="x"> (série ou lista) 635 <@var="byvar"> (série ou lista) 636 <@var="funcname"> (texto, opcional) 637 638Na forma mais simples de uso, <@var="x"> é igual a <@lit="null">, <@var="byvar"> é uma séries individual e o terceiro argumento é omitido. Neste caso é retornada uma matriz com duas colunas contendo na primeira coluna os valores distintos de <@var="byvar">, ordenados de forma crescente, e na segunda a quantidade de observações de <@var="byvar"> para cada um dos valores distintos. Por exemplo, 639 640<code> 641 open data4-1 642 eval aggregate(null, bedrms) 643</code> 644 645mostrará que a serie <@lit="bedrms"> tem valores 3 (num total de 5 vezes) e 4 (num total de 9 vezes). 646 647Se <@var="x"> e <@var="byvar"> são ambas séries individuais, e é indicado um terceiro argumento, o valor retornado é uma matriz com três colunas contendo, respectivamente, os valores distintos de <@var="byvar">, por ordem crescente; a contagem das observações em que o <@var="byvar"> toma em cada um desses valores; e os valores da estatística especificada por <@var="funcname"> calculada na série <@var="x">, usando apenas aquelas observações nas quais <@var="byvar"> tem valor igual aos dados na primeira coluna. 648 649Mais geralmente, se <@var="byvar"> for uma lista com <@mth="n"> membros então as <@mth="n"> colunas a esquerda contêm as combinações dos valores distintos de cada uma das <@mth="n"> séries e a coluna de contagem contém o número de observações nas quais cada combinação é feita. Se <@var="x"> for uma lista com <@mth="m"> membros então as <@mth="m"> colunas mais a direita contêm os valores da estatística especificada para cada uma das <@var="x"> variáveis, novamente calculadas na subamostra indicada na(s) primeira(s) coluna(s). 650 651Os seguintes valores de <@var="funcname"> são suportados de forma “nativa”: <@ref="sum">, <@ref="sumall">, <@ref="mean">, <@ref="sd">, <@ref="var">, <@ref="sst">, <@ref="skewness">, <@ref="kurtosis">, <@ref="min">, <@ref="max">, <@ref="median">, <@ref="nobs"> e <@ref="gini">. Cada uma dessas funções utiliza uma série como argumento e retorna um valor escalar e, nesse sentido, pode-se dizer que “agregam” a série de alguma forma. É possível utilizar uma função definida pelo usuário como um agregador. Da mesma forma que as funções nativas, tal função deve ter como argumento apenas uma única série e retornar um valor escalar. 652 653Note que apesar de a contagem de casos ser realizada de forma automática pela função <@lit="nobs">, a função <@lit="aggregate "> não é redundante como uma agregadora, uma vez que fornece o número de observações válidas (não ausentes) em <@var="x "> em cada combinação <@var="byvar">. 654 655Para exemplificar isso, suponha que <@lit="region"> representa um código de uma região geográfica usando valores inteiros de 1 até <@mth="n"> e <@lit="income"> representa a renda doméstica. Então o cálculo a seguir deverá produzir uma matriz de ordem <@itl="n">×3 contendo os códigos das regiões, a contagem de observações em cada região e a renda média doméstica para cada uma das regiões: 656 657<code> 658 matrix m = aggregate(income, region, mean) 659</code> 660 661Para um exemplo usando listas, seja <@lit="gender"> uma variável dummy macho/fêmea, seja <@lit="race"> uma variável categórica com três valores e considere o seguinte código: 662 663<code> 664 list BY = gender race 665 list X = income age 666 matrix m = aggregate(X, BY, sd) 667</code> 668 669A utilização de <@lit="aggregate"> produzirá uma matriz de ordem 6×5. As primeiras duas colunas contêm as 6 distintas combinações dos valores de gênero e raça. A coluna do meio contém a contagem para cada uma dessas combinações. As duas colunas mais à direita contêm os desvios padrão amostrais de <@lit="income"> e <@lit="age">. 670 671Note que se <@var="byvar"> for uma lista, algumas combinações dos valores de <@var="byvar"> podem não estar presentes nos dados (fornecendo uma contagem igual a zero). Nesse caso os valores das estatísticas para <@var="x"> são considerados como <@lit="NaN"> (ou seja, não são números). Caso seja desejado ignorar esses casos é possível utilizar a função <@ref="selifr"> para selecionar apenas aquelas linhas que não possuam uma contagem igual a zero. A coluna a ser testada estará uma posição à direita após o número de variáveis de <@var="byvar">, assim, pode-se utilizar o seguinte código: 672 673<code> 674 matrix m = aggregate(X, BY, sd) 675 scalar c = nelem(BY) 676 m = selifr(m, m[,c+1]) 677</code> 678 679# argname strings 680Resultado: texto 681Argumento: <@var="s"> (texto) 682 683Seja <@var="s"> o nome de um parâmetro de uma função definida pelo usuário, retorna o nome do argumento correspondente ou uma variável de texto (string) vazia se o argumento for anônimo. 684 685# array data-utils 686Resultado: ver abaixo 687Argumento: <@var="n"> (número inteiro) 688 689É a função “construtora” básica de uma nova variável do tipo arranjo (array). Ao usar esta função é necessário que se especifique um tipo (na forma plural) para o arranjo: <@lit="strings">, <@lit="matrices">, <@lit="bundles"> ou <@lit="lists">. O valor de retorno é um arranjo do tipo especificado e com <@var="n"> elementos “vazios” (exemplos: variável de texto/string vazia ou matriz nula). Exemplos de utilização: 690 691<code> 692 strings S = array(5) 693 matrices M = array(3) 694</code> 695 696Veja também <@ref="defarray">. 697 698# asin math 699Resultado: o mesmo tipo que o argumento 700Argumento: <@var="x"> (escalar, série ou matriz) 701 702Retorna o arco-seno de <@var="x">, isto é, o valor cujo seno é <@var="x">. Resultado em radianos e o argumento deve estar entre –1 e 1. 703 704# asinh math 705Resultado: o mesmo tipo que o argumento 706Argumento: <@var="x"> (escalar, série ou matriz) 707 708Retorna o seno hiperbólico inverso de <@var="x">. Ver também <@ref="sinh">. 709 710# assert programming 711Resultado: escalar 712Argumento: <@var="expr"> (escalar) 713 714Esta função serve para testar ou despistar erros no código hansl. O argumento deve ser uma expressão escalar. O valor retornado é 1 se <@var="expr"> retorna um valor não-zero (o valor booleano “verdadeiro”, ou “sucesso”) ou 0 se a expressão é zero (o valor booleano “falso”, ou “insucesso”). 715 716Por defeito, não há consequências se <@lit="assert"> falhar, para além do valor retornado ser zero. No entanto o comando <@xrf="set"> pode ser usado para fazer com que uma falha da verificação seja mais consequente. Existem dois níveis: 717 718<code> 719 # mostra uma mensagem de aviso mas continua a execução 720 set assert warn 721 # mostra uma mensagem de erro e interrompe a execução 722 set assert stop 723</code> 724 725O comportamento padrão pode ser restaurado com o comando 726 727<code> 728 set assert off 729</code> 730 731Como simples exemplo, se num certo ponto no script hansl um escalar <@lit="x"> ser sempre não-negativo, este código controlará esta condição e terminará se ela não for satisfeita: 732 733<code> 734 set assert stop 735 assert(x >= 0) 736</code> 737 738# atan math 739Resultado: o mesmo tipo que o argumento 740Argumento: <@var="x"> (escalar, série ou matriz) 741 742Retorna o arco-tangente de <@var="x">, isto é, o valor cuja tangente é <@var="x">. Resultado em radianos. Ver também <@ref="cos">, <@ref="sin">, <@ref="tan">. 743 744# atan2 math 745Resultado: o mesmo tipo que o argumento 746Argumentos: <@var="y"> (escalar, série ou matriz) 747 <@var="x"> (escalar, série ou matriz) 748 749Retorna o valor principal do arco-tangente de <@var="y">/<@var="x">, usando os sinais dos dois argumentos para determinar o quadrante do resultado, que é expresso em radianos, dentro do intervalo [–π, π]. 750 751Se os dois argumentos forem de tipos diferentes, o resultado é do tipo “mais alto” dos dois, seguindo a ordem, matriz > série > escalar. Por exemlo, se <@var="y"> é um escalar e <@var="x"> um vector de <@mth="n"> elementos (ou viceversa), o resultado é também um vector. Note-se que os argumentos matriciais deverem ser vectores, e que se nenhum deles for escalar, devem ter a mesma dimensão. 752 753Ver também <@ref="tan">, <@ref="tanh">. 754 755# atanh math 756Resultado: o mesmo tipo que o argumento 757Argumento: <@var="x"> (escalar, série ou matriz) 758 759Retorna a tangente hiperbólica inversa de <@var="x">. Ver também <@ref="tanh">. 760 761# atof strings 762Resultado: escalar 763Argumento: <@var="s"> (texto) 764 765Função semelhante à existente na linguagem de programação C, retorna o resultado da conversão da variável de texto (string) <@var="s"> (ou sua porção inicial, após descartar quaisquer espaços em branco no seu início) em número de ponto flutuante. Diferente do que ocorre na linguagem C, a função <@lit="atof"> (por questões de portabilidade) sempre assume que o caractere decimal é o “<@lit=".">”. Todos os caracteres que se seguem após a parte de <@var="s"> que pode ser convertida para um número de ponto flutuante são ignorados. 766 767Se nenhum dos caracteres de <@var="s"> (que se seguem após os espaços em branco que são descartados) puderem ser convertidos a função retornará <@lit="NA">. 768 769<code> 770 # Exemplos: 771 x = atof("1.234") # retorna x = 1.234 772 x = atof("1,234") # retorna x = 1 773 x = atof("1.2y") # retorna x = 1.2 774 x = atof("y") # retorna x = NA 775 x = atof(",234") # retorna x = NA 776</code> 777 778Veja também <@ref="sscanf"> para maior flexibilidade nas conversões de textos em números. 779 780# bessel math 781Resultado: o mesmo tipo que o argumento 782Argumentos: <@var="type"> (caractere) 783 <@var="v"> (escalar) 784 <@var="x"> (escalar, série ou matriz) 785 786Calcula uma das variantes da função de Bessel de ordem <@var="v"> e argumento <@var="x">. O valor retornado será do mesmo tipo de <@var="x">. A função específica é selecionada pelo primeiro argumento e deve ser <@lit="J">, <@lit="Y">, <@lit="I"> ou <@lit="K">. Uma boa discussão sobre as funções de Bessel pode ser encontrada na Wikipédia. Aqui serão feitos comentários breves. 787 788caso <@lit="J">: função de Bessel de primeiro tipo. Se assemelha a uma onda senoidal amortecida. Definida para <@var="v"> real e <@var="x">. Se <@var="x"> for negativo então <@var="v"> deve ser um inteiro. 789 790caso <@lit="Y">: função de Bessel de segundo tipo. Definida para <@var="v"> real e <@var="x">, mas com uma singularidade em <@var="x"> = 0. 791 792caso <@lit="I">: função de Bessel modificada de primeiro tipo. Uma função com crescimento exponencial. Argumentos que podem ser usados são os mesmos do caso <@lit="J">. 793 794caso <@lit="K">: função de Bessel modificada de segundo tipo. Uma função com decaimento exponencial. Diverge em <@var="x"> = 0 e não é definida para valores negativos de <@var="x">. É simétrica em torno de <@var="v"> = 0. 795 796# BFGSmax numerical 797Resultado: escalar 798Argumentos: <@var="&b"> (referência a matriz) 799 <@var="f"> (chamada a função) 800 <@var="g"> (chamada a função, opcional) 801 802Realiza a maximização numérica via método de Broyden, Fletcher, Goldfarb e Shanno. O argumento <@var=" b"> deve conter os valores iniciais de um conjunto de parâmetros e o argumento <@var="f"> deve especificar uma chamada à função que calcule o critério (escalar) a ser maximizado, dados os valores correntes dos parâmetros e quaisquer outros dados que sejam relevantes. Se o objetivo for de fato uma minimização, esta função deverá retornar o negativo do critério. Se for completada com sucesso, <@lit="BFGSmax"> retorna o valor maximizado do critério e <@var="b"> armazena os valores dos parâmetros que maximizam a função. 803 804O terceiro argumento, opcional, estabelece uma maneira de fornecer derivadas analíticas (caso contrário o gradiente será computado numericamente). A função gradiente <@var=" g"> deve ter como primeiro argumento uma matriz pré-definida que tenha o tamanho adequado para armazenar o gradiente, dado na forma de ponteiro. Ela também precisa ter o vetor de parâmetros como um argumento (na forma de ponteiro ou não). Outros argumentos são opcionais. 805 806Para maiores detalhes e exemplos veja o capítulo sobre métodos numéricos em <@pdf="guia de utilização do Gretl#chap:numerical"> (Capítulo 37). Ver também <@ref="BFGScmax">, <@ref="NRmax">, <@ref="fdjac">, <@ref="simann">. 807 808# BFGSmin numerical 809Resultado: escalar 810 811É uma forma alternativa da função <@ref="BFGSmax">. Se invocada com este nome a função comporta-se como minimizadora. 812 813# BFGScmax numerical 814Resultado: escalar 815Argumentos: <@var="&b"> (referência a matriz) 816 <@var="bounds"> (matriz) 817 <@var="f"> (chamada a função) 818 <@var="g"> (chamada a função, opcional) 819 820Realiza a maximização com restrições via L-BFGS-B (BFGS com memória limitada, veja <@bib="Byrd, Lu, Nocedal e Zhu, 1995;byrd-etal95">). O argumento <@var="b "> deve conter os valores iniciais de um conjunto de parâmetros, <@var="bounds"> deve conter as restrições que aplicadas aos valores dos parâmetros (veja abaixo) e <@var="f"> deve especificar uma chamada à função que calcule o critério (escalar) a ser maximizado, dados os valores correntes dos parâmetros e quaisquer outros dados que sejam relevantes. Se o objetivo for de fato uma minimização, esta função deverá retornar o negativo do critério. Se for completada com sucesso, <@lit="BFGScmax"> retorna o valor maximizado do critério, sujeito às restrições em <@var="bounds"> e <@var="b"> contém os valores dos parâmetros que maximizam a função. 821 822A matriz <@var="bounds"> deve ter 3 colunas e um número de linhas igual ao número de elementos restritos no vetor de parâmetros. O primeiro elemento de uma dada linha é o índice (de base 1) do parâmetro restrito, o segundo e o terceiro são os limites inferiores e superiores, respectivamente. Os valores <@lit="-$huge"> e <@lit="$huge"> devem ser usados para indicar que o parâmetro não possui restrições inferiores ou superiores, respectivamente. Por exemplo, a expressão a seguir é a forma de se especificar que o segundo elemento do vetor de parâmetros deve ser não-negativo: 823 824<code> 825 matrix bounds = {2, 0, $huge} 826</code> 827 828O quarto argumento, opcional, estabelece uma maneira de fornecer derivadas analíticas (caso contrário o gradiente será computado numericamente). A função gradiente <@var=" g"> deve ter como primeiro argumento uma matriz pré-definida que tenha o tamanho adequado para armazenar o gradiente, dado na forma de ponteiro. Ela também precisa ter o vetor de parâmetros como um argumento (na forma de ponteiro ou não). Outros argumentos são opcionais. 829 830Para maiores detalhes e exemplos veja o capítulo sobre métodos numéricos em <@pdf="guia de utilização do Gretl#chap:numerical"> (Capítulo 37). Ver também <@ref="BFGSmax">, <@ref="NRmax">, <@ref="fdjac">, <@ref="simann">. 831 832# BFGScmin numerical 833Resultado: escalar 834 835É uma forma alternativa da função <@ref="BFGSmax">.Se invocada com este nome a função comporta-se como minimizadora. 836 837# bincoeff math 838Resultado: o mesmo tipo que o argumento 839Argumentos: <@var="n"> (escalar, série ou matriz) 840 <@var="k"> (escalar, série ou matriz) 841 842Calcula o coeficiente binomial, ou seja o número de maneiras com que <@var="k"> elementos possam ser escolhidos a partir dos <@var="n"> elementos sem repetições, independentemente da sua ordenação. Este número é também igual ao <@var="(k+1)">-esimo coeficiente da expansão polinomial da <@mth="(1+x)^n">. 843 844Para argumentos inteiros, o resultado é <@mth="n!/k!(n-k)!">, mas a função aceita também aceita argumentos reais, e a fórmula generaliza-se com <@mth=" Γ(n+1)/( Γ(k+1) × Γ(n-k+1) )"> 845 846Quando <@var="k"> > <@var="n"> ou <@var="k"> < 0, a função retorna NA. 847 848Se os dois argumentos forem de tipos diferentes, o resultado é do tipo “mais alto” dos dois, seguindo a ordem, matriz > série > escalar. Por exemlo, se <@var="n"> é um escalar e <@var="k"> um vector de <@mth="r"> elementos (ou viceversa), o resultado é também um vector. Note-se que os argumentos matriciais deverem ser vectores, e que se nenhum deles for escalar, devem ter a mesma dimensão. 849 850Ver também <@ref="gammafun"> e <@ref="lngamma">. 851 852# bkfilt timeseries 853Resultado: série 854Argumentos: <@var="y"> (série) 855 <@var="f1"> (número inteiro, opcional) 856 <@var="f2"> (número inteiro, opcional) 857 <@var="k"> (número inteiro, opcional) 858 859Retorna o resultado da aplicação do filtro passa-banda de Baxter–King para a série <@var="y">. Os parâmetros opcionais <@var="f1"> e <@var="f2"> representam, respectivamente, os limites inferior e superior da amplitude de frequência a ser extraída, enquanto <@var="k"> é a ordem de aproximação a ser utilizada. 860 861Se esses argumentos não forem fornecidos então os valores padrão irão depender da periodicidade do conjunto de dados. Para dados anuais os padrões para <@var="f1">, <@var="f2"> e <@var="k"> são 2, 8 e 3, respectivamente. Para dados trimestrais são 6, 32 e 12. Para dados mensais são 18, 96 e 36. Esses valores são escolhidos para coincidir com a escolha mais comum entre os praticantes, que é a utilização desse filtro para extrair o componente de frequência do “ciclo de negócios”. Isso, por sua vez, é comumente definido como sendo entre 18 meses e 8 anos. O filtro, por escolha padrão, abrange 3 anos de dados. 862 863Se <@var="f2"> for maior ou igual ao número de observações disponíveis, então a versão “passa-baixa” do filtro será executada e a série resultante deve ser considerada como uma estimativa do componente de tendência, ao invés de ciclo. Ver também <@ref="bwfilt">, <@ref="hpfilt">. 864 865# bkw stats 866Resultado: matriz 867Argumentos: <@var="V"> (matriz) 868 <@var="parnames"> (cadeia de texto, opcional) 869 <@var="verbose"> (booleano, opcional) 870 871Calcula o test BKW para a colinearidade (ver <@bib="Belsley, Kuh and Welsch (1980);belsley-etal80">) dada a matriz covariança da estimativa dos parâmetros <@var="V">. O segundo argumento opcional, que pode ser um vector de texto ou uma cadeia de texto que contenha nomes separados por vírgulas, é usado para etiquetar a coluna que mostra a proporção da variância; o número de nomes deve ser igual à dimensão de <@var="V">. Depois de se ter estimado uma modelo em gretl, pode-se obter os parâmetros adequados por via dos acessores <@ref="$vcv"> e <@ref="$parnames">. 872 873Por defeito esta função produz apenas a tabela BKW como matriz, mas se inserir um valor diferente de 0 como terceiro argumento, junto com a tabela é mostrado mais alguma análise. 874 875Esta função também existe como comando que retorna o mesmo cálculo, <@xrf="bkw">, e que usa automaticamente o último modelo sem necessitar argumentos. 876 877# boxcox transforms 878Resultado: o mesmo tipo que o argumento 879Argumentos: <@var="y"> (série ou matriz) 880 <@var="d"> (escalar) 881 882Retorna a transformação de Box–Cox com parâmetro <@var="d"> para uma variável positiva <@var="y"> (ou a coluna da matriz <@var="y">). 883 884O resultado é (<@mth="y"><@sup="d"> - 1)/<@mth="d"> para <@mth="d"> diferente de zero ou log(<@mth="y">) para <@mth="d"> = 0. 885 886# bread data-utils 887Resultado: lote 888Argumentos: <@var="fname"> (texto) 889 <@var="import"> (booleano, opcional) 890 891Lê um pacote (bundle) a partir de um arquivo de texto. A variável de texto (string) <@var="fname"> deve conter o nome do arquivo no qual o pacote será lido. Se esse nome tiver a extensão “<@lit=".gz">” será assumido que foi aplicada a compactação do arquivo via gzip. 892 893O arquivo em questão deve ser um XML apropriadamente definido: ele dever conter um elemento <@lit="gretl-bundle">, utilizado para armazenar zero ou mais elementos <@lit="bundled-item">. Por exemplo: 894 895<code> 896 <?xml version="1.0" encoding="UTF-8"?> 897 <gretl-bundle name="temp"> 898 <bundled-item key="s" type="string">moo</bundled-item> 899 <bundled-item key="x" type="scalar">3</bundled-item> 900 </gretl-bundle> 901</code> 902 903Como esperado, tais arquivos são gerados automaticamente pela função associada <@ref="bwrite">. 904 905Se o nome do arquivo não contiver a especificação completa de seu caminho, ele será procurado em vários locais “prováveis”, começando no <@xrf="workdir"> corrente. Entretanto, se for dado um valor não-nulo para o argumento opcional <@var="import">, o arquivo será procurado no diretório “@dotdir”. Nesse caso o argumento <@var="fname"> deverá ser um nome simples, sem a inclusão do caminho. 906 907Se ocorrer algum erro (tal como o arquivo ter sido mal formatado ou ser inacessível), um erro será retornado via acessor <@ref="$error">. 908 909Ver também <@ref="mread">, <@ref="bwrite">. 910 911# brename data-utils 912Resultado: escalar 913Argumentos: <@var="B"> (lote) 914 <@var="antiga"> (texto) 915 <@var="nova"> (texto) 916 917Se o argumento bundle <@var="B"> contém um elemento com a etiqueta <@var="antiga">, esta é alterada para <@var="nova">; caso contrário, é mostrado um erro. Em caso de sucesso, retorna 0. 918 919Esta não é uma operação muito comum, mas pode ser necessária em funções que trabalham com bundles, e <@lit="brename"> é uma ferramenta eficiente para essa tarefa. Exemplo: 920 921<code> 922 # controi um bundle contendo uma matriz grande 923 bundle b 924 b.X = mnormal(1000, 1000) 925 if 0 926 # muda o nome manualmente 927 Xcopy = b.X 928 delete b.X 929 b.Y = Xcopy 930 delete Xcopy 931 else 932 # melhor: mais eficiente 933 brename(b, "X", "Y") 934 endif 935</code> 936 937O primeiro método obriga a que a matriz seja copiada duas vezes, fora do bundle e depois insere com nova etiqueta, enquanto o método eficiente altera directamente a etiqueta. 938 939# bwfilt timeseries 940Resultado: série 941Argumentos: <@var="y"> (série) 942 <@var="n"> (número inteiro) 943 <@var="omega"> (escalar) 944 945Retorna o resultado da aplicação de um filtro passa-baixo de Butterworth de ordem <@var="n"> e frequência de corte <@var="omega"> na série <@var="y">. O corte é expresso em graus e deve ser maior ou igual a 0 e menor que 180. Valores de corte menores restringem o passa-banda a menores frequências e assim produzem uma tendência mais suave. Valores maiores de <@var="n"> produzem um corte mais agudo, mas ao custo de possível instabilidade numérica. 946 947A inspeção preliminar do periodograma da série de interesse é útil quando se deseja aplicar esta função. Veja <@pdf="guia de utilização do Gretl#chap:tsfilter"> (Capítulo 30) para detalhes. Ver também <@ref="bkfilt">, <@ref="hpfilt">. 948 949# bwrite data-utils 950Resultado: número inteiro 951Argumentos: <@var="B"> (lote) 952 <@var="fname"> (texto) 953 <@var="export"> (booleano, opcional) 954 955Escreve um pacote (bundle) <@var="B"> em um arquivo XML com nome <@var="fname">. Para uma descrição sumária de seu formato, veja <@ref="bread">. Se já existir um arquivo <@var="fname"> ele será sobrescrito. O valor de retorno da função é 0 em caso de sucesso. Se ocorrerem erros, tais como a impossibilidade de sobrescrever o arquivo, a função retorna um valor não-nulo. 956 957O arquivo de saída será salvo no diretório <@xrf="workdir">, a menos que a variável <@var="fname"> contenha um caminho para o diretório onde será armazenado. Entretanto, se for dado um valor não-nulo para o argumento <@var=" export">, o arquivo de saída será armazenado no diretório “@dotdir”. Neste caso um nome simples, sem especificação de caminho, deverá ser utilizado como segundo argumento. 958 959Por padrão, o arquivo XML é armazenado sem compressão, mas se <@var="fname"> tiver a extensão <@lit=".gz"> é aplicada a compressão gzip. 960 961Ver também <@ref="bread">, <@ref="mwrite">. 962 963# carg complex 964Resultado: matriz 965Argumento: <@var="C"> (matriz complexa) 966 967Retorna uma matriz real <@itl="m">×<@itl="n"> contendo o “argumento” complexo de cada elemento da matriz complexa <@itl="m">×<@itl="n"> <@var="C">. O argumento do número complexo <@mth="z"> = <@mth="x"> + <@mth="yi"> também pode ser calculado como <@lit="atan2(y, x)">. 968 969Ver também <@ref="cmod">, <@ref="atan2">. 970 971# cdemean transforms 972Resultado: matriz 973Argumentos: <@var="X"> (matriz) 974 <@var="standardize"> (booleano, opcional) 975 976Centraliza as colunas da matriz <@var="X"> em torno de suas médias. Se o segundo argumento (opcional) é diferente de zero, a coluna é normalizada, usando o desvio padrão ajustada com os graus de liberdade (ou seja <@mth="n"> – 1 como divisor, onde <@mth="n"> é o número de linhas de <@var="X">). 977 978# cdf probdist 979Resultado: o mesmo tipo que o argumento 980Argumentos: <@var="c"> (caractere) 981 <@var="…"> (ver abaixo) 982 <@var="x"> (escalar, série ou matriz) 983Exemplos: <@lit="p1 = cdf(N, -2.5)"> 984 <@lit="p2 = cdf(X, 3, 5.67)"> 985 <@lit="p3 = cdf(D, 0.25, -1, 1)"> 986 987Calculadora da função de distribuição acumulada. Retorna <@mth="P(X ≤ x)">, onde a distribuição de <@mth="X"> é especificada pela letra <@var="c">. Entre os argumentos <@var=" c"> e <@var="x">, zero ou mais argumentos adicionais são necessários para que se especifique os parâmetros da distribuição. Isso é feito da seguinte forma (note que a distribuição normal tem, por conveniência, uma função própria, <@ref="cnorm">): 988 989<indent> 990• Normal padrão (c = z, n ou N): sem argumentos extras 991</indent> 992 993<indent> 994• Normal bivariada (D): coeficiente de correlação 995</indent> 996 997<indent> 998• t de Student (t): graus de liberdade 999</indent> 1000 1001<indent> 1002• Qui-quadrado (c, x ou X): graus de liberdade 1003</indent> 1004 1005<indent> 1006• F de Snedecor F (f ou F): graus de liberdade (num.); graus de liberdade (den.) 1007</indent> 1008 1009<indent> 1010• Gama (g ou G): forma; escala 1011</indent> 1012 1013<indent> 1014• Binomial (b ou B): probabilidade; quantidade de tentativas 1015</indent> 1016 1017<indent> 1018• Poisson (p ou P): média 1019</indent> 1020 1021<indent> 1022• Exponencial (exp): escala 1023</indent> 1024 1025<indent> 1026• Weibull (w ou W): forma; escala 1027</indent> 1028 1029<indent> 1030• Laplace (l ou L): media; escala 1031</indent> 1032 1033<indent> 1034• Erro Generalizado (E): forma 1035</indent> 1036 1037<indent> 1038• Qui-quadrado não-central (ncX): graus de liberdade, parâmetro de não-centralidade 1039</indent> 1040 1041<indent> 1042• F não-central (ncF): graus de liberdade (num.), graus de liberdade (den.), parâmetro de não-centralidade 1043</indent> 1044 1045<indent> 1046• t não-central (nct): graus de liberdade, parâmetro de não-centralidade 1047</indent> 1048 1049Note que na maioria dos casos existem pseudônimos para ajudar na memorização dos códigos. O caso da norma bivariada é especial: a sintaxe é <@lit="x = cdf(D, rho, z1, z2)"> onde <@lit="rho"> é a correlação entre as variáveis <@lit="z1"> e <@lit="z2">. 1050 1051Ver também <@ref="pdf">, <@ref="critical">, <@ref="invcdf">, <@ref="pvalue">. 1052 1053# cdiv complex 1054Resultado: matriz 1055Argumentos: <@var="X"> (matriz) 1056 <@var="Y"> (matriz) 1057 1058Divisão de números complexos. Os dois argumentos devem possuir o mesmo número de linhas, <@mth="n">, e devem possuir uma ou duas colunas. A primeira coluna contém a parte real e a segunda (se estiver presente) contém a parte imaginária. A função retorna uma matriz de ordem <@itl="n">×2 ou, caso não exista a parte imaginária, um vetor com <@mth="n"> linhas. Ver também <@ref="cmult">. 1059 1060# cdummify transforms 1061Resultado: lista 1062Argumento: <@var="L"> (lista) 1063 1064Esta função devolve uma lista em que cada série do argumento <@var="L"> que tenha o atributo “codificado” é substituída por un conjunto de variáveis fictícias/dummy que representam cada um dos seus valores codificados, mas omitindo o valor mais pequeno/menor. Se o argumento <@var="L"> não contém nenhuma série codificada, o valor retornado vai ser idêntico ao argumento <@var="L">. 1065 1066As variáveis fictícias/dummy, se geradas, terão os nomes criados de acordo com o padrão <@lit="D"><@var=" nome-da-variável "><@lit="_"><@var="vi"> onde <@var="vi"> é o <@var="i"><@itl="-ésimo"> valor representado da variável codificada. Caso alguns valores sejam negativos, será inserido “m” antes do valor (absoluto) de <@var="vi">. 1067 1068Por exemplo, supondo que <@var="L"> contém, uma série codificada chamada <@lit="C1"> com valores –9, –7, 0, 1 e 2. Então, as variáveis dummy/fictícias geradas vão ser <@lit="DC1_m7"> (que codifica quando C1 = –7), <@lit="DC1_0"> (que codifica quando C1 = 0), etc. 1069 1070Ver também <@ref="dummify">, <@ref="getinfo">. 1071 1072# ceil math 1073Resultado: o mesmo tipo que o argumento 1074Argumento: <@var="x"> (escalar, série ou matriz) 1075 1076Consiste na função teto. Retorna o menor inteiro que seja maior ou igual a <@var="x">. Ver também <@ref="floor">, <@ref="int">. 1077 1078# cholesky linalg 1079Resultado: matriz quadrada 1080Argumento: <@var="A"> (matriz positiva definida) 1081 1082Realiza a decomposição de Cholesky da matriz <@var="A">, assumindo que seja simétrica e definida positiva. O resultado será uma matriz triangular inferior <@mth="L"> que satisfaz <@mth="A = LL'">. A função irá falhar se <@var="A"> não for simétrica ou não for definida positiva. Ver também <@ref="psdroot">. 1083 1084# chowlin timeseries 1085Resultado: matriz 1086Argumentos: <@var="Y"> (matriz) 1087 <@var="xfac"> (número inteiro) 1088 <@var="X"> (matriz, opcional) 1089 1090Expande os dados de entrada, <@var="Y">, para uma frequência maior utilizando o método de <@bib="Chow e Lin (1971);chowlin71">. É assumido que as colunas de <@var="Y"> representam séries. A matriz retornada tem a mesma quantidade de colunas de <@var="Y"> e <@var="xfac"> vezes o número de linhas. 1091 1092O segundo argumento representa o fator de expansão. Deve ser igual a 3 para expandir dados trimestrais em mensais ou igual a 4 para expandir de anual para trimestral (estes são os únicos fatores atualmente suportados). O terceiro argumento, que é opcional, pode ser utilizado para fornecer uma matriz de covariáveis com frequência maior. 1093 1094Os regressores utilizados por padrão são uma constante e uma tendência quadrática. Se <@var="X"> for fornecido, suas colunas devem ser utilizadas como regressores adicionais. A função retornará um erro se o número de linhas em <@var="X"> não for igual a <@var="xfac"> vezes o número de linhas em <@var="Y">. 1095 1096# cmod complex 1097Resultado: matriz 1098Argumento: <@var="C"> (matriz complexa) 1099 1100Retorna uma matriz real <@itl="m">×<@itl="n"> contendo o valor absoluto (ou “módulo”) de cada elemento da matriz complexa <@itl="m">×<@itl="n"> <@var="C">. O módulo do número complexo <@mth="z"> = <@mth="x"> + <@mth="yi"> é igual à raiz quadrada de <@mth="x"><@sup="2"> + <@mth="y"><@sup="2">. 1101 1102Ver também <@ref="carg">. 1103 1104# cmult complex 1105Resultado: matriz 1106Argumentos: <@var="X"> (matriz) 1107 <@var="Y"> (matriz) 1108 1109Multiplicação complexa. Os dois argumentos devem ter o mesmo número de linhas, <@mth="n">, e uma ou duas colunas. A primeira coluna contendo a parte real e a segunda (se existir) a parte imaginária. O valor retornado é uma matriz <@itl="n">×2, ou, se o resultado não contiver parte imaginária, um vetor de tamanho <@mth="n">. Ver também <@ref="cdiv">. 1110 1111# cnorm probdist 1112Resultado: o mesmo tipo que o argumento 1113Argumento: <@var="x"> (escalar, série ou matriz) 1114 1115Retorna a função de distribuição acumulada para uma normal padrão. Ver também <@ref="dnorm">, <@ref="qnorm">. 1116 1117# cnumber linalg 1118Resultado: escalar 1119Argumento: <@var="X"> (matriz) 1120 1121Retorna o número condicional da matriz <@var="X"> de ordem <@itl="n">×<@itl="k">, conforme definido em <@bib="Belsley, Kuh e Welsch (1980);belsley-etal80">. Se as colunas de <@var="X"> forem mutuamente ortogonais o número condicional de <@var="X"> é a unidade. Um número condicional grande é um indicador de multicolinearidade, sendo que é considerado normalmente um valor “grande” algo acima de 50 (ou, algumas vezes, de 30). 1122 1123Os passos para esses cálculos são: (1) construir uma matriz <@mth="Z"> onde suas colunas são a divisão das colunas de <@var="X"> divididas por suas respectivas normas euclidianas; (2) construir <@mth="Z'Z"> e obter seus autovalores e; (3) calcular a raiz quadrada da razão entre o maior e o menor autovalor. 1124 1125Ver também <@ref="rcond">. 1126 1127# cnameget strings 1128Resultado: texto ou cadeia de texto 1129Argumentos: <@var="M"> (matriz) 1130 <@var="col"> (número inteiro, opcional) 1131 1132Se o argumento <@var="col"> for dado, retorna o nome da coluna <@var="col"> da matriz <@var="M">. Se as colunas de <@var="M"> não possuírem nomes então será retornada um texto (string) vazio. Se <@var="col"> for maior que o número de colunas da matriz será sinalizado um erro. 1133 1134Se não se indicar o segundo argumento, retornará um vetor de texto que contém os nomes das colunas de <@var="M">, ou um vetor de texto vazio se <@var="M"> não tiver nomes de colunas atribuídos. 1135 1136Exemplo: 1137 1138<code> 1139 matrix A = { 11, 23, 13 ; 54, 15, 46 } 1140 cnameset(A, "Col_A Col_B Col_C") 1141 string name = cnameget(A, 3) 1142 print name 1143</code> 1144 1145Ver também <@ref="cnameset">. 1146 1147# cnameset matrix 1148Resultado: escalar 1149Argumentos: <@var="M"> (matriz) 1150 <@var="S"> (cadeia de texto ou lista) 1151 1152Adiciona nomes para as colunas da matriz <@var="M"> de ordem <@itl="T">×<@itl="k"> . Se <@var="S"> for uma lista, os nomes serão os das séries listadas. A lista precisa ter <@mth="k"> membros. Se <@var="S"> for um arranjo (array) de textos (string), ele precisa ter <@mth="k "> elementos. Para manter a compatibilidade com versões anteriores do Gretl, uma única variável de texto também pode ser utilizada como segundo argumento. Nesse caso ela precisa ter <@mth="k"> textos separados por espaços. 1153 1154Retorna o valor 0 se as colunas forem nomeadas com sucesso. Caso contrário retorna um valor não-nulo. Veja também <@ref="rownames">. 1155 1156Exemplo: 1157 1158<code> 1159 matrix M = {1, 2; 2, 1; 4, 1} 1160 variável de textos S = array(2) 1161 S[1] = "Col1" 1162 S[2] = "Col2" 1163 colnames(M, S) 1164 print M 1165</code> 1166 1167# cols matrix 1168Resultado: número inteiro 1169Argumento: <@var="X"> (matriz) 1170 1171Retorna o número de colunas da matriz <@var="X">. Ver também <@ref="mshape">, <@ref="rows">, <@ref="unvech">, <@ref="vec">, <@ref="vech">. 1172 1173# complex complex 1174Resultado: matriz complexa 1175Argumentos: <@var="A"> (escalar ou matriz) 1176 <@var="B"> (escalar ou matriz, opcional) 1177 1178Retorna uma matriz complexa, onde <@var="A"> é utilisada para fornecer a parte real e <@var="B"> a parte imaginária. Se <@var="A"> é <@itl="m">×<@itl="n"> e <@var="B"> é um escalar, o resultado é <@itl="m">×<@itl="n"> com a parte imaginária constante—e recíprocamente o oposto, mas com a parte real constante. Se ambos os argumentos são matrizes, elas devem ser da mesmas dimensões. Por defeito, caso o segundo argumento seja omitido, a parte imaginária é igual a zero. Ver também <@ref="cswitch">. 1179 1180# conj complex 1181Resultado: matriz complexa 1182Argumento: <@var="C"> (matriz complexa) 1183 1184Retorna uma matriz complexa <@itl="m">×<@itl="n"> contendo o complexo conjugado de cada elemento da matriz complexa <@itl="m">×<@itl="n"> <@var="C">. O conjugado de um número complexo <@mth="z"> = <@mth="x"> + <@mth="yi"> é igual a <@mth="x"> – <@mth="yi">. 1185 1186Ver também <@ref="carg">, <@ref="cmod">. 1187 1188# conv2d linalg 1189Resultado: matriz 1190Argumentos: <@var="A"> (matriz) 1191 <@var="B"> (matriz) 1192 1193Calcula a convolução bidimensional das matrizes <@var="A"> e <@var="B">. Se <@var="A"> é <@itl="r">×<@itl="c"> e <@var="B"> é <@itl="m">×<@itl="n"> a matriz resultante terá <@mth="r+m-1"> linhas e <@mth="c+n-1"> colunas. 1194 1195Ver também <@ref="fft">, <@ref="filter">. 1196 1197# corr stats 1198Resultado: escalar 1199Argumentos: <@var="y1"> (série ou vetor) 1200 <@var="y2"> (série ou vetor) 1201 1202Calcula o coeficiente de correlação entre <@var="y1"> e <@var="y2">. Os argumentos devem ser duas séries ou dois vetores com o mesmo tamanho. Ver também <@ref="cov">, <@ref="mcov">, <@ref="mcorr">, <@ref="npcorr">. 1203 1204# corrgm timeseries 1205Resultado: matriz 1206Argumentos: <@var="x"> (série, matriz ou lista) 1207 <@var="p"> (número inteiro) 1208 <@var="y"> (série ou vetor, opcional) 1209 1210Se forem fornecidos apenas os dois primeiros argumentos a função calcula o correlograma de <@var="x"> para as defasagens de 1 até <@var="p">. Sendo <@mth="k"> o número de elementos em <@var="x"> (igual a 1 se <@var="x"> for uma série, ao número de colunas se <@var="x"> for uma matriz ou ao número de membros se <@var="x"> for uma lista). O valor retornado será uma matriz com <@var="p"> linhas e 2<@mth="k"> colunas, onde as <@mth="k"> primeiras colunas conterão as respectivas autocorrelações e o restante as respectivas autocorrelações parciais. 1211 1212Se um terceiro argumento for fornecido a função irá computar o correlograma cruzado para cada um dos <@mth="k"> elementos em <@var="x"> e <@var="y">, partindo de <@mth="+"><@var="p"> até <@mth="-"><@var=" p">. A matriz retornada possui 2<@mth="p"> + 1 linhas e <@mth="k"> colunas. Se <@var="x"> for uma série ou lista e <@var="y"> for um vetor, <@var="y"> precisa ter linhas na mesma quantidade que o total de observações na amostra selecionada. 1213 1214# cos math 1215Resultado: o mesmo tipo que o argumento 1216Argumento: <@var="x"> (escalar, série ou matriz) 1217 1218Retorna o cosseno de <@var="x">. Ver também <@ref="sin">, <@ref="tan">, <@ref="atan">. 1219 1220# cosh math 1221Resultado: o mesmo tipo que o argumento 1222Argumento: <@var="x"> (escalar, série ou matriz) 1223 1224Retorna o cosseno hiperbólico de <@var="x">. 1225 1226Ver também <@ref="acosh">, <@ref="sinh">, <@ref="tanh">. 1227 1228# cov stats 1229Resultado: escalar 1230Argumentos: <@var="y1"> (série ou vetor) 1231 <@var="y2"> (série ou vetor) 1232 1233Retorna a covariância <@var="y1"> e <@var="y2">. Os argumentos devem ser duas séries ou dois vetores (estes devem possuir o mesmo comprimento). Ver também <@ref="corr">, <@ref="mcov">, <@ref="mcorr">. 1234 1235# critical probdist 1236Resultado: o mesmo tipo que o argumento 1237Argumentos: <@var="c"> (caractere) 1238 <@var="…"> (ver abaixo) 1239 <@var="p"> (escalar, série ou matriz) 1240Exemplos: <@lit="c1 = critical(t, 20, 0.025)"> 1241 <@lit="c2 = critical(F, 4, 48, 0.05)"> 1242 1243Calculadora de valores críticos. Retorna <@mth="x"> tal que <@mth="P(X > x) = p">, onde a distribuição <@mth="X"> é determinada pela letra <@var="c">. Entre os argumentos <@var="c"> e <@var="p">, zero ou mais argumentos escalares são necessários para especificar os parâmetros da distribuição, Isso é feito da seguinte forma: 1244 1245<indent> 1246• Normal padrão (c = z, n ou N): sem argumentos extras 1247</indent> 1248 1249<indent> 1250• t de Student (t): graus de liberdade 1251</indent> 1252 1253<indent> 1254• Chi square (c, x ou X): graus de liberdade 1255</indent> 1256 1257<indent> 1258• F de Snedecor (f ou F): g.l. (num.); g.l. (den.) 1259</indent> 1260 1261<indent> 1262• Binomial (b ou B): probabilidade; tentativas 1263</indent> 1264 1265<indent> 1266• Poisson (p ou P): média 1267</indent> 1268 1269<indent> 1270• Laplace (l ou L): média; escala 1271</indent> 1272 1273<indent> 1274• Erro Generalizado (E): forma 1275</indent> 1276 1277Ver também <@ref="cdf">, <@ref="invcdf">, <@ref="pvalue">. 1278 1279# cswitch complex 1280Resultado: matriz 1281Argumentos: <@var="A"> (matriz) 1282 <@var="modo"> (escalar) 1283 1284Reinterpreta uma matriz real como contendo valores complexos ou viceversa. A acção exacta depende de <@var="modo"> (que pode ter os valores 1,2,3 ou 4) como se mostra a seguir: 1285 1286modo 1: <@var="A"> deve ser uma matriz real com um número par de colunas. Produz uma matriz complexa com a metade das colunas; as colunas ímpares de <@var="A"> fornecem a parte real e as colunas pares as partes imaginárias. 1287 1288modo 2: Produz o resultado inverso daquele em modo 1. <@var="A"> deve ser uma matriz complexa e o resultado é uma matriz real com o dobro das colunas de <@var="A">. 1289 1290modo 3: <@var="A"> deve ser uma matriz real com um número par de linhas. Produz uma matriz complexa com a metade das linhas; as linhas ímpares de <@var="A"> fornecem a parte real e as linhas pares as partes imaginárias. 1291 1292modo 4: Produz o resultado inverso daquele em modo modo 3. <@var="A"> deve ser uma matriz complexa e o resultado é uma matriz real com o dobro das linhas de <@var="A">. 1293 1294Ver também <@ref="complex">. 1295 1296# ctrans complex 1297Resultado: matriz complexa 1298Argumento: <@var="C"> (matriz complexa) 1299 1300Retorna a matriz complexa <@itl="n">×<@itl="m"> contendo a transposta do conjugado da matriz complexa <@itl="m">×<@itl="n"> <@var="C">. O operador <@lit="'"> (primo) também produz a transposição conjugada de matrizes complexas. A função <@ref="transp"> pode ser usada em matrizes complexas mas produz a transposiçã0 “directa” (não coniugada). 1301 1302# cum transforms 1303Resultado: o mesmo tipo que o argumento 1304Argumento: <@var="x"> (série ou matriz) 1305 1306Acumula <@var="x"> (isto é, cria uma soma móvel). Quando <@var="x"> for uma série, produz uma série <@mth="y"> onde cada um de seus elementos é igual a soma dos valores de <@var="x"> até a observação correspondente. O ponto de partida para a acumulação é a primeira observação não-ausente da amostra selecionada corrente. Quando <@var="x"> for uma matriz, seus elementos são acumulados por colunas. 1307 1308Ver também <@ref="diff">. 1309 1310# curl data-utils 1311Resultado: escalar 1312Argumento: <@var="&b"> (referência a lote) 1313 1314Fornece uma maneira relativamente flexível de se obter um buffer de texto contendo dados de um servidor de internet utilizando a biblioteca libcurl. O argumento <@var="b">, do tipo pacote (bundle), deve conter uma variável de texto (string) chamada <@lit="URL"> que fornece o endereço completo do recurso no host alvo. Outros elementos opcionais são apresentados a seguir. 1315 1316<indent> 1317• “<@lit="header">”: a variável de texto especificando um header HTTP que será enviado para o host. 1318</indent> 1319 1320<indent> 1321• “<@lit="postdata">”: a variável de texto contendo os dados que serão enviados para o host. 1322</indent> 1323 1324Os campos <@lit="header"> e <@lit="postdata"> são destinados para o uso com uma requisição HTTP do tipo <@lit="POST">. Se <@lit="postdata"> estiver presente o método <@lit="POST"> é implícito, caso contrário o método <@lit="GET"> é implícito. Mas note que para requisições <@lit="GET"> diretas a função <@ref="readfile"> oferece uma interface mais simples. 1325 1326Se outro elemento opcional do pacote, um escalar chamado <@lit="include"> estiver presente e possuir valor não-nulo, a requisição irá incluir o header recebido do host com o corpo de saída. 1327 1328Ao completar-se a requisição, o texto recebido do servidor é adicionado ao pacote e recebe o nome de “<@lit="output">”. 1329 1330Se um erro ocorrer na formulação da requisição (por exemplo, não existir a <@lit="URL"> na entrada) a função irá falhar, caso contrário ela retornará o valor 0 se a requisição for bem sucedida ou um valor não nulo, sendo que neste caso a mensagem de erro da biblioteca curl será adicionado ao pacote e identificado como “<@lit="errmsg">”. Note, entretanto, que “sucesso” neste sentido não significa necessariamente que os dados desejados foram obtidos. Na verdade significa apenas que alguma resposta foi recebida do servidor. Assim, é necessário conferir o conteúdo do buffer de saída (que pode ser de fato uma mensagem tal como “Página não encontrada”). 1331 1332Um bom exemplo de como utilizar essa função é baixar alguns dados do site do US Bureau of Labor Statistics, que requere o envio de uma consulta (query) JSON. Note o uso de <@xrf="sprintf"> para inserir aspas duplas no dado <@lit="POST">. 1333 1334<code> 1335 bundle req 1336 req.URL = "http://api.bls.gov/publicAPI/v1/timeseries/data/" 1337 req.include = 1 1338 req.header = "Content-Type: application/json" 1339 string s = sprintf("{\"seriesid\":[\"LEU0254555900\"]}") 1340 req.postdata = s 1341 err = curl(&req) 1342 if err == 0 1343 s = req.output 1344 string line 1345 loop while getline(s, line) --quiet 1346 printf "%s\n", line 1347 endloop 1348 endif 1349</code> 1350 1351Veja também as funções <@ref="jsonget"> e <@ref="xmlget"> para processamento de dados recebidos no formato JSON e XML, respectivamente. 1352 1353# dayspan calendar 1354Resultado: número inteiro 1355Argumentos: <@var="dia1"> (número inteiro) 1356 <@var="dia2"> (número inteiro) 1357 <@var="dias por semana"> (número inteiro) 1358 1359Retorna o número de dias (relevantes) entre os dias <@var="dia1"> e <@var="dia2">, inclusive. Os <@var="dias por semana">, que têm que ser 5, 6 ou 7, dão o número de dias na semana que devem contar (um valor de 6, ignora domingos, e um valor de 5 ignora sábados e domingos). 1360 1361Para obter dias de época a partir de formas mais familiares de datas, ver <@ref="epochday">. Veja também: <@ref="smplspan">. 1362 1363# defarray data-utils 1364Resultado: ver abaixo 1365Argumento: ... (ver abaixo) 1366 1367Permite a definição de uma variável do tipo arranjo (array) <@itl="de forma direta">, através do fornecimento de um ou mais elementos. Ao utilizar essa função é necessário que se especifique um tipo (na forma plural) para o arranjo: <@lit="strings">, <@lit="matrices">, <@lit="bundles"> ou <@lit="lists">. Cada um dos argumentos dever ser um objeto do mesmo tipo que o especificado na definição do arranjo. Em caso de sucesso na definição, será retornado um arranjo com <@mth="n"> elementos, onde <@mth="n"> é igual ao número de argumentos. 1368 1369<code> 1370 strings S = defarray("foo", "bar", "baz") 1371 matrices M = defarray(I(3), X'X, A*B, P[1:]) 1372</code> 1373 1374Veja também <@ref="array">. 1375 1376# defbundle data-utils 1377Resultado: lote 1378Argumento: ... (ver abaixo) 1379 1380Permite a definição inicial de uma variável pacote (bundle) <@itl="por extenso">, com a indicação de zero ou mais pares com o formato <@var="chave">, <@var="membro">. Se contarmos os argumentos a partir de 1, cada argumento numerado ímpar tem de corresponder a uma cadeia de texto (chave) e cada argumento numerado par deve representar um objeto/objecto de um tipo que possa ser incluído num pacote. 1381 1382Alguns exemplos simples: 1383 1384<code> 1385 bundle b1 = defbundle("s", "Texto exemplo", "m", I(3)) 1386 bundle b2 = defbundle("yn", normal(), "x", 5) 1387</code> 1388 1389O primeiro exemplo é um pacote cujos membros são uma cadeia de texto e uma matriz. O segundo, um pacote com um membro que é uma série e outro que é escalar. Notar que não se pode especificar o tipo de cada argumento quando se utiliza esta função, por isso deve-se aceitar o tipo “natural” do argumento em questão. Por exemplo, se se pretendia acrescentar uma série com valor constante 5, a um pacote chamado <@lit="b1"> seria necessário escrever algo como o seguinte (depois de declarar <@lit="b1">): 1390 1391<code> 1392 series b1.s5 = 5 1393</code> 1394 1395Se não se fornecer nenhum argumento a esta função, isso equivale a criar um pacote vazio (ou esvaziar o conteúdo um pacote existente), o que também poderia ser feito via: 1396 1397<code> 1398 bundle b = null 1399</code> 1400 1401# deflist data-utils 1402Resultado: lista 1403Argumento: ... (ver abaixo) 1404 1405Gera uma lista (de séries já definidas) dados um ou mais argumentos apropriados. Cada argumento deve ser uma série já definida (indicada pelo seu nome ou número ID), uma lista definida previamente ou por uma expressão cujo resultado seja uma lista (incluindo um vetor que possa ser interpretado como um conjunto de números ID). 1406 1407Um ponto a ser considerado é que esta função simplesmente concatena seus argumentos para produzir a lista que ela devolve. Quando se pretende que o valor a ser retornado não tenha duplicados (que não se refira a nenhuma série mais que uma vez), fica a cargo do utilizador garantir que esse requisito seja seguido. 1408 1409# deseas timeseries 1410Resultado: série 1411Argumentos: <@var="x"> (série) 1412 <@var="c"> (caractere, opcional) 1413 1414Precisa que o TRAMO/SEATS e/ou X-12-ARIMA estejam instalados. Retorna a série <@var="x"> dessazonalizada (ou seja, sazonalmente ajustada). A série a ser dessazonalizada precisa ser mensal ou trimestral. Para utilizar o X-12-ARIMA deve-se fornecer <@lit="X"> como segundo argumento e para usar o TRAMO/SEATS deve-se fornecer <@lit="T">. Se o segundo argumento for omitido o Gretl irá utilizar o X-12-ARIMA. 1415 1416Note que se a série de entrada não possuir um componente sazonal detectável a execução da função irá falhar. Note também que tanto o TRAMO/SEATS quanto o X-12-ARIMA oferecem um grande número de opções, mas a função <@lit="deseas"> utilizará apenas os seus valores padrão. Em ambos os programas os fatores sazonais são calculados com base em um modelo ARIMA automaticamente selecionado. Uma das diferenças entre os dois que pode levar a resultados bastante distintos é o ajuste prévio de observações aberrantes que o TRAMO/SEATS realiza e que não é feito pelo X-12-ARIMA. 1417 1418# det linalg 1419Resultado: escalar 1420Argumento: <@var="A"> (matriz quadrada) 1421 1422Retorna o determinante de <@var="A">, calculado via decomposição LU. Ver também <@ref="ldet">, <@ref="rcond">, <@ref="cnumber">. 1423 1424# diag matrix 1425Resultado: matriz 1426Argumento: <@var="X"> (matriz) 1427 1428Retorna a diagonal principal de <@var="X"> em um vetor coluna. Se <@var="X"> for uma matriz de ordem <@itl="m">×<@itl="n"> o número de elementos do vetor resultante será igual a min(<@mth="m">, <@mth="n">). Ver também <@ref="tr">. 1429 1430# diagcat matrix 1431Resultado: matriz 1432Argumentos: <@var="A"> (matriz) 1433 <@var="B"> (matriz) 1434 1435Retorna a soma direta de <@var="A"> e <@var="B">, isto é, uma matriz contendo <@var="A"> no canto superior esquerdo e <@var="B"> no canto inferior direito. Se <@var="A"> e <@var="B"> forem ambas quadradas, a matriz resultante será diagonal em blocos. 1436 1437# diff transforms 1438Resultado: o mesmo tipo que o argumento 1439Argumento: <@var="y"> (série, matriz ou lista) 1440 1441Calcula a primeira diferença. Se <@var="y"> for uma série ou uma lista de séries, os valores iniciais serão iguais a <@lit="NA">. Se <@var="y"> for uma matriz, a diferenciação é feita por colunas e os valores iniciais serão iguais a 0. 1442 1443Quando for retornada uma lista, cada uma das variáveis será automaticamente nomeada conforme o modelo <@lit="d_"><@var="varname">, onde <@var="varname"> é o nome da série original. O nome será truncado caso necessário e pode ser ajustado caso já exista uma variável com o mesmo nome. 1444 1445Ver também <@ref="cum">, <@ref="ldiff">, <@ref="sdiff">. 1446 1447# digamma math 1448Resultado: o mesmo tipo que o argumento 1449Argumento: <@var="x"> (escalar, série ou matriz) 1450 1451Retorna a função digama (ou Psi) de <@var="x"> e consiste na derivada logarítmica da função gama. 1452 1453# dnorm probdist 1454Resultado: o mesmo tipo que o argumento 1455Argumento: <@var="x"> (escalar, série ou matriz) 1456 1457Retorna a densidade da distribuição normal padrão em <@var="x">. Para obter a densidade para uma distribuição normal não-padrão em <@mth="x">, utilize o escore-<@mth="z"> de <@mth="x"> como argumento da função <@lit="dnorm"> e multiplique o resultado pela jacobiana da transformação <@mth="z">, ou seja, 1/σ, conforme ilustrado a seguir: 1458 1459<code> 1460 mu = 100 1461 sigma = 5 1462 x = 109 1463 fx = (1/sigma) * dnorm((x-mu)/sigma) 1464</code> 1465 1466Ver também <@ref="cnorm">, <@ref="qnorm">. 1467 1468# dropcoll transforms 1469Resultado: lista 1470Argumentos: <@var="X"> (lista) 1471 <@var="epsilon"> (escalar, opcional) 1472 1473Retorna uma lista com os mesmo elementos de <@var="X">, mas excluindo as séries colineares. Assim, se todas as séries em <@var="X"> forem linearmente independentes, a lista resultante será simplesmente uma cópia de <@var="X">. 1474 1475O algoritmo utiliza a decomposição QR (transformação de Householder), de forma que está sujeita a erro de precisão finita. Para avaliar a sensibilidade do algoritmo, um segundo parâmetro (opcional) <@var="epsilon"> pode ser especificado para tornar o teste de colinearidade mais ou menos estrito, conforme desejado. O valor padrão para <@var="epsilon"> é 1.0e-8. Ajustando <@var="epsilon"> para um maior valor eleva a probabilidade de uma série ser descartada. 1476 1477Exemplo: 1478 1479<code> 1480 nulldata 20 1481 set seed 9876 1482 series foo = normal() 1483 series bar = normal() 1484 series foobar = foo + bar 1485 list X = foo bar foobar 1486 list Y = dropcoll(X) 1487 list print X 1488 list print Y 1489 # defina épsilon como sendo um valor bastante pequeno 1490 list Y = dropcoll(X, 1.0e-30) 1491 list print Y 1492</code> 1493 1494produz 1495 1496<code> 1497 ? list print X 1498 foo bar foobar 1499 ? list print Y 1500 foo bar 1501 ? list Y = dropcoll(X, 1.0e-30) 1502 Replaced list Y 1503 ? list print Y 1504 foo bar foobar 1505</code> 1506 1507# dsort matrix 1508Resultado: o mesmo tipo que o argumento 1509Argumento: <@var="x"> (série ou vetor) 1510 1511Ordena <@var="x"> de forma decrescente, descartando observações com valores ausentes quando <@var="x"> for uma série. Ver também <@ref="sort">, <@ref="values">. 1512 1513# dummify transforms 1514Resultado: lista 1515Argumentos: <@var="x"> (série) 1516 <@var="omitval"> (escalar, opcional) 1517 1518O argumento <@var="x"> deve ser uma série discreta. Essa função cria um conjunto de variáveis dummy, sendo uma para cada um dos valores distintos na série. Por padrão o menor valor é tratado como a categoria omitida e não é explicitamente representado. 1519 1520O segundo argumento (opcional) representa o valor de <@var="x"> que deve ser tratado como sendo a categoria omitida. O efeito quando o argumento único for dado é equivalente a utilizar o seguinte comando: <@lit="dummify(x, min(x))">. Para produzir um conjunto completo de dummies, ou seja, sem a categoria omitida, pode-se usar <@lit="dummify(x, NA)">. 1521 1522As variáveis geradas são automaticamente nomeadas de acordo com o seguinte padrão: <@lit="D"><@var="varname"><@lit="_"><@var="i"> onde <@var="varname"> é o nome da séries original e <@var="i"> é um índice iniciado em 1. A porção que representa o nome original da série será truncado, caso seja necessário, e ajustado no caso de não ser único no conjunto de nomes assim construído. 1523 1524# easterday calendar 1525Resultado: o mesmo tipo que o argumento 1526Argumento: <@var="x"> (escalar, série ou matriz) 1527 1528Com o argumento <@var="x"> representando um ano, retorna a data da Páscoa no calendário gregoriano no formato <@mth="mês + dia/100">. Note que 10 de abril é, nesta convenção, 4.1. Assim, 4.2 representa 20 de abril e não 2 de abril (que seria representado por 4.02). 1529 1530<code> 1531 scalar e = easterday(2014) 1532 scalar m = floor(e) 1533 scalar d = 100*(e-m) 1534</code> 1535 1536# ecdf stats 1537Resultado: matriz 1538Argumento: <@var="y"> (série ou vetor) 1539 1540Calcula a função distribuição acumulada (FDA) empírica de <@var="y">. Esta é retornada em uma matriz com duas colunas: a primeira contém os valores únicos e ordenados de <@var="y"> e a segunda a frequência relativa cumulativa, isto é, a quantidade de vezes em que o valor da observação é menor ou igual ao valor na primeira coluna, dividida pelo número total de observações. 1541 1542# eigen linalg 1543Resultado: matriz 1544Argumentos: <@var="A"> (matriz quadrada) 1545 <@var="&V"> (referência a matriz, ou <@lit="null">) 1546 <@var="&W"> (referência a matriz, ou <@lit="null">) 1547 1548Calcula os valores próprios e, opcionalmente, os vectores próprios direito e/ou esquerdo, da matriz <@itl="n">×<@itl="n"> <@var="A">, que pode ser real ou complexa. O valores próprios são retornados num vector complexo. 1549 1550Se você deseja obter o vector próprio direito na forma de matriz complexa, <@itl="n">×<@itl="n">), forneça o nome de uma matriz existente, precedida por <@lit="&"> para indicar o “endereço” da matriz em questão, comom segundo argumento. De outro modo, este argumento pode ser omitido. 1551 1552Para obter o vector próprio esquerdo (igualmente, na forma de matriz complexa), fornecer o endereço da matrix como terceiro argumento. Note que se pretender os vectores esquerdos mas não os direitos, você deve usar a palavra chave <@lit="null"> como valor para o segundo argumento. 1553 1554Ver também <@ref="eigensym">, <@ref="eigsolve">, <@ref="svd">. 1555 1556# eigengen linalg 1557Resultado: matriz 1558Argumentos: <@var="A"> (matriz quadrada) 1559 <@var="&U"> (referência a matriz, ou <@lit="null">) 1560 1561Calcula os autovalores e, opcionalmente, os autovetores, da matriz <@var="A"> de ordem <@itl="n">×<@itl="n">. Se todos os autovalores forem reais uma matriz <@itl="n">×1 é retornada. Caso contrário, o resultado é uma matriz <@itl="n">×2, com a primeira coluna contendo os componentes reais e a segunda coluna os componentes imaginários. Não é garantido que os autovalores sejam classificados em alguma ordem particular. 1562 1563Existem duas possibilidades para o segundo argumento. Ele deve ser o nome de uma matriz existente precedida por <@lit="&"> (para indicar o “endereço” da matriz em questão), sendo que nesse caso um resultado auxiliar é armazenado nesta matriz. A outra possibilidade é a utilização da palavra-chave <@lit="null">, sendo que nesse caso o resultado auxiliar não é produzido. 1564 1565Se o segundo argumento for não-nulo, a matriz especificada será sobrescrita com o resultado auxiliar. Vale salientar que não é necessário que a matriz existente tenha a dimensão adequada para receber o resultado. A matriz <@var="U"> é organizada da seguinte forma: 1566 1567<indent> 1568• Se o <@mth="i">-ésimo autovalor for real, a <@mth="i">-ésima coluna de <@mth="U"> irá conter o autovetor correspondente; 1569</indent> 1570 1571<indent> 1572• Se o <@mth="i">-ésimo autovalor for complexo, a <@mth="i">-ésima coluna de <@var="U"> irá conter a parte real do autovetor correspondente e a coluna seguinte a parte imaginária. O autovetor para o autovalor conjugado é a conjugada do autovetor. 1573</indent> 1574 1575Em outras palavras, os autovetores são armazenados na mesma ordem que os autovalores, mas os autovetores reais ocupam uma coluna, enquanto que os autovetores complexos ocupam duas (sendo que a parte real é armazenada primeiro). O número total de colunas ainda é <@mth="n">, pois o autovetor conjugado é ignorado. 1576 1577Ver também <@ref="eigensym">, <@ref="eigsolve">, <@ref="qrdecomp">, <@ref="svd">. 1578 1579# eigensym linalg 1580Resultado: matriz 1581Argumentos: <@var="A"> (matriz simétrica) 1582 <@var="&U"> (referência a matriz, ou <@lit="null">) 1583 1584Funciona da mesma forma que <@ref="eigengen">, mas o argumento <@var="A"> deve ser simétrico (sendo que neste caso os cálculos podem ser reduzidos). Diferentemente de <@ref="eigengen">, autovalores são retornados em ordem ascendente. 1585 1586Note: se o interesse é na decomposição espectral de uma matriz da forma <@mth="X'X">, onde <@mth="X"> é uma matriz grande, é preferível calculá-la via operador <@lit="X'X"> ao invés de utilizar a sintaxe mais geral <@lit="X'*X">. A primeira expressão utiliza um algoritmo especializado que tem a dupla vantagem de ser mais eficiente computacionalmente e de garantir que o resultado seja livre, por construção, dos artefatos de precisão de máquina que podem torná-la numericamente não-simétrico. 1587 1588# eigsolve linalg 1589Resultado: matriz 1590Argumentos: <@var="A"> (matriz simétrica) 1591 <@var="B"> (matriz simétrica) 1592 <@var="&U"> (referência a matriz, ou <@lit="null">) 1593 1594Resolve o problema do autovalor generalizado |<@mth="A"> – λ<@mth="B">| = 0, onde <@mth="A"> e <@mth="B"> são simétricas e <@mth="B"> é positiva definida. Os autovalores são retornados diretamente, ordenados de forma ascendente. Se for utilizado o terceiro argumento (opcional) ele deve ser o nome de uma matriz existente precedida por <@lit="&">. Neste caso os autovetores generalizados serão escritos nesta matriz. 1595 1596# epochday calendar 1597Resultado: escalar ou série 1598Argumentos: <@var="ano"> (escalar ou série) 1599 <@var="mês"> (escalar ou série) 1600 <@var="dia"> (escalar ou série) 1601 1602Retorna o número do dia na época corrente especificada pelo ano, mês e dia. O número do dia é igual a 1 para o dia 1 de janeiro do ano 1 depois de Cristo, no calendário gregoriano proléptico, e 733786 na data 2010-01-01. Se algum dos argumentos for uma série, os valores retornados também terão a forma de uma série, caso contrário será retornado um escalar. 1603 1604Por padrão os valores do <@var="ano">, <@var="mês"> e <@var="dia"> assumem-se serem relativos ao calendário gregoriano, mas se o ano for um valor negativo a interpretação muda para o calendário juliano. 1605 1606Para a inversa dessa função, veja <@ref="isodate">. Veja também a função <@ref="juldate"> para o calendário juliano. 1607 1608# errmsg programming 1609Resultado: texto 1610Argumento: <@var="errno"> (número inteiro) 1611 1612Retorna a mensagem de erro do Gretl associada a <@var="errno">. Veja também <@ref="$error">. 1613 1614# errorif programming 1615Resultado: escalar 1616Argumentos: <@var="condição"> (booleano) 1617 <@var="msg"> (texto) 1618 1619Aplicável apenas no contexto de uma função cirada pelo utilizador. Se a <@var="condição"> é diferente de zero, termina a execução da função actual, mostrando a razão de erro; o argumento <@var="msg"> é então mostrado no écran como parte da resposta do chamador da função em questão. 1620 1621O valor de retorno (1) desta função é puramente nominal. 1622 1623# exists data-utils 1624Resultado: número inteiro 1625Argumento: <@var="name"> (texto) 1626 1627Retorna um valor não-nulo se <@var="name"> é o identificador de um objeto existente, seja um escalar, uma série, uma matriz, uma lista, uma variável de texto, um pacote (bundle) ou um arranjo (array). Caso contrário retorna 0. Veja também <@ref="typeof">. 1628 1629# exp math 1630Resultado: o mesmo tipo que o argumento 1631Argumento: <@var="x"> (escalar, série ou matriz) 1632 1633Retorna <@mth="e"><@sup="x">. Note que no caso de matrizes a função é aplicada em cada elemento. Para a função exponencial matricial veja <@ref="mexp">. 1634 1635# fcstats stats 1636Resultado: matriz 1637Argumentos: <@var="y"> (série ou vetor) 1638 <@var="f"> (série, lista ou matriz) 1639 1640Produz uma matriz contendo várias estatísticas que podem ser utilizadas para avaliar a série <@var="f">, que consiste na previsão da série observada <@var="y">. 1641 1642Quando <@var="f"> é uma série ou um vetor/vector, o resultado é um vetor/vector coluna. Quando <@var="f"> é uma lista com <@mth="k"> membros ou uma matriz de ordem <@itl="T">×<@itl="k">, o resultado tem <@mth="k"> colunas, sendo que cada uma contém as estatísticas do elemento correspondente (série ou coluna) do argumento de entrada (série, vetor, lista ou matriz) como uma predição de <@var="y">. 1643 1644Em todos os casos, a dimensão “vertical” do argumento de entrada (o comprimento da amostra corrente para uma série ou uma lista, e o número de linhas para uma matriz) deve coincidir entre os dois argumentos. 1645 1646As linhas da matriz retornada são constituídas pelas seguintes estatísticas: 1647 1648<code> 1649 1 Erro Médio (ME) 1650 2 Raiz do Erro Quadrado Médio (RMSE) 1651 3 Erro Absoluto Médio (MAE) 1652 4 Erro Percentual Médio (MPE) 1653 5 Erro Percentual Absoluto Médio (MAPE) 1654 6 U de Theil 1655 7 Proporção do viés, UM 1656 8 Proporção da regressão, UR 1657 9 Proporção do distúrbio, UD 1658</code> 1659 1660Para mais detalhes sobre o cálculo dessas estatísticas e a interpretação dos valores de <@mth="U">, veja o <@pdf="guia de utilização do Gretl#chap:forecast"> (Capítulo 35). 1661 1662# fdjac numerical 1663Resultado: matriz 1664Argumentos: <@var="b"> (vetor coluna) 1665 <@var="fcall"> (chamada a função) 1666 <@var="h"> (escalar, opcional) 1667 1668Calcula uma aproximação numérica para a jacobiana associada ao vetor <@var="b"> de ordem <@mth="n"> e a função de transformação especificada pelo argumento <@var="fcall">. A chamada da função deve ter <@var="b"> como primeiro argumento (tanto na forma direta quanto na forma de ponteiro), seguido por quaisquer argumentos adicionais que podem ser necessários e o valor retornado deverá ser uma matriz de ordem <@itl="m">×1. Se executada com sucesso, <@lit="fdjac"> retorna uma matriz de ordem <@itl="m">×<@itl="n"> contendo a jacobiana. Exemplo: 1669 1670Pode-se utilizar o terceiro argumento (opcional) para determinar o tamanho da medida <@mth="h"> que se usa no mecanismo de aproximação (ver mais abaixo). Quando se omite este argumento, o tamanho da medida determina-se automaticamente. 1671 1672Aqui está um exemplo do seu uso: 1673 1674<code> 1675 matrix J = fdjac(theta, myfunc(&theta, X)) 1676</code> 1677 1678A função pode utilizar três diferentes métodos: diferença anterior, diferença bilateral ou extrapolação de Richardson com 4 nós. Respectivamente: 1679 1680<@mth="J"><@sub="0"> = <@mth="(f(x+h) - f(x))/h"> 1681 1682<@mth="J"><@sub="1"> = <@mth="(f(x+h) - f(x-h))/2h"> 1683 1684<@mth="J"><@sub="2"> = <@mth="[8(f(x+h) - f(x-h)) - (f(x+2h) - f(x-2h))] /12h"> 1685 1686As três alternativas acima trazem, geralmente, um dilema entre acurácia e velocidade. É possível escolher os métodos através do comando <@xrf="set">, ajustando a variável <@lit="fdjac_quality"> em 0, 1 ou 2. 1687 1688Para mais detalhes e exemplos veja o capítulo sobre métodos numéricos no <@pdf="guia de utilização do Gretl#chap:numerical"> (Capítulo 37). 1689 1690Ver também <@ref="BFGSmax">, <@ref="numhess">, <@xrf="set">. 1691 1692# feval programming 1693Resultado: ver abaixo 1694Argumentos: <@var="nome-de-função"> (texto) 1695 ... (ver abaixo) 1696 1697Ferramenta sobretudo destinada a autores de funções. O primeiro argumento é o nome de uma função, e os restantes argumentos devem ser passados para a função em questão. Na práctica a função identificada como <@var="nome-de-função"> é tratada ela mesmo como sendo uma variável. O valor retornado é o que a função retorna de acordo com os argumentos especificados. 1698 1699O exemplo abaixo mostra alguns usos possíveis: 1700 1701<code> 1702 function scalar utility (scalar c, scalar sigma) 1703 return (c^(1-sigma)-1)/(1-sigma) 1704 end function 1705 1706 strings S = defarray("log", "utility") 1707 1708 # chama uma função interna com um argumento 1709 x = feval(S[1], 2.5) 1710 # chama uma função definida pelo utilizador 1711 x = feval(S[2], 5, 0.5) 1712 # uma função com dois argumentos 1713 func = "zeros" 1714 m = feval(func, 5-2, sqrt(4)) 1715 print m 1716 # uma função com três argumentos 1717 x = feval("monthlen", 12, 1980, 5) 1718</code> 1719 1720Existe uma analogia entre <@lit="feval"> e <@ref="genseries">: ambas as funções recebem a variaável como elemento sintático que no momento da composição é fixo. 1721 1722# fevd timeseries 1723Resultado: matriz 1724Argumentos: <@var="target"> (número inteiro) 1725 <@var="shock"> (número inteiro) 1726 <@var="sys"> (lote, opcional) 1727 1728Essa função é uma alternativa mais flexível à função de acesso <@ref="$fevd"> para a obtenção da matriz de decomposição da variância do erro de previsão (FEVD) que pode ser obtida após a estimação de um VAR ou VECM. Quando utilizada sem o argumento final, <@var="sys">, está disponível apenas imediatamente após a estimação de um VAR ou VECM. Alternativamente, as informações de uma VAR ou VECM podem ser armazenadas em um pacote via função <@ref="$system"> que, por sua vez, pode ser utilizado como o último argumento da função <@lit="fevd">. 1729 1730Os argumentos <@var="target"> e <@var="shock"> são índices das variáveis endógenas no sistema, com 0 indicando “todas”. Os seguintes exemplos ilustram sua utilização. No primeiro deles a matriz <@lit="fe1"> armazena as proporções da variância do erro de previsão para <@lit="y1"> causadas por <@lit="y1">, <@lit="y2"> e <@lit="y3"> (as linhas somam 1). No segundo, <@lit="fe2"> armazena as contribuições de <@lit="y2"> para a variância do erro de previsão de todas as três variáveis (logo as linhas não somam 1). No terceiro caso o valor retornado é um vetor coluna contendo a “própria parcela” da variância do erro de previsão de <@lit="y1">. 1731 1732<code> 1733 var 4 y1 y2 y3 1734 bundle vb = $system 1735 matrix fe1 = fevd(1, 0, vb) 1736 matrix fe2 = fevd(0, 2, vb) 1737 matrix fe3 = fevd(1, 1, vb) 1738</code> 1739 1740O número de períodos (linhas) ao longo dos quais a decomposição é traçada é determinado automaticamente com base na frequência dos dados, mas isso pode ser ajustado via comando <@xrf="set">, como por exemplo <@lit="set horizon 10">. 1741 1742Ver também <@ref="irf">. 1743 1744# fft linalg 1745Resultado: matriz 1746Argumento: <@var="X"> (matriz) 1747 1748Calcula a transformada de Fourier real discreta. Se a matriz de entrada <@var="X"> tiver <@mth="n"> colunas, a saída terá 2<@mth="n"> colunas, onde as partes reais são armazenadas nas colunas ímpares e as complexas nas pares. 1749 1750Quando seja necessário calcular a transformada de Fourier em vários vetores com o mesmo número de elementos, é mais eficiente, do ponto de vista numérico, agrupar esses vetores em uma única matriz ao invés de aplicar a função <@lit="fft"> em cada vetor de forma separada. Ver também <@ref="ffti">. 1751 1752# fft2 linalg 1753Resultado: matriz 1754Argumento: <@var="X"> (matriz) 1755 1756Transfromada discreta de Fourier. A matriz de entrada <@var="X"> pode ser real ou complexa. O resultado é uma matiz complexa de com a mesma dimensão de <@var="X">. 1757 1758Quando seja necessário calcular a transformada de Fourier em vários vetores com o mesmo número de elementos, é mais eficiente, do ponto de vista numérico, agrupar esses vetores em uma única matriz ao invés de aplicar a função <@lit="fft2"> em cada vetor de forma separada. Ver também <@ref="ffti">. 1759 1760# ffti linalg 1761Resultado: matriz 1762Argumento: <@var="X"> (matriz) 1763 1764Calcula a inversa da transformada de Fourier real discreta. Assume-se que <@var="X"> contém <@mth="n"> colunas complexas, com a parte real nas colunas ímpares e a parte real nas pares. Assim, o número total de colunas deverá ser 2<@mth="n">. Uma matriz com <@mth="n"> colunas é retornada. returned. 1765 1766Quando seja necessário calcular a inversa da transformada de Fourier em vários vetores com o mesmo número de elementos, é mais eficiente, do ponto de vista numérico, agrupar esses vetores em uma única matriz ao invés de aplicar a função <@lit="fft"> em cada vetor de forma separada. Ver também <@ref="fft">. 1767 1768# filter timeseries 1769Resultado: ver abaixo 1770Argumentos: <@var="x"> (série ou matriz) 1771 <@var="a"> (escalar ou vetor, opcional) 1772 <@var="b"> (escalar ou vetor, opcional) 1773 <@var="y0"> (escalar, opcional) 1774 1775Calcula uma filtragem semelhante ao ARMA do argumento <@var="x">. A transformação pode ser escrita como 1776 1777<@mth="y"><@sub="t"> = <@mth="a"><@sub="0"> <@mth="x"><@sub="t"> + <@mth="a"><@sub="1"> <@mth="x"><@sub="t-1"> + ... <@mth="a"><@sub="q"> <@mth="x"><@sub="t-q"> + <@mth="b"><@sub="1"> <@mth="y"><@sub="t-1"> + ... <@mth="b"><@sub="p"><@mth="y"><@sub="t-p"> 1778 1779Se o argumento <@var="x"> for uma série, o resultado será também uma série. Caso contrário, se <@var="x"> for uma matriz com <@mth="T"> linhas e <@mth="k"> colunas, o resultado será uma matriz com o mesmo tamanho e com a filtragem sendo realizada coluna por coluna. 1780 1781Os argumentos <@var="a"> e <@var="b"> são opcionais. Eles podem ser escalares, vetores ou a palavra-chave <@lit="null">. 1782 1783Se <@var="a"> for um escalar, isto é usado como <@mth="a"><@sub="0"> e implica em <@mth="q=0">. Se ele for um vetor com <@mth="q+1"> elementos, eles contêm os coeficientes de <@mth="a"><@sub="0"> a <@mth="a"><@sub="q">. Se <@var="a"> for <@lit="null"> ou for omitido, isso é equivalente a definir <@mth="a"><@sub="0"> <@mth="=1"> e <@mth="q=0">. 1784 1785Se <@var="b"> for um escalar, isto é usado como <@mth="b"><@sub="1"> e implica em <@mth="p=1">. Se ele for um vetor com <@mth="p"> elementos, eles contêm os coeficientes de <@mth="b"><@sub="1"> a <@mth="b"><@sub="p">. Se <@var="b"> for <@lit="null"> ou for omitido, isso é equivalente a definir <@mth="B(L)=1">. 1786 1787O argumento escalar opcional <@var="y0"> for tomado para representa todos os valores de <@mth="y"> anteriores ao início da amostra (usado apenas quando <@mth="p>0">). Se for omitido, subentende-se que é igual a 0. Assume-se que valores pré-amostrais de <@var="x"> são sempre 0. 1788 1789Ver também <@ref="bkfilt">, <@ref="bwfilt">, <@ref="fracdiff">, <@ref="hpfilt">, <@ref="movavg">, <@ref="varsimul">. 1790 1791Exemplo: 1792 1793<code> 1794 nulldata 5 1795 y = filter(index, 0.5, -0.9, 1) 1796 print index y --byobs 1797 x = seq(1,5)' ~ (1 | zeros(4,1)) 1798 w = filter(x, 0.5, -0.9, 1) 1799 print x w 1800</code> 1801 1802produz 1803 1804<code> 1805 index y 1806 1807 1 1 -0.40000 1808 2 2 1.36000 1809 3 3 0.27600 1810 4 4 1.75160 1811 5 5 0.92356 1812 1813 x (5 x 2) 1814 1815 1 1 1816 2 0 1817 3 0 1818 4 0 1819 5 0 1820 1821 w (5 x 2) 1822 1823 -0.40000 -0.40000 1824 1.3600 0.36000 1825 0.27600 -0.32400 1826 1.7516 0.29160 1827 0.92356 -0.26244 1828</code> 1829 1830# firstobs data-utils 1831Resultado: número inteiro 1832Argumento: <@var="y"> (série) 1833 1834Retorna o número da primeira observação não ausente da série <@var="y">. Note que se alguma forma de subamostragem estiver sendo utilizada o valor retornado poderá ser menor que o valor retornado pela função <@ref="$t1">. Ver também <@ref="lastobs">. 1835 1836# fixname strings 1837Resultado: texto 1838Argumentos: <@var="rawname"> (texto) 1839 <@var="underscore"> (booleano, opcional) 1840 1841Tem como intuito principal a utilização em conjunto com o comando <@xrf="join">. Retorna o resultado da conversão de <@var="rawname"> em um identificador válido do Gretl, que deve ser iniciado por uma letra, conter apenas letras ASCII, dígitos e traço inferior (“underscore”), e não deve ter mais que 31 caracteres. As regras utilizadas na conversão são: 1842 18431. Remover quaisquer caracteres que não sejam letras no início do nome. 1844 18452. Até o limite de 31 caracteres não ter sido ultrapassado ou a entrada tiver sido exaurida: transcreve os caracteres “legais ”, omite os caracteres “ilegais”, com exceção dos espaços, e substitui os espaços por traços inferiores. Se o caractere anterior for um traço inferior o espaço será omitido. 1846 1847Se você estiver seguro de que a entrada não é muito extensa (e, dessa forma, não está sujeita a truncagem), você pode querer que um ou mais dos caracteres ilegais sejam substituídos por um traço inferior ao invés de simplesmente deletá-los. Isto pode produzir um identificador mais legível. Para que isso ocorra, forneça um valor diferente de 0 para o segundo argumento (que é opcional). Vale salientar que esse procedimento não é aconselhável quando o comando <@xrf="join"> for utilizado, uma vez que os nomes automaticamente “corrigidos ” não utilizarão o traço inferior. 1848 1849# flatten data-utils 1850Resultado: ver abaixo 1851Argumentos: <@var="A"> (cadeia de matrizes ou texto) 1852 <@var="alt"> (booleano, opcional) 1853 1854Compacta um conjunto de matrizes numa única matriz ou conjunto de cadeias de texto numa única cadeia de texto. 1855 1856No caso matricial, as matrizes contidas em <@var="A"> são, por defeito, concatenadas horizontalmente, mas se um valor diferente de zero for passado como argumento <@var="alt"> a concatenação é vertical. Em ambos os casos será mostrado um erro se as matrizes não forem compatíveis com a operação. Ver <@ref="msplitby"> para a operação inversa. 1857 1858No caso de cadeia de texto, o resultado são as cadeias de texto em <@var="A">, e arranjadas uma por linha, por defeito. Se e um valor diferente de zero for passado como argumento <@var="alt"> as cadeias de texto são separadas por espaços aon invés de linhas. 1859 1860# floor math 1861Resultado: o mesmo tipo que o argumento 1862Argumento: <@var="y"> (escalar, série ou matriz) 1863 1864Consiste na função piso. Retorna o maior inteiro menor que ou igual <@var="x">. Note que <@ref="int"> e <@lit="floor"> possuem efeitos distintos em argumentos negativos: <@lit="int(-3.5)"> gera –3, enquanto <@lit="floor(-3.5)"> gera –4. 1865 1866# fracdiff timeseries 1867Resultado: série 1868Argumentos: <@var="y"> (série) 1869 <@var="d"> (escalar) 1870 1871Retorna a diferença fracionária de ordem <@var="d"> para a series <@var="y">. 1872 1873Note que teoricamente a diferenciação fracionária é um filtro infinitamente longo. Na prática, valores antes da amostra de <@mth="y"><@sub="t"> são assumidos com sendo iguais a zero. 1874 1875É possível utilizar valores de <@var="d"> negativos. Nesse caso é realizada a integração fracionária. 1876 1877# fzero numerical 1878Resultado: escalar 1879Argumentos: <@var="fcall"> (chamada a função) 1880 <@var="init"> (escalar ou vetor, opcional) 1881 <@var="toler"> (escalar, opcional) 1882 1883Tenta encontrar a raiz unitária de uma função coninua (tipicamente não-linear) <@mth="f">, que é uma variável escalar <@mth="x"> tal que <@mth="f">(<@mth="x">) = 0. O argumento <@var="fcall"> deve chamar a função em causa; <@var="fcall"> pode incluir um número arbitrário de argumentos, mas o primeiro tem que ser um escalar actuando com <@mth="x">. Em caso de sucesso, a função retorna o valor da raiz. 1884 1885O método utilizado é o de <@bib="Ridders (1979);ridders79">. Isto necessita de um intervalo inicial {<@mth="x"><@sub="0">, <@mth="x"><@sub="1">} tal que ambos os valores pertençam ao domínio da função e as respectivas imagens sejam de sinais opostos. Será mais provável obter melhores resultados, se o utilizador fornecer como segundo argumento, um vector cujos componentes sejam os valores extremos do intervalo. Se não for assim, pode-se fornecer um único valor escalar e <@lit="fzero"> tentará encontrar um intervalo adequado. Se o segundo argumento fôr omitido, <@mth="x"><@sub="0"> é inicializado com um valor positivo pequeno e nós procuramos um valor adequado para <@mth="x"><@sub="1">. 1886 1887O argumento opcional <@var="toler"> pode ser utilizado para ajustar a diferença máxima aceitável de <@mth="f">(<@mth="x">) de zero, sendo o valor por defeito 1.0e–14. 1888 1889Por defeito esta função opera silenciosamente, mas o progresso do processo iteractivo pode ser exposto usando o comando “<@lit="set max_verbose on">” antes de chamar <@lit="fzero">. 1890 1891Seguem-se alguns simples exemplos: 1892 1893<code> 1894 # Aproximação de Pi pesquisando um zero da 1895 # função sin() no intervalo 2.8 a 3.2 1896 x = fzero(sin(x), {2.8, 3.2}) 1897 printf "\nx = %.12f vs pi = %.12f\n\n", x, $pi 1898 1899 # Aproximação da 'constante Omega' partindo de x=0.5 1900 function scalar f(scalar x) 1901 return log(x) + x 1902 end function 1903 x = fzero(f(x), 0.5) 1904 printf "x = %.12f f(x) = %.15f\n", x, f(x) 1905</code> 1906 1907# gammafun math 1908Resultado: o mesmo tipo que o argumento 1909Argumento: <@var="x"> (escalar, série ou matriz) 1910 1911Retorna a função gama de <@var="x">. 1912 1913# genseries data-utils 1914Resultado: escalar 1915Argumentos: <@var="varname"> (texto) 1916 <@var="rhs"> (série) 1917 1918Permite que sejam geradas séries cujos nomes não são conhecidos a priori e/ou que sejam criadas séries e adicionadas a uma lista utilizando apenas uma única operação. 1919 1920O primeiro argumento fornece o nome da série a ser criada (ou modificada) e pode ser um texto literal, uma variável de texto (string), ou uma expressão cujo resultado seja uma variável de texto. O segundo argumento, <@var="rhs"> (abreviação em inglês de “lado direito”), define a fonte da série: isto pode ser o nome de uma série existente ou uma expressão cujo resultado seja uma série, da forma que aparece do lado direito do sinal de igualdade quando se definem séries da forma usual. 1921 1922O valor de retorno dessa função é o número ID das séries no conjunto de dados, um valor que pode ser utilizado para incluir as séries em uma lista (ou –1 caso a execução da função falhe). 1923 1924Por exemplo, suponha que se queira adicionar <@mth="n"> séries aleatórias com distribuição normal ao conjunto de dados e colocá-las em uma lista. O código a seguir fará isso: 1925 1926<code> 1927 list Normals = null 1928 loop i=1..n --quiet 1929 Normals += genseries(sprintf("norm%d", i), normal()) 1930 endloop 1931</code> 1932 1933Ao término da execução a lista <@lit="Normals"> irá conter as séries <@lit="norm1">, <@lit="norm2"> e assim sucessivamente. 1934 1935# geoplot data-utils 1936Resultado: nada 1937Argumentos: <@var="mapfile"> (texto) 1938 <@var="payload"> (série, opcional) 1939 <@var="options"> (lote, opcional) 1940 1941Chama a produção de um mapa, quando existem dados geográficos apropriados. Na maior parte dos casos o argumento <@var="mapfile"> deve ser dado como <@ref="$mapfile">, um acessor que obtém o nome relevante do ficheiro GeoJSON ou do ficheiro de formas ESRI. O argumento opcional <@var="payload"> é usado para fornecer o nome de uma série com a qual se coloriza as regiões do mapa. E o argumento final <@var="options"> como bundle permite você definir inúmeras opções. 1942 1943Veja a documentação do geoplot, <@adb="geoplot.pdf">, para mais detalhes e exemplos. Aqui se explica todas as configurações por via do argumento <@var="options">. 1944 1945# getenv programming 1946Resultado: texto 1947Argumento: <@var="s"> (texto) 1948 1949Se uma variável de ambiente de nome <@var="s"> estiver definida a função retorna uma variável com o texto dessa variável, caso contrário, retorna um texto vazio. Veja também <@ref="ngetenv">. 1950 1951# getinfo data-utils 1952Resultado: lote 1953Argumento: <@var="y"> (série) 1954 1955Retorna, na forma de um pacote (bundle) informações sobre a série especificada, o que pode ser feito por meio de seu nome ou de seu número ID. O pacote retornado contém os atributos que podem ser definidos via comando <@xrf="setinfo">. Ele também contém informações relevantes adicionais das séries que tenham sido criadas por meio de transformações nos dados primários (defasagens, logs, etc.): isso inclui o nome do comando do Gretl para a transformação sob código “transform” e o nome da série primária associada sob o código “parent”. Para séries defasadas, o número específico de defasagens pode ser encontrado sob o código “lag”. 1956 1957Exemplo de utilização: 1958 1959<code> 1960 open data9-7 1961 lags QNC 1962 bundle b = getinfo(QNC_2) 1963 print b 1964</code> 1965 1966Ao executar o código acima tem-se: 1967 1968<code> 1969 has_string_table = 0 1970 lag = 2 1971 parent = QNC 1972 name = QNC_2 1973 graph_name = 1974 coded = 0 1975 discrete = 0 1976 transform = lags 1977 description = = QNC(t - 2) 1978</code> 1979 1980Para verificar se a série 5 no conjunto de dados é um termo defasado pode-se proceder da seguinte forma: 1981 1982<code> 1983 if getinfo(5).lag != 0 1984 printf "a série 5 é uma defasagem de %s\n", getinfo(5).parent 1985 endif 1986</code> 1987 1988Deve-se ter em mente que a notação ponto (.) para acessar os membros do pacote pode ser utilizada mesmo este seja “anônimo” (ou seja, armazenado sem seu próprio nome). 1989 1990# getkeys data-utils 1991Resultado: cadeia de texto 1992Argumento: <@var="b"> (lote) 1993 1994Retorna um vetor de textos contendo os códigos que identificam os conteúdos de <@var="b">. Se o pacote (bundle) estiver vazio é retornado um vetor também vazio. 1995 1996# getline strings 1997Resultado: escalar 1998Argumentos: <@var="source"> (texto) 1999 <@var="target"> (texto) 2000 2001Essa função lê sucessivamente as linhas de <@var="source">, que deve ser uma variável de texto (string). A cada chamada uma linha do texto é escrita em <@var="target"> (que também deve ser uma variável de texto) com o caractere de nova linha removido. O valor retornado é 1, se existir algo a ser lido (incluindo-se linhas em branco), ou 0, se todas as linhas de <@var="source"> tiverem sido lidas. 2002 2003A seguir é apresentado um exemplo onde o conteúdo de um arquivo de texto é dividido em linhas: 2004 2005<code> 2006 string s = readfile("data.txt") 2007 string line 2008 scalar i = 1 2009 loop while getline(s, line) 2010 printf "line %d = '%s'\n", i++, line 2011 endloop 2012</code> 2013 2014Neste exemplo pode-se ter a certeza de que o texto foi exaurido quando o loop terminar. Se não for desejado exaurir todas as linhas do texto pode-se chamar a função <@lit="getline">, sendo que sucessivas chamadas substituirão o conteúdo de <@var="target"> pela nova linha lida. Para reiniciar a leitura a partir da primeira linha de <@var="source "> basta utilizar <@lit="null"> no argumento <@var="target "> (ou apenas deixá-lo em branco). Exemplos: 2015 2016<code> 2017 getline(s, line) # recupera uma única linha 2018 getline(s, null) # reinicia a leitura 2019</code> 2020 2021Note que apesar de a posição de leitura avançar em cada chamada de <@lit=" getline">, o argumento <@var="source"> não é modificado por essa função, apenas <@var="target"> é alterado. 2022 2023# ghk stats 2024Resultado: matriz 2025Argumentos: <@var="C"> (matriz) 2026 <@var="A"> (matriz) 2027 <@var="B"> (matriz) 2028 <@var="U"> (matriz) 2029 <@var="&dP"> (referência a matriz, ou <@lit="null">) 2030 2031Calcula a aproximação GHK (Geweke, Hajivassiliou, Keane) para a função de distribuição normal multivariada. Veja, por exemplo, <@bib="Geweke (1991);geweke91">. O valor retornado é um vetor de probabilidades de ordem <@itl="n">×1. 2032 2033O argumento <@var="C"> (<@itl="m">×<@itl="m">) deve fornecer o fator de Cholesky (triangular inferior) da matriz de covariância de <@mth="m"> variáveis normais. Ambos os argumentos <@var="A"> e <@var="B"> devem ser de ordem <@itl="n">×<@itl="m">, fornecendo, respectivamente, os limites inferior e superior aplicados às variáveis em cada uma das <@mth="n"> observações. Quando as variáveis não possuírem limites é necessário que tal característica seja indicada através da constante <@ref="$huge"> ou de sua negativa. 2034 2035A matriz <@var="U"> deve ter ordem <@itl="m">×<@itl="r">, sendo <@mth="r"> o número de elementos pseudo-aleatórios extraídos da distribuição uniforme. Funções convenientes para a criação de <@var=" U"> são <@ref="muniform"> e <@ref="halton">. 2036 2037A seguir encontra-se um caso relativamente simples onde as probabilidades multivariadas podem ser calculada de forma analítica. As séries <@lit="P"> e <@lit="Q"> devem ser numericamente muito similares entre si, sendo <@lit="P"> a probabilidade “verdadeira” e <@lit="Q"> sua aproximação GHK: 2038 2039<code> 2040 nulldata 20 2041 series inf1 = -2*uniform() 2042 series sup1 = 2*uniform() 2043 series inf2 = -2*uniform() 2044 series sup2 = 2*uniform() 2045 2046 scalar rho = 0.25 2047 matrix V = {1, rho; rho, 1} 2048 2049 series P = cdf(D, rho, inf1, inf2) - cdf(D, rho, sup1, inf2) \ 2050 - cdf(D, rho, inf1, sup2) + cdf(D, rho, sup1, sup2) 2051 2052 C = cholesky(V) 2053 U = halton(2, 100) 2054 2055 series Q = ghk(C, {inf1, inf2}, {sup1, sup2}, U) 2056</code> 2057 2058O argumento opcional <@var="dP"> pode ser usado para recuperar a matriz <@itl="n">×<@itl="k"> de derivadas das probabilidades, onde <@mth="k"> é igual a 2<@mth="m"> + <@mth="m"> (<@mth="m"> + 1)/2. As primeiras <@mth="m"> colunas contêm as derivadas em relação aos limites inferiores, as próximas <@mth="m"> as derivadas em relação aos limites superiores e as colunas restantes as derivadas em relação aos elementos únicos da matriz <@mth="C"> na ordem “vech”. 2059 2060# gini stats 2061Resultado: escalar 2062Argumento: <@var="y"> (série ou vetor) 2063 2064Retorna o índice de desigualdade de Gini para a série ou o vetor (não negativos). Um valor de Gini igual a zero indica igualdade perfeita. O valor máximo de Gini para uma série com <@mth="n"> elementos é (<@mth="n"> – 1)/<@mth="n">, ocorrendo quando apenas um membro possui um valor positivo. Um Gini igual a 1,0 é, dessa forma, o limite aproximado por uma grande série com desigualdade máxima <@var="y">. 2065 2066# ginv linalg 2067Resultado: matriz 2068Argumento: <@var="A"> (matriz) 2069 2070Retorna <@mth="A"><@sup="+">, a Moore–Penrose ou inversa generalizada de <@var="A">, calculada via decomposição em valores singulares. 2071 2072Essa matriz possui as seguintes propriedades: <@mth="A"> <@mth="A"><@sup="+"> <@mth="A"> = <@mth="A"> and <@mth="A"><@sup="+"> <@mth="A"> <@mth="A"><@sup="+"> = <@mth="A"><@sup="+">. Além disso, os produtos <@mth="A"> <@mth="A"><@sup="+"> e <@mth="A"><@sup="+"> <@mth="A"> são simétricos por construção. 2073 2074Ver também <@ref="inv">, <@ref="svd">. 2075 2076# GSSmax numerical 2077Resultado: escalar 2078Argumentos: <@var="&b"> (referência a matriz) 2079 <@var="f"> (chamada a função) 2080 <@var="toler"> (escalar, opcional) 2081 2082Maximização de unidimensional via método Golden Section Search (GSS). A matriz <@var="b"> deve ser um vetor de ordem 3. Na entrada o primeiro elemento é ignorado enquanto que o segundo e o terceiro elementos determinam os limites inferior e superior da busca. O argumento <@var="fncall"> deve especificar a chamada a uma função que retorna o valor da variável a ser maximizada. O elemento 1 de <@var="b">, que irá armazenar o valor corrente do parâmetro ajustável quando a função for chamada, deve ser determinado como seu primeiro argumento. Quaisquer argumentos requeridos podem então ser incluídos em seguida. A função em questão de ser unimodal (ou seja, não deve possuir máximos locais, apenas o máximo global) ao longo da amostra estipulada, caso contrário não se pode garantir que o GSS irá encontrar o máximo. 2083 2084Ao ser executada com sucesso <@lit="GSSmax"> retorna o valor ótimo da variável a ser maximizada, enquanto <@var="b"> armazena o valor do parâmetro ótimo juntamente dos limites de seu intervalo. 2085 2086O terceiro argumento, que é opcional, pode ser utilizado para ajustar a convergência, isto é, a largura máxima aceitável do intervalo final do parâmetro. Se esse argumento não for fornecido, será utilizado o valor 0,0001. 2087 2088Se o objetivo é de fato a minimização, a chamada à função deve retornar o critério com o sinal negativo. Alternativamente, ao invés de se utilizar <@lit="GSSmax"> pode-se utilizar a função <@lit="GSSmin">. 2089 2090Exemplo de utilização: 2091 2092<code> 2093 function scalar trigfunc (scalar theta) 2094 return 4 * sin(theta) * (1 + cos(theta)) 2095 end function 2096 2097 matrix m = {0, 0, $pi/2} 2098 eval GSSmax(&m, trigfunc(m[1])) 2099 printf "\n%10.7f", m 2100</code> 2101 2102# GSSmin numerical 2103Resultado: escalar 2104 2105É uma forma alternativa da função <@ref="GSSmax">. Se invocada com este nome a função comporta-se como minimizadora. 2106 2107# halton matrix 2108Resultado: matriz 2109Argumentos: <@var="m"> (número inteiro) 2110 <@var="r"> (número inteiro) 2111 <@var="offset"> (número inteiro, opcional) 2112 2113Retorna uma matriz <@itl="m">×<@itl="r"> contendo <@mth="m"> sequências de Halton de comprimento <@mth="r">. O <@mth="m"> é limitado a um máximo de 40. As sequências são construídas utilizando os primeiros <@mth="m"> primos. Por padrão os primeiros 10 elementos de cada sequência são descartados, mas isso pode ser ajustado via argumento opcional <@var="offset">, que deve ser um número inteiro não negativo. Maiores detalhes podem ser encontrados em <@bib="Halton e Smith (1964);halton64">. 2114 2115# hdprod linalg 2116Resultado: matriz 2117Argumentos: <@var="X"> (matriz) 2118 <@var="Y"> (matriz) 2119 2120Calcula o produto direto horizontal. Os dois argumentos devem ter o mesmo número de linhas, <@mth="r">. O valor retornado é uma matriz com <@mth="r"> linhas, onde a <@mth="i">-ésima linha corresponde ao produto de Kronecker das linhas correspondentes de <@var="X"> e <@var="Y">. 2121 2122Esta operação é chamada de “produto horizontal direto” em conformidade com sua implementação na linguagem de programação GAUSS. Sua equivalente na álgebra linear padrão seria chamada de produto linha a linha de Khatri-Rao. 2123 2124Exemplo: o código 2125 2126<code> 2127 A = {1,2,3; 4,5,6} 2128 B = {0,1; -1,1} 2129 C = hdprod(A, B) 2130</code> 2131 2132produz a seguinte matriz: 2133 2134<code> 2135 0 1 0 2 0 3 2136 -4 4 -5 5 -6 6 2137</code> 2138 2139# hfdiff midas 2140Resultado: lista 2141Argumentos: <@var="hfvars"> (lista) 2142 <@var="multiplier"> (escalar) 2143 2144Dada uma <@xrf="MIDAS_list">, produz uma lista com o mesmo tamanho contendo as primeiras diferenças de alta frequência. O segundo argumento é opcional e tem como valor padrão 1: ele pode ser utilizado para multiplicar as diferenças por alguma constante. 2145 2146# hfldiff midas 2147Resultado: lista 2148Argumentos: <@var="hfvars"> (lista) 2149 <@var="multiplier"> (escalar) 2150 2151Dada uma <@xrf="MIDAS_list">, produz uma lista com o mesmo tamanho contendo as diferenças logarítmicas de alta frequência. O segundo argumento é opcional e tem como valor padrão 1: ele pode ser utilizado para multiplicar as diferenças por alguma constante. Um exemplo da utilização desse argumento é utilizar o valor 100 para obter as variações percentuais (aproximadas). 2152 2153# hflags midas 2154Resultado: lista 2155Argumentos: <@var="minlag"> (número inteiro) 2156 <@var="maxlag"> (número inteiro) 2157 <@var="hfvars"> (lista) 2158 2159Dada uma <@xrf="MIDAS_list">, <@var="hfvars">, produz uma lista contendo as defasagens de auta frequência de <@var="minlag"> a <@var=" maxlag">. Deve-se utilizar valores positivos para defasagens (<@mth=" t"> - 1) e negativos para adiantamentos (<@mth="t"> + 1). Por exemplo, se <@var="minlag"> for –3 e <@var="maxlag"> for 5 então a lista retornada irá conter 9 séries: 3 adiantamentos, o valor atual e 5 defasagens. 2160 2161Note que a defasagem de alta frequência 0 corresponde ao primeiro período de alta frequência dentro de um período de baixa frequência, por exemplo, o primeiro mês de um trimestre ou o primeiro dia de um mês. 2162 2163# hflist midas 2164Resultado: lista 2165Argumentos: <@var="x"> (vetor) 2166 <@var="m"> (número inteiro) 2167 <@var="prefix"> (texto) 2168 2169Produz a partir de um vetor <@var="x"> uma lista MIDAS (<@xrf="MIDAS_list">) de <@var="m"> séries, onde <@var="m"> é a razão entre a frequência das observações para a variável em <@var="x"> em relação a frequência base do conjunto de dados corrente. O valor de <@var="m"> deve ser ao menos 3 e o comprimento de <@var="x"> deve ser <@var="m"> vezes o comprimento da amostra selecionada corrente. 2170 2171Os nomes das séries na lista retornada são definidos a partir de um dado prefixo, dado pelo argumento <@var="prefix"> (este deve ser um texto ASCII com 24 ou menos caracteres e que seja um identificador válido para o Gretl) mais 1 ou mais prefixos representando o subperíodo da observação. Um erro será apresentado se algum desses nomes seja idêntico a nomes de objetos já existentes. 2172 2173# hpfilt timeseries 2174Resultado: série 2175Argumentos: <@var="y"> (série) 2176 <@var="lambda"> (escalar, opcional) 2177 <@var="one-sided"> (booleano, opcional) 2178 2179Retorna o componente cíclico do filtro de Hodrick–Prescott aplicado à série <@var="y">. Se o parâmetro de suavização <@var="lambda"> não for fornecido o Gretl usará valores padrão com base na periodicidade dos dados. O parâmetro será igual a 100 vezes o quadrado da periodicidade (100 para dados anuais, 1600 para dados trimestrais, 14400 para dados mensais, etc.). 2180 2181Por padrão o filtro é a versão bilateral, “two-sided”, mas se o terceiro argumento (opcional) for um valor diferente de zero é computada a versão unilateral, “one-sided”, (de forma não prospectiva) é computada na forma proposta por <@bib="Stock and Watson (1999);stock-watson1999">. 2182 2183O uso mais comum do filtro HP é a retirada de tendência de séries, mas se o interesse for pela tendência em si, basta utilizar a seguinte expressão: 2184 2185<code> 2186 series hptrend = y - hfilt(y) 2187</code> 2188 2189Ver também <@ref="bkfilt">, <@ref="bwfilt">. 2190 2191# hyp2f1 math 2192Resultado: escalar ou matriz 2193Argumentos: <@var="a"> (escalar) 2194 <@var="b"> (escalar) 2195 <@var="c"> (escalar) 2196 <@var="x"> (escalar ou matriz) 2197 2198Retorna a função hipergeométrica de Gauss para o argumento real <@var="x">. 2199 2200Se <@var="x"> é um escalar, a função retorna um escalar; se não, o resultado será uma matriz com a mesma dimensão que o argumento <@var="x">. 2201 2202# I matrix 2203Resultado: matriz 2204Argumento: <@var="n"> (número inteiro) 2205 2206Retorna uma matriz identidade com <@var="n"> linhas e colunas. 2207 2208# Im complex 2209Resultado: matriz 2210Argumento: <@var="C"> (matriz complexa) 2211 2212Retorna uma matriz real com a mesma dimensão que <@var="C">, contendo a parte imaginária da matriz de entrada. Ver também <@ref="Re">. 2213 2214# imaxc stats 2215Resultado: vetor linha 2216Argumento: <@var="X"> (matriz) 2217 2218Retorna um vetor com os números das linhas onde as colunas de <@var="X"> atingem seus valores máximos. 2219 2220Ver também <@ref="imaxr">, <@ref="iminc">, <@ref="maxc">. 2221 2222# imaxr stats 2223Resultado: vetor coluna 2224Argumento: <@var="X"> (matriz) 2225 2226Retorna um vetor com os números das colunas onde as linhas de <@var="X"> atingem seus valores máximos. 2227 2228Ver também <@ref="imaxc">, <@ref="iminr">, <@ref="maxr">. 2229 2230# imhof probdist 2231Resultado: escalar 2232Argumentos: <@var="M"> (matriz) 2233 <@var="x"> (escalar) 2234 2235Calcula Prob(<@mth="u'Au"> < <@mth="x">) para uma forma quadrática em variáveis normais padrão, <@mth="u">, utilizando o procedimento desenvolvido por <@bib="Imhof (1961);imhof61">. 2236 2237Se o primeiro argumento, <@var="M">, for uma matriz quadrada ela será utilizada para especificar <@mth="A">, caso contrário, se for um vetor coluna, será utilizada como sendo os autovalores pré-calculados de <@mth="A">, caso contrário um erro será apresentado. 2238 2239Ver também <@ref="pvalue">. 2240 2241# iminc stats 2242Resultado: vetor linha 2243Argumento: <@var="X"> (matriz) 2244 2245Retorna um vetor com os números das linhas onde as colunas de <@var="X"> atingem seus valores mínimos. 2246 2247Ver também <@ref="iminr">, <@ref="imaxc">, <@ref="minc">. 2248 2249# iminr stats 2250Resultado: vetor coluna 2251Argumento: <@var="X"> (matriz) 2252 2253Retorna um vetor com os números das colunas onde as linhas de <@var="X"> atingem seus valores mínimos. 2254 2255Ver também <@ref="iminc">, <@ref="imaxr">, <@ref="minr">. 2256 2257# inbundle data-utils 2258Resultado: número inteiro 2259Argumentos: <@var="b"> (lote) 2260 <@var="key"> (texto) 2261 2262Verifica se um pacote (bundle) <@var="b"> contém um item com o nome <@var="key">. O valor retornado é um código (na forma de um número inteiro) para o tipo de item: 0 caso não seja encontrado, 1 para escalar, 2 para série,3 para matriz, 4 para variável de texto, 5 para pacote (bundle) e 6 para arranjo (array). A função <@ref="typestr"> pode ser utilizada para se obter o nome do tipo do item na forma de variável de texto com base em seu código. 2263 2264# infnorm linalg 2265Resultado: escalar 2266Argumento: <@var="X"> (matriz) 2267 2268Retorna a norma infinito de <@var="X">, isto é, o máximo ao longo das linhas de <@var="X"> da soma dos valores absolutos dos elementos da linha. 2269 2270Ver também <@ref="onenorm">. 2271 2272# inlist data-utils 2273Resultado: número inteiro 2274Argumentos: <@var="L"> (lista) 2275 <@var="y"> (série) 2276 2277Retorna a posição de <@var="y"> na lista <@var="L">, ou 0 se <@var="y"> não estiver presente em <@var="L">. 2278 2279O segundo argumento pode ser dado tanto como o nome da série quanto como o número ID da série. Se é sabido que uma série com dado nome (como por exemplo <@lit="foo">) existe, então é possível chamar essa função da seguinte forma: 2280 2281<code> 2282 pos = inlist(L, foo) 2283</code> 2284 2285O que a expressão acima está solicitando é: “Informe a posição da série <@lit="foo"> na lista <@lit="L"> (sendo 0 se ela não estiver incluída na lista L)”. Entretanto, se não houver certeza se a série com dado nome existe, deve-se inserir o nome entre aspas. Isso é feito da seguinte forma: 2286 2287<code> 2288 pos = inlist(L, "foo") 2289</code> 2290 2291Neste caso o que está sendo solicitado é: “Se existir uma série chamada <@lit="foo"> na lista <@lit="L">, me informe sua posição ou 0 caso ela não exista.” 2292 2293# instring strings 2294Resultado: número inteiro 2295Argumentos: <@var="s1"> (texto) 2296 <@var="s2"> (texto) 2297 2298Função booleana relacionada à <@ref="strstr">. Retorna 1 se <@var="s1"> contiver <@var="s2">, 0 caso contrário. Assim, a expressão condicional 2299 2300<code> 2301 if instring("cattle", "cat") 2302</code> 2303 2304é logicamente equivalente a, mas mais eficiente que, 2305 2306<code> 2307 if strlen(strstr("cattle", "cat")) > 0 2308</code> 2309 2310# instrings strings 2311Resultado: matriz 2312Argumentos: <@var="S"> (cadeia de texto) 2313 <@var="test"> (texto) 2314 2315Verifica quais os elementos do arranjo de texto em <@var="S"> são iguais a <@var="test">. Retorna um vector de comprimento igual ao número de igualdades, contendo as posições correspondentes dentro do arranjo; ou uma matriz vazia em caso de não haver correspondências. 2316 2317Exemplo: 2318 2319<code> 2320 strings S = defarray("A", "B", "C", "B") 2321 eval instrings(S, "B") 2322 2 2323 4 2324</code> 2325 2326# int math 2327Resultado: o mesmo tipo que o argumento 2328Argumento: <@var="x"> (escalar, série ou matriz) 2329 2330Retorna a parte inteira <@var="x">, truncando a parte fracional. Note que <@lit="int"> e <@ref="floor"> possuem efeitos distintos em argumentos negativos: <@lit="int(-3.5)"> gera –3, enquanto <@lit="floor(-3.5)"> gera –4. Ver também <@ref="ceil">. 2331 2332# inv linalg 2333Resultado: matriz 2334Argumento: <@var="A"> (matriz quadrada) 2335 2336Retorna a inversa de <@var="A">. Se <@var="A"> for singular ou não quadrada, uma mensagem de erro é produzida e nada é retornado. Note que o Gretl confere automaticamente a estrutura de <@var="A"> e utiliza o procedimento numérico mais eficiente para realizar a inversão. 2337 2338Os tipos de matriz que o Gretl confere são: identidade, diagonal, simétrica e positiva definida, simétrica mas não positiva definida e triangular. 2339 2340Observação: faz sentido utilizar essa função apenas se o intuito for utilizar a inversa de <@var="A"> mais de uma vez. Se o objetivo for apenas calcular uma expressão da forma <@mth="A"><@sup="-1"><@mth="B">, será preferível utilizar os operadores de “divisão” <@lit="\"> e <@lit="/">. Veja <@pdf="guia de utilização do Gretl#chap:matrices"> (Capítulo 17) para detalhes. 2341 2342Ver também <@ref="ginv">, <@ref="invpd">. 2343 2344# invcdf probdist 2345Resultado: o mesmo tipo que o argumento 2346Argumentos: <@var="d"> (texto) 2347 <@var="…"> (ver abaixo) 2348 <@var="p"> (escalar, série ou matriz) 2349 2350Calculadora da função de distribuição acumulada inversa. Retorna <@mth="x"> tal que <@mth="P(X ≤ x) = p">, onde a distribuição de <@mth="X"> é especificada pela letra <@var="d">. Entre os argumentos <@var="d"> e <@var="p">, zero ou mais argumentos adicionais são necessários para que se especifique os parâmetros da distribuição. Isso é feito da seguinte forma: 2351 2352<indent> 2353• Normal padrão (c = z, n ou N): sem argumentos extras 2354</indent> 2355 2356<indent> 2357• Gama (g ou G): forma; escala 2358</indent> 2359 2360<indent> 2361• t de Student (t): graus de liberdade 2362</indent> 2363 2364<indent> 2365• Qui-quadrado (c, x ou X): graus de liberdade 2366</indent> 2367 2368<indent> 2369• F de Snedecor F (f ou F): graus de liberdade (num.); graus de liberdade (den.) 2370</indent> 2371 2372<indent> 2373• Binomial (b ou B): probabilidade; tentativas 2374</indent> 2375 2376<indent> 2377• Poisson (p ou P): média 2378</indent> 2379 2380<indent> 2381• Laplace (l ou L): média; escala 2382</indent> 2383 2384<indent> 2385• GED padronizada (E): forma 2386</indent> 2387 2388<indent> 2389• Qui-quadrado não-central (ncX): graus de liberdade, parâmetro de não-centralidade 2390</indent> 2391 2392<indent> 2393• F não-central (ncF): graus de liberdade (num.), graus de liberdade (den.), parâmetro de não-centralidade 2394</indent> 2395 2396<indent> 2397• t não-central (nct): graus de liberdade, parâmetro de não-centralidade 2398</indent> 2399 2400Ver também <@ref="cdf">, <@ref="critical">, <@ref="pvalue">. 2401 2402# invmills probdist 2403Resultado: o mesmo tipo que o argumento 2404Argumento: <@var="x"> (escalar, série ou matriz) 2405 2406Retorna a razão inversa de Mills em <@var="x">, isto é a razão entre a densidade normal padrão e o complemento para para a função de distribuição normal padrão, ambas avaliadas em <@var="x">. 2407 2408Essa função utiliza um algoritmo dedicado que fornece maior precisão quando comparado ao cálculo via <@ref="dnorm"> e <@ref="cnorm">, mas a diferença entre os dois métodos é considerável apenas para valores muito negativos de <@var="x">. 2409 2410Ver também <@ref="cdf">, <@ref="cnorm">, <@ref="dnorm">. 2411 2412# invpd linalg 2413Resultado: matriz quadrada 2414Argumento: <@var="A"> (matriz positiva definida) 2415 2416Retorna a inversa da matriz simétrica positiva definida <@var="A">. Essa função é ligeiramente mais rápida que <@ref="inv"> para matrizes grandes, uma vez que não é verificado se a matriz é simétrica. Por essa razão, essa função deve ser utilizada com cuidado. 2417 2418Observação: se o intuito for inverter uma matriz na forma <@mth="X'X">, onde <@mth="X"> é uma matriz grande, é preferível computá-la via operador <@lit="X'X"> ao invés de utilizar a sintaxe mais geral <@lit="X'*X">. A primeira expressão utiliza um algoritmo especializado que tem a dupla vantagem de ser mais eficiente computacionalmente e de garantir que o resultado seja livre, por construção, dos artefatos de precisão de máquina que podem torná-la numericamente não-simétrico. 2419 2420# irf timeseries 2421Resultado: matriz 2422Argumentos: <@var="target"> (número inteiro) 2423 <@var="shock"> (número inteiro) 2424 <@var="alpha"> (escalar entre 0 e 1, opcional) 2425 <@var="sys"> (lote, opcional) 2426 2427Sem utilizar o argumento <@var="sys">, opcional, essa função está disponível apenas quando o último modelo estimado foi um VAR ou um VECM. Alternativamente, as informações de uma VAR ou VECM podem ser armazenadas em um pacote via função <@ref="$system"> que, por sua vez, pode ser utilizado como o último argumento. 2428 2429Ela retorna uma matriz contendo as respostas estimadas da variável <@var="target"> a um impulso (choque) de 1 desvio padrão na variável <@var="shock">. Essas variáveis são identificadas de acordo com suas posições na especificação do modelo: por exemplo, se para <@var="target"> e <@var="shock"> são dados os valores 1 e 3, respectivamente, a matriz que será retornada fornece as respostas da primeira variável no sistema a um choque na terceira variável. 2430 2431Se o terceiro argumento <@var="alpha">, que é opcional, for dado, a matriz retornada terá três colunas: a estimativa pontual das respostas, seguida dos limites inferior e superior de um intervalo de confiança obtido via bootstrap de 1 – α. Onde <@var="alpha"> = 0.1 corresponde a 90 por cento de confiança. Se <@var="alpha"> for omitido ou igualado a zero, apenas a estimativa pontual será fornecida. 2432 2433O número de períodos (linhas) da resposta é determinado automaticamente com base na frequência dos dados, mas isso pode ser ajustado via comando <@xrf="set">, como por exemplo <@lit="set horizon 10">. 2434 2435Ver também <@ref="fevd">. 2436 2437# irr math 2438Resultado: escalar 2439Argumento: <@var="x"> (série ou vetor) 2440 2441Retorna a Taxa Interna de Retorno para <@var="x">, considerado como sendo uma sequência de pagamentos (negativo) e recebimentos (positivo). Ver também <@ref="npv">. 2442 2443# iscomplex data-utils 2444Resultado: escalar 2445Argumento: <@var="nome"> (texto) 2446 2447Retorna 1 se <@var="nome"> é o nome de uma matriz complexa, 0 se é o nome de uma matriz real, ou <@lit="NA"> se nenhum dos dois. 2448 2449# isconst data-utils 2450Resultado: número inteiro 2451Argumentos: <@var="y"> (série ou vetor) 2452 <@var="panel-code"> (número inteiro, opcional) 2453 2454Sem o segundo argumento (opcional), retorna 1 caso <@var="y"> tenha um valor constante ao longo da amostra selecionada (ou ao longo de toda sua extensão no caso de <@var="y"> ser um vetor), caso contrário retorna 0. 2455 2456O segundo argumento somente é aceito se o conjunto de dados corrente for um painel e <@var="y"> for uma série. Neste caso um valor de <@var="panel-code"> igual a 0 faz a função verificar se a série não varia em relação ao tempo. Um valor igual a 1 faz a função verificar se a série não varia entre as unidades de corte transversal (ou seja, se o valor de <@var="y"> é o mesmo para todos os grupos). 2457 2458Se <@var="y"> for uma série, valores ausentes são ignorados durante a verificação da constância da série. 2459 2460# isdiscrete data-utils 2461Resultado: número inteiro 2462Argumento: <@var="name"> (texto) 2463 2464Se <@var="name"> for um identificador para uma série correntemente definida, a função retorna 1 se a série for marcada como sendo discreta, caso contrário retorna 0. Se <@var="name"> não identifica uma série a função retorna <@lit="NA">. 2465 2466# isdummy data-utils 2467Resultado: número inteiro 2468Argumento: <@var="x"> (série ou vetor) 2469 2470Se todos os valores contidos em <@var="x"> são iguais a 0 ou 1 (ou ausentes), a função retorna o número de ocorrências do valor 1, caso contrário retorna 0. 2471 2472# isnan data-utils 2473Resultado: o mesmo tipo que o argumento 2474Argumento: <@var="x"> (escalar ou matriz) 2475 2476Dado um escalar como argumento, retorna 1 se <@var="x"> não for um número, “Not a Number” (NaN), caso contrário 0. Dada uma matriz como argumento, retorna uma matriz com a mesma dimensão com elementos iguais a 1 nas posições onde o elemento correspondente da matriz de entrada for NaN e 0 nas demais posições. 2477 2478# isoconv calendar 2479Resultado: escalar 2480Argumentos: <@var="date"> (série) 2481 <@var="&year"> (referência a série) 2482 <@var="&month"> (referência a série) 2483 <@var="&day"> (referência a série, opcional) 2484 2485Dada uma série <@var="date"> contendo datas no formato ISO 8601 “básico” (<@lit="YYYYMMDD">), essa função escreve os componentes ano, mês e (opcionalmente) dia em séries nomeadas pelos argumentos <@var="year">, <@var="month"> e <@var="dayecond">. Um exemplo, assumindo que a série <@lit="dates"> contém os valores adequados de 8 dígitos, seria: 2486 2487<code> 2488 series y, m, d 2489 isoconv(dates, &y, &m, &d) 2490</code> 2491 2492Essa função retorna 0 em caso de sucesso e um valor não-nulo em caso de erro. 2493 2494# isocountry strings 2495Resultado: o mesmo tipo que o argumento 2496Argumentos: <@var="país"> (texto ou cadeia de texto) 2497 <@var="tipo"> (número inteiro, opcional) 2498 2499Esta função produz a correspondência da designação dos países segundo os quatro modos previstos na norma ISO 3166, que são 2500 2501<indent> 25021. Nome do país (em Inglês) 2503</indent> 2504 2505<indent> 25062. Código Alfa-2 (duas letras maiúsculas) 2507</indent> 2508 2509<indent> 25103. Código Alfa-3 (três letras maiúsculas) 2511</indent> 2512 2513<indent> 25144. Código numérico (com três digitos) 2515</indent> 2516 2517Partindo de uma das quatro formas, a função retorna o código do país conforme a opção <@var="tipo">, que deve estar entre 1 e 4; se o argumento for omitido, a conversão é como se segue: quando o <@var="país"> é o nome de um país, o valor de retorno é o código Alfa-2; noutro casos, é retornado o nome do país. Adiante mostra-se várias chamadas válidas: 2518 2519<code> 2520 ? eval isocountry("Bolivia") 2521 BO 2522 ? eval isocountry("Bolivia", 3) 2523 BOL 2524 ? eval isocountry("GB") 2525 United Kingdom of Great Britain and Northern Ireland 2526 ? eval isocountry("GB", 3) 2527 GBR 2528 ? strings S = defarray("ES", "DE", "SD") 2529 ? strings C = isocountry(S) 2530 ? print C 2531 Array of strings, length 3 2532 [1] "Spain" 2533 [2] "Germany" 2534 [3] "Sudan" 2535 ? matrix m = {4, 840} 2536 ? C = isocountry(m) 2537 ? print C 2538 Array of strings, length 2 2539 [1] "Afghanistan" 2540 [2] "United States of America" 2541</code> 2542 2543O argumento <@var="país"> na forma 4 (código numérico), pode estar contido numa cadeia de texto ou num arranjo de texto (por exemplo, “032” para a Argentina), ou como uma variável numérica. Neste caso, <@var="país"> pode ser uma série ou um vector, mas a função dará erro se algum dos valores estiver for do intervalo entre 0 e 999. 2544 2545Em qualquer dos casos (mesmo quando o modo 4 é selecionado) é retornado uma cadeia de texto ou um arranjo de texto; se são necessários valores numéricos, estes podem ser obidos usando a função <@ref="atof">. Se o <@var="país"> não for encontrado na tabela ISO 3166, o valor retornado é uma cadeia de texto vazia e é mostrado um aviso. 2546 2547# isodate calendar 2548Resultado: ver abaixo 2549Argumentos: <@var="ed"> (escalar ou série) 2550 <@var="as-string"> (booleano, opcional) 2551 2552O argumento <@var="ed"> é interpretado como um dia na época corrente (que por sua vez é igual a 1 para o primeiro dia de janeiro do ano 1 depois de Cristo, no calendário gregoriano proléptico). O valor padrão de retorno — de mesmo tipo que o de <@var="ed"> — é um número com 8 dígitos, ou uma série composta por tais números, seguindo o padrão <@lit=" YYYYMMDD"> (formato ISO 8601 “básico”), fornecendo a data correspondente no calendário gregoriano ao dia na época. 2553 2554Se <@var="ed"> for (apenas) um escalar e o segundo argumento opcional <@var="as-string"> for não-nulo, o valor de retorno não é numérico mas sim uma variável de texto (string) no padrão <@lit="YYYY-MM-DD"> (padrão ISO 8601 “estendido”). 2555 2556Para a função inversa veja <@ref="epochday">. Veja também a função <@ref="juldate">. 2557 2558# isoweek calendar 2559Resultado: ver abaixo 2560Argumentos: <@var="ano"> (escalar ou série) 2561 <@var="mês"> (escalar ou série) 2562 <@var="dia"> (escalar ou série) 2563 2564Retorna o número da semana segundo o padrão ISO 8601, correspondente à data especificada nos três argumentos, ou <@lit="NA"> se a data não é válida. Note-se que todos os três argumentos têm que ser do mesmo tipo, sejam escalares (inteiros) ou séries. 2565 2566As semanas ISO são numeradas de 01 a 53; a maior parte dos anos têm 52, mas em média, em 400 anos, 71 têm 53 semanas. De acordo com a definição ISO 8601, a semana 01 é aquela que contém a primeira quinta-feira do ano, seguindo o calendário Gregoriano. Para mais detalhes, ver <@url="https://en.wikipedia.org/wiki/ISO_week_date">. 2567 2568# iwishart probdist 2569Resultado: matriz 2570Argumentos: <@var="S"> (matriz simétrica) 2571 <@var="v"> (número inteiro) 2572 2573Dado <@var="S"> (uma matriz de ordem <@itl="p">×<@itl="p"> positiva definida), retorna um valor extraído da distribuição Inversa de Wishart com <@var="v"> graus de liberdade. A matriz retornada é também uma <@itl="p">×<@itl="p">. O algoritmo de <@bib="Odell e Feiveson (1966);odell-feiveson66"> é utilizado. 2574 2575# jsonget data-utils 2576Resultado: texto 2577Argumentos: <@var="buf"> (texto) 2578 <@var="path"> (texto) 2579 <@var="nread"> (referência a escalar, opcional) 2580 2581O argumento <@var="buf"> deve ser um buffer JSON, que ser obtido de alguma página na internet via função <@ref="curl">, e o argumento <@var="path"> deve ser uma especificação JsonPath. 2582 2583Esta função retorna uma variável de texto (string) representando os dados encontrados no buffer no path especificado. Dados do tipo double (ponto flutuante), int (inteiro) e string (variável de texto) são suportados. No caso de doubles ou ints, sua representação em forma de texto é retornada (utilizando o locale “C” para os doubles). Se o objeto ao qual o <@var="path"> se refere for um arranjo (array), cada um dos membros será escrito em uma linha diferente na variável de texto retornada. 2584 2585Por padrão, um erro será sinalizado se o <@var="path"> não possuir uma correspondência no buffer JSON, porém esse comportamento pode ser modificado se o terceiro argumento, opcional, for dado: nesse caso o argumento recupera o número de correspondências e uma variável de texto vazia é retornada caso nenhuma tenha sido encontrada. Por exemplo: 2586 2587<code> 2588 ngot = 0 2589 ret = jsonget(jbuf, "$.some.thing", &ngot) 2590</code> 2591 2592Apesar disso, um erro ainda será sinalizado no caso de uma consulta (query) mal formulada. 2593 2594Para maiores detalhes sobre a sintaxe do JsonPath pode-se consultar o website <@url="http://goessner.net/articles/JsonPath/">. Entretanto, deve-se notar que o back-end para o <@lit="jsonget"> é fornecido pelo <@lit="json-glib"> que, por sua, vez não suporta todos os elementos do JsonPath. Além disso, a funcionalidade exata do <@lit="json-glib"> pode diferir dependendo da versão instalada no sistema. Para maiores detalhes ver: <@url="http://developer.gnome.org/json-glib/"> 2595 2596Dito isto, os seguintes operadores deverão estar disponíveis para <@lit="jsonget">: 2597 2598<indent> 2599• root node, via caractere <@lit="$"> 2600</indent> 2601 2602<indent> 2603• operador descendente recursivo: <@lit=".."> 2604</indent> 2605 2606<indent> 2607• operador curinga/wildcard: <@lit="*"> 2608</indent> 2609 2610<indent> 2611• operador subscrito: <@lit="[]"> 2612</indent> 2613 2614<indent> 2615• operador de notação de conjunto, por exemplo <@lit="[i,j]"> 2616</indent> 2617 2618<indent> 2619• operador de repartição: <@lit="[start:end:step]"> 2620</indent> 2621 2622# jsongetb data-utils 2623Resultado: lote 2624Argumentos: <@var="buf"> (texto) 2625 <@var="path"> (texto, opcional) 2626 2627O argumento <@var="buf"> deve ser um buffer JSON que, por sua vez, pode ser obtido de um website apropriado via função <@ref="curl">. A especificação e a utilização do argumento opcional <@var="path">, são descritos abaixo. 2628 2629O valor retornado pela função é um pacote (bundle) em que a estrutura basicamente emula a da entrada: objetos JSON se tornam pacotes (bundles) do Gretl e arrays JASON se tornam arranjos (arrays) do Gretl, com cada um armazenando tanto textos (strings) quanto pacotes (bundles). Nós de “valor” JSON se tornam ou membros de pacotes ou elementos de arranjos. No último caso, valores numéricos são convertidos em texto via função <@lit="sprintf">. Note que uma vez que arranjos do Gretl não podem ser aninhados, a entrada aceita por essa função é um pouco mais restritiva que a especificação JSON, que permite aninhamento de arrays. 2630 2631O argumento opcional <@var="path"> pode ser utilizado para limitar os elementos JSON incluídos no bundle retornado. Note que isto não é um “JsonPath” conforme descrito na ajuda da função <@ref="jsonget">. É uma simples construção sujeita às seguintes especificações: 2632 2633<indent> 2634• <@var="path"> é um array de elemento separados por barras, onde as barras (“/”) indicam a movimentação em um nível mais “profundo” na árvore JSON representada por <@var="buf">. Uma barra no início é permitida, mas não é necessária. Implicitamente o path sempre tem início na raiz. Não devem ser incluídos espaços em branco 2635</indent> 2636 2637<indent> 2638• Cada elemento separado por barras deve assumir uma das seguintes formas: (a) um nome único, de forma que apenas um elemento JSON cujo nome coincide com um dado nível estrutural será incluído; ou (b) “*” (asterisco), de forma que todos os elementos de um dado nível são incluídos; ou (c) um array de nomes separados por vírgulas, delimitados por colchetes (“{” e “}”), de forma que apenas os elementos JSON cujos nomes coincidam com algum dos nomes dados serão incluídos. 2639</indent> 2640 2641Veja também a função orientada à textos <@ref="jsonget">. A depender de seu objetivo uma dessas funções pode ser mais útil que a outra. 2642 2643# juldate calendar 2644Resultado: ver abaixo 2645Argumentos: <@var="ed"> (escalar ou série) 2646 <@var="as-string"> (booleano, opcional) 2647 2648O argumento <@var="ed"> é interpretado como um dia de época que é igual a 1 no primeiro dia de janeiro do ano 1 depois de Cristo no calendário gregoriano proléptico. O valor de retorno padrão—do mesmo tipo de <@var="ed"> —é um número de 8 dígitos, ou uma série de tais números, seguindo o padrão <@lit="YYYYMMDD"> (formato ISO 8601 “básico”), fornecendo a data correspondente ao dia de época no calendário juliano. 2649 2650Se <@var="ed"> for (apenas) um escalar e o segundo parâmetro <@var="as-string"> (que é opcional) for não-nulo, o valor retornado não será numérico e sim um texto (string) seguindo o padrão <@lit="YYYY-MM-DD"> (formato ISO 8601 “estendido”). 2651 2652Veja também <@ref="isodate">. 2653 2654# kdensity nonparam 2655Resultado: matriz 2656Argumentos: <@var="x"> (série ou vetor) 2657 <@var="scale"> (escalar, opcional) 2658 <@var="control"> (booleano, opcional) 2659 2660Calcula a estimativa de densidade pelo método do núcleo (kernel) para a série ou vetor <@var="x">. A matriz retornada tem duas colunas, com a primeira contendo um conjunto abscissas uniformemente espaçadas e a segunda a densidade estimada em cada um desses pontos. 2661 2662O parâmetro opcional <@var="scale"> pode ser utilizado para ajustar o grau de suavização em relação ao valor padrão 1.0 (maiores valores geram resultados mais suavizados). O parâmetro <@var="control"> age como um booleano: 0 (que é o padrão) implica na utilização do núcleo gaussiano, enquanto que um valor não-nulo implica na utilização do núcleo de Epanechnikov. 2663 2664Um gráfico dos resultados pode ser obtido via comando <@xrf="gnuplot">, como por exemplo: 2665 2666<code> 2667 matrix d = kdensity(x) 2668 gnuplot 2 1 --matrix=d --with-lines --fit=none 2669</code> 2670 2671# kdsmooth sspace 2672Resultado: escalar 2673Argumentos: <@var="&Mod"> (referência a lote) 2674 <@var="MSE"> (booleano, opcional) 2675 2676Realiza a suavização dos distúrbios para um pacote (bundle) de Kalman previamente definido via função <@ref="ksetup"> e retorna 0 caso a execução tenha sucesso ou 1 se se forem encontrados problemas numéricos. 2677 2678Se a operação for completada com sucesso os distúrbios suavizados estarão disponíveis como <@lit="Mod.smdist">. 2679 2680O argumento opcional <@var="MSE"> determina os conteúdos de <@lit="Mod.smdisterr">. Se for omitido ou for igual a 0, essa matriz irá conter os erros padrão não-condicionais dos distúrbios suavizados que, por sua vez, normalmente, são utilizados para calcular os chamados <@itl="resíduos auxiliares">. Caso contrário, <@lit="Mod.smdisterr"> irá conter a raiz do erro quadrado médio estimado dos resíduos auxiliares em relação aos seus valores verdadeiros. 2681 2682Para maiores detalhes veja <@pdf="guia de utilização do Gretl#chap:kalman"> (Capítulo 36). 2683 2684Ver também <@ref="ksetup">, <@ref="kfilter">, <@ref="ksmooth">, <@ref="ksimul">. 2685 2686# kfilter sspace 2687Resultado: escalar 2688Argumento: <@var="&Mod"> (referência a lote) 2689 2690Realiza a filtragem em um pacote (bundle) de Kalman previamente definido via <@ref="ksetup"> e retorna 0 caso a execução tenha sucesso ou 1 se forem encontrados problemas numéricos. 2691 2692Se a operação for completada com sucesso os erros de previsão de 1 passo à frente estarão disponíveis como <@lit="Mod.prederr"> e a sequência de suas variâncias como <@lit="Mod.pevar">. Além disso, <@lit="Mod.llt"> dará acesso a um vetor de ordem <@mth="T"> contendo o log da verossimilhança por observação. 2693 2694Para maiores detalhes veja <@pdf="guia de utilização do Gretl#chap:kalman"> (Capítulo 36). 2695 2696Ver também <@ref="kdsmooth">, <@ref="ksetup">, <@ref="ksmooth">, <@ref="ksimul">. 2697 2698# kmeier nonparam 2699Resultado: matriz 2700Argumentos: <@var="d"> (série ou vetor) 2701 <@var="cens"> (série ou vetor, opcional) 2702 2703Dada uma amostra de dados de duração, <@var="d">, possivelmente acompanhada por um registro de status de censura, <@var="cens">, calcula o estimador não-paramétrico de Kaplan–Meier da função de sobrevivência (<@bib="Kaplan e Meier, 1958;kaplan-meier">). A matriz retornada possui três colunas contendo, respectivamente, os valores únicos de <@var="d"> de forma ordenada, a função de sobrevivência estimada correspondente ao valor de duração na coluna 1 e o (elevado) erro padrão do estimador, calculado via método de <@bib="Greenwood (1926);greenwood26">. 2704 2705Se a série <@var="cens"> for dada, um valor 0 serve para indicar uma observação não-censurada, enquanto que um valor 1 indica uma observação censurada à direita (isto é, o período de observação do indivíduo em questão terminou antes que a duração ou o período tenham sido registrados como finalizados). Se <@var="cens"> não for dado é assumido que todas as observações são não-censuradas. Observação: a interpretação de <@var="cens"> pode ser estendida em algum momento de forma a cobrir outros tipos de censura. 2706 2707Ver também <@ref="naalen">. 2708 2709# kpsscrit stats 2710Resultado: matriz 2711Argumentos: <@var="T"> (escalar) 2712 <@var="trend"> (booleano) 2713 2714Retorna um vetor linha contendo os valores críticos aos níveis de 10, 5 e 1 porcento do teste KPSS para a estacionariedade de uma série temporal. O argumento <@var="T"> deve fornecer o número de observações e o argumento <@var="trend"> deve ser igual a 1 se o teste inclui uma constante, ou 0, caso contrário. 2715 2716Os valores críticos são baseados nas superfícies de resposta estimados conforme sugerido por <@bib="Sephton (Economics Letters,1995);sephton95">. Veja também o comando <@xrf="kpss">. 2717 2718# ksetup sspace 2719Resultado: lote 2720Argumentos: <@var="Y"> (série, matriz ou lista) 2721 <@var="H"> (escalar ou matriz) 2722 <@var="F"> (escalar ou matriz) 2723 <@var="Q"> (escalar ou matriz) 2724 <@var="C"> (matriz, opcional) 2725 2726Especifica um pacote (bundle) de Kalman, isto é, um objeto que contém todas as informações necessárias para se definir um modelo linear de espaço de estados na forma 2727 2728 <@fig="kalman1"> 2729 2730e com a equação de transição de estados 2731 2732 <@fig="kalman2"> 2733 2734onde Var<@mth="(u) = Q">. 2735 2736Objetos criados através dessa função podem ser posteriormente utilizados via funções dedicadas <@ref="kfilter"> para filtragem, <@ref="ksmooth"> e <@ref="kdsmooth"> para suavização e <@ref="ksimul"> para realizar simulações. 2737 2738A amplitude de classes de modelos que o Gretl pode manusear é, de fato, bem mais abrangente que o implicado pela representação acima: é possível a estimação de modelos com parâmetros variando no tempo, com prioris difusas, com variáveis exógenas na equação de medida e modelos com resíduos interrelacionados. Para maiores detalhes veja <@pdf="guia de utilização do Gretl#chap:kalman"> (Capítulo 36). 2739 2740Ver também <@ref="kdsmooth">, <@ref="kfilter">, <@ref="ksmooth">, <@ref="ksimul">. 2741 2742# ksimul sspace 2743Resultado: escalar 2744Argumento: <@var="&Mod"> (referência a lote) 2745 2746Utiliza um pacote (bundle) de Kalman previamente definido através da função <@ref="ksetup"> para simular dados. 2747 2748Para maiores detalhes veja <@pdf="guia de utilização do Gretl#chap:kalman"> (Capítulo 36). 2749 2750Ver também <@ref="ksetup">, <@ref="kfilter">, <@ref="ksmooth">. 2751 2752# ksmooth sspace 2753Resultado: matriz 2754Argumento: <@var="&Mod"> (referência a lote) 2755 2756Realiza uma suavização de ponto fixo em um pacote (bundle) de Kalman previamente definido via função <@ref="ksetup"> e retorna 0 caso a operação tenha sido realizada com sucesso ou 1 se surgirem problemas numéricos. 2757 2758Em caso de sucesso, os estados suavizados estarão disponíveis como <@lit="Mod.state"> e a sequência de suas matrizes de covariância como <@lit="Mod.stvar">. Para maiores detalhes veja <@pdf="guia de utilização do Gretl#chap:kalman"> (Capítulo 36). 2759 2760Ver também <@ref="ksetup">, <@ref="kdsmooth">, <@ref="kfilter">, <@ref="ksimul">. 2761 2762# kurtosis stats 2763Resultado: escalar 2764Argumento: <@var="x"> (série) 2765 2766Retorna o excesso de curtose da série <@var="x">, descartando quaisquer observações ausentes. 2767 2768# lags transforms 2769Resultado: lista ou matriz 2770Argumentos: <@var="p"> (escalar ou vetor) 2771 <@var="y"> (série, lista ou matriz) 2772 <@var="bylag"> (booleano, opcional) 2773 2774Se o primeiro argumento for um escalar, gera as defasagens de 1 até <@var="p"> da série <@var="y">, se <@var="y"> for uma lista, retorna as defasagens de todas as séries na lista e se for uma matriz, retorna as defasagens de todas as colunas na matriz. Se <@var=" p"> = 0 e <@var="y"> for uma série ou lista, são geradas defasagens até o máximo da periodicidade dos dados. Caso contrário, o valor de <@var="p"> deve ser positivo. 2775 2776Se o primeiro argumento for um vetor, as defasagens serão aquelas especificadas no vetor. Um uso típico neste caso seria fornecer <@var="p"> como, por exemplo, <@lit="seq(3,7)">, omitindo assim a primeira e a segunda defasagens. Entretanto ambém é possível fornecer um vetor não contínuo como em <@lit="{3,5,7}">, contanto que as defasagens estejam sempre ordenadas de forma crescente. 2777 2778Quando o valor retornado for uma lista, as variáveis geradas são nomeadas automaticamente de acordo com o esquema <@var="varname"><@lit="_"><@var="i">, onde <@var="varname"> é o nome da série original e <@var="i"> é a defasagem específica. A parte original do nome é truncada, caso necessário, e pode ser ajustada no caso de não-singularidade no conjunto de nomes assim construído. 2779 2780Quando <@var="y"> for uma lista, ou uma matriz com mais de uma coluna, e a ordem de defasagem for maior que 1, a ordenação padrão dos termos no valor retornado pela função é feita por variável: todas as defasagens da primeira série ou coluna seguida por todas as defasagens da segunda e assim sucessivamente. O terceiro argumento (opcional) pode ser utilizado para alterar esse comportamento: se <@var="bylag"> for não-nulo então os termos são ordenados por defasagem: defasagem 1 de todas as séries ou colunas, seguida pela defasagem 2 de todas as séries e colunas e assim sucessivamente. 2781 2782Veja também <@ref="mlag"> para o uso com matrizes. 2783 2784# lastobs data-utils 2785Resultado: número inteiro 2786Argumento: <@var="y"> (série) 2787 2788Retorna o número da última observação não ausente da série <@var="y">. Note que se alguma forma de subamostragem estiver sendo utilizada o valor retornado poderá ser maior que o valor retornado pela função <@ref="$t2">. Ver também <@ref="firstobs">. 2789 2790# ldet linalg 2791Resultado: escalar 2792Argumento: <@var="A"> (matriz quadrada) 2793 2794Retorna o log natural do determinante de <@mth="A">, calculado via decomposição LU. Ver também <@ref="det">, <@ref="rcond">, <@ref="cnumber">. 2795 2796# ldiff transforms 2797Resultado: o mesmo tipo que o argumento 2798Argumento: <@var="y"> (série ou lista) 2799 2800Calcula as diferenças logarítmicas. Os valores iniciais são considerados como <@lit="NA">. 2801 2802Quando uma lista for retornada, as variáveis individuais são automaticamente nomeadas de acordo com o esquema <@lit="ld_"><@var="varname">, onde <@var="varname"> é o nome da série original. Se necessário, o nome será truncado e poderá ser ajustado caso o nome resultante já esteja sendo utilizado pelo Gretl. 2803 2804Ver também <@ref="diff">, <@ref="sdiff">. 2805 2806# lincomb transforms 2807Resultado: série 2808Argumentos: <@var="L"> (lista) 2809 <@var="b"> (vetor) 2810 2811Calcula uma nova série como uma combinação linear das séries na lista <@var="L">. Os coeficientes são dados pelo vetor <@var="b"> cujo tamanho deve ser igual ao número de séries em series in <@var="L">. 2812 2813Ver também <@ref="wmean">. 2814 2815# linearize transforms 2816Resultado: série 2817Argumento: <@var="x"> (série) 2818 2819É necessário possuir o TRAMO instalado. Retorna uma versão “linearizada” da série de entrada. Isto é, uma série onde quaisquer valores ausentes são substituídos por valores interpolados e onde as observações aberrantes são ajustadas. O mecanismo completamente automático do TRAMO é usado para isso. Consulte a documentação do TRAMO para detalhes. 2820 2821Note que se a série de entrada não possuir valores ausentes e e observações aberrantes (conforme identificadas pelo TRAMO), a função retornará uma cópia da série original. 2822 2823# ljungbox stats 2824Resultado: escalar 2825Argumentos: <@var="y"> (série) 2826 <@var="p"> (número inteiro) 2827 2828Calcula a estatística Q de Ljung–Box para a série <@var="y">, utilizando a ordem de defasagem <@var="p">, ao longo da amostra selecionada. A defasagem deve ser maior ou igual a 1 e menor que o número de observações disponíveis. 2829 2830Essa estatística pode ser testada contra a distribuição qui-quadrado com <@var="p"> graus de liberdade para verificar a hipótese nula de que a série <@var=" y"> não é serialmente correlacionada. Ver também <@ref="pvalue">. 2831 2832# lngamma math 2833Resultado: o mesmo tipo que o argumento 2834Argumento: <@var="x"> (escalar, série ou matriz) 2835 2836Retorna o log da função gama de <@var="x">. 2837 2838# loess nonparam 2839Resultado: série 2840Argumentos: <@var="y"> (série) 2841 <@var="x"> (série) 2842 <@var="d"> (número inteiro, opcional) 2843 <@var="q"> (escalar, opcional) 2844 <@var="robust"> (booleano, opcional) 2845 2846Realiza a regressão polinomial localmente ponderada (LOESS) e retorna uma série contendo os valores previstos de <@var="y "> para cada valor não-ausente de <@var="x">. O método utilizado é o descrito por <@bib=" Cleveland (1979);cleveland79">. 2847 2848Os argumentos opcionais <@var="d"> e <@var="q "> especificam, respectivamente, a ordem do polinômio em <@var="x"> e a proporção dos pontos de dados a ser utilizada na estimação local. Por padrão os valores são <@var=" d"> = 1 e <@var="q"> = 0,5. Os outros valores aceitáveis para <@var="d"> são 0 e 2. Definir <@var=" d"> = 0 reduz a regressão local para a forma de uma média móvel. O valor de <@var="q"> deve ser maior que 0 e não pode exceder 1. Valores maiores produzem saídas mais suaves. 2849 2850Se um valor não-nulo for dado ao argumento <@var="robust "> as regressões locais serão iteradas duas vezes, com os pesos sendo modificados com base nos resíduos da iteração prévia de forma a reduzir a influência das observações aberrantes (“ outliers”). 2851 2852Veja também <@ref="nadarwat"> e, para maiores detalhes sobre métodos não-paramétricos, veja <@pdf="guia de utilização do Gretl#chap:nonparam"> (Capítulo 40). 2853 2854# log math 2855Resultado: o mesmo tipo que o argumento 2856Argumento: <@var="x"> (escalar, série, matriz ou lista) 2857 2858Retorna o logaritmo natural de <@var="x">. Gera <@lit="NA"> para valores não-positivos. Note que <@lit="ln"> é um pseudônimo aceitável para <@lit="log">. 2859 2860Quando uma lista for retornada, as variáveis individuais serão automaticamente nomeadas de acordo com o modelo <@lit="l_"><@var="varname">, onde <@var="varname"> é o nome da série original. O nome será truncado se necessário e pode ser ajustado no caso de já estar sendo usado pelo Gretl. 2861 2862# log10 math 2863Resultado: o mesmo tipo que o argumento 2864Argumento: <@var="x"> (escalar, série ou matriz) 2865 2866Retorna o logaritmo na base 10 de <@var="x">. A função irá gerar <@lit="NA"> para valores não-positivos. 2867 2868# log2 math 2869Resultado: o mesmo tipo que o argumento 2870Argumento: <@var="x"> (escalar, série ou matriz) 2871 2872Retorna o logaritmo na base 2 de <@var="x">. A função irá gerar <@lit="NA"> para valores não-positivos. 2873 2874# logistic math 2875Resultado: o mesmo tipo que o argumento 2876Argumento: <@var="x"> (escalar, série ou matriz) 2877 2878Retorna a função logística do argumento <@var="x">, isto é, <@mth="e"><@sup="x">/(1 + <@mth="e"><@sup="x">). Se <@var="x"> for ma matriz, a função será aplicada em cada elemento. 2879 2880# lower matrix 2881Resultado: matriz quadrada 2882Argumento: <@var="A"> (matriz) 2883 2884Retorna uma matriz triangular inferior de ordem <@itl="n">×<@itl="n">. Os elementos da diagonal e abaixo desta são iguais aos elementos correspondentes de <@var="A"> e os demais iguais a zero. 2885 2886Ver também <@ref="upper">. 2887 2888# lrcovar timeseries 2889Resultado: matriz 2890Argumentos: <@var="A"> (matriz) 2891 <@var="demean"> (booleano, opcional) 2892 2893Retorna a matriz de variância-covariância de longo prazo das colunas de <@var="A">. Em primeiro lugar é retirada a média dos dados, a menos que o segundo argumento (que é opcional) seja igual a zero. O tipo de kernel/núcleo e o parâmetro de truncagem de defasagem (tamanho da janela) pode ser escolhido antes que a função seja chamada com as opções relacionadas ao HAC, que são oferecidas pelo comando <@xrf="set">, tais como <@lit="hac_kernel">, <@lit="hac_lag">, <@lit="hac_prewhiten">. Veja também a seção sobre dados de séries de tempo e matrizes de covariância no <@pdf="guia de utilização do Gretl#chap:robust_vcv"> (Capítulo 22). 2894 2895Ver também <@ref="lrvar">. 2896 2897# lrvar timeseries 2898Resultado: escalar 2899Argumentos: <@var="y"> (série ou vetor) 2900 <@var="k"> (número inteiro) 2901 2902Retorna a variância de longo prazo de <@var="y">, calculada utilizando um núcleo de Bartlett com tamanho de janela igual a <@var="k">. Se o segundo argumento for omitido, ou for um valor menor que zero, o tamanho da janela toma como padrão a parte inteira da raiz cúbica do tamanho da amostra. 2903 2904Ver a função <@ref="lrcovar"> para o caso multivariado. 2905 2906Per l'equivalente multivariato, si veda <@ref="lrcovar">. 2907 2908# Lsolve linalg 2909Resultado: matriz 2910Argumentos: <@var="L"> (matriz) 2911 <@var="b"> (matriz) 2912 2913Resolve a equação <@mth="Ax = b"> para cada <@mth="x">, onde <@var="L"> é o factor de Cholesky (triangular baixa) da matriz definida positiva <@mth="A">, satisfazendo <@mth="LL' = A">. A matriz <@var="L"> pode ser obtida usando a função <@ref="cholesky"> com a matriz <@mth="A"> como argumento. 2914 2915Os dois seguintes cálculos deve dar resultados iguais (excepto devido à precisão da máquina). mas a primeira variante baseada em <@lit="Lsolve"> permite reutilizar um factor de Cholesky já calculado e assim optimizar o tempo de cálculo para uma dada matriz <@mth="A"> e vários valores de <@mth="b">. A melhoria de velocidade será tanto maior quanto maior a dimensão das colunas de <@mth="A">. 2916 2917<code> 2918 # variante 1 2919 matrix L = cholesky(A) 2920 matrix x = Lsolve(L, b) 2921 # variante 2 2922 matrix x = A \ b 2923</code> 2924 2925# max stats 2926Resultado: escalar ou série 2927Argumento: <@var="y"> (série ou lista) 2928 2929Se o argumento <@var="y"> for uma série, retorna, na forma de um escalar, o valor máximo das observações não ausentes na série. Se o argumento for uma lista, retorna uma série onde cada elemento é o valor máximo em cada observação entre as séries listadas. 2930 2931Ver também <@ref="min">, <@ref="xmax">, <@ref="xmin">. 2932 2933# maxc stats 2934Resultado: vetor linha 2935Argumento: <@var="X"> (matriz) 2936 2937Retorna um vetor com os valores máximos das colunas de <@var="X">. 2938 2939Ver também <@ref="imaxc">, <@ref="maxr">, <@ref="minc">. 2940 2941# maxr stats 2942Resultado: vetor coluna 2943Argumento: <@var="X"> (matriz) 2944 2945Retorna um vetor com os valores máximos das linhas <@var="X">. 2946 2947Ver também <@ref="imaxr">, <@ref="maxc">, <@ref="minr">. 2948 2949# mcorr stats 2950Resultado: matriz 2951Argumento: <@var="X"> (matriz) 2952 2953Calcula a matriz de correlações tratando cada coluna de <@var="X"> como sendo uma a variável. Ver também <@ref="corr">, <@ref="cov">, <@ref="mcov">. 2954 2955# mcov stats 2956Resultado: matriz 2957Argumento: <@var="X"> (matriz) 2958 2959Calcula a matriz de covariâncias tratando cada coluna de <@var="X"> como sendo uma variável. Ver também <@ref="corr">, <@ref="cov">, <@ref="mcorr">. 2960 2961# mcovg stats 2962Resultado: matriz 2963Argumentos: <@var="X"> (matriz) 2964 <@var="u"> (vetor, opcional) 2965 <@var="w"> (vetor, opcional) 2966 <@var="p"> (número inteiro) 2967 2968Retorna uma matriz covariograma para uma matriz <@var=" X"> de ordem <@itl="T">×<@itl="k"> (normalmente contendo regressores), um vetor <@var="u"> (opcional) com <@mth="T"> elementos (normalmente contendo resíduos), um vetor de pesos <@var="w"> (opcional) com <@mth=" p">+1 elementos e uma ordem de defasagem <@var=" p">, que deve ser maior ou igual a 0. 2969 2970A matriz retornada é o somatório com <@mth="j"> indo de <@mth="-p"> até <@mth="p"> de <@mth="w(|j|) * X(t)X(t-j)' * u(t)u(t-j)">, onde <@mth="X(t)'"> é a <@mth="t">-ésima linha de <@var="X">. 2971 2972Se <@var="u"> for <@lit="null"> os termos <@mth="u"> são omitidos, e se <@var="w"> for <@lit="null"> todos os pesos são considerados como sendo iguais a 1,0. 2973 2974Por exemplo, o seguinte código 2975 2976<code> 2977 set seed 123 2978 X = mnormal(6,2) 2979 Lag = mlag(X,1) 2980 Lead = mlag(X,-1) 2981 print X Lag Lead 2982 eval X'X 2983 eval mcovg(X, , , 0) 2984 eval X'(X + Lag + Lead) 2985 eval mcovg(X, , , 1) 2986</code> 2987 2988produz estes resultados: 2989 2990<code> 2991 ? print X Lag Lead 2992 X (6 x 2) 2993 2994 -0.76587 -1.0600 2995 -0.43188 0.30687 2996 -0.82656 0.40681 2997 0.39246 0.75479 2998 0.36875 2.5498 2999 0.28855 -0.55251 3000 3001 Lag (6 x 2) 3002 3003 0.0000 0.0000 3004 -0.76587 -1.0600 3005 -0.43188 0.30687 3006 -0.82656 0.40681 3007 0.39246 0.75479 3008 0.36875 2.5498 3009 3010 Lead (6 x 2) 3011 3012 -0.43188 0.30687 3013 -0.82656 0.40681 3014 0.39246 0.75479 3015 0.36875 2.5498 3016 0.28855 -0.55251 3017 0.0000 0.0000 3018 3019 ? eval X'X 3020 1.8295 1.4201 3021 1.4201 8.7596 3022 3023 ? eval mcovg(X,,, 0) 3024 1.8295 1.4201 3025 1.4201 8.7596 3026 3027 ? eval X'(X + Lag + Lead) 3028 3.0585 2.5603 3029 2.5603 10.004 3030 3031 ? eval mcovg(X,,, 1) 3032 3.0585 2.5603 3033 2.5603 10.004 3034</code> 3035 3036# mean stats 3037Resultado: escalar ou série 3038Argumento: <@var="x"> (série ou lista) 3039 3040Se <@var="x"> for uma série a função retorna a média amostral (na forma de um escalar), descartando quaisquer observações ausentes. 3041 3042Se <@var="x"> for uma lista a função retorna uma série <@mth="y"> tal que <@mth="y"><@sub="t"> é a média dos valores das variáveis da lista na observação <@mth="t">, ou <@lit="NA"> se existir algum valor ausente em <@mth="t">. 3043 3044# meanc stats 3045Resultado: vetor linha 3046Argumento: <@var="X"> (matriz) 3047 3048Retorna um vetor com as médias das colunas de <@var="X">. Ver também <@ref="meanr">, <@ref="sumc">, <@ref="sdc">. 3049 3050# meanr stats 3051Resultado: vetor coluna 3052Argumento: <@var="X"> (matriz) 3053 3054Retorna um vetor com as médias das linhas de <@var="X">. Ver também <@ref="meanc">, <@ref="sumr">. 3055 3056# median stats 3057Resultado: escalar ou série 3058Argumento: <@var="x"> (série ou lista) 3059 3060Se <@var="x"> for uma série, a função retorna sua mediana amostral (na forma de um escalar), ignorando quaisquer observações ausentes. 3061 3062Se <@var="x"> for uma lista, a função retorna uma séries <@mth="y"> tal que <@mth="y"><@sub="t"> é a mediana dos valores das variáveis da lista na observação <@mth="t">, ou <@lit="NA"> se existir algum valor ausente em <@mth="t">. 3063 3064# mexp linalg 3065Resultado: matriz quadrada 3066Argumento: <@var="A"> (matriz quadrada) 3067 3068Calcula a matriz exponencial de <@var="A"> utilizando o algoritmo 11.3.1 de <@bib="Golub e Van Loan (1996);golub96">. 3069 3070# mgradient midas 3071Resultado: matriz 3072Argumentos: <@var="p"> (número inteiro) 3073 <@var="theta"> (vetor) 3074 <@var="type"> (número inteiro ou texto) 3075 3076Derivadas analíticas para os pesos MIDAS. Seja <@mth="k "> o número de elementos no vetor de hiper-parâmetros, <@var="theta">. Esta função retorna uma matriz de ordem <@itl="p">×<@itl="k"> contendo o gradiente do vetor de pesos (conforme calculado por <@ref="mweights">) em relação aos elemento de <@var="theta">. O primeiro argumento representa a ordem de defasagem desejada e o último argumento especifica o tipo de parametrização. Veja <@lit=" mweights"> para uma explicação sobre os valores aceitáveis de <@var="type">. 3077 3078Ver também <@ref="mweights">, <@ref="mlincomb">. 3079 3080# min stats 3081Resultado: escalar ou série 3082Argumento: <@var="y"> (série ou lista) 3083 3084Se o argumento <@var="y"> for uma série, retorna, na forma de um escalar, o valor mínimo das observações não ausentes na série. Se o argumento for uma lista, retorna uma série onde cada elemento é o valor mínimo em cada observação entre as séries listadas. 3085 3086Ver também <@ref="max">, <@ref="xmax">, <@ref="xmin">. 3087 3088# minc stats 3089Resultado: vetor linha 3090Argumento: <@var="X"> (matriz) 3091 3092Retorna um vetor com os valores mínimos das colunas de <@var="X">. 3093 3094Ver também <@ref="iminc">, <@ref="maxc">, <@ref="minr">. 3095 3096# minr stats 3097Resultado: vetor coluna 3098Argumento: <@var="X"> (matriz) 3099 3100Retorna um vetor com os valores mínimos das linhas de <@var="X">. 3101 3102Ver também <@ref="iminr">, <@ref="maxr">, <@ref="minc">. 3103 3104# missing data-utils 3105Resultado: o mesmo tipo que o argumento 3106Argumento: <@var="x"> (escalar, série ou lista) 3107 3108Retorna uma variável binária igual a 1 se <@var="x"> for <@lit="NA"> e 0, caso contrário. Se <@var="x"> for uma série, a comparação é feita em cada um de seus elementos. Se <@var="x"> for uma lista de séries, a função retorna uma série igual a 1 nas observações nas quais ao menos uma das séries apresente um <@lit="NA"> e 0, caso contrário. 3109 3110Ver também <@ref="misszero">, <@ref="ok">, <@ref="zeromiss">. 3111 3112# misszero data-utils 3113Resultado: o mesmo tipo que o argumento 3114Argumento: <@var="x"> (escalar ou série) 3115 3116Converte <@lit="NA">s em zeros. Se <@var="x"> for uma série a conversão será feita elemento por elemento. Ver também <@ref="missing">, <@ref="ok">, <@ref="zeromiss">. 3117 3118# mlag matrix 3119Resultado: matriz 3120Argumentos: <@var="X"> (matriz) 3121 <@var="p"> (escalar ou vetor) 3122 <@var="m"> (escalar, opcional) 3123 3124Desloca para cima ou para baixo as linhas de <@var="X ">. Se <@var="p"> for um número positivo, retorna uma matriz na qual as colunas de <@var="X"> são deslocadas <@var="p"> linhas para baixo e as primeiras <@var="p"> linhas são preenchidas com o valor <@var="m">. Se <@var="p"> for um número negativo, <@var="X"> é deslocado para cima e as últimas linhas são preenchidas com o valor <@var="m ">. Se <@var="m"> não for fornecido, será considerado como sendo igual a zero. 3125 3126Se <@var="p"> for um vetor, a operação acima é realizada para cada elemento em <@var="p">, combinando as matrizes resultantes horizontalmente. 3127 3128Veja também <@ref="lags">. 3129 3130# mlincomb midas 3131Resultado: série 3132Argumentos: <@var="hfvars"> (lista) 3133 <@var="theta"> (vetor) 3134 <@var="type"> (número inteiro ou texto) 3135 3136É uma função MIDAS de conveniência, combinando <@ref="lincomb"> com <@ref="mweights">. Dada uma lista <@var="hfvars">, a função calcula uma série que é uma soma ponderada dos elementos da lista, com os pesos baseados no vetor de hiper-parâmetros <@var="theta"> e o tipo de parametrização. Veja <@lit="mweights"> para maiores detalhes. Note que <@ref="hflags"> é, geralmente, a melhor forma de criar uma lista que pode ser adequadamente utilizada como primeiro argumento desta função. 3137 3138De forma mais explícita, a chamada 3139 3140<code> 3141 series s = mlincomb(hfvars, theta, 2) 3142</code> 3143 3144é equivalente a 3145 3146<code> 3147 matrix w = mweights(nelem(hfvars), theta, 2) 3148 series s = lincomb(hfvars, w) 3149</code> 3150 3151A vantagem é que a utilização de <@lit="mlincomb"> é mais concisa e eficiente em termos de processamento. 3152 3153# mlog linalg 3154Resultado: matriz quadrada 3155Argumento: <@var="A"> (matriz quadrada) 3156 3157Calcula o logarimo matricial de <@var="A">. O algoritmo utilizado baseia-se na decomposição espectral, que necessita que <@var="A"> seja diagonizável. Ver taambé <@ref="mexp">. 3158 3159# mnormal matrix 3160Resultado: matriz 3161Argumentos: <@var="r"> (número inteiro) 3162 <@var="c"> (número inteiro) 3163 3164Retorna uma matriz com <@var="r"> linhas e <@var="c"> colunas, preenchida com variáveis pseudo aleatórias com distribuição normal padrão. Ver também <@ref="normal">, <@ref="muniform">. 3165 3166# mols stats 3167Resultado: matriz 3168Argumentos: <@var="Y"> (matriz) 3169 <@var="X"> (matriz) 3170 <@var="&U"> (referência a matriz, ou <@lit="null">) 3171 <@var="&V"> (referência a matriz, ou <@lit="null">) 3172 3173Retorna uma matriz de ordem <@itl="k">×<@itl="n"> com os parâmetros obtidos da regressão MQO da matriz <@var="Y"> de ordem <@itl="T">×<@itl="n"> contra a matriz <@var="X"> de ordem <@itl="T">×<@itl="k">. 3174 3175Se o terceiro argumento for diferente de <@lit="null">, a matriz <@var="U"> de ordem <@itl="T">×<@itl="n"> irá conter os resíduos. Se o último argumento for dado e for diferente de <@lit="null"> a matriz <@var="V"> de ordem <@itl="k">×<@itl="k"> irá conter (a) a matriz de covariância das estimativas dos parâmetros, se <@var="Y"> tiver apenas uma coluna, ou (b) <@mth="X'X"><@sup="-1"> se <@var="Y"> tiver múltiplas colunas. 3176 3177Por padrão, estimativas são obtidas via decomposição de Cholesky. Caso as colunas de <@var="X"> apresentem elevada colinearidade é utilizada a decomposição QR. A utilização de SVD pode ser forçada via comando <@lit="set svd on">. 3178 3179Ver também <@ref="mpols">, <@ref="mrls">. 3180 3181# monthlen calendar 3182Resultado: o mesmo tipo que o argumento 3183Argumentos: <@var="mês"> (número inteiro) 3184 <@var="ano"> (número inteiro) 3185 <@var="dias na semana"> (número inteiro) 3186 3187Retorna o número de dias (relevantes) no mês e ano especificados (no calendário gregoriano proléptico). O argumento <@var="dias na semana">, que pode ser igual a 5, 6 ou 7, indica o número de dias da semana que devem ser considerados (se for escolhido 6 os domingos são omitidos e se for escolhido 5 os sábados e os domingos serão omitidos). 3188 3189# movavg timeseries 3190Resultado: série 3191Argumentos: <@var="x"> (série) 3192 <@var="p"> (escalar) 3193 <@var="control"> (número inteiro, opcional) 3194 <@var="y0"> (escalar, opcional) 3195 3196Dependendo do valor do parâmetro <@var="p">, retorna a média móvel simples ou exponencialmente ponderada da série <@var="x">. 3197 3198Se <@var="p"> > 1, é calculada a média móvel (MM/MA) simples de ordem <@var="p">, isto é, a média aritmética de <@mth="x"> do período <@mth="t"> até <@mth="t-p+1">. Se for escolhido um valor diferente de zero para o argumento opcional <@var="control"> é calculada a média móvel centrada, caso contrário é calculada a média móvel simples. Nesse caso, o argumento opcional <@var=" y0"> é ignorado. 3199 3200Se <@var="p"> for uma fração positiva, é calculada a média móvel exponencial: 3201 3202<@mth="y(t) = p*x(t) + (1-p)*y(t-1)"> 3203 3204Por padrão, a série de saída, <@mth="y">, é inicializada utilizando o primeiro valor de <@var="x">, mas o argumento <@var="control"> pode ser utilizado para especificar o número inicial de observações cuja média deve ser utilizada para produzir <@mth="y(0)">. Um valor zero para <@var="control"> indica que todas as observações devem ser utilizadas. Alternativamente, um valor de inicialização pode ser especificado utilizando o argumento opcional <@var="y0">. Nesse caso o argumento <@var="control "> é ignorado. 3205 3206# mpiallred mpi 3207Resultado: número inteiro 3208Argumentos: <@var="&object"> (referência ao objeto) 3209 <@var="op"> (texto) 3210 3211Apenas disponível se gretl foi compilado com suporte MPI, e o programa foi iniciado em modo MPI (ver em <@mnu="gretlMPI">). Deve ser chamada por todos os processos. Esta função funciona como <@ref="mpireduce"> excepto que todos os processos, e não apenas o processo raiz, recebem uma cópia do objecto “reduzido” em lugar do original. É assim, equivalente a <@lit="mpireduce"> seguida de uma chamada a <@ref="mpibcast">, mas mais eficiente. 3212 3213# mpibarrier mpi 3214Resultado: número inteiro 3215 3216Apenas disponível se gretl foi compilado com suporte MPI, e o programa foi iniciado em modo MPI (ver em <@mnu="gretlMPI">). Não usa argumentos. Força a sincronização dos processos MPI: nenhum processo pode ultrapassar a barreira até que todos a tenham atingido. 3217 3218<code> 3219 # nenhum passa deste ponto, até que todos o tenham atingido 3220 mpibarrier() 3221</code> 3222 3223# mpibcast mpi 3224Resultado: número inteiro 3225Argumentos: <@var="&objecto"> (referência ao objeto) 3226 <@var="raiz"> (número inteiro, opcional) 3227 3228Apenas disponível se gretl foi compilado com suporte MPI, e o programa foi iniciado em modo MPI (ver em <@mnu="gretlMPI">). Deve ser chamada por todos os processos. Transmite o argumento <@var="objecto">, que deve ser dado na forma de ponteiro, a todos os processos. O objecto em questão deve ser uma matriz, um bundle, escalar, vector, texto ou lista, e ter seido declarado em todos os processos antes da trasnmissão. Nenhum processo poderá prosseguir para além da chamada a <@lit="mpibcast"> até que todos os processos a tenham executado com sucesso. 3229 3230Por defeito a “raiz”, é a origem da transmissão, é o processo com o índice 0, mas isto pode ser modificado por via do segundo argumento (opcional), o qual deve ser um inteiro entre 0 e o número de processos MPI menos 1. 3231 3232De seguida mostra-se um simples exemplo. Se a função completar com sucesso, todos os processos terão uma cópia da matriz <@lit="X"> definida no processo de índice 0. 3233 3234<code> 3235 matrix X 3236 if $mpirank == 0 3237 X = mnormal(T, k) 3238 endif 3239 mpibcast(&X) 3240</code> 3241 3242# mpirecv mpi 3243Resultado: objeto 3244Argumento: <@var="origem"> (número inteiro) 3245 3246Apenas disponível se gretl foi compilado com suporte MPI, e o programa foi iniciado em modo MPI (ver em <@mnu="gretlMPI">). Para uma explicação, ver <@ref="mpisend">, que emparelha com <@lit="mpirecv"> e que tem ques estar sempre acoplada. O argumento <@var="origem"> especifica o índice do processo de onde deve ser recebido o objecto, dentro do intervalo inteiro entre 0 e o número de processos MPI menos 1. 3247 3248# mpireduce mpi 3249Resultado: número inteiro 3250Argumentos: <@var="&objecto"> (referência ao objeto) 3251 <@var="op"> (texto) 3252 <@var="raiz"> (número inteiro, opcional) 3253 3254Apenas disponível se gretl foi compilado com suporte MPI, e o programa foi iniciado em modo MPI (ver em <@mnu="gretlMPI">). Deve ser chamada por todos os processos. Esta função recolhe objectos funzione (apenas escalares ou matrizes) e matrici) com nome específico, dado na forma de ponteiro, de todos os processo e “reduz”-los a um único objecto no nó raiz. 3255 3256O argomunto <@lit="op"> específica a operação ou método de redução. Os métodos suportados para escalares são <@lit="sum">, <@lit="prod"> (produto), <@lit="max"> e <@lit="min">. Para matrizes os métodoa são <@lit="sum">, <@lit="prod"> (produto de Hadamard), <@lit="hcat"> (concatenação horizontal) e <@lit="vcat"> (concatenação vertical). 3257 3258Por defeito, a “raiz”, a destinatária da redução é o processo MPI com índice 0, mas isto pode ser modificado por via do segundo argumento (opcional), o qual deve ser um inteiro entre 0 e o número de processos MPI menos 1. 3259 3260De seguida mostra-se um exemplo. Se a função completar com sucesso, o processo raiz terá uma matriz <@lit="X"> que é a soma das matrizes <@lit="X"> de todos os processos. 3261 3262<code> 3263 matrix X 3264 X = mnormal(T, k) 3265 mpireduce(&X, sum) 3266</code> 3267 3268# mpiscatter mpi 3269Resultado: número inteiro 3270Argumentos: <@var="&M"> (referência a matriz) 3271 <@var="op"> (texto) 3272 <@var="raiz"> (número inteiro, opcional) 3273 3274Apenas disponível se gretl foi compilado com suporte MPI, e o programa foi iniciado em modo MPI (ver em <@mnu="gretlMPI">). Deve ser chamada por todos os processos. Esta função distribui partes de uma matriz no processo raiz por todos os processos. A matriz deve ter sido declarada em todos os processos, antes da chamada de <@lit="mpiscatter">, e deve ser dada na forma de ponteiro. 3275 3276O argumento <@lit="op"> deve ser <@lit="byrows"> ou <@lit="bycols">. Seja <@mth="q"> o quociente entre o número de linhas da matriz a dividir pelo número de processos. No caso <@lit="byrows"> a raiz envia as primeiras <@mth="q"> linhas para o processo 0, as seguintes <@mth="q"> para o processo 1, e assim sucessivamente. Existe um resto na divisão, as linhas remanescentes são atribuídas ao último segmento. O caso <@lit="bycols"> é semelhante, mas a matriz é dividida por colunas. 3277 3278Segue-se uma exemplo. Se existem 4 processos, todos (incluíndo o processo raiz) receberá uma parte 2500×10 do original <@lit="X"> como existia no processo raiz. Se você pretender preservar a matriz inteira no processo raiz, terá que fazer uma cópia dela antes de chamar. <@lit="mpiscatter">. 3279 3280<code> 3281 matrix X 3282 if $mpirank == 0 3283 X = mnormal(10000, 10) 3284 endif 3285 mpiscatter(&X, byrows) 3286</code> 3287 3288# mpisend mpi 3289Resultado: número inteiro 3290Argumentos: <@var="objecto"> (objeto) 3291 <@var="destino"> (número inteiro) 3292 3293Apenas disponível se gretl foi compilado com suporte MPI, e o programa foi iniciado em modo MPI (ver em <@mnu="gretlMPI">). Envia o objecto designado (que deve ser uma matriz, bundle, vector, escalar, texto ou lista) do processo corrente para aquele identificado pelo inteiro <@var="destino"> (de 0 a número de processos MPI menos 1). 3294 3295A chamada desta função deve estar sempre emparelhada com uma chamada a <@ref="mpirecv"> no processo <@var="destino">, como no exemplo seguinte que envia uma matriz do índice 2 para o índice 3. 3296 3297<code> 3298 if $mpirank == 2 3299 matrix C = cholesky(A) 3300 mpisend(C, 3) 3301 elif $mpirank == 3 3302 matrix C = mpirecv(2) 3303 endif 3304</code> 3305 3306# mpols stats 3307Resultado: matriz 3308Argumentos: <@var="Y"> (matriz) 3309 <@var="X"> (matriz) 3310 <@var="&U"> (referência a matriz, ou <@lit="null">) 3311 3312Funciona de forma semelhante à função <@ref="mols">. A diferença é que os cálculos são realizados com precisão múltipla utilizando a biblioteca GMP. 3313 3314Por padrão, a biblioteca GMP utiliza 256 bits para cada número de ponto flutuante. Isso pode ser ajustado via variável de ambiente <@lit="GRETL_MP_BITS">, por exemplo, <@lit="GRETL_MP_BITS=1024">. 3315 3316# mrandgen matrix 3317Resultado: matriz 3318Argumentos: <@var="d"> (texto) 3319 <@var="p1"> (escalar) 3320 <@var="p2"> (escalar, condicional) 3321 <@var="p3"> (escalar, condicional) 3322 <@var="rows"> (número inteiro) 3323 <@var="cols"> (número inteiro) 3324Exemplos: <@lit="matrix mx = mrandgen(u, 0, 100, 50, 1)"> 3325 <@lit="matrix mt14 = mrandgen(t, 14, 20, 20)"> 3326 3327Funciona da mesma forma que <@ref="randgen"> exceto pelo fato de retornar uma matriz ao invés de uma série. Os argumentos iniciais para essa função (os números que a distribuição selecionada depende) são descritos por <@lit="randgen">, mas eles devem ser seguidos por dois inteiros para especificar o número de linhas e colunas da matriz aleatória desejada. 3328 3329O primeiro exemplo acima gera um vetor coluna com 50 elementos seguindo uma distribuição uniforme, enquanto que o segundo exemplo especifica uma matriz aleatória de ordem 20×20 com valores extraídos da distribuição <@mth="t"> com 14 graus de liberdade. 3330 3331Ver também <@ref="mnormal">, <@ref="muniform">. 3332 3333# mread data-utils 3334Resultado: matriz 3335Argumentos: <@var="fname"> (texto) 3336 <@var="import"> (booleano, opcional) 3337 3338Lê uma matriz armazenada no arquivo chamado <@var="fname ">. Isto destina-se principalmente para ler arquivos com um format específico como descrito adiante, mas também pode ser usado em arquivos genéricos de texto delimitados. Neste último caso, ver a seção intitulada “Arquivos de texto delimitados” abaixo. 3339 3340Se o arquivo possuir a extensão “<@lit=".gz ">” é assumido que ele foi comprimido no formato gzip, se tiver a extensão “<@lit=".bin">” é assumido que o arquivo está em formato binário (veja <@ref="mwrite"> para detalhes). Caso contrário, se o arquivo tiver a extensão “<@lit=".mat">” assume-se que é um arquivo de texto simples, seguindo as seguintes especificações: 3341 3342<indent> 3343• O arquivo pode começar com qualquer qualquer quantidade de comentários, definidos por linhas iniciadas com o caractere <@lit="#">. Essas linhas serão ignoradas. 3344</indent> 3345 3346<indent> 3347• A primeira que não for de comentário deve conter dois inteiros, separados por um espaço ou uma tabulação, indicando o número de linhas e colunas, respectivamente. 3348</indent> 3349 3350<indent> 3351• As colunas devem estar separadas por espaços ou por tabulações. 3352</indent> 3353 3354<indent> 3355• O separador decimal deve ser o ponto (“<@lit=".">”). 3356</indent> 3357 3358Se no primeiro argumento não estiver especificado o caminho completo até o arquivo ele será em vários locais que sejam considerados como sendo “prováveis”. O primeiro deles será o diretório de trabalho em uso <@xrf="workdir">. Entretanto, se o segundo argumento da função, <@var="import">, for um valor não-nulo o arquivo será procurado no diretório “@dotdir”. Isto ocorre para que essa função seja utilizada em conjunto com as que exportam matrizes presentes no contexto do comando <@xrf="foreign">. Nesse caso o argumento <@var="fname"> deve ser um nome simples, sem que se especique o caminho para o arquivo. 3359 3360<@itl="Arquivos de texto delimitados"> 3361 3362Se o arquivo possuir a extensão “<@lit=".csv">” as regras que regulam o formato do arquivo são diferentes, e mais relaxadas. Neste caso os dados concretos, <@itl="não"> devem ser antecedidos por uma linha com o número de linhas e colunas. Gretl tentará determinar o qual o delimitador (vírgula, ponto e vírgula ou espaço) e fazer o seu melhor para importar a matriz, permitindo o uso da vírgula como separador decimal se necessário. Note que o delimitador não deve ser uma tabulação, sob pena de criar confusão com os arquivos de formato matriz “nativos” do gretl. 3363 3364Ver também <@ref="bread">, <@ref="mwrite">. 3365 3366# mreverse matrix 3367Resultado: matriz 3368Argumentos: <@var="X"> (matriz) 3369 <@var="bycol"> (booleano, opcional) 3370 3371Retorna uma matriz contendo as linhas de <@var="X"> em ordem reversa. Para obter uma matriz contendo as colunas em ordem reversa pode-se utilizar um valor não-nulo como segundo argumento. 3372 3373# mrls stats 3374Resultado: matriz 3375Argumentos: <@var="Y"> (matriz) 3376 <@var="X"> (matriz) 3377 <@var="R"> (matriz) 3378 <@var="q"> (vetor coluna) 3379 <@var="&U"> (referência a matriz, ou <@lit="null">) 3380 <@var="&V"> (referência a matriz, ou <@lit="null">) 3381 3382Mínimos quadrados restritos: retorna uma matriz <@itl="k">×<@itl="n"> de parâmetros estimados obtidos através da regressão via mínimos quadrados da matriz <@var="Y">, de ordem <@itl="T">×<@itl="n">, contra a matriz <@var="X">, de ordem <@itl="T">×<@itl="k">, sujeitos à restrição linear <@mth="RB "> = <@mth="q">, onde <@mth="B"> representa o vetor de coeficientes empilhados. <@var="R"> deve possuir <@mth="kn"> colunas. Cada linha dessa matriz representa uma restrição linear. O número de linhas em <@var="q"> deve coincidir com o número de linhas em <@var="R">. 3383 3384Se o quinto argumento não for <@lit="null">, a matriz <@var="U"> de ordem <@itl="T">×<@itl="n"> irá armazenar os resíduos. Se o argumento final for dado e não for <@lit="null "> então a matriz <@var="V"> de ordem <@itl="k">×<@itl="k"> irá armazenar a contraparte restrita da matriz <@mth="X' X"><@sup="-1">. A matriz de variância das estimativas para a equação <@mth="i"> pode ser construída multiplicando-se a sub-matriz apropriada de <@var="V"> por uma estimativa do erro para esta equação. 3385 3386# mshape matrix 3387Resultado: matriz 3388Argumentos: <@var="X"> (matriz) 3389 <@var="r"> (número inteiro) 3390 <@var="c"> (número inteiro) 3391 3392Rearranja os elementos de <@var="X"> em uma matriz com <@var="r"> linhas e <@var="c"> colunas. Os elementos de <@var="X"> são copiados e escritos na matriz de destino. A cópia tem início na coluna 1, linha 1, depois linha 2 e assim sucessivamente. Se <@var="X"> tiver menos que <@mth="k"> = <@mth="rc"> elementos, estes são repetidos de forma cíclica. Caso contrário, se <@var="X"> tiver mais elementos, apenas os primeiros <@mth="k"> elementos serão utilizados. 3393 3394Ver também <@ref="cols">, <@ref="rows">, <@ref="unvech">, <@ref="vec">, <@ref="vech">. 3395 3396# msortby matrix 3397Resultado: matriz 3398Argumentos: <@var="X"> (matriz) 3399 <@var="j"> (número inteiro) 3400 3401Retorna uma matriz onde as linhas de <@var="X"> são reordenadas de forma crescente de acordo com os elementos da coluna <@var="j">. Essa ordenação é estável: linhas que compartilham o mesmo valor na coluna <@var="j"> não serão invertidas. 3402 3403# msplitby matrix 3404Resultado: cadeia de matrizes 3405Argumentos: <@var="X"> (matriz) 3406 <@var="v"> (vetor) 3407 3408Retorna um arranjo de matrizes, o resultado de dividir verticalmente <@var="X"> segundo o controlo do vector <@var="v">. Este vector deve ser de comprimento igual ao número de linhas do argumento <@var="X">, e deverá conter valores inteiros com um mínimo de 1 e um máximo igual ao número de matrizes no arranjo desejado. Cada elemento de <@var="v"> indica o índice vectorial da matriz que corresponde à linha de <@var="X"> que deverá ser atríbuída. 3409 3410No seguinte exemplo, divide-se uma matriz 3×3 em três matrizes: as primeiras duas linhas são atribuídas à primeira matriz; as segunda matriz fica vazia; e a terceira matriz recebe a linha 3 de <@var="X">. 3411 3412<code> 3413 matrix X = {1,2,3; 4,5,6; 7,8,9} 3414 matrices M = msplitby(X, {1,1,3}) 3415 print M 3416</code> 3417 3418A saída mostra: 3419 3420<code> 3421 Vetor ("array") de matrizes, comprimento 3 3422 [1] 2 x 3 3423 [2] null 3424 [3] 1 x 3 3425</code> 3426 3427Ver <@ref="flatten"> para a operação inversa. 3428 3429# muniform matrix 3430Resultado: matriz 3431Argumentos: <@var="r"> (número inteiro) 3432 <@var="c"> (número inteiro) 3433 3434Retorna uma matriz com <@var="r"> linhas e <@var="c"> colunas, preenchida com números pseudo-aleatórios seguindo uma distribuição uniforme (0,1). Observação: o método preferencial para gerar escalares pseudo-aleatórios com distribuição uniforme é através da utilização da função <@ref="randgen1">. 3435 3436Ver também <@ref="mnormal">, <@ref="uniform">. 3437 3438# mweights midas 3439Resultado: matriz 3440Argumentos: <@var="p"> (número inteiro) 3441 <@var="theta"> (vetor) 3442 <@var="type"> (número inteiro ou texto) 3443 3444Retorna um vetor de ordem <@mth="p"> de pesos MIDAS a serem aplicados nas <@mth="p"> defasagens de uma série de alta frequência, com base no vetor de hiper-parâmetros <@var="theta">. 3445 3446O argumento <@var="type"> identifica o tipo de parametrização, a qual determina o número de elementos necessários, <@mth="k">, em <@var="theta">: 1 = exponencial normalizado de Almon (<@mth="k"> ao menos 1, tipicamente 2); 2 = beta normalizado com última defasagem nula (<@mth="k"> = 2); 3 = beta normalizado com última defasagem não-nula (<@mth="k"> = 3); e 4 = polinômio de Almon (<@mth="k"> ao menos 1). Note que no caso do beta normalizado os primeiros dois elementos de <@var="theta"> devem ser positivos. 3447 3448O <@var="type"> pode ser fornecido como sem um código inteiro, como mostrado acima, ou por um dos seguintes textos (respectivamente): <@lit="nealmon">, <@lit="beta0">, <@lit="betan">, <@lit="almonp">. Se for utilizado texto, ele deve ser escrito com aspas duplas. Por exemplo, as duas expressões abaixo são equivalentes: 3449 3450<code> 3451 W = mweights(8, theta, 2) 3452 W = mweights(8, theta, "beta0") 3453</code> 3454 3455Ver também <@ref="mgradient">, <@ref="mlincomb">. 3456 3457# mwrite data-utils 3458Resultado: número inteiro 3459Argumentos: <@var="X"> (matriz) 3460 <@var="fname"> (texto) 3461 <@var="export"> (booleano, opcional) 3462 3463Salva a matriz <@var="X"> em um arquivo especificado por <@var="fname">. Por padrão este arquivo será um arquivo de texto simples. A primeira linha terá dois números inteiros, separados por um caractere de tabulação (tab), representando o número de linhas e colunas. Nas linhas seguintes estarão os elementos da matriz, em notação científica, separados por tabulações (uma linha da matriz em cada linha do arquivo). Veja a seguir os formatos alternativos. 3464 3465Se já existir um arquivo com o nome <@var="fname"> ele será sobrescrito. O valor a ser retornado pela função é 0 em caso de sucesso. Se ocorrer um erro na escrita, que pode ocorrer, por exemplo, se o arquivo estiver bloqueado, o valor de retorno será diferente de 0. 3466 3467O arquivo de saída será salvo no <@xrf="workdir"> selecionado, a menos que no argumento <@var="filename"> seja escrito o caminho completo. Entretanto, se o argumento <@var="export"> for diferente de 0, o arquivo será salvo no diretório do usuário, ou seja, no diretório “@dotdir”, onde é acessado por padrão pelas funções que manipulam matrizes no contexto do comando <@xrf="foreign">. Nesse caso, um nome simples, sem a inclusão do caminho para o arquivo, deve ser usado como segundo argumento. 3468 3469Matrizes armazenadas via função <@lit="mwrite"> na sua forma padrão podem ser facilmente lidas por outros programas. Para maiores detalhes veja <@pdf="guia de utilização do Gretl#chap:matrices"> (Capítulo 17). 3470 3471Duas variantes, mutuamente exclusivas, estão disponíveis para esta função: 3472 3473<indent> 3474• Se o nome dado para o arquivo, <@var="fname">, terminar com “<@lit=".gz">” então ele será armazenado com compressão gzip. 3475</indent> 3476 3477<indent> 3478• Se <@var="fname"> terminar com “<@lit=".bin"> ” então o arquivo será armazenado no formato binário. Neste caso os primeiros 19 bytes contêm os caracteres <@lit=" gretl_binary_matrix">, os 8 bytes seguintes contêm dois inteiros de 32 bit, fornecendo o número de linhas e colunas da matriz, e o restante do arquivo contém os elementos da matriz como “doubles”, com extremidade do tipo little-endian, orientado a coluna (column-major). Se o Gretl for executado em um sistema com extremidade do tipo big-endian, os valores binários são convertidos para little-endian na escrita e convertidos para big-endian na leitura. 3479</indent> 3480 3481Note que se o armazenamento da matriz em um arquivo for para seu uso em outros programas não é aconselhável utilizar as variantes gzip ou binária. Mas se o intuito for a posterior leitura pelo próprio Gretl, esses formatos alternativos economizam espaço em disco e, no caso do armazenamento no formato binário, torna a leitura de grandes matrizes bem mais rápida. O formato gzip não é recomendado para matrizes muito grandes, uma vez que a descompressão desses arquivos é bastante lenta. 3482 3483Ver também <@ref="mread">. 3484 3485# mxtab stats 3486Resultado: matriz 3487Argumentos: <@var="x"> (série ou vetor) 3488 <@var="y"> (série ou vetor) 3489 3490Retorna uma matriz contendo a tabulação cruzada dos valores contidos em <@var="x"> (por linha) e <@var="y "> (por coluna). Os dois argumentos devem ser do mesmo tipo (ambos séries ou ambos vetores) e, devido à forma que essa função é comumente utilizada, assume-se que contêm apenas valores inteiros. 3491 3492Ver também <@ref="values">. 3493 3494# naalen nonparam 3495Resultado: matriz 3496Argumentos: <@var="d"> (série ou vetor) 3497 <@var="cens"> (série ou vetor, opcional) 3498 3499Dada uma amostra de dados de duração, <@var="d">, possivelmente acompanhada por um registro de status de censura, <@var="cens">, calcula o estimador não-paramétrico de Nelson–Aalen da função de risco (<@bib="Nelson, 1972;nelson72">; <@bib="Aalen, 1978;aalen78">). A matriz retornada possui três colunas contendo, respectivamente, os valores únicos de <@var="d"> de forma ordenada, a função de risco acumulada estimada correspondendo ao valor de duração na coluna 1 e o erro padrão do estimador. 3500 3501Se a série <@var="cens"> for dada, um valor 0 serve para indicar uma observação não-censurada, enquanto que um valor 1 indica uma observação censurada à direita (isto é, o período de observação do indivíduo em questão terminou antes que a duração ou o período tenham sido registrados como finalizados). Se <@var="cens"> não for dado é assumido que todas as observações são não-censuradas. Observação: a interpretação de <@var="cens"> pode ser estendida em algum momento de forma a cobrir outros tipos de censura. 3502 3503Ver também <@ref="kmeier">. 3504 3505# nadarwat nonparam 3506Resultado: série 3507Argumentos: <@var="y"> (série) 3508 <@var="x"> (série) 3509 <@var="h"> (escalar) 3510 3511Estimador não paramétrico de Nadaraya–Watson da média condicional de <@var="y"> dado <@var="x">. Retorna uma série contendo a estimativa não-paramétrica de <@mth="E(y"><@sub=" i"><@mth="|x"><@sub="i"><@mth=")"> para cada valor não ausente da série <@var="x">. 3512 3513A função núcleo (ou função kernel) <@mth="K"> é dada por <@mth="K = exp(-x"><@sup="2"><@mth=" / 2h)"> para <@mth="|x| < T"> e, caso contrário, zero. 3514 3515O argumento <@var="h">, conhecido como largura de banda (bandwidth), é um número real positivo escolhido pelo usuário. Normalmente este é um número pequeno: maiores valores de <@var="h "> tornam <@mth="m(x)"> mais suave. Uma escolha comumente utilizada é definir <@var="h"> como sendo proporcional a <@mth="n"><@sup="-0.2">. Mais detalhes podem ser encontrados no <@pdf="guia de utilização do Gretl#chap:nonparam"> (Capítulo 40). 3516 3517O escalar <@mth="T"> é utilizado para prevenir problemas numéricos quando a função núcleo é avaliada em um ponto muito distante de zero e é chamado de parâmetro de truncagem. 3518 3519O parâmetro de truncagem pode ser alterado através do ajuste de <@lit="nadarwat_trim">, como um múltiplo de <@var="h ">. O valor padrão é 4. 3520 3521O usuário pode fornecer valores negativos para a largura de banda: esta é interpretada como sintaxe convencional para obter o estimador leave-one-out. Este é uma variante do estimador que não usa a <@mth="i">-ésima observação para avaliar <@mth="m(x"><@sub="i"><@mth=")">. Isso faz com que o estimador de Nadaraya–Watson seja mais numericamente robusto e sua utilização é normalmente aconselhada quando o estimador é calculado com o propósito de realizar inferências. Vale salientar que a largura de banda utilizada é, na verdade, o valor absoluto de <@var="h">. 3522 3523# nelem data-utils 3524Resultado: número inteiro 3525Argumento: <@var="L"> (lista, matriz, lote ou cadeia) 3526 3527Retorna o número de elementos no argumento que, por sua vez, pode ser uma lista, uma matriz, um pacote (bundle) ou um arranjo (array). A função não pode ser utilizada em séries. 3528 3529# ngetenv programming 3530Resultado: escalar 3531Argumento: <@var="s"> (texto) 3532 3533Se uma variável de ambiente de nome <@var="s"> estiver definida e possuir um valor numérico a função retorna este valor, caso contrário, retorna NA. Veja também <@ref="getenv">. 3534 3535# nlines strings 3536Resultado: escalar 3537Argumento: <@var="buf"> (texto) 3538 3539Retorna a quantidade de linhas completas (isto é, linhas que terminam com um caractere de nova linha) em <@var="buf">. 3540 3541Exemplo: 3542 3543<code> 3544 string web_page = readfile("http://gretl.sourceforge.net/") 3545 scalar number = nlines(web_page) 3546 print number 3547</code> 3548 3549# NMmax numerical 3550Resultado: escalar 3551Argumentos: <@var="&b"> (referência a matriz) 3552 <@var="f"> (chamada a função) 3553 <@var="maxfeval"> (número inteiro, opcional) 3554 3555Realiza a maximização numérica via método simplex sem derivadas de Nelder–Mead. O argumento <@var="b"> deve conter os valores iniciais de um conjunto de parâmetros e o argumento <@var="f"> deve especificar uma chamada à função que calcule o critério (escalar) a ser maximizado, dados os valores correntes dos parâmetros e quaisquer outros dados que sejam relevantes. Se for completada com sucesso, <@lit="NMmax"> retorna o valor maximizado do critério e <@var="b"> armazena os valores dos parâmetros que maximizam a função. 3556 3557O terceiro argumento, opcional, pode ser utilizado para determinar o número máximo de avaliações da função. Se for omitido ou for igual a zero o máximo de avaliações será, por padrão, igual a 2000. O valor do argumento <@var="maxfeval"> pode ser especificado como um número negativo. Neste caso é tomado o valor absoluto e a função <@lit="NMmax"> sinaliza um erro se o melhor valor encontrado para a função objetivo, respeitando o número máximo de avaliações de funções, não for um ótimo local. Caso contrário a falta de convergência neste sentido não é tratada como um erro. 3558 3559Se de fato o objetivo for a minimização, a função pode retornar o valor negativo do critério. Alternativamente pode-se utilizar a função <@lit="NMmax"> através de sua forma alternativa <@lit=" NMmin">. 3560 3561Para maiores detalhes e exemplos <@pdf="guia de utilização do Gretl#chap:numerical"> (Capítulo 37). Ver também <@ref="simann">. 3562 3563# NMmin numerical 3564Resultado: escalar 3565 3566É uma forma alternativa da função <@ref="NMmax">. Se invocada com este nome a função comporta-se como minimizadora. 3567 3568# nobs stats 3569Resultado: número inteiro 3570Argumento: <@var="y"> (série) 3571 3572Retorna o número de observações não ausentes para a variável <@var="y"> na amostra corrente selecionada. 3573 3574# normal probdist 3575Resultado: série 3576Argumentos: <@var="μ"> (escalar) 3577 <@var="σ"> (escalar) 3578 3579Cria uma série de números gaussianos pseudo-aleatórios com média μ e desvio padrão σ. Se não forem fornecidos argumentos, será produzida uma série padrão normalizada <@mth="N">(0,1). Os valores são calculados utilizando o método Ziggurat <@bib="(Marsaglia e Tsang, 2000);marsaglia00">. 3580 3581Ver também <@ref="randgen">, <@ref="mnormal">, <@ref="muniform">. 3582 3583# normtest stats 3584Resultado: matriz 3585Argumentos: <@var="y"> (série ou vetor) 3586 <@var="method"> (texto, opcional) 3587 3588Realiza um teste de normalidade em <@var="y">. Por padrão é utilizado o teste de Doornik–Hansen, mas é possível escolher outros métodos via argumento opcional <@var="method">. Os testes disponíveis são: <@lit="swilk"> para o teste de Shapiro–Wilk, <@lit=" jbera"> para o teste de Jarque–Bera, ou <@lit="lillie "> para o de teste Lilliefors. 3589 3590O segundo argumento pode ser fornecido com ou sem aspas. Porém, quando o argumento estiver na forma de uma variável de texto (string), o valor dessa variável é substituído. Os seguintes exemplos mostram três formas aceitáveis de se realizar o teste de Shapiro–Wilk: 3591 3592<code> 3593 matrix nt = normtest(y, swilk) 3594 matrix nt = normtest(y, "swilk") 3595 string testtype = "swilk" 3596 matrix nt = normtest(y, testtype) 3597</code> 3598 3599A matriz retornada tem ordem 1×2 e armazena a estatística de teste e seu p-valor. Veja também o comando <@xrf="normtest">. 3600 3601# npcorr stats 3602Resultado: matriz 3603Argumentos: <@var="x"> (série ou vetor) 3604 <@var="y"> (série ou vetor) 3605 <@var="method"> (texto, opcional) 3606 3607Calcula uma medida de correlação entre <@var="x"> e <@var="y"> utilizando um método não-paramétrico. Se for dado, o terceiro argumento deve ser <@lit="kendall"> (para a versão b do tau de Kendall, sendo este o método padrão) ou <@lit="spearman"> (para o rô de Spearman). 3608 3609O valor de retorno é um vetor de ordem 3 contendo a medida de correlação, a estatística de teste e o p-valor para a hipótese nula de não-autocorrelação. Note que se o tamanho da amostra for muito pequeno a estatística de teste e/ou p-valor podem <@lit="NaN"> (ou seja, não é um número ou é ausente). 3610 3611Veja também <@ref="corr"> para a correlação de Pearson. 3612 3613# npv math 3614Resultado: escalar 3615Argumentos: <@var="x"> (série ou vetor) 3616 <@var="r"> (escalar) 3617 3618Retorna o Valor Presente Líquido (VPL ou NPV) de <@var="x ">, considerado como sendo uma sequência de pagamentos (negativos) e recebimentos (positivos), avaliada à taxa de desconto anual <@var="r">, que deve ser expressa como uma fração decimal e não como uma porcentagem (ou seja, 0.05 ao invés de 5<@lit="%">). O primeiro valor é considerado como sendo o “agora” e não é descontado. Para emular a função <@lit="npv"> na qual o primeiro valor é descontado, basta inserir um zero no início da sequência. 3619 3620A função pode ser utilizada com dados anuais, trimestrais, mensais e sem data (neste último caso, os dados são tratados como sendo anuais). 3621 3622Ver também <@ref="irr">. 3623 3624# NRmax numerical 3625Resultado: escalar 3626Argumentos: <@var="&b"> (referência a matriz) 3627 <@var="f"> (chamada a função) 3628 <@var="g"> (chamada a função, opcional) 3629 <@var="h"> (chamada a função, opcional) 3630 3631Realiza a maximização numérica via método de Newton–Raphson. O argumento <@var="b"> deve conter os valores iniciais de um conjunto de parâmetros e o argumento <@var="f"> deve especificar uma chamada à função que calcule o critério (escalar) a ser maximizado, dados os valores correntes dos parâmetros e quaisquer outros dados que sejam relevantes. Se o objetivo for de fato uma minimização, esta função deverá retornar o negativo do critério. Se for completada com sucesso, <@lit="NRmax"> retorna o valor maximizado do critério e <@var="b"> armazena os valores dos parâmetros que maximizam a função. 3632 3633O terceiro e o quarto argumento, opcionais, estabelecem uma maneira de fornecer derivadas analíticas e uma hessiana (negativa) analítica, respectivamente. As funções representadas por <@var="g"> e <@var="h"> devem ter como seus primeiros argumentos uma matriz pré-definida que tenha o tamanho adequado para armazenar o gradiente ou hessiana, respectivamente, dado na forma de ponteiro. Elas também precisam ter o vetor de parâmetros como um argumento (na forma de ponteiro ou não). Outros argumentos são opcionais. Se alguns dos parâmetros opcionais forem omitidos, é utilizada uma aproximação numérica. 3634 3635Para maiores detalhes e exemplos veja <@pdf="guia de utilização do Gretl#chap:numerical"> (Capítulo 37). Ver também <@ref="BFGSmax">, <@ref="fdjac">. 3636 3637# NRmin numerical 3638Resultado: escalar 3639 3640É uma forma alternativa da função <@ref="NRmax">. Se invocada com este nome a função comporta-se como minimizadora. 3641 3642# nullspace linalg 3643Resultado: matriz 3644Argumento: <@var="A"> (matriz) 3645 3646Calcula o espaço nulo direito de <@var="A">, via decomposição em valores singulares: o resultado é uma matriz <@mth="B"> tal que o produto <@mth="AB"> é uma matriz nula, exceto quando <@var="A"> tem posto completo, nesse caso uma matriz vazia é retornada. Caso contrário, se <@var="A"> é uma matriz <@itl="m">×<@itl="n">, <@mth="B"> terá dimensão <@mth="n"> por (<@mth="n"> – <@mth="r">), onde <@mth="r"> é o posto de <@var="A">. 3647 3648Se <@var="A"> não tiver posto completo a concatenação vertical de <@var="A"> com a transposta de <@var="B"> produz uma matriz de posto completo. 3649 3650Exemplo: 3651 3652<code> 3653 A = mshape(seq(1,6),2,3) 3654 B = nullspace(A) 3655 C = A | B' 3656 3657 print A B C 3658 3659 eval A*B 3660 eval rank(C) 3661</code> 3662 3663O exemplo acima produz: 3664 3665<code> 3666 ? print A B C 3667 A (2 x 3) 3668 3669 1 3 5 3670 2 4 6 3671 3672 B (3 x 1) 3673 3674 -0.5 3675 1 3676 -0.5 3677 3678 C (3 x 3) 3679 3680 1 3 5 3681 2 4 6 3682 -0.5 1 -0.5 3683 3684 ? eval A*B 3685 -4.4409e-16 3686 -4.4409e-16 3687 3688 ? eval rank(C) 3689 3 3690</code> 3691 3692Ver também <@ref="rank">, <@ref="svd">. 3693 3694# numhess numerical 3695Resultado: matriz 3696Argumentos: <@var="b"> (vetor coluna) 3697 <@var="fcall"> (chamada a função) 3698 <@var="d"> (escalar, opcional) 3699 3700Calcula uma aproximação numérica para a hessiana associada ao vetor <@var="b"> de ordem <@mth="n"> e à função objetivo especificada pelo argumento <@var="fcall">. A chamada à função deve ter <@var="b"> como primeiro argumento (de forma direta ou na forma de ponteiro), seguido de quaisquer argumentos adicionais que possam ser necessários. A função retorna um escalar como resultado. Se executada com sucesso, <@lit="numhess"> retorna uma matriz de ordem <@itl="n">×<@itl="n"> contendo a hessiana que, por sua vez, é simétrica por construção. 3701 3702O método utilizado é a extrapolação de Richardson, com quatro passos. O terceiro argumento, opcional, pode ser utilizado para ajustar a fração <@mth="d"> do valor do parâmetro utilizado no ajuste do tamanho do passo inicial. Se este argumento for omitido, será utilizado <@mth="d"> = 0,01 como padrão. 3703 3704Exemplo:: 3705 3706<code> 3707 matrix H = numhess(theta, myfunc(&theta, X)) 3708</code> 3709 3710Ver também <@ref="BFGSmax">, <@ref="fdjac">. 3711 3712# obs data-utils 3713Resultado: série 3714 3715Retorna uma série de números inteiros consecutivos começando em 1 no início do conjunto de dados. Note que esse resultado não é afetado por subamostragem. Essa função é especialmente útil com conjunto de dados de séries temporais. Você também pode escrever <@lit="t"> ao invés de <@lit="obs"> para obter a série. 3716 3717Ver também <@ref="obsnum">. 3718 3719# obslabel data-utils 3720Resultado: texto 3721Argumento: <@var="t"> (número inteiro) 3722 3723Retorna o rótulo da observação <@var="t">, onde <@var="t"> é número que representa esta observação. A função inversa é dada por <@ref="obsnum">. 3724 3725# obsnum data-utils 3726Resultado: número inteiro 3727Argumento: <@var="s"> (texto) 3728 3729obsnum Retorna o número que corresponde a observação especificada pela variável <@mth="s">. Note que o resultado desta função não é afetado por subamostragens. Ela é especialmente útil em dados de séries temporais. Por exemplo, o código seguinte 3730 3731<code> 3732 open denmark 3733 k = obsnum(1980:1) 3734</code> 3735 3736fornece <@lit="k = 25">, indicando que o primeiro trimestre de 1980 é a vigésima quinta observação nos dados <@lit="denmark">. 3737 3738Ver também <@ref="obs">, <@ref="obslabel">. 3739 3740# ok data-utils 3741Resultado: ver abaixo 3742Argumento: <@var="x"> (escalar, série, matriz ou lista) 3743 3744Se <@var="x"> for um escalar, retorna 1 se <@var="x "> não for <@lit="NA">, caso contrário 0. Se <@var="x "> for uma série, retorna uma série com valor 1 nas observações sem valores ausentes e 0 onde houver valores ausentes. Se <@var="x"> for uma lista, a saída da função é uma série com 0 nas observações onde ao menos uma das séries na lista tenha valor ausente, caso contrário retorna 1. 3745 3746Se <@var="x"> for uma matriz o comportamento da função é um pouco diferente, uma vez que matrizes não podem conter <@lit=" NA">'s. Assim, nesse caso, a função retorna uma matriz com as mesmas dimensões que <@var="x">, com 1's nas posições com elementos finitos de <@var="x"> and 0's nas posições onde os elementos são não-finitos (podendo ser números infinitos ou NaN, conforme padrão IEEE 754). 3747 3748Ver também <@ref="missing">, <@ref="misszero">, <@ref="zeromiss">. Mas note que essas funções não são aplicáveis no caso de matrizes. 3749 3750# onenorm linalg 3751Resultado: escalar 3752Argumento: <@var="X"> (matriz) 3753 3754Retorna a norma-1 da matriz <@var="X">, isto é, a máxima soma dos valores absolutos dos elementos de cada coluna de <@var="X">. 3755 3756Ver também <@ref="infnorm">, <@ref="rcond">. 3757 3758# ones matrix 3759Resultado: matriz 3760Argumentos: <@var="r"> (número inteiro) 3761 <@var="c"> (número inteiro) 3762 3763Retorna uma matriz com <@mth="r"> linhas e <@mth="c"> colunas preenchida com valores iguais a 1. 3764 3765Ver também <@ref="seq">, <@ref="zeros">. 3766 3767# orthdev panel 3768Resultado: série 3769Argumento: <@var="y"> (série) 3770 3771Aplicável apenas quando o conjunto de dados atualmente aberto é composto por dados em painel. Calcula os desvios ortogonais anteriores (ou seja, o desvio entre <@mth="t"> e <@mth="t+1">) da variável <@var="y ">. 3772 3773Esta transformação é realizada algumas vezes ao invés da diferenciação para remover efeitos individuais do dado em painel. Para fins de compatibilidade com a primeira diferença, os desvios são armazenados um paso à frente em relação à sua verdadeira localização temporal (isto é, o valor na observação <@mth="t"> é o desvio que, estritamente falando, pertence ao tempo <@mth="t"> –1). Assim, perde-se a primeira observação em cada série de tempo, e não a última. 3774 3775Ver também <@ref="diff">. 3776 3777# pdf probdist 3778Resultado: o mesmo tipo que o argumento 3779Argumentos: <@var="d"> (texto) 3780 <@var="…"> (ver abaixo) 3781 <@var="x"> (escalar, série ou matriz) 3782Exemplos: <@lit="f1 = pdf(N, -2.5)"> 3783 <@lit="f2 = pdf(X, 3, y)"> 3784 <@lit="f3 = pdf(W, forma, escala, y)"> 3785 3786Calculadora de função densidade de probabilidade. Retorna a densidade em <@var="x"> da distribuição identificada pelo código <@var="d">. Veja <@ref="cdf"> para detalhes acerca dos argumentos (escalares) requeridos. As distribuições suportadas pela função <@lit="pdf"> são: normal, <@mth="t"> de Student, qui-quadrado, <@mth="F">, Gama, Exponencial, Weibull, Laplace, Erro Generalizado, Binomial e Poisson. Note que para a Binomial e a Poisson o que de fato é calculado é a massa de probabilidade no ponto especificado. Para <@mth="t"> de Student, qui-quadrado e <@mth="F"> também estão disponíveis as suas variantes não-centrais. 3787 3788Para a distribuição normal veja também <@ref="dnorm">. 3789 3790# pergm timeseries 3791Resultado: matriz 3792Argumentos: <@var="x"> (série ou vetor) 3793 <@var="bandwidth"> (escalar, opcional) 3794 3795Se apenas o primeiro argumento for dado, calcula o periodograma da amostra para dada variável ou vetor. Se o segundo argumento for dado, calcula uma estimativa do espectro de <@var="x"> utilizando janela de defasagem de Bartlett para a largura de banda dada, até o número de observações (<@mth="T">/2). 3796 3797Retorna uma matriz com duas colunas e <@mth="T">/2 linhas: a primeira coluna contendo a frequência, ω, de 2π/<@mth="T"> até π e a segunda contendo a densidade espectral correspondente. 3798 3799# pexpand panel 3800Resultado: série 3801Argumento: <@var="v"> (vetor) 3802 3803É aplicável somente se o conjunto de dados corrente tiver uma estrutura de painel. Realiza a operação inversa de <@ref="pshrink">. Isto é, dado um vetor de comprimento igual ao número de indivíduos na amostra (de painel) corrente, retorna uma série na qual cada valor é repetido <@mth="T"> vezes, onde <@mth="T"> representa o comprimento temporal do painel. A série resultante é dessa forma não variante em relação ao tempo. 3804 3805# pmax panel 3806Resultado: série 3807Argumentos: <@var="y"> (série) 3808 <@var="mask"> (série, opcional) 3809 3810É aplicável somente se o conjunto de dados corrente tiver uma estrutura de painel. Retorna uma série contendo o máximo da variável <@var="y"> para cada unidade de corte transversal (isso é repetido parar cada período de tempo). 3811 3812Se o segundo argumento (opcional) for fornecido, as observações onde o valor de <@var="mask"> for igual a zero são ignoradas. 3813 3814Ver também <@ref="pmin">, <@ref="pmean">, <@ref="pnobs">, <@ref="psd">, <@ref="pxsum">, <@ref="pshrink">, <@ref="psum">. 3815 3816# pmean panel 3817Resultado: série 3818Argumentos: <@var="y"> (série) 3819 <@var="mask"> (série, opcional) 3820 3821É aplicável somente se o conjunto de dados corrente tiver uma estrutura de painel. Retorna uma série contendo a média temporal da variável <@var="y"> para cada unidade de corte transversal. Os valores são repetidos para cada período e as observações ausentes são ignoradas no cálculo das médias. 3822 3823Se o segundo argumento (opcional) for fornecido, as observações onde o valor de <@var="mask"> for igual a zero são ignoradas. 3824 3825Ver também <@ref="pmax">, <@ref="pmin">, <@ref="pnobs">, <@ref="psd">, <@ref="pxsum">, <@ref="pshrink">, <@ref="psum">. 3826 3827# pmin panel 3828Resultado: série 3829Argumentos: <@var="y"> (série) 3830 <@var="mask"> (série, opcional) 3831 3832É aplicável somente se o conjunto de dados corrente tiver uma estrutura de painel. Retorna uma série contendo o mínimo da variável <@var="y"> para cada unidade de corte transversal (isso é repetido para cada período de tempo). 3833 3834Se o segundo argumento (opcional) for fornecido, as observações onde o valor de <@var="mask"> for igual a zero são ignoradas. 3835 3836Ver também <@ref="pmax">, <@ref="pmean">, <@ref="pnobs">, <@ref="psd">, <@ref="pshrink">, <@ref="psum">. 3837 3838# pnobs panel 3839Resultado: série 3840Argumentos: <@var="y"> (série) 3841 <@var="mask"> (série, opcional) 3842 3843É aplicável somente se o conjunto de dados corrente tiver uma estrutura de painel. Retorna uma série contendo o número de observações válidas em <@var="y"> para cada unidade de corte transversal (isso é repetido para cada período de tempo). 3844 3845Se o segundo argumento (opcional) for fornecido, as observações onde o valor de <@var="mask"> for igual a zero são ignoradas. 3846 3847Ver também <@ref="pmax">, <@ref="pmin">, <@ref="pmean">, <@ref="psd">, <@ref="pshrink">, <@ref="psum">. 3848 3849# polroots math 3850Resultado: matriz 3851Argumento: <@var="a"> (vetor) 3852 3853Encontra as raízes de um polinômio. Se o polinômio for de ordem <@mth="p">, o vetor <@var="a"> deverá conter <@mth="p"> + 1 coeficientes em ordem crescente, i.e. iniciando com a constante e terminando com o coeficiente de <@mth="x"><@sup="p">. 3854 3855Se todas as raízes forem reais elas serão retornadas em um vetor coluna de comprimento <@mth="p">, caso contrário uma matriz de ordem <@itl="p">×2 será retornada, com as partes reais na primeira coluna e as partes imaginárias na segunda. 3856 3857# polyfit transforms 3858Resultado: série 3859Argumentos: <@var="y"> (série) 3860 <@var="q"> (número inteiro) 3861 3862Ajusta uma tendência polinomial de ordem <@var="q"> à série <@var="y"> usando o método dos polinômios ortogonais. A série retornada contém os valores ajustados. 3863 3864# princomp stats 3865Resultado: matriz 3866Argumentos: <@var="X"> (matriz) 3867 <@var="p"> (número inteiro) 3868 <@var="covmat"> (booleano, opcional) 3869 3870Seja a matriz <@var="X"> de ordem <@itl="T">×<@itl="k">, contendo <@mth="T"> observações de <@mth="k"> variáveis. O argumento <@var="p"> deve ser um inteiro positivo menor ou igual a <@mth="k">. Esta função retorna a matriz de ordem <@itl="T">×<@itl="p">, <@mth="P">, contendo os primeiros <@mth="p"> principais componentes de <@var="X">. 3871 3872O terceiro argumento, opcional, age como uma chave booleana: se for um valor não-nulo os componentes principais são calculados com base na matriz de covariâncias das colunas de <@var="X"> (o padrão desta função é a utilização da matriz de correlação). 3873 3874Os elementos de <@mth="P"> são calculados como sendo a soma de <@mth="i"> até <@mth="k"> de <@mth="Z"><@sub="ti"> multiplicado por <@mth="v"><@sub="ji">, onde <@mth="Z"><@sub="ti"> é o valor padronizado da variável <@mth="i"> na observação <@mth="t"> e <@mth="v"><@sub="ji"> é o <@mth="j">-ésimo autovetor da matriz de correlação (ou covariância) dos <@mth="X"><@sub="i">s, com os autovetores ordenados de forma decrescente de acordo com o valores dos autovalores correspondentes. 3875 3876Ver também <@ref="eigensym">. 3877 3878# prodc stats 3879Resultado: vetor linha 3880Argumento: <@var="X"> (matriz) 3881 3882Retorna o produto dos elementos das colunas de <@var="X">. Ver também <@ref="prodr">, <@ref="meanc">, <@ref="sdc">, <@ref="sumc">. 3883 3884# prodr stats 3885Resultado: vetor coluna 3886Argumento: <@var="X"> (matriz) 3887 3888Retorna o produto dos elementos das linhas de <@var="X">. Ver também <@ref="prodc">, <@ref="meanr">, <@ref="sumr">. 3889 3890# psd panel 3891Resultado: série 3892Argumentos: <@var="y"> (série) 3893 <@var="mask"> (série, opcional) 3894 3895É aplicável somente se o conjunto de dados corrente tiver uma estrutura de painel. Retorna uma série contendo desvio padrão amostral da variável <@mth="y"> para cada unidade de corte transversal (sendo os valores repetidos para cada período de tempo). O denominador utilizado o tamanho da amostra em cada unidade menos 1, a menos que o número de observações válidas para dada unidade ser 1 (nesse caso será retornado 0) ou 0 (nesse caso será retornado <@lit="NA">). 3896 3897Se o segundo argumento (opcional) for fornecido, as observações onde o valor de <@var="mask"> for igual a zero são ignoradas. 3898 3899Observação: essa função torna possível testar se dada variável (como por exemplo, <@lit="X">) não varia ao longo do tempo utilizando a condição <@lit="max(psd(X)) == 0">. 3900 3901Ver também <@ref="pmax">, <@ref="pmin">, <@ref="pmean">, <@ref="pnobs">, <@ref="pshrink">, <@ref="psum">. 3902 3903# psdroot linalg 3904Resultado: matriz quadrada 3905Argumento: <@var="A"> (matriz simétrica) 3906 3907Calcula a variante generalizada da decomposição de Cholesky da matriz <@var="A">, que deve ser positiva semi-definida (mas que pode ser singular). Se a matriz de entrada não for quadrada é sinalizado um erro, apesar disso, a simetria é assumida pela função, mas não verificada. Apenas o triângulo inferior de <@var="A"> é lido. O resultado é uma matriz triangular inferior <@mth="L"> que satisfaz <@mth="A = LL'">. Elementos indeterminados na solução são zerados. 3908 3909Para o caso onde <@var="A"> é positivo definido, veja <@ref="cholesky">. 3910 3911# pshrink panel 3912Resultado: matriz 3913Argumento: <@var="y"> (série) 3914 3915É aplicável somente se o conjunto de dados corrente tiver uma estrutura de painel. Retorna um vetor coluna contendo a primeira observação válida da série <@var="y"> para cada unidade de corte transversal no painel, ao longo extensão da amostra corrente. Se uma unidade não possuir observações válidas da série de entrada ela será ignorada. 3916 3917Essa função fornece uma maneira de compactar as séries retornadas por funções como <@ref="pmax"> e <@ref="pmean">, nas quais um valor pertencente a cada unidade de corte transversal é repetido para cada período de tempo. 3918 3919Veja <@ref="pexpand"> para a operação inversa. 3920 3921# psum panel 3922Resultado: série 3923Argumentos: <@var="y"> (série) 3924 <@var="mask"> (série, opcional) 3925 3926É aplicável somente se o conjunto de dados corrente tiver uma estrutura de painel. Retorna uma série contendo a soma ao longo do tempo da variável <@var="y"> para cada unidade de corte transversal. Os valores são repetidos para cada período e as observações ausentes são ignoradas no cálculo das somas. 3927 3928Se o segundo argumento (opcional) for fornecido, as observações onde o valor de <@var="mask"> for igual a zero são ignoradas. 3929 3930Ver também <@ref="pmax">, <@ref="pmean">, <@ref="pmin">, <@ref="pnobs">, <@ref="psd">, <@ref="pxsum">, <@ref="pshrink">. 3931 3932# pvalue probdist 3933Resultado: o mesmo tipo que o argumento 3934Argumentos: <@var="c"> (caractere) 3935 <@var="…"> (ver abaixo) 3936 <@var="x"> (escalar, série ou matriz) 3937Exemplos: <@lit="p1 = pvalue(z, 2.2)"> 3938 <@lit="p2 = pvalue(X, 3, 5.67)"> 3939 <@lit="p2 = pvalue(F, 3, 30, 5.67)"> 3940 3941Calculadora de <@mth="P">-valores. Retorna <@mth="P(X > x)">, onde a distribuição de <@mth="X"> é especificada pela letra <@var="c">. Entre os argumentos <@var="c"> e <@var="x">, zero ou mais argumentos adicionais são necessários para que especifique os parâmetros da distribuição. Veja <@ref="cdf"> para detalhes. As distribuições suportadas pela função <@lit="pvalue"> são: normal padrão, <@mth="t">, qui-quadrada, <@mth="F">, gama, binomial, Poisson, Weibull e Erro Generalizado. 3942 3943Ver também <@ref="critical">, <@ref="invcdf">, <@ref="urcpval">, <@ref="imhof">. 3944 3945# pxnobs panel 3946Resultado: série 3947Argumentos: <@var="y"> (série) 3948 <@var="mask"> (série, opcional) 3949 3950É aplicável somente se o conjunto de dados corrente tiver uma estrutura de painel. Retorna uma série contendo o número de observações válidas de <@var="y"> em cada período de tempo (essa operação é repetida para cada unidade de corte transversal). 3951 3952Se o segundo argumento (opcional) for fornecido, as observações onde o valor de <@var="mask"> for igual a zero são ignoradas. 3953 3954Note que esta função opera em uma dimensão diferente da função <@ref="pnobs">. 3955 3956# pxsum panel 3957Resultado: série 3958Argumentos: <@var="y"> (série) 3959 <@var="mask"> (série, opcional) 3960 3961É aplicável somente se o conjunto de dados corrente tiver uma estrutura de painel. Retorna uma série contendo a soma dos valores de <@var="y"> para cada unidade de corte transversal em cada período de tempo (sendo os valores repetidos para cada unidade de corte). 3962 3963Se o segundo argumento (opcional) for fornecido, as observações onde o valor de <@var="mask"> for igual a zero são ignoradas. 3964 3965Note que esta função opera em uma dimensão diferente da função <@ref="psum">. 3966 3967# qform linalg 3968Resultado: matriz 3969Argumentos: <@var="x"> (matriz) 3970 <@var="A"> (matriz simétrica) 3971 3972Calcula a forma quadrática <@mth="Y = xAx'">. A utilização desta função, ao invés da multiplicação matricial comum, garante mais velocidade e maior precisão quando <@var="A"> é uma matriz simétrica genérica. Porém, no caso especial onde <@var="A"> é uma matriz identidade, a simples expressão <@lit="x'x"> tem desempenho bastante superior em relação a <@lit="qform(x',I(rows(x))">. 3973 3974Se <@var="x"> e <@var="A"> não forem compatíveis, ou <@var="A"> não for simétrica, é retornado um erro. 3975 3976# qlrpval probdist 3977Resultado: escalar 3978Argumentos: <@var="X2"> (escalar) 3979 <@var="df"> (número inteiro) 3980 <@var="p1"> (escalar) 3981 <@var="p2"> (escalar) 3982 3983Fornece os <@mth="p">-valores para a estatística de teste do teste sup-Wald QLR para uma quebra estrutural em um ponto desconhecido (veja <@xrf="qlrtest">), conforme <@bib="Hansen (1997);hansen97">. 3984 3985O primeiro argumento, <@var="X2">, representa a máxima estatística de teste (na forma de qui-quadrado) de Wald e <@var="df"> representa os graus de liberdade. O terceiro e o quarto argumento representa, na forma de frações decimais da amplitude de estimação geral, os pontos inicial e final da amplitude central das observações ao longo das quais os sucessivos testes de Wald são calculados. Por exemplo, se a abordagem padrão de corte de 15 por cento for utilizada <@var="p1"> deve ser igual a 0.15 e <@var="p2"> igual a 0.85. 3986 3987Ver também <@ref="pvalue">, <@ref="urcpval">. 3988 3989# qnorm probdist 3990Resultado: o mesmo tipo que o argumento 3991Argumento: <@var="x"> (escalar, série ou matriz) 3992 3993Retorna os quantis para a distribuição normal padrão. Se <@var="x"> não estiver entre 0 e 1, será retornado <@lit="NA">. Ver também <@ref="cnorm">, <@ref="dnorm">. 3994 3995# qrdecomp linalg 3996Resultado: matriz 3997Argumentos: <@var="X"> (matriz) 3998 <@var="&R"> (referência a matriz, ou <@lit="null">) 3999 4000Calcula a decomposição QR de uma matriz <@var="X"> de ordem <@itl="m">×<@itl="n">, isto é, <@mth="X = QR"> onde <@mth="Q"> é uma matriz ortogonal <@itl="m">×<@itl="n"> e <@mth="R"> é uma matriz triangular superior <@itl="n">×<@itl="n">. A matriz <@mth="Q"> é retornada diretamente, enquanto que <@mth="R"> pode ser obtida via utilização do segundo argumento (opcional). 4001 4002Ver também <@ref="eigengen">, <@ref="eigensym">, <@ref="svd">. 4003 4004# quadtable stats 4005Resultado: matriz 4006Argumentos: <@var="n"> (número inteiro) 4007 <@var="type"> (número inteiro, opcional) 4008 <@var="a"> (escalar, opcional) 4009 <@var="b"> (escalar, opcional) 4010 4011Retorna uma matriz de ordem <@itl="n">×2 para utilização a quadratura gaussiana (integração numérica). A primeira coluna contém os nós ou abscissas e a segunda os pesos. 4012 4013O primeiro argumento especifica o número de pontos (linhas) a serem computados. O segundo argumento indica o tipo de quadratura: use 1 para Gauss–Hermite (tipo padrão); 2 para Gauss–Legendre; ou 3 para Gauss–Laguerre. O significado dos parâmetros opcionais <@var="a"> e <@var="b"> dependem da escolha do argumento <@var="type">, conforme explicado a seguir. 4014 4015A quadratura gaussiana é um método para aproximar numericamente a integral definida de dada função de interesse. Seja a função representada pelo produto <@mth="f(x)W(x)">. Os tipos de quadratura diferem de acordo com a especificação do componente <@mth="W(x)">: no caso de Hermite ela é definida como exp(–<@mth="x"><@sup="2">); no caso de Laguerre, exp(–<@mth="x">); e no caso de Legendre como <@mth="W(x)"> = 1. 4016 4017Para cada especificação de <@mth="W">, pode-se calcular um conjunto de abscissas, <@mth="x"><@sub="i">, e pesos, <@mth="w"><@sub="i">, tais que o somatório de <@mth="i">=1 até <@mth="n"> de <@mth="w"><@sub="i"> <@mth="f">(<@mth="x"><@sub="i">) se aproxima da integral desejada. O método de <@bib="Golub e Welsch (1969);golub69"> é utilizado. 4018 4019Quando o tipo Gauss–Legendre é selecionado, os argumentos opcionais <@var="a"> e <@var="b"> podem ser utilizados para controlar os limites inferior e superior de integração, sendo os valores padrão –1 e 1. Na quadratura de Hermite os limites são fixados entre menos infinito e mais infinito, enquanto que no caso de Laguerre eles são fixados entre zero e infinito. 4020 4021No caso de Hermite <@var="a"> e <@var="b "> exercem um papel diferente: eles podem ser utilizados para substituir a forma padrão de <@mth="W ">(<@mth="x">) pela (proximanente relacionada) distribuição normal com média <@var="a"> e desvio padrão <@var="b">. Fornecendo os valores de 0 e 1 para estes parâmetros, por exemplo, tem o efeito de transformar <@mth="W">(<@mth="x ">) em uma FDP normal padrão, que é equivalente a multiplicar as abscissas padrão pela raiz quadrada de dois e dividir os pesos pela raiz quadrada de π. 4022 4023# quantile stats 4024Resultado: escalar ou matriz 4025Argumentos: <@var="y"> (série ou matriz) 4026 <@var="p"> (escalar entre 0 e 1) 4027 4028Se <@var="y"> for uma série, retorna o quantil <@var="p"> da série. Por exemplo, quando <@mth=" p"> = 0,5, a mediana é retornada. 4029 4030Se <@var="y"> for uma matriz, retorna um vetor linha contendo os <@var="p">-quantis das colunas de <@var="y">. Isto é, cada coluna é tratada como sendo uma série. 4031 4032Adicionalmente, para a matriz <@var="y"> existe uma segunda alternativa para o segundo argumento: <@var="p "> pode ser dado como um vetor. Nesse caso o valor de retorno é uma matriz de ordem <@itl="m">×<@itl="n"> onde <@var="m "> representa o número de elementos em <@var="p"> e <@var="n"> é o número de colunas em <@var="y">. 4033 4034# randgen probdist 4035Resultado: série 4036Argumentos: <@var="d"> (texto) 4037 <@var="p1"> (escalar ou série) 4038 <@var="p2"> (escalar ou série, condicional) 4039 <@var="p3"> (escalar, condicional) 4040Exemplos: <@lit="series x = randgen(u, 0, 100)"> 4041 <@lit="series t14 = randgen(t, 14)"> 4042 <@lit="series y = randgen(B, 0.6, 30)"> 4043 <@lit="series g = randgen(G, 1, 1)"> 4044 <@lit="series P = randgen(P, mu)"> 4045 4046Gerador de número aleatório de uso geral. O argumento <@var="d"> é um texto (string) (sendo geralmente composto por apenas um caractere) que especifica a distribuição da qual serão extraídos os pseudo-números. Os argumentos <@var="p1"> a <@var="p3"> especificam os parâmetros da distribuição selecionada, sendo que o número de parâmetros depende da distribuição escolhida. Para distribuições que não a beta-binomial, os parâmetros <@var="p1"> e <@var="p2"> (se for aplicável) podem estar na forma escalar ou de série. Se forem utilizados na forma escalar a série resultante será identicamente distribuída. Se forem utilizadas séries em <@var="p1"> ou <@var="p2"> a distribuição será condicional ao valor do parâmetro em cada observação. No caso da beta-binomial todos os parâmetros devem ser escalares. 4047 4048Especificidades são apresentadas abaixo: o código para cada distribuição é mostrado entre parênteses, seguido da interpretação do argumento <@var="p1"> e, quando for aplicável, <@var="p2"> e <@var="p3">. 4049 4050<indent> 4051• Uniforme (contínua) (u ou U): mínimo, máximo 4052</indent> 4053 4054<indent> 4055• Uniforme (discreta) (i): mínimo, máximo 4056</indent> 4057 4058<indent> 4059• Normal (z, n ou N): média, desvio padrão 4060</indent> 4061 4062<indent> 4063• t de Student (t): graus de liberdade 4064</indent> 4065 4066<indent> 4067• Qui-quadrado (c, x ou X): graus de liberdade 4068</indent> 4069 4070<indent> 4071• F de Snedecor (f ou F): graus de liberdade (num.), graus de liberdade (den.) 4072</indent> 4073 4074<indent> 4075• Gama (g ou G): forma, escala 4076</indent> 4077 4078<indent> 4079• Binomial (b ou B): probabilidade, quantidade de tentativas 4080</indent> 4081 4082<indent> 4083• Poisson (p ou P): média 4084</indent> 4085 4086<indent> 4087• ExponenCial (exp): escala 4088</indent> 4089 4090<indent> 4091• Weibull (w ou W): forma, escala 4092</indent> 4093 4094<indent> 4095• Laplace (l ou L): média, escala 4096</indent> 4097 4098<indent> 4099• Erro Generalizado (E): forma 4100</indent> 4101 4102<indent> 4103• Beta (beta): forma1, forma2 4104</indent> 4105 4106<indent> 4107• Beta-Binomial (bb): tentativas, forma1, forma2 4108</indent> 4109 4110Ver também <@ref="normal">, <@ref="uniform">, <@ref="mrandgen">, <@ref="randgen1">. 4111 4112# randgen1 probdist 4113Resultado: escalar 4114Argumentos: <@var="d"> (caractere) 4115 <@var="p1"> (escalar) 4116 <@var="p2"> (escalar, condicional) 4117Exemplos: <@lit="scalar x = randgen1(z, 0, 1)"> 4118 <@lit="scalar g = randgen1(g, 3, 2.5)"> 4119 4120Funciona da mesma forma que <@ref="randgen"> exceto pelo fato de retornar um escalar ao invés de uma série. 4121 4122O primeiro exemplo acima retorna um valor da distribuição normal padrão, enquanto que o segundo especifica um valor a ser extraído da distribuição Gama com forma 3 e escala 2.5. 4123 4124Ver também <@ref="mrandgen">. 4125 4126# randint probdist 4127Resultado: número inteiro 4128Argumentos: <@var="min"> (número inteiro) 4129 <@var="max"> (número inteiro) 4130 4131Retorna um inteiro pseudo-aleatório no intervalo fechado [<@var="min">, <@var="max">]. Ver também <@ref="randgen">. 4132 4133# randperm probdist 4134Resultado: vetor 4135Argumentos: <@var="n"> (número inteiro) 4136 <@var="k"> (número inteiro, opcional) 4137 4138Se apenas é dado o primeiro argumento, retorna um vector linha contendo uma permutação aleatória dos inteiros de 1 a <@var="n">, sem repetição dos elementos. Se o segundo argumento é dado, ele tem que ser um inteiro no intervalo de 1 a <@var="n">; neste caso a função retorna um vector linha contendo <@var="k"> inteiros seleccionados aleatóriamente entre 1 e <@var="n"> sem substituição. 4139 4140Caso se pretenda uma amostra de <@mth="k"> linhas de uma matriz <@lit="X"> com <@mth="n"> linhas (sem substituição), pode-se proceder como se mostra adiante: 4141 4142<code> 4143 matrix S = X[randperm(n, k),] 4144</code> 4145 4146E case se queira preservar a ordem original das linhas na amostra: 4147 4148<code> 4149 matrix S = X[sort(randperm(n, k)),] 4150</code> 4151 4152Ver também <@ref="resample"> para a reamostragem com substituição. 4153 4154# rank linalg 4155Resultado: número inteiro 4156Argumento: <@var="X"> (matriz) 4157 4158Retorna o posto de <@var="X">, calculada numericamente via decomposição em valores singulares. Ver também <@ref="svd">. 4159 4160# ranking stats 4161Resultado: o mesmo tipo que o argumento 4162Argumento: <@var="y"> (série ou vetor) 4163 4164Retorna uma série ou vetor com os ranks de <@mth=" y">. O rank para a observação <@mth="i"> é o número de elementos que são menores que <@mth=" y"><@sub="i"> mais 1. Se houver números iguais a <@mth="y"><@sub="i"> adiciona-se 0,5. Intuitivamente, pode-se pensar em uma partida de xadrez, onde uma vitória vale 1 ponto e um empate vale 0,5 pontos). É adicionado 1 ao rank de forma que o menor rank possível é 1 ao invés de 0. 4165 4166Ver também <@ref="sort">, <@ref="sortby">. 4167 4168# rcond linalg 4169Resultado: escalar 4170Argumento: <@var="A"> (matriz quadrada) 4171 4172Retorna o número condicional recíproco para <@var="A"> em relação à norma-1. Em várias circunstâncias, é uma medida de sensibilidade melhor de <@var="A"> em relação a operações numéricas, tais como a inversão, que o determinante. 4173 4174O valor é calculado como a recíproca do produto, norma-1 de <@var="A"> multiplicada pela norma-1 de <@var="A">-inverso. 4175 4176Ver também <@ref="det">, <@ref="ldet">, <@ref="onenorm">. 4177 4178# Re complex 4179Resultado: matriz 4180Argumento: <@var="C"> (matriz complexa) 4181 4182Retorna uma matriz real com a mesma dimensão que <@var="C">, contendo a parte real dessa matriz de entrada. Ver também <@ref="Im">. 4183 4184# readfile strings 4185Resultado: texto 4186Argumentos: <@var="fname"> (texto) 4187 <@var="codeset"> (texto, opcional) 4188 4189Se um arquivo com o nome <@var="fname"> existir e puder ser lido, a função retorna um texto (string) com o conteúdo desse arquivo, caso contrário retorna um erro. Se <@var=" fname"> não contiver o caminho completo até o arquivo, ele será procurado em algumas localizações “prováveis”, começando pelo <@xrf="workdir"> corrente. 4190 4191Se <@var="fname"> começar com o identificador de um protocolo de internet suportado (<@lit="http://">, <@lit="ftp://"> ou <@lit="https://">), libcurl será utilizado para baixar o arquivo. Veja também <@ref="curl"> para baixar arquivos de forma mais elaborada. 4192 4193Se o texto a ser lido não estiver codificado como UTF-8, Gretl tentará recodificá-lo a partir da codificação corrente se esta não for UTF-8, ou, caso contrário, a partir da codificação ISO-8859-15. Se essa estratégia padrão não funcionar é possível utilizar o segundo argumento (que é opcional) para especificar a codificação. Por exemplo, caso seja desejada a leitura de texto com codificação Microsoft 1251 e esta não seja a configuração local, pode-se fornecer o segundo argumento <@lit=""cp1251"">. 4194 4195Exemplos: 4196 4197<code> 4198 string web_page = readfile("http://gretl.sourceforge.net/") 4199 print web_page 4200 4201 string current_settings = readfile("@dotdir/.gretl2rc") 4202 print current_settings 4203</code> 4204 4205Veja também as funções <@ref="sscanf"> e <@ref="getline">. 4206 4207# regsub strings 4208Resultado: texto 4209Argumentos: <@var="s"> (texto) 4210 <@var="match"> (texto) 4211 <@var="repl"> (texto) 4212 4213Retorna uma cópia de <@var="s"> onde todas as ocorrências do padrão <@var="match"> são substituídas por <@var="repl">. Os argumentos <@var="match"> e <@var="repl"> são interpretados como expressões regulares no estilo Perl. 4214 4215Veja também <@ref="strsub"> para substituições simples de textos. 4216 4217# remove data-utils 4218Resultado: número inteiro 4219Argumento: <@var="fname"> (texto) 4220 4221Deleta o arquivo <@var="fname"> caso ele exista e seja gravável pelo usuário. Retorna 0 em caso de sucesso e um valor não-nulo se o arquivo não existir ou não puder ser removido. 4222 4223Se <@var="fname"> contiver o caminho completo para o arquivo o Gretl tentará deletá-lo e retornará um erro se ele não existir ou não puder ser apagado por algum motivo (um exemplo seria um arquivo do tipo somente-leitura). Se <@var="fname"> não contiver o caminho completo então será assumido que o arquivo está no diretório de trabalho (<@xrf="workdir">). Se o arquivo não existir ou não for gravável o Gretl não irá procurá-lo em nenhum outro diretório. 4224 4225# replace data-utils 4226Resultado: o mesmo tipo que o argumento 4227Argumentos: <@var="x"> (série ou matriz) 4228 <@var="find"> (escalar ou vetor) 4229 <@var="subst"> (escalar ou vetor) 4230 4231Substitui cada elemento de <@var="x"> igual ao <@mth="i">-ésimo elemento de <@var="find"> pelo correspondente elemento de <@var="subst">. 4232 4233Se <@var="find"> for um escalar, <@var="subst"> também deve ser um escalar. Se <@var="find"> e <@var="subst"> forem vetores, eles precisam ter o mesmo número de elementos. Mas se <@var="find"> for um vetor e <@var="subst"> um escalar, então todas as ocorrências serão substituídas por <@var="subst">. 4234 4235Exemplo: 4236 4237<code> 4238 a = {1,2,3;3,4,5} 4239 find = {1,3,4} 4240 subst = {-1,-8, 0} 4241 b = replace(a, find, subst) 4242 print a b 4243</code> 4244 4245produz 4246 4247<code> 4248 a (2 x 3) 4249 4250 1 2 3 4251 3 4 5 4252 4253 b (2 x 3) 4254 4255 -1 2 -8 4256 -8 0 5 4257</code> 4258 4259# resample stats 4260Resultado: o mesmo tipo que o argumento 4261Argumentos: <@var="x"> (série ou matriz) 4262 <@var="blocksize"> (número inteiro, opcional) 4263 4264A descrição inicial desta função refere-se aos dados de corte transversal ou de séries de tempo. Ao final é tratado o caso de dados em painel. 4265 4266Realiza a reamostragem de <@var="x"> com substituição. Quando uma série é utilizada como argumento, cada valor da série de retorno, <@mth="y"><@sub="t">, é sorteado entre todos os valores de <@mth="x"><@sub="t"> com igual probabilidade. Quando uma matriz é utilizada como argumento, cada linha da matriz retornada é sorteada entre todas as linhas de <@var="x"> com igual probabilidade. 4267 4268O argumento opcional <@var="blocksize"> representa o tamanho do bloco para a reamostragem via deslocamento de blocos. Caso este argumento seja dado, ele deve ser um número inteiro positivo maior ou igual a 2. Ao se utilizar este argumento a saída é composta pela seleção aleatória com substituição de todas as sequências contíguas possíveis com tamanho igual ao valor de <@var="blocksize"> na entrada (no caso da utilização de matrizes na entrada as linhas são contíguas). Se o comprimento do dado não for um número inteiro e múltiplo do tamanho do bloco, o bloco selecionado será truncado para se ajustar. 4269 4270Se o argumento <@var="x"> for uma série e o conjunto de dados for do tipo painel, a reamostragem via deslocamento de blocos não é suportada. A forma básica de reamostragem é suportada, mas passa a ter a seguinte interpretação: os dados são reamostrado “por indivíduo”. Suponha que você tenha um painel no qual 100 indivíduos são observados ao longo de 5 períodos. Nesse caso a série retornada será novamente composta de 100 blocos de 5 observações: cada bloco será sorteado com igual probabilidade entre 100 séries de tempo individuais, com a ordem da série temporal sendo preservada. 4271 4272# round math 4273Resultado: o mesmo tipo que o argumento 4274Argumento: <@var="x"> (escalar, série ou matriz) 4275 4276Arredondamento para o número inteiro mais próximo. Note que quando <@mth="x"> estiver exatamente entre dois inteiros, o arredondamento é feito de moda a "se afastar de zero", assim, por exemplo, 2.5 é arredondado para 3, mas <@lit="round(-3.5)"> retorna –4. Esta é uma convenção comum em programas de planilha eletrônica, mas outros programas podem gerar resultados diferentes. Ver também <@ref="ceil">, <@ref="floor">, <@ref="int">. 4277 4278# rnameget strings 4279Resultado: texto ou cadeia de texto 4280Argumentos: <@var="M"> (matriz) 4281 <@var="row"> (número inteiro, opcional) 4282 4283Se o argumento <@var="row"> for dado, retorna o nome da linha <@var="col"> da matriz <@var="M">. Se <@var="M"> não possuir nomes em suas linhas então será retornada um texto (string) vazio. Se <@var="row"> for maior que o número de linhas da matriz será sinalizado um erro. 4284 4285Se não se indicar o segundo argumento, retornará um vetor de texto contendo os nomes das linhas de <@var="M">, ou um vetor de texto vazio se <@var="M"> não tiver nomes de linhas atribuídos. 4286 4287Exemplo: 4288 4289<code> 4290 matrix A = { 11, 23, 13 ; 54, 15, 46 } 4291 rnameset(A, "First Second") 4292 string name = rnameget(A, 2) 4293 print name 4294</code> 4295 4296Ver também <@ref="rnameset">. 4297 4298# rnameset matrix 4299Resultado: número inteiro 4300Argumentos: <@var="M"> (matriz) 4301 <@var="S"> (cadeia de texto ou lista) 4302 4303Adiciona nomes para as linhas da matriz <@var="M"> de ordem <@itl="m">×<@itl="n"> . Se <@var="S"> for uma lista, os nomes serão os das séries listadas. A lista precisa ter <@mth=" m"> membros. Se <@var="S"> for um arranjo (array) de variáveis de texto (string), ele precisa ter <@mth="m"> elementos. Para manter a compatibilidade com versões anteriores do Gretl, uma única variável de texto também pode ser utilizada como segundo argumento. Nesse caso ela precisa ter <@mth="m"> textos separados por espaços. 4304 4305Retorna o valor 0 se as linhas forem nomeadas com sucesso. Caso contrário será retornado um valor não-nulo. Veja também <@ref="cnameset">. 4306 4307Exemplo: 4308 4309<code> 4310 matrix M = {1, 2; 2, 1; 4, 1} 4311 strings S = array(3) 4312 S[1] = "Row1" 4313 S[2] = "Row2" 4314 S[3] = "Row3" 4315 rnameset(M, S) 4316 print M 4317</code> 4318 4319# rows matrix 4320Resultado: número inteiro 4321Argumento: <@var="X"> (matriz) 4322 4323Retorna o número de linhas da matriz <@var="X">. Ver também <@ref="cols">, <@ref="mshape">, <@ref="unvech">, <@ref="vec">, <@ref="vech">. 4324 4325# schur complex 4326Resultado: matriz complexa 4327Argumentos: <@var="A"> (matriz complexa) 4328 <@var="&Z"> (referência a matriz, ou <@lit="null">) 4329 <@var="&w"> (referência a matriz, ou <@lit="null">) 4330 4331Executa a decomposição de Schur da matriz complexa <@var="A">, retornando uma matriz complexa triangular superior <@mth="T">. Caso seja fornecido o segundo argumento e seja diferente de <@lit="null"> a função retorna uma matriz complexa <@mth="Z"> contendo o vector de Schur associado a <@mth="A"> e <@mth="T">, tais que <@mth="A"> = <@mth="ZTZ"><@sup="H">. Se é dado um terceiro argumento retorna os valores próprios de <@mth="A"> num vector coluna complexo. 4332 4333# sd stats 4334Resultado: escalar ou série 4335Argumento: <@var="x"> (série ou lista) 4336 4337Se <@var="x"> for uma série a função retorna o desvio padrão amostral, descartando as observações ausentes. 4338 4339Se <@var="x"> for uma lista a função retorna uma série <@mth="y"> tal que <@mth="y"><@sub="t"> representa o desvio padrão amostral dos valores das variáveis na lista na observação <@mth="t">, ou <@lit="NA"> se existirem valores ausentes em <@mth="t">. 4340 4341Ver também <@ref="var">. 4342 4343# sdc stats 4344Resultado: vetor linha 4345Argumentos: <@var="X"> (matriz) 4346 <@var="df"> (escalar, opcional) 4347 4348Retorna os desvios padrão das colunas da matriz <@var="X ">. Se <@var="df"> for positivo ele será utilizado como o divisor para as variâncias das colunas, caso contrário o divisor será igual ao número de linhas em <@var="X"> (isto é, não será aplicada a correção de graus de liberdade). Ver também <@ref="meanc">, <@ref="sumc">. 4349 4350# sdiff transforms 4351Resultado: o mesmo tipo que o argumento 4352Argumento: <@var="y"> (série ou lista) 4353 4354Calcula diferenças sazonais: <@mth="y(t) - y(t-k)">, onde <@mth="k"> é a periodicidade do conjunto de dados corrente (veja <@ref="$pd">). Valores iniciais são definidos como <@lit="NA">. 4355 4356Quando uma lista for retornada, as variáveis individuais são automaticamente nomeadas de acordo com o seguinte padrão <@lit="sd_"><@var="varname">, onde <@var="varname"> é o nome da série original. A porção que representa o nome original da série será truncado, caso seja necessário, e ajustado no caso de não ser único no conjunto de nomes assim construído. 4357 4358Ver também <@ref="diff">, <@ref="ldiff">. 4359 4360# seasonals data-utils 4361Resultado: lista 4362Argumentos: <@var="baseline"> (número inteiro, opcional) 4363 <@var="center"> (booleano, opcional) 4364 4365Aplicável somente se o conjunto de dados tiver uma estrutura de série temporal com periodicidade maior que 1. Retorna uma lista com variáveis dummy que representam os períodos sazonais. As dummies sazonais são nomeadas como <@lit="S1">, <@lit="S2"> e assim por diante. 4366 4367O argumento opcional <@var="baseline"> pode ser utilizado para excluir um período do conjunto de dummies. Por exemplo, se for fornecido um valor igual a 1 em um conjunto de dados trimestrais a lista retornada conterá as dummies apenas para os trimestres 2, 3 e 4. Se este argumento for omitido ou for igual a 0 serão geradas as dummies para todos os períodos. É importante notar que o argumento deve ser um número inteiro e menor ou igual a periodicidade dos dados. 4368 4369O argumento <@var="center">, se for não-nulo, faz com que as dummies sejam centradas, isto é, que sejam subtraídas suas médias populacionais. Por exemplo, com dados trimestrais as dummies sazonais centradas terão valores iguais a –0.25 e 0.75 ao invés de 0 e 1. 4370 4371# selifc matrix 4372Resultado: matriz 4373Argumentos: <@var="A"> (matriz) 4374 <@var="b"> (vetor linha) 4375 4376Seleciona em <@var="A"> apenas as colunas para as quais o elemento correspondente em <@var="b"> é não-nulo. <@var="b"> deve ser um vetor linha com o mesmo número de colunas de <@var="A">. 4377 4378Ver também <@ref="selifr">. 4379 4380# selifr matrix 4381Resultado: matriz 4382Argumentos: <@var="A"> (matriz) 4383 <@var="b"> (vetor coluna) 4384 4385Seleciona em <@var="A"> apenas as linhas para as quais o elemento correspondente em <@var="b"> é não-nulo. <@var="b"> deve ser um vetor coluna com o mesmo número de linhas de <@var="A">. 4386 4387Ver também <@ref="selifc">, <@ref="trimr">. 4388 4389# seq matrix 4390Resultado: vetor linha 4391Argumentos: <@var="a"> (escalar) 4392 <@var="b"> (escalar) 4393 <@var="k"> (escalar, opcional) 4394 4395Retorna um vetor com a sequência crescente de <@var="a"> até <@var="b"> se o primeiro argumento for menor que o segundo. Se o primeiro argumento for maior que o segundo a sequência será decrescente. Em ambos os casos o incremento/decremento será de 1 unidade. 4396 4397Se o argumento opcional <@var="k"> for dado a função retorna um vetor com a sequência iniciada em <@var="a"> e aumentada, caso <@var="a"> for menor <@var="b">), em <@var="k "> unidades a cada passo. A sequência será finalizada no maior valor possível que seja menor ou igual a <@var="b">. Se o primeiro argumento for maior que o segundo a sequência será reduzida em <@var="k"> unidades e será finalizada no menor valor possível que seja maior ou igual a <@var="b">). O argumento <@var="k "> deve ser positivo. 4398 4399Ver também <@ref="ones">, <@ref="zeros">. 4400 4401# setnote data-utils 4402Resultado: número inteiro 4403Argumentos: <@var="b"> (lote) 4404 <@var="key"> (texto) 4405 <@var="note"> (texto) 4406 4407Insere uma nota descritiva para o objeto identificado por <@var="key"> em um pacote (bundle) <@var="b">. Esta nota será apresentada quando o comando <@lit="print"> for utilizado no pacote. A função retorna 0 em caso de sucesso e um valor não-nulo em caso de falha (por exemplo, se não existir o objeto <@var="key"> em <@var="b">). 4408 4409# sgn math 4410Resultado: o mesmo tipo que o argumento 4411Argumento: <@var="x"> (escalar, série ou matriz) 4412 4413Retorna o sinal do <@var="x">, ou seja, 0 se <@var="x"> é zero, 1 se <@var="x"> é positivo, –1 se <@var="x"> é negativo, ou <@lit="NA"> se <@var="x"> é um não-número (Not a Number). 4414 4415# simann numerical 4416Resultado: escalar 4417Argumentos: <@var="&b"> (referência a matriz) 4418 <@var="f"> (chamada a função) 4419 <@var="maxit"> (número inteiro, opcional) 4420 4421Implementa o algoritmo “simulated annealing” (conhecido também por recozimento simulado) que pode ser útil para melhorar a questão da inicialização em problemas de otimização numérica. 4422 4423O primeiro argumento contém o valor inicial de vetor de parâmetros e o segundo especifica uma chamada de função que retorna o valor (escalar) valor da variável a ser maximizada. O terceiro argumento, que é opcional, especifica o número máximo de iterações (a quantidade padrão é 1024). Caso seja executada com sucesso, a função <@lit="simann "> retorna o valor final da variável a ser maximizada e <@var=" b"> armazena o vetor de parâmetros associado. 4424 4425Para maiores detalhes e exemplo veja <@pdf="guia de utilização do Gretl#chap:numerical"> (Capítulo 37). Ver também <@ref="BFGSmax">, <@ref="NRmax">. 4426 4427# sin math 4428Resultado: o mesmo tipo que o argumento 4429Argumento: <@var="x"> (escalar, série ou matriz) 4430 4431Retorna o seno de <@var="x">. Ver também <@ref="cos">, <@ref="tan">, <@ref="atan">. 4432 4433# sinh math 4434Resultado: o mesmo tipo que o argumento 4435Argumento: <@var="x"> (escalar, série ou matriz) 4436 4437Retorna o seno hiperbólico de <@var="x">. 4438 4439Ver também <@ref="asinh">, <@ref="cosh">, <@ref="tanh">. 4440 4441# skewness stats 4442Resultado: escalar 4443Argumento: <@var="x"> (série) 4444 4445Retorna o valor de assimetria para a série <@var="x">, descartando quaisquer observações ausentes. 4446 4447# sleep programming 4448Resultado: escalar 4449Argumento: <@var="ns"> (número inteiro) 4450 4451Faz com que o processo (thread) corrente “hiberne”— isto é, que interrompa suas atividades—por <@var="ns"> segundos. Ao despertar da hibernação, a função retorna o valor 0. Apesar de não ser diretamente relacionada à econometria, essa função pode ser útil para testes de métodos de paralelização. 4452 4453# smplspan data-utils 4454Resultado: escalar 4455Argumentos: <@var="startobs"> (texto) 4456 <@var="endobs"> (texto) 4457 <@var="pd"> (número inteiro) 4458 4459Retorna o número de observações entre <@var="startobs"> e <@var="endobs"> (inclusive) de uma série temporal com frequência <@var="pd">. 4460 4461Os dois primeiros argumentos devem ser dados na forma padrão do Gretl para dados anuais, trimestrais ou mensais— por exemplo, <@lit="1970">, <@lit="1970:1"> ou <@lit="1970:01"> para cada uma das frequências, respectivamente—ou como datas no formato ISO 8601, <@lit="YYYY-MM-DD">. 4462 4463O argumento <@var="pd"> deve ser igual a 1, 4 ou 12 (anual, trimestral, mensal); uma das frequências diárias (5, 6, 7); ou 52 (semanal). Se <@var="pd"> for igual a 1, 4 ou 12, então pode-se utilizar datas no formato ISO 8601 nos dois primeiros argumentos se elas indicarem o início e o fim do período em questão. Por exemplo, <@lit="2015-04-01"> pode ser utilizada no lugar de <@lit="2015:2"> para representar o segundo trimestre de 2015. 4464 4465Se um conjunto de dados já aberto e com frequência <@var="pd">, com uma suficiente quantidade de observações, então o resultado dessa função poderia ser facilmente emulada utilizando <@ref="obsnum">. A vantagem de <@lit="smplspan"> é o fato de poder calcular o número de observações sem que seja necessário um conjunto de dados adequado (ou até mesmo nenhum conjunto de dados). Exemplo: 4466 4467<code> 4468 scalar T = smplspan("2010-01-01", "2015-12-31", 5) 4469 nulldata T 4470 setobs 7 2010-01-01 4471</code> 4472 4473O código acima produz o seguinte resultado: 4474 4475<code> 4476 ? scalar T = smplspan("2010-01-01", "2015-12-31", 5) 4477 Gerou-se o escalar T = 1565 4478 ? nulldata T 4479 periodicidade: 1, máx. obs: 1565 4480 intervalo das observações: 1 a 1565 4481 ? setobs 7 2010-01-01 4482 Intervalo completo dos dados: 2010-01-01 - 2014-04-14 (n = 1565) 4483</code> 4484 4485Após utilizar esse código pode-se ter a certeza de que a última observação no conjunto de dados criado via comando <@xrf="nulldata"> será <@lit="2015-12-31">. Note que a obtenção do número 1565 seria bem mais complicada de sem o uso dessa função. 4486 4487# sort matrix 4488Resultado: o mesmo tipo que o argumento 4489Argumento: <@var="x"> (série ou vetor) 4490 4491Ordena <@var="x"> de forma ascendente, descartando observações com valores ausentes quando <@mth="x"> for uma série. Ver também <@ref="dsort">, <@ref="values">. Especificamente para matrizes veja <@ref="msortby">. 4492 4493# sortby stats 4494Resultado: série 4495Argumentos: <@var="y1"> (série) 4496 <@var="y2"> (série) 4497 4498Retorna uma série contendo os elementos de <@var="y2"> ordenados de acordo com os valores crescente do primeiro argumento <@var="y1">. Ver também <@ref="sort">, <@ref="ranking">. 4499 4500# sprintf strings 4501Resultado: texto 4502Argumentos: <@var="format"> (texto) 4503 ... (ver abaixo) 4504 4505O texto (string) retornado é construído pela exibição dos valores dos argumentos finais, indicados pelas reticências acima, sob o controle do argumento <@var="format">. Esta função tem como objetivo oferecer mais flexibilidade na criação de textos. O argumento <@var=" format"> é utilizado para especificar de uma maneira precisa a forma como você deseja que os argumentos sejam exibidos. 4506 4507Em geral, o argumento <@var="format"> (que pode ser chamado de texto de formatação) deve ser uma expressão avaliada como um texto, mas na maioria dos casos será apenas um texto literal (uma sequência alfanumérica delimitada por aspas duplas). Algumas sequências de caracteres em <@var="format"> têm um significado especial: aqueles iniciados pelo símbolo de porcentagem (%) são interpretados como “espaços reservados” para os ítens contidos na lista de argumentos. Além disso, caracteres especiais, tal como o que indica nova linha (<@lit="\n ">), são representados através da combinação com uma barra invertida. 4508 4509Por exemplo, o código a seguir 4510 4511<code> 4512 scalar x = sqrt(5) 4513 string claim = sprintf("sqrt(%d) é (aproximadamente) %6.4f.\n", 5, x) 4514 print claim 4515</code> 4516 4517irá produzir 4518 4519<code> 4520 sqrt(5) é (aproximadamente) 2.2361. 4521</code> 4522 4523A expressão <@lit="%d"> dentro do argumento <@var="format"> indica que queremos na saída um número inteiro neste local. Como é a expressão “porcento” mais a esquerda, ela então tem efeito sobre o primeiro argumento, isto é, 5. A segunda sequência especial é <@lit="%6.4f">, que indica um valor decimal com ao menos 6 dígitos de largura e com ao menos 4 casas decimais. A quantidade de sequências como estas deve coincidir com o número de argumentos após o texto de formatação. 4524 4525Ver também a ajuda para o comando <@xrf="printf"> para maiores detalhes sobre a sintaxe que você pode utilizar para a formatação de textos (strings). 4526 4527# sqrt math 4528Resultado: o mesmo tipo que o argumento 4529Argumento: <@var="x"> (escalar, série ou matriz) 4530 4531Retorna a raiz quadrada positiva de <@var="x">. Gera <@lit="NA"> quando utilizada em valores negativos. 4532 4533Note que se o argumento for uma matriz, a operação será realizada para cada elemento. Além disso, dado que as matrizes não podem conter valores <@lit="NA">, a função irá gerar um erro se existirem valores negativos. Para a “raiz quadrada matricial” veja <@ref="cholesky">. 4534 4535# square transforms 4536Resultado: lista 4537Argumentos: <@var="L"> (lista) 4538 <@var="cross-products"> (booleano, opcional) 4539 4540Retorna uma lista contendo os quadrados das variáveis na lista <@var="L">. Seus elementos são nomeados de acordo com o seguinte esquema :<@lit="sq_"><@var="varname">. Se o segundo argumento (opcional) estiver presente e tiver um valor não-nulo, a lista também incluirá os produtos cruzados dos elementos de <@var="L"> que, por sua vez, são nomeados de acordo com o seguinte esquema: <@var="var1"><@lit="_"><@var="var2">. Nesses esquemas os nomes das séries de entrada serão truncados caso seja necessário e os nomes de saída podem ser ajustados em caso de de nomes duplicados na lista retornada. 4541 4542# sscanf strings 4543Resultado: número inteiro 4544Argumentos: <@var="src"> (texto) 4545 <@var="format"> (texto) 4546 ... (ver abaixo) 4547 4548Lê os valores de <@var="src"> sob controle do argumeto <@var="format"> e os usa para determinar os valores de um ou mais argumentos subsequentes, indicados pelas reticências acima. A função retorna o número de valores determinados. Esta é uma versão simplificada da função <@lit="sscanf"> na linguagem de programação C. 4549 4550O argumento <@var="src"> pode ser tanto um texto literal, delimitado por aspas duplas, ou o nome de uma variável de texto (string) previamente definida. O <@var="format"> é definido de forma similar ao texto de formatação utilizado em <@xrf="printf"> (mais detalhes serão dados abaixo). Os demais argumentos, representados acima pelas reticências devem ser uma lista separada por vírgulas contendo os nomes de variáveis pré-definidas: estas são os alvos da conversão de <@var="src">. Para os usuários com familiaridade com a linguagem C, pode-se prefixar os nomes de variáveis numéricas com <@lit="&">, mas isso não é uma exigência. 4551 4552O texto literal em <@var="format"> é comparado com <@var="src ">. Especificadores de conversão começam com <@lit="%">, sendo os especificadores reconhecidos <@lit="%f">, <@lit="%g"> ou <@lit="%lf"> para números de ponto flutuante; <@lit="%d"> para inteiros; <@lit="%s"> para textos; e <@lit="%m"> para matrizes. Você pode inserir um número inteiro positivo após o símbolo de porcentagem: isso ajusta o número máximo de caracteres a serem lidos por dado especificador de conversão (ou o número máximo de linhas no caso de conversão de matrizes). Alternativamente, você pode inserir um asterisco (<@lit="*">) após o símbolo de porcentagem para suprimir a conversão (ignorando assim quaisquer caracteres que teriam sido convertidos para um dado tipo). Por exemplo, <@lit="%3d"> converte os próximos 3 caracteres de <@var="source"> em um número inteiro, se possível; <@lit="%*g"> ignora a quantidade necessária de caracteres de <@var="source"> para que se obtenha apenas um número de ponto flutuante. 4553 4554A conversão de matrizes funciona da seguinte forma: a função lê uma linha da entrada e conta (com base na separação por espaço ou por tabulação) o número de campos numéricos. Isto define o número de colunas na matriz. Por padrão a leitura continua sendo feita enquanto enquanto a leitura de linhas devolver a mesma quantidade de colunas numéricas, mas o número máximo de linhas a serem lidas pode ser limitado de acorodo com o descrito acima. 4555 4556No caso de textos, em adição especificador <@lit="%s">, também é possível utilizar uma versão simplificada do formato utilizado na linguagem C: <@lit="%"><@var="N"><@lit="["><@var="chars "><@lit="]">. Neste formato <@var="N"> é o número máximo de caracteres a serem lidos <@var="chars"> é um conjunto de caracteres aceitáveis, delimitados por colchetes: a leitura para se <@var="N"> for atingido ou se um caractere que não está em <@var=" chars"> for encontrado. O comportamento de <@var="chars"> pode ser revertido se for utilizado um circunflexo, <@lit="^">, como sendo o primeiro caractere. Neste caso a leitura para se um caractere no dado conjunto for encontrado. Diferentemente de C, o hífen não exerce papel especial no conjunto <@var="chars">. 4557 4558Se o texto fonte (<@var="src">) não apresentar correspondência (completa) com o texto de formatação (<@var="format">), o número de conversões pode ficar abaixo do número de argumentos dados. Isto não é por si só um erro no que diz respeito ao Gretl. Caso queira verificar o número de conversões realizadas basta utilizar o valor retornado pela função. 4559 4560Alguns exemplos: 4561 4562<code> 4563 scalar x 4564 scalar y 4565 sscanf("123456", "%3d%3d", x, y) 4566 4567 S = sprintf("1 2 3 4\n5 6 7 8") 4568 S 4569 matrix m 4570 sscanf(S, "%m", m) 4571 print m 4572</code> 4573 4574# sst stats 4575Resultado: escalar 4576Argumento: <@var="y"> (série) 4577 4578Retorna a soma dos quadrados dos desvios em relação à média das observações não ausentes na série <@var="y">. Ver também <@ref="var">. 4579 4580# stack panel 4581Resultado: série 4582Argumentos: <@var="L"> (lista) 4583 <@var="n"> (número inteiro) 4584 <@var="offset"> (número inteiro, opcional) 4585 4586Destina-se a manipular dados em séries temporais para o tipo de dados empilhados requerido por gretl para dados de painel. O valor retornado é uma série obtida por empilhar “verticalmente” <@var="n"> observations de cada série da lista <@var="L">. Por defeito, são usadas as primeiras <@var="n"> (correspondendo ao argumento <@var="offset"> = 0) mas o ponto inicial pode ser deslocado ao se fornecer um valor positivo para <@var="offset">. Se a série resultante for maior que o conjunto de dados existente, serão acrescentadas observações conforme necessário. 4587 4588Esta função pode lidar com dados de séries temporais lado-a-lado para um certo número de unidades de secção cruzada, e também no caso onde o tempo é expresso horizontalmente e cada linha representa uma unidade de secção cruzada. 4589 4590Ver a secção intitulada “Detalhes de dados de painel” em <@pdf="guia de utilização do Gretl#chap:datafiles"> (Capítulo 4) para mais detalhes e exemplos de uso. 4591 4592# stdize transforms 4593Resultado: o mesmo tipo que o argumento 4594Argumentos: <@var="X"> (série, lista ou matriz) 4595 <@var="v"> (número inteiro, opcional) 4596 4597Por defeito, retorna uma versão padronizada da série, lista ou matriz: os dados de entrada são centrados e divididos pelo seu desvio padrão amostral (com uma correção de graus de liberdade de 1). Os resultados são calculados por coluna no caso de uma matriz. 4598 4599O segundo argumento (opcional) pode ser utilizado para influenciar o resultado. Um valor não negativo de <@var="v"> define os graus de liberdade usados no desvio padrão, assim, <@var="v"> = 0 resulta no estimador de máxima verosimilhança. Como caso especial, se <@var="v"> é igual a –1 apenas é feita a centragem. 4600 4601# strftime calendar 4602Resultado: texto 4603Argumentos: <@var="t"> (escalar) 4604 <@var="formato"> (texto, opcional) 4605 4606O argumento <@var="t"> é interpretado como o número de segundos decorridos desde o início do ano 1970 no fuso horário UTC (Tempo Universal Coordenado, anteriomente designado como Tempo Médio de Greenwich (GMT) ); produz uma cadeia de texto com a data e hora correspondente. O formato por defeito é o mesmo que o padrão no sistema, mas pode ser modificado se o segundo argumento (opcional) é uma cadeia de texto de formatação. 4607 4608Os valores adequados como argumentos <@var="t"> para esta função podem ser obtidos a partir do acessor <@ref="$now"> ou da função <@ref="strptime">. 4609 4610Os detalhes da opção de formatação podem ser obtidos na página do manual de <@lit="strftime">, nos sistemas que o disponibilizam, ou num dos muitos sítios que têm essa informação, como por exemplo <@url="https://devhints.io/strftime">. 4611 4612# stringify strings 4613Resultado: número inteiro 4614Argumentos: <@var="y"> (série) 4615 <@var="S"> (cadeia de texto) 4616 4617Fornece uma maneira de definir valores de texto para a série <@var="y">. Duas condições são necessárias para isso: a variável alvo deve ser formada apenas por números inteiros, com nenhum deles sendo menor que 1, e o arranjo (array) <@var="S "> deve possuir ao menos <@mth="n"> elementos, onde <@mth="n"> é o maior valor em <@var="y">. Adicionalmente, cada elemento de <@var="S"> deve estar representado com base na codificação UTF-8. Ver também <@ref="strvals">. 4618 4619O valor retornado é zero em caso de sucesso ou um código positivo de erro caso a função não tenha sucesso. 4620 4621# strlen strings 4622Resultado: número inteiro 4623Argumento: <@var="s"> (texto) 4624 4625Retorna o número de caracteres no texto (string) <@var="s">. Note que isso não será necessariamente igual ao número de bytes se alguns caracteres estiverem fora do intervalo de impressão ASCII. 4626 4627Exemplo: 4628 4629<code> 4630 string s = "regression" 4631 scalar number = strlen(s) 4632 print number 4633</code> 4634 4635# strncmp strings 4636Resultado: número inteiro 4637Argumentos: <@var="s1"> (texto) 4638 <@var="s2"> (texto) 4639 <@var="n"> (número inteiro, opcional) 4640 4641Compara dois textos (string) e retorna um inteiro menor que, igual ou maior que 0 se <@var="s1"> se for, respectivamente menor que, igual ou maior que <@var="s2">, até o primeiro caractere <@var="n">. Se <@var="n"> for omitido a comparação irá prosseguir até onde for possível. 4642 4643Caso deseje apenas verificar se dois textos são iguais não é necessário utilizar esta função. Ao invés disso é pode-se usar a seguinte expressão: <@lit="if (s1 == s2)...">. 4644 4645# strptime calendar 4646Resultado: escalar 4647Argumentos: <@var="s"> (texto) 4648 <@var="formato"> (texto) 4649 4650Esta função é a inversa de <@ref="strftime">; interpreta a cadeia de texto <@var="s"> como sendo data ou hora usando o <@var="formato"> especificado e retorna o número de segundos desde o início de 1970 (UTC). 4651 4652As opções para o <@var="formato"> estão disponíveis na página do manual de <@lit="strptime">, nos sistemas que o disponibilizam, ou num dos muitos sítios com essa informação, como por exemplo <@url="http://man7.org/linux/man-pages/man3/strptime.3.html">. 4653 4654O exemplo abaixo mostra como converter informação de data de um formato para outro. 4655 4656<code> 4657 scalar tm = strptime("Thursday 02/07/19", "%A %m/%d/%y") 4658 eval strftime(tm) # default output 4659 eval strftime(tm, "%d %B, %Y") 4660</code> 4661 4662Se a Língua é o Português, o resultado é 4663 4664<code> 4665 ? scalar tm = strptime("Thursday 02/07/19", "%A %m/%d/%y") 4666 Gerou-se o escalar tm = 1,5495e+09 4667 ? eval strftime(tm) # default output 4668 qui 07 fev 2019 00:00:00 4669 ? eval strftime(tm, "%d %B, %Y") 4670 07 fevereiro, 2019 4671</code> 4672 4673# strsplit strings 4674Resultado: texto ou cadeia de texto 4675Argumentos: <@var="s"> (texto) 4676 <@var="i"> (número inteiro, opcional) 4677 <@var="sep"> (texto, opcional) 4678 4679Em seu uso mais simples, ou seja, com apenas um argumento, retorna o arranjo (array) com textos (string) resultante da separação de <@var="s"> de acordo com os espaços em branco. 4680 4681Se for fornecido um número inteiro e maior que zero como segundo argumento, retorna o elemento <@var="i"> do texto <@var="s">, após ter sido separado por espaços. Se <@var="i"> for menor irá gerar um erro. Se <@var="i"> for maior que o número total de elementos será retornado um texto vazio. 4682 4683O terceiro argumento opcional pode ser utilizado para definir qual será o critério a ser utilizado para separar <@var="s">. Por exemplo: 4684 4685<code> 4686 string basket = "banana,apple,jackfruit,orange" 4687 strings S = strsplit(basket,,",") 4688</code> 4689 4690Os comandos acima irão separar o texto de entrada em um vetor contendo quatro textos utilizando a vírgula como separadora. A vírgula “extra” na entrada acima serve para indicar que o argumento <@var="i"> não foi utilizado. 4691 4692As sequências de escape “<@lit="\n">” e “<@lit="\t">” são utilizadas para representar uma nova linha ou um espaço por tabulação no argumento opcional <@var="sep">. Caso o separador seja literalmente uma barra invertida deve-se utilizar a barra de forma duplicada, “<@lit="\\">”. Exemplo: 4693 4694<code> 4695 string s = "c:\fiddle\sticks" 4696 strings S = strsplit(s, "\\") 4697</code> 4698 4699# strstr strings 4700Resultado: texto 4701Argumentos: <@var="s1"> (texto) 4702 <@var="s2"> (texto) 4703 4704Procura em <@var="s1"> o texto <@var="s2">. Se o texto for encontrado a função retorna uma cópia da parte de <@var="s1"> que começa com <@var="s2">, caso contrário retorna um texto vazio. 4705 4706Exemplo: 4707 4708<code> 4709 string s1 = "Gretl is an econometrics package" 4710 string s2 = strstr(s1, "an") 4711 print s2 4712</code> 4713 4714Se o objetivo for apenas verificar se <@var="s1"> contém <@var="s2"> (teste booleano), ver <@ref="instring">. 4715 4716# strstrip strings 4717Resultado: texto 4718Argumento: <@var="s"> (texto) 4719 4720Retorna uma cópia de <@var="s"> na qual os espaços em branco do início e do fim do texto são removidos. 4721 4722Exemplo: 4723 4724<code> 4725 string s1 = " A lot of white space. " 4726 string s2 = strstrip(s1) 4727 print s1 s2 4728</code> 4729 4730# strsub strings 4731Resultado: texto 4732Argumentos: <@var="s"> (texto) 4733 <@var="find"> (texto) 4734 <@var="subst"> (texto) 4735 4736Retorna uma cópia de <@var="s"> na qual todas as ocorrências de <@var="find"> são substituídas por <@var="subst">. Veja também <@ref="regsub"> para substituições mais complexas via expressões regulares. 4737 4738Exemplo: 4739 4740<code> 4741 string s1 = "Hello, Gretl!" 4742 string s2 = strsub(s1, "Gretl", "Hansl") 4743 print s2 4744</code> 4745 4746# strvals strings 4747Resultado: cadeia de texto 4748Argumento: <@var="y"> (série) 4749 4750Se uma série <@var="y"> for não-numérica, retorna um arranjo (array) contendo todos os seus valores distintos, ordenados pelos valores numéricos associados iniciados em 1. Se <@var="y"> não for não-numérico, retorna um arranjo de texto (strings) vazio. Observação: variáveis não-numéricas surgem, normalmente, quando existem séries cujas observações são textos. Ver também <@ref="stringify">. 4751 4752# substr strings 4753Resultado: texto 4754Argumentos: <@var="s"> (texto) 4755 <@var="start"> (número inteiro) 4756 <@var="end"> (número inteiro) 4757 4758Retorna uma parte do texto <@var="s"> começando em <@var="start"> e terminando em <@var="end">, inclusive. 4759 4760Exemplos: 4761 4762<code> 4763 string s1 = "Hello, Gretl!" 4764 string s2 = substr(s1, 8, 12) 4765 string s3 = substr("Hello, Gretl!", 8, 12) 4766 print s2 4767 print s3 4768</code> 4769 4770Esses exemplos fornecem: 4771 4772<code> 4773 ? print s2 4774 Gretl 4775 ? print s3 4776 Gretl 4777</code> 4778 4779Deve-se notar que em alguns casos pode-se desejar trocar a clareza da sintaxe pela sua simplicidade e usar operadores de seleção e incremento. Por exemplo: 4780 4781<code> 4782 string s1 = "Hello, Gretl!" 4783 string s2 = s1[8:12] 4784 string s3 = s1 + 7 4785 print s2 4786 print s3 4787</code> 4788 4789Esses exemplos fornecem: 4790 4791<code> 4792 ? print s2 4793 Gretl 4794 ? print s3 4795 Gretl! 4796</code> 4797 4798# sum stats 4799Resultado: escalar ou série 4800Argumento: <@var="x"> (série, matriz ou lista) 4801 4802Se <@var="x"> for uma série, retorna a soma, na forma de um escalar, das observações não ausentes em <@var="x">. Veja também <@ref="sumall">. 4803 4804Se <@var="x"> for uma matriz, retorna a soma dos elementos da matriz. 4805 4806Se <@var="x"> for uma lista, retorna uma série <@mth="y"> na qual <@mth="y"><@sub="t"> é a soma dos valores das variáveis da lista na observação <@mth="t">, ou <@lit="NA"> se existir qualquer valor ausente em <@mth="t">. 4807 4808# sumall stats 4809Resultado: escalar 4810Argumento: <@var="x"> (série) 4811 4812Retorna a soma das observações de <@var="x"> dentro da amostra selecionada. Se existir qualquer valor ausente a função retornará <@lit="NA">. Use <@ref="sum"> caso deseje que os valores correntes sejam descartados. 4813 4814# sumc stats 4815Resultado: vetor linha 4816Argumento: <@var="X"> (matriz) 4817 4818Retorna um vetor com a soma das colunas de <@var="X"> Ver também <@ref="meanc">, <@ref="sumr">. 4819 4820# sumr stats 4821Resultado: vetor coluna 4822Argumento: <@var="X"> (matriz) 4823 4824Retorna um vetor com a soma das linhas de <@var="X"> Ver também <@ref="meanr">, <@ref="sumc">. 4825 4826# svd linalg 4827Resultado: vetor linha 4828Argumentos: <@var="X"> (matriz) 4829 <@var="&U"> (referência a matriz, ou <@lit="null">) 4830 <@var="&V"> (referência a matriz, ou <@lit="null">) 4831 4832Realiza a decomposição em valores singulares da matriz <@var="X">. 4833 4834Os valores singulares são retornados em um vetor linha. Os vetores singulares à esquerda e/ou à direta <@mth="U"> e <@mth="V"> podem ser obtidos ao se fornecer valores não-nulos para os argumentos 2 e 3, respectivamente. Para qualquer matriz <@lit="A">, o código 4835 4836<code> 4837 s = svd(A, &U, &V) 4838 B = (U .* s) * V 4839</code> 4840 4841deve gerar <@lit="B"> idêntico a <@lit="A"> (desconsiderando as possíveis discrepâncias geradas pela questão da precisão de máquina). 4842 4843Ver também <@ref="eigengen">, <@ref="eigensym">, <@ref="qrdecomp">. 4844 4845# svm nonparam 4846Resultado: série 4847Argumentos: <@var="L"> (lista) 4848 <@var="param"> (lote) 4849 <@var="bmod"> (referência a lote, opcional) 4850 <@var="bprob"> (referência a lote, opcional) 4851 4852Esta função permite o treinamento de um modelo SVM (Supervised Vector Machine) e a respectiva predição; o motor utilizado é a biblioteca LIBSVM. A lista passada como argumento <@var="L"> deve incluir a variável dependente, seguida pelas variáveis independentes, e o bundle <@var="param"> é usado para passar opções para o mecanismo SVM. A função retorna uma série contendo as predições SVM. Os dois outros parâmetros opcionais são ponteiros para bundles para recolher informação adicional após o treinamento e ou a predição. 4853 4854Para mais detalhes, consultar a documentação em PDF: <@mnu="gretlSVM">. 4855 4856# tan math 4857Resultado: o mesmo tipo que o argumento 4858Argumento: <@var="x"> (escalar, série ou matriz) 4859 4860Retorna a tangente de <@var="x">. Ver também <@ref="atan">, <@ref="cos">, <@ref="sin">. 4861 4862# tanh math 4863Resultado: o mesmo tipo que o argumento 4864Argumento: <@var="x"> (escalar, série ou matriz) 4865 4866Retorna a tangente hiperbólica de <@var="x">. 4867 4868Ver também <@ref="atanh">, <@ref="cosh">, <@ref="sinh">. 4869 4870# tdisagg transforms 4871Resultado: matriz 4872Argumentos: <@var="Y"> (série ou matriz) 4873 <@var="X"> (série, lista ou matriz, opcional) 4874 <@var="s"> (escalar) 4875 <@var="opções"> (lote, opcional) 4876 <@var="resultados"> (lote, opcional) 4877 4878Produz desagregação temporal (conversão para maior frequência) da série temporal em <@var="Y">. O argumento <@var="s"> fornece o factor de expansão (por exemplo, 3 de trimestral para mensal). O argumento <@var="X"> pode conter uma ou mais covariáveis na frequência maior para auxiliar na desagregação. Podem ser passadas diversas opções em <@var="opções">, e os detalhes da desagregação podem ser obtidos por via nos <@var="resultados">. 4879 4880Ver mais detalhes em <@pdf="guia de utilização do Gretl#chap:tdisagg"> (Capítulo 9). 4881 4882# toepsolv linalg 4883Resultado: vetor coluna 4884Argumentos: <@var="c"> (vetor) 4885 <@var="r"> (vetor) 4886 <@var="b"> (vetor) 4887 4888Resolve um sistema de Toeplitz de equações lineares, isto é <@mth="Tx = b"> onde <@mth="T "> é uma matriz quadrada cujo elemento <@mth="T"><@sub="i,j"> é igual a <@mth="c"><@sub="i-j"> para <@mth="i>=j"> e <@mth="r"><@sub="j-i"> para <@mth="i<=j">. Note que os primeiros elementos de <@mth="c"> e <@mth="r"> precisam ser iguais, caso contrário um erro é retornado. Se executada com sucesso, a função retorna o vetor <@mth="x">. 4889 4890O algoritmo utilizado por esta função se aproveita da estrutura especial que a matriz <@mth="T"> possui, o que o torna bem mais eficiente que outros algoritmos não especializados, em especial para grandes problemas. Atenção! Em certos casos a função pode, de forma espúria, emitir uma mensagem apontando que a matriz tem problemas de singularidade quando na verdade <@mth="T"> é não-singular. Este problema, entretanto, não pode ocorrer quando <@mth="T"> é definida positiva. 4891 4892# tolower strings 4893Resultado: texto 4894Argumento: <@var="s"> (texto) 4895 4896Retorna uma cópia de <@var="s"> na qual todos os caracteres maiúsculos são convertidos em minúsculos. 4897 4898Exemplos: 4899 4900<code> 4901 string s1 = "Hello, Gretl!" 4902 string s2 = tolower(s1) 4903 print s2 4904 4905 string s3 = tolower("Hello, Gretl!") 4906 print s3 4907</code> 4908 4909# toupper strings 4910Resultado: texto 4911Argumento: <@var="s"> (texto) 4912 4913Retorna uma cópia de <@var="s"> na qual todos os caracteres minúsculos são convertidos em maiúsculos. 4914 4915Exemplos: 4916 4917<code> 4918 string s1 = "Hello, Gretl!" 4919 string s2 = toupper(s1) 4920 print s2 4921 4922 string s3 = toupper("Hello, Gretl!") 4923 print s3 4924</code> 4925 4926# tr linalg 4927Resultado: escalar 4928Argumento: <@var="A"> (matriz quadrada) 4929 4930Retorna o traço de uma matriz quadrada <@var="A">, isto é, a soma dos elementos de sua diagonal. Ver também <@ref="diag">. 4931 4932# transp linalg 4933Resultado: matriz 4934Argumento: <@var="X"> (matriz) 4935 4936Retorna a transposta de <@var="X">. Observação: esta função é raramente utilizada. Para transpor uma matriz, na maior parte dos casos, pode-se simplesmente utilizar o operador de transposição: <@lit="X'">. 4937 4938# trimr matrix 4939Resultado: matriz 4940Argumentos: <@var="X"> (matriz) 4941 <@var="ttop"> (número inteiro) 4942 <@var="tbot"> (número inteiro) 4943 4944Retorna uma cópia da matriz <@var="X"> com <@var=" ttop"> linhas superiores excluídas e <@var="tbot"> linhas inferiores excluídas. Os dois últimos argumentos devem ser não-negativos e sua soma deve ser menor que o total de linhas de <@var="X">. 4945 4946Ver também <@ref="selifr">. 4947 4948# typeof data-utils 4949Resultado: número inteiro 4950Argumento: <@var="name"> (texto) 4951 4952Retorna o código numérico de tipo se <@var="name"> for o identificador de um objeto definido: 1 para escalar, 2 para série, 3 para matriz, 4 para texto (string), 5 para pacote (bundle), 6 para arranjo (array) e 7 para lista. Caso contrário retorna 0. A função <@ref="typestr"> pode ser utilizada para obter o nome do objeto que corresponde ao código numérico. 4953 4954Essa função também pode ser utilizada para obter o tipo de um membro de um pacote ou de um elemento de um arranjo. Por exemplo: 4955 4956<code> 4957 matrices M = array(1) 4958 eval typestr(typeof(M)) 4959 eval typestr(typeof(M[1])) 4960</code> 4961 4962O primeiro resultado do comando <@lit="eval"> é “array ” e o segundo é “matrix”. 4963 4964# typestr data-utils 4965Resultado: texto 4966Argumento: <@var="typecode"> (número inteiro) 4967 4968Retorna o nome do tipo de dado correspondente a <@var="typecode">. Pode ser utilizada em conjunto com as funções <@ref="typeof"> e <@ref="inbundle">. O valor retornado pode ser “scalar”, “series”, “matrix”, “string”, “bundle”, “array” ou “null”. 4969 4970# uniform probdist 4971Resultado: série 4972Argumentos: <@var="a"> (escalar) 4973 <@var="b"> (escalar) 4974 4975Cria uma variável pseudo-aleatória uniforme no intervalo (<@var=" a">, <@var="b">) ou, se não forem fornecidos argumentos, será utilizado o intervalo (0,1). O algoritmo utilizado por padrão é o “SIMD-oriented Fast Mersenne Twister” desenvolvido por <@bib="Saito and Matsumoto (2008);saito_matsumoto08">. 4976 4977Ver também <@ref="randgen">, <@ref="normal">, <@ref="mnormal">, <@ref="muniform">. 4978 4979# uniq stats 4980Resultado: vetor coluna 4981Argumento: <@var="x"> (série ou vetor) 4982 4983Retorna um vetor contendo os elementos distintos de <@var="x "> de forma não ordenada, mas na ordem em que aparecem em <@var="x">. Veja <@ref="values"> para a variante desta função que retorna os valores ordenados. 4984 4985# unvech matrix 4986Resultado: matriz quadrada 4987Argumento: <@var="v"> (vetor) 4988 4989Retorna uma matriz simétrica de ordem <@itl="n">×<@itl="n"> rearranjando os elementos de <@mth="v">. O número de elementos de <@mth="v"> deve ser um inteiro triangular, ou seja, um número <@mth="k"> tal que exista um inteiro <@mth="n"> que tenha a seguinte propriedade: <@mth="k = n(n+1)/2">. Esta função é a inversa de <@ref="vech">. 4990 4991Ver também <@ref="mshape">, <@ref="vech">. 4992 4993# upper matrix 4994Resultado: matriz quadrada 4995Argumento: <@var="A"> (matriz quadrada) 4996 4997Retorna uma matriz triangular superior de ordem <@itl="n">×<@itl="n">. Os elementos da diagonal e acima desta são iguais aos elementos correspondentes de <@var="A"> e os demais iguais a zero. 4998 4999Ver também <@ref="lower">. 5000 5001# urcpval probdist 5002Resultado: escalar 5003Argumentos: <@var="tau"> (escalar) 5004 <@var="n"> (número inteiro) 5005 <@var="niv"> (número inteiro) 5006 <@var="itv"> (número inteiro) 5007 5008<@mth="P">-valores para a estatística de teste do teste de raízes unitárias de Dickey–Fuller e do teste de cointegração de Engle–Granger, conforme <@bib="James MacKinnon (1996);mackinnon96">. 5009 5010Os argumentos dessa função são: <@var="tau"> representa a estatística de teste; <@var="n"> representa o número de observações (ou 0 para um resultado assintótico); <@var="niv"> representa o número de variáveis potencialmente cointegradas quando se estiver testando a cointegração (ou 1 para testes univariados de raiz unitária) e; <@var="itv"> é um código para a especificação do modelo: 1 para teste sem constante, 2 para teste com constante, 3 para teste com contante e tendência linear, 4 para teste com constante e tendência quadrática. 5011 5012Note que se a regressão de teste for “aumentada” com defasagens da variável dependente, então será necessário fornecer um valor <@var="n"> igual a 0 para obter resultados assintóticos. 5013 5014Ver também <@ref="pvalue">, <@ref="qlrpval">. 5015 5016# values stats 5017Resultado: vetor coluna 5018Argumento: <@var="x"> (série ou vetor) 5019 5020Retorna um vetor contendo os elementos distintos de <@var="x"> ordenados de forma ascendente. Caso deseje truncar a parte decimal antes de aplicar a função, utilize a expressão <@lit="values(int(x))">. 5021 5022Ver também <@ref="uniq">, <@ref="dsort">, <@ref="sort">. 5023 5024# var stats 5025Resultado: escalar ou série 5026Argumento: <@var="x"> (série ou lista) 5027 5028Se <@var="x"> for uma série, retorna a variância amostral na forma de um escalar, ignorando quaisquer observações ausentes. 5029 5030Se <@var="x"> for uma lista, retorna uma série <@mth="y"> tal que <@mth="y"><@sub="t"> é a variância amostral dos valores das variáveis na lista na observação <@mth="t">, ou <@lit="NA"> se existir algum valor ausente em <@mth="t">. 5031 5032Em cada caso, a soma dos desvios ao quadrado em relação à média é dividido por (<@mth="n"> – 1) para <@mth="n"> > 1. Caso contrário, a variância é igual a zero se <@mth="n "> = 1, ou é <@lit="NA"> se <@mth="n"> = 0. 5033 5034Ver também <@ref="sd">. 5035 5036# varname strings 5037Resultado: texto 5038Argumento: <@var="v"> (número inteiro ou lista) 5039 5040Se for utilizado um inteiro como argumento, a função retorna o nome da variável com número ID igual a <@var="v"> ou um erro se esta variável não existir. 5041 5042Se for utilizado uma lista como argumento, retorna o texto (string) contendo os nomes das variáveis na lista, separados por vírgulas. Se for fornecida uma lista vazia será retornado um texto vazio. Para obter um arranjo (array) de textos pode-se utilizar <@ref="varnames">. 5043 5044Exemplo: 5045 5046<code> 5047 open broiler.gdt 5048 string s = varname(7) 5049 print s 5050</code> 5051 5052# varnames strings 5053Resultado: cadeia de texto 5054Argumento: <@var="L"> (lista) 5055 5056Retorna um arranjo (array) de textos (string) contendo os nomes das variáveis na lista <@var="L">. Se a lista for vazia será retornado um arranjo vazio. 5057 5058Exemplo: 5059 5060<code> 5061 open keane.gdt 5062 list L = year wage status 5063 strings S = varnames(L) 5064 eval S[1] 5065 eval S[2] 5066 eval S[3] 5067</code> 5068 5069# varnum data-utils 5070Resultado: número inteiro 5071Argumento: <@var="varname"> (texto) 5072 5073Retorna o número ID da variável <@var="varname"> ou NA se a variável não existir. 5074 5075# varsimul timeseries 5076Resultado: matriz 5077Argumentos: <@var="A"> (matriz) 5078 <@var="U"> (matriz) 5079 <@var="y0"> (matriz) 5080 5081Simula um VAR de ordem <@mth="p"> com <@mth="n"> variáveis, ou seja, <@mth="y(t) = A1 y(t-1) + ... + Ap y(t-p) + u(t)."> A matriz de coeficientes <@var="A"> é composta através do empilhamento das matrizes <@mth="A"><@sub="i"> horizontalmente, e tem ordem <@itl="n">×<@itl="np">, com uma linha por equação. Isso corresponde as primeiras <@mth="n"> linhas da matriz companheira, acessada via <@lit="$compan"> após o uso dos comandos <@lit="var"> e <@lit="vecm">. 5082 5083Os vetores <@mth="u_t"> estão contidos (como linhas) em <@var=" U"> (<@itl="T">×<@itl="n">). Valores iniciais estão contidos em <@var="y0"> (<@itl="p">×<@itl="n">). 5084 5085Se o VAR contiver termos determinísticos e/ou regressores exógenos, estes podem ser incluídos na matriz <@var="U">. Cada linha de <@var="U"> passa a incluir esses termos, ou seja, <@mth="u(t) = B'x(t) + e(t)."> 5086 5087A matriz de saída tem <@mth="T"> + <@mth="p"> linhas e <@mth="n"> colunas e armazena os <@mth="p"> valores iniciais das variáveis endógenas mais <@mth="T"> valores simulados. 5088 5089Ver também <@ref="$compan">, <@xrf="var">, <@xrf="vecm">. 5090 5091# vec matrix 5092Resultado: vetor coluna 5093Argumento: <@var="X"> (matriz) 5094 5095Empilha as colunas de <@var="X"> como um vetor coluna. Ver também <@ref="mshape">, <@ref="unvech">, <@ref="vech">. 5096 5097# vech matrix 5098Resultado: vetor coluna 5099Argumento: <@var="A"> (matriz quadrada) 5100 5101Retorna em um vetor coluna os elementos de <@var="A"> que estão em sua diagonal e acima dela. Normalmente essa função é utilizada em matrizes simétricas. Neste caso a essa operação pode ser revertida através da função <@ref="unvech">. Ver também <@ref="vec">. 5102 5103# weekday calendar 5104Resultado: o mesmo tipo que o argumento 5105Argumentos: <@var="ano"> (escalar ou série) 5106 <@var="mês"> (escalar ou série) 5107 <@var="dia"> (escalar ou série) 5108 5109Retorna o dia da semana (domingo = 0, segunda-feira = 1, etc.) para a(s) data(s) especificadas por três argumentos ou <@lit="NA"> se a data for inválida. Note que os três argumentos devem ser do mesmo tipo, ou seja, devem ser todos do tipo escalar (inteiro) ou todos do tipo séries. 5110 5111# wmean transforms 5112Resultado: série 5113Argumentos: <@var="Y"> (lista) 5114 <@var="W"> (lista) 5115 5116Retorna uma série <@mth="y"> tal que <@mth="y"><@sub="t"> é a média ponderada dos valores das variáveis na lista <@var="Y"> na observação <@mth="t">, com os respectivos pesos dados pelos valores das variáveis na lista <@var="W"> em <@mth="t">. Os pesos podem assim variar no tempo. As listas <@var="Y"> e <@var="W"> devem ter o mesmo tamanho e os pesos devem ser não-negativos. 5117 5118Ver também <@ref="wsd">, <@ref="wvar">. 5119 5120# wsd transforms 5121Resultado: série 5122Argumentos: <@var="Y"> (lista) 5123 <@var="W"> (lista) 5124 5125Retorna uma série <@mth="y"> tal que <@mth="y"><@sub="t"> é o desvio padrão amostral ponderado dos valores das variáveis na lista <@var="Y"> na observação <@mth="t">, com os respectivos pesos dados pelos valores das variáveis na lista <@var="W"> em <@mth="t">. Os pesos podem assim variar no tempo. As listas <@var="Y"> e <@var="W"> devem ter o mesmo tamanho e os pesos devem ser não-negativos. 5126 5127Ver também <@ref="wmean">, <@ref="wvar">. 5128 5129# wvar transforms 5130Resultado: série 5131Argumentos: <@var="X"> (lista) 5132 <@var="W"> (lista) 5133 5134Retorna uma série <@mth="y"> tal que <@mth="y"><@sub="t"> é a variância amostral ponderada dos valores das variáveis na lista <@var="Y"> na observação <@mth="t">, com os respectivos pesos dados pelos valores das variáveis na lista <@var="W"> em <@mth="t">. Os pesos podem assim variar no tempo. As listas <@var="Y"> e <@var="W"> devem ter o mesmo tamanho e os pesos devem ser não-negativos. 5135 5136Ver também <@ref="wmean">, <@ref="wsd">. 5137 5138# xmax math 5139Resultado: escalar 5140Argumentos: <@var="x"> (escalar) 5141 <@var="y"> (escalar) 5142 5143Retorna o maior valor na comparação entre <@var="x"> e <@var="y">. Se algum dos valores for ausente será retornado <@lit="NA">. 5144 5145Ver também <@ref="xmin">, <@ref="max">, <@ref="min">. 5146 5147# xmin math 5148Resultado: escalar 5149Argumentos: <@var="x"> (escalar) 5150 <@var="y"> (escalar) 5151 5152Retorna o menor valor na comparação entre <@var="x"> e <@var="y">. Se algum dos valores for ausente será retornado <@lit="NA">. 5153 5154Ver também <@ref="xmax">, <@ref="max">, <@ref="min">. 5155 5156# xmlget data-utils 5157Resultado: texto 5158Argumentos: <@var="buf"> (texto) 5159 <@var="path"> (texto ou cadeia de texto) 5160 5161O argumento <@var="buf"> deve ser um buffer XML, que pode ser obtido de alguma página na internet via função <@ref="curl"> (ou lida a partir de arquivo via função <@ref="readfile">), e o argumento <@var="path"> deve ser uma especificação única ou um vetor de especificações. 5162 5163Esta função retorna uma variável de texto (string) representando os dados encontrados no buffer XML no path especificado. Se múltiplos nós corresponderem com a expressão path, os itens dos dados são apresentados em linhas separadas no texto retornado. Se um vetor de paths for utilizado como segundo argumento, o texto retornado assume a forma de um buffer separado por vírgulas, com a coluna <@mth="i "> contendo as correspondências do path <@mth="i">. Nesse caso, se um texto obtido do buffer XML contiver quaisquer espaços ou vírgulas ela ficará entre aspas duplas. 5164 5165Por padrão um erro é sinalizado se <@var="path"> não encontrar correspondência no buffer XML, mas esse comportamento é modificado se o terceiro argumento, que é opcional, for dado: nesse caso o argumento recupera o número de correspondências e uma variável de texto vazia é retornada caso não haja correspondências. Exemplo: 5166 5167<code> 5168 ngot = 0 5169 ret = xmlget(xbuf, "//some/thing", &ngot) 5170</code> 5171 5172Entretanto, um erro ainda é sinalizado no caso de uma consulta (query) mal formada. 5173 5174Uma boa introdução sobre a utilização da sintaxe de XPath pode ser encontrada em <@url="https://www.w3schools.com/xml/xml_xpath.asp">. O backend para <@lit="xmlget"> é fornecido pelo módulo xpath do biblioteca libxml2 que, por sua vez, suporta o XPath 1.0 mas não o XPath 2.0. 5175 5176Ver também <@ref="jsonget">, <@ref="readfile">. 5177 5178# zeromiss transforms 5179Resultado: o mesmo tipo que o argumento 5180Argumento: <@var="x"> (escalar ou série) 5181 5182Converte zeros para <@lit="NA">s. Se <@var="x"> for uma série a conversão será feita elemento por elemento. Ver também <@ref="missing">, <@ref="misszero">, <@ref="ok">. 5183 5184# zeros matrix 5185Resultado: matriz 5186Argumentos: <@var="r"> (número inteiro) 5187 <@var="c"> (número inteiro) 5188 5189Retorna uma matriz nula com <@mth="r"> linhas e <@mth="c"> colunas. Ver também <@ref="ones">, <@ref="seq">. 5190 5191