Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Scilab - introdução, Notas de estudo de Economia

introdução ao uso do software Scilab

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 02/09/2010

luis-guilherme-blah-blah-9
luis-guilherme-blah-blah-9 🇧🇷

6 documentos

1 / 28

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Introdução ao Scilab Para Análise Estatística
Carlos A. Cinquetti e Ricardo G. Silva
11 de junho de 2006
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Pré-visualização parcial do texto

Baixe Scilab - introdução e outras Notas de estudo em PDF para Economia, somente na Docsity!

Introdução ao Scilab Para Análise Estatística

Carlos A. Cinquetti e Ricardo G. Silva

11 de junho de 2006

Sumário

Capítulo 1

Recursos Básicos

1.1 Operações Elementares

Todas as operações são feitas a partir do prompt do Scilab, como ilustrado abaixo:

-->2+ ans = 5. -->2* ans = 6. -->10/ ans = 5. -->10- ans = 8.

Caso fôssemos criar variáveis ou constantes a partir das operações básicas, faríamos:

-->a=5+ a = 7. -->b=2* b = 6. -->c=8/ c = 2.

As variáveis cariam armazenadas no Scilab, permitindo-nos operar com elas, como no exemplo abaixo:

-->A=a+b* A = 19. -->A=(a+b)* A = 26.

1.2 Variáveis Especiais

Números irreais ou complexos, assim alguns números especiais, são criados no Scilab a partir de algumas funções especiais, como nos casos mostrados na Tabela 1.1 abaixo:

Tabela 1.1: Variáveis Especiais Número π %pi Complexo

− 1 %ı Constante Trigonométrica e %e Innito %inf NotANumber (Missing) %nan Constante Boleana %t e %f

Ilustremos o uso destas variáveis com algumas operações simples.

-->a=5+2%i a = 5. + 2.i -->b= 4-3%i b = 4. - 3.i -->a*b ans = 26. - 7.i

1.3 Comentários e Pontuação

Comentários no arquivo Scilab, feitos à título de organizar o raciocínio, ou qualquer m, devem ser precedidos do símbolo de porcentagem, %. Por exemplo:

% observe que, no Scilab, como em muitas calculadoras, as operações $a+bc$ difere de $(a+b)c$

A linha em questão não será, portanto, tomada como parte das operações matemáticas. É um recurso especialmente útil nos arquivos de programação. Outro recurso é a pontuação nal, indicando se desejas ou não exibir o produto na tela. Ilustrando:

-->Y=[1 2; 3 4] Y = ! 1. 2.! ! 3. 4.!

Se não queres visualizá-la, ponha ponto e vírgula no nal: -->Y=[1 2; 3 4]; É desejável quando estamos operando com transformações longas, notadamente com matrizes ou séries, permitindo nos concentrar nas simples operações lógicas, deixando de lado a computação numérica, que podemos deixar para o nal.

z2 = ! 3. 3. 3.!

z3=zeros(1:5) z3 = ! 0. 0. 0. 0. 0.!

Note que, dentro do parênteses, denimos a quantidade de termos do vetor, ou da seqüencia, e fora do parênteses os termos constantes que o compõe. Se quisermos operar com vetores dados por uma seqüência que progridem numa seqüen- cia denida, dentro de um intervalo estabelecio, faríamos:

-->v=[5:1:10] v = ! 5. 6. 7. 8. 9. 10.!

-->v1=[5:-.5:1] v1 = ! 5. 4.5 4. 3.5 3. 2.5 2. 1.5 1.!

Geramos, desta forma, tendências temporais, ou outra série temporal como seqüencia denida, as quais são muito úteis na análise estatística e econométrica.

2.3 Matrizes

Criam-se matrizes de forma semelhante, usando o operador ; para inserir linhas novas. Convém, também, seguir a convenção matemática, usando maiúscula para matrizes:

A=[1 2; 3 4]; B=[5 6;7 8]; C=[9 10;11 12];

Finalmente, podemos criar uma matrix composta pelas demais matrizes ou vetores, denidos acima. Por exemplo:

-->D=[A B C] D = ! 1. 2. 5. 6. 9. 10.!

Podemos transformá-la numa outra matriz, E, 3x4, fazendo:

E=matrix(D,3,4)

Podemos, nalmente, transformar E numa matriz identidade:

F=eye(E)

Uma matriz identidade 3 x 3 poderia ser assim gerada:

-->Z=eye(3,3) z =

Finalmente, dada uma matriz A

-->A=[1 2; 3 4] A = ! 1. 2.!

As funções abaixo, nos dão:

-->size(A); \as dimensões da matriz

-->det(A); \seu determinante

-->diag(A);\sua diagonal

2.4 Acessando Vetores e Matrizes

Como visto, o Scilab toma uma matriz pelo nome associado a ela, cando sua dimensão numérica e espacial registrada na memória do programa. Quando desejamos nos certicar do conteúdo de tal matriz, trazendo-a à tela, usamos a função evstr(.):

-->evstr(E) ans = ! 1. 4. 6. 11.!

Capítulo 3

Arquivos

3.1 Diretório dos Dados

Ao operar com uma base de dados, ou manipulações numéricas, um primeiro passo é saber em que diretório o Scilab está operando, o que é feito com a função pwd:

-->pwd ans = C:\WINDOWS\Desktop

Desejando mudar de diretório, use a função 'chdir'. Assim, supondo que seu arquivo esteja em C:\cursos\IEconometria\Apostila, faríamos:

chdir(C:\cursos\IEconometria\Apostila) ans = 0.

3.2 Importando Arquivos de Outros Programas

Na análise estatística, um trabalho comum seria a importação de arquivos de dados, sem- pre compostos numa matrix, onde cada coluna representa uma variável e as linhas as respectivas observações. São os chamados arquivos no tipo ascii. O Excel é, talvez, o mais comum, embora. armazenados num arquivo Excel, com extensão ".xls". A forma ".csv"e ".prn"são as mais utilizadas em bancos de dados de domínio público, mantidos por instituições públicas ou privadas. Para abrir tais arquivos no Scilab dê o seguinte comando:

M = excel2sci("C:\arquivos\alguma-coisa\filename.csv", ",")

. Outra opção é:

M = excel2sci("C:\arquivos\alguma-coisa\filename.csv", ":,:")

A despeito da função excel2sci remeter ao Excel, veja que ela se aplica a outros arqui- vos ascii, como o csv do exemplo. Na realidade, para o caso de arquivos Excel, convém transformá-los antes para bloco de notas, o que pode ser feito ou abrindo-o e salvando no

Bloco de Notas (entre os programas acessórios do Windows), ou pedindo, no Excel, para salvá-lo como txt (com separador de vírgulas). Pelo mesmo caminho, é possível transfor- mar um arquivo txt para csv, pedindo que o Excel salve-o como 'csv' (com separador de vírgulas). O Scilab não reconhecerá corretamente as variáveis se, no arquivo original, elas estavam denidas por um nome inserido na primeira linha de cada coluna. É preciso retirar toda a linha contendo o nome das variáveis. Abaixo, mostramos um caminho rápido para nomear as variáveis do arquivo importado. Se o nome das variáveis já foram retirados, outro caminho é simplesmente colar. Supo- nha que os dados estejam no Excel, onde cada coluna está associada a uma variável, com a primeira linha indicando o nome desta. Corte tal linha, faça o copy e insira, via paste, no Scilab, para posterior associação dos valores. Isto é, terás que denir tais dados como uma matriz, com um nome e escrito na forma correspondente a uma matriz, como denido no capítulo anterior.

3.3 Nomeando as Variáveis

Como dissemos acima, será preciso associar variáveis e nomes, do arquivo importado ou copiado, pelo caminho especíco do Scilab. Seguindo a notação matricial do programa, isto pode ser feita na forma:

-->nome da variável=nome da matrix dos dados(:,no da coluna).

que dá um determinado nome para toda coluna (no coluna) da matrix (nome). Supondo que estivéssemos trabalhando com o nosso arquivo tbl6, isto poderia ser feito da seguinte forma:

-->YEAR=tbl6(:,1); G=tbl6(:,2); PG=tbl6(:,3); Y=tbl6(:,4); PNC=tbl6(:,5); PUC=tbl6(:,6); PPT=tbl6(:,7); PD=tbl6(:,8); PN tbl6(:,9); PS=tbl6(:,10); POP=tbl6(:,11);

Note que zemos a transformação de todas as variáveis de uma só vez, usando o separador ; após a denição de cada nome.

3.4 Salvando e Avaliando Dados e Arquivos

Suponha que tenhamos criado a matrix:

-->x=[1 2 %pi;%e 3 4]; x =

Caso estivéssemos operando num arquivo de programação, no editor do Scilab, faríamos:

-->evstr(X) ans =

  1. 129.7 0.
  2. 131.3 0.
  3. 137.1 0.
  4. 141.6 0.
  5. 148.6 0.

Lembre-se, poderíamos associar as variáveis acima com caracteres, como:

Y=X(:,1) ; C=X(:,2); I=X(:,3)

Neste caso, para carregá-lo faríamos:

-->load('C:\DATA\dados.dat', 'y,C,I')

Numa análise estatísticas, podemos precisar de apenas um conjunto de variáveis de uma matriz de dados, e variáveis, contida em determinado arquivo. À título de exemplo, considere a matrix x criada acima, que nos interessaria apenas. eventualmente, quere tomar apenas algumas das variáveis

  • xenw=read('x.dat',2,3)

xenw = ! 1. 2. 3.1415927!! 2.7182818 3. 4.!

Note que o comando read especica o número de linhas e colunas.

Capítulo 4

Figuras

Em análise estatística usaríamos análise gráca tanto para analisar a correlação entre dados, ou entre pontos previstos e pontos observados, quanto para simulações das propri- edades matemáticas de alguns estimadores ou estatísticas. Nesta seção introduziremos a projeção de grácos de funções, o que será útil tanto para os dois últimos tipos de análise gráca em estatística. Nos capítulos Estatísticas Básicas e .. exporemos outros recursos grácos, trantando dos respectivos problemas estatísticos. Veremos, aqui, os comandos para a geração de grácos mais comuns, em duas e três dimensões. As novas versões do Scilab, como a 3.0, já dispõe de uma interface gráca para manipulação de grácos, facilitando muito o trabalho. Como esta. porém não está totalmente implementada, utilizares o prompt de comando para executar os grácos.

4.1 Gráco de Funções em Duas Dimensões

Vamos iniciar o estudo de grácos de funções no espaço dois. Para que o Scilab entenda que as variáveis x e y estão relacionadas por uma função, usamos de (denir função) e especicamos:

-->deff("[y]=f(x)","y=sin(x)")

A função seno é uma das muitas já denidas no Scilab. Precisamos, agora, denir o domínio da função:

-->x=[0:0.1:10]*%pi/10;

Isto posto, solicitamos plotar a função f, como segue:

-->fplot2d(x,f)

cujo resultado está exposto na 4.1 abaixo. Para plotarmos duas funções juntas, basta colocarmos dentro dos colchetes:

plot2d([3.5*x x^2-3])

O resultado:

0 1 2 3 4 5 6 -2.

-1.

-1.

-0.

-0.

L1 L L

Figura 4.3: Plot em 2D da função Seno

r

r

r

4.2 Gráco de Funções em 3 Dimensões

No capítulo 9, expomos os recursos grácos do Scilab para análise de dados e para análise estatística mais geral.

Capítulo 5

Carregando Pacotes

Há uma série de pacotes que potencializam a execução de alguns funções no Scilab. Para carregar tais pacotes há uma caminho especíco. O primeiro é o download a partir da página do Scilab http://scilabsoft.inria.fr/ contribution/... Ao abrir o arquivo zip, selecione todos os arquivos que o compõe e faça o extract para a pasta c:\arquivosdeprograma\Scilab-30-RC1\macros, supondo que seja este o nome da versão do Scila e o local em que está instalado no seu computador. Uma nova pasta será instalado no macros do Scilab com o nome do pacote instalado. No menu do Scilab, selecione File, então a opção exec, e buscar o pacote recem instalado no caminho c:\arquivosdeprograma\Scilab-30-RC1\macros\nomepacote. Clique no arquivo 'builder' do pacote. O pacote será, então, instalado. Embora instalado, para utilizar cada pacote será necessário carregá-lo toda vez que for utilizá-lo. Caminho: no menu do Scilab, selecione File, então exec, buscando o pacote. Ao clicar em cima dele, selecione seu "loader".

Na ilustração abaixo, damos um nome para cada variável, necessário quando queremos operar matematicamente com tais resultados.

-->m=mean(b) m =

-->varb=variance(b) varb =

-->varE=variance(b) varE =

-->stde=st_deviation(e) stde =

Capítulo 7

Variáveis Aleatórias

Gerar variáveis aleatória muitas vezes é necessário, principalmente quando desejá-se reali- zar simulações do tipo Monte Carlos. No Scilab, iremos utilizar uma caixa de ferramentas chamada Grocer. Esta pode ser obtida na Internet, no endereço http://scilabsoft. inria.fr/, em Contributions > Download > Data Analysis And Statistics. Este co- mando deve ser instalado seguindo instruções expostas na seção Carregando Pacotes. O comando básico é:

Y=grand(m, n, dist_type [,p1,...,pk])

onde m é a quantidade de elementos de cada geração aleatória e n a quantidade de gerações aleatórias, disttype é o tipo de distribuição que se deseja gerar e [, p 1 , ..., pk] são os parâ- metros da dist. requerida. À título de exemplo, geremos 50 pontos de uma distribuição Normal, com média zero e variância unitária:

-->Y=grand(100,1,'nor',0,1)

e fazer o seu histograma, utilizando 10 barras:

--> histplot(10,Y)

O resultado esta na gura 7.1. Vamos, agora, gerar 1000 pontos de apenas uma geração aleatória de uma normal com média 10 e variância 4.2 e colocar em outro histograma, agora com 50 bins:

-->Y=grand(100,1,'nor',10,4.2);

-->histplot(50,Y)

O resultado, na gura 7.2. Finalmente, como exemplo, vamos introduzir o gráco de uma distribuição, gamma, bastante usada em inferência bayesiana como priori para a variância de um modelo. O comando: