Anda di halaman 1dari 28

Introduo ao Scilab Para Anlise Estatstica

Carlos A. Cinquetti e Ricardo G. Silva 11 de junho de 2006

Sumrio
1 Recursos Bsicos
1.1 1.2 1.3 2.1 2.2 2.3 2.4 2.5 2.6 3.1 3.2 3.3 3.4 Operaes Elementares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variveis Especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comentrios e Pontuao . . . . . . . . . . . . . . . . . . . . . . . . . . . . Polinmios . . . . . . . . . . . . . Vetores . . . . . . . . . . . . . . . Matrizes . . . . . . . . . . . . . . Acessando Vetores e Matrizes . . Operaes com Vetores e Matrizes Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 4 4 5 5 6 7 8 8

2 Polinomios, Vetores, Matrizes e Listas

3 Arquivos

Diretrio dos Dados . . . . . . . . . . . . . . Importando Arquivos de Outros Programas Nomeando as Variveis . . . . . . . . . . . . Salvando e Avaliando Dados e Arquivos . . .

9 9 10 10

4 Figuras
4.1 4.2

Grco de Funes em Duas Dimenses . . . . . . . . . . . . . . . . . . . . Grco de Funes em 3 Dimenses . . . . . . . . . . . . . . . . . . . . . .

13
13 15

5 Carregando Pacotes 6 Estatsticas Bsicas 7 Variveis Aleatrias 8 Anlise de Regresso


8.1 8.2 8.3 Mnimos Quadrados Ordinrios: Programao . . . . . . . . . . . . . . . . Mnimos Quadrados Ordinrios . . . . . . . . . . . . . . . . . . . . . . . . Mnimos Quadrados Ponderados . . . . . . . . . . . . . . . . . . . . . . . .

16 17 19 23
23 26 26

9 Anlise Estatstica Exploratria


9.1 9.2

Diagrama de Disperso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagrama de Disperso: Recursos Avanados . . . . . . . . . . . . . . . . .

27

27 27

Captulo 1 Recursos Bsicos


1.1 Operaes Elementares
Todas as operaes so feitas a partir do prompt do Scilab, como ilustrado abaixo:

-->2+3 ans = -->2*3 ans = -->10/2 ans = -->10-2 ans =

5. 6. 5. 8.

Caso fssemos criar variveis ou constantes a partir das operaes bsicas, faramos:

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


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

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

1.2 Variveis Especiais


Nmeros irreais ou complexos, assim alguns nmeros especiais, so criados no Scilab a partir de algumas funes especiais, como nos casos mostrados na Tabela 1.1 abaixo: Tabela 1.1: Variveis Especiais Nmero %pi Complexo 1 % Constante Trigonomtrica e %e Innito %inf NotANumber (Missing) %nan Constante Boleana %t e %f Ilustremos o uso destas variveis com algumas operaes 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 Comentrios e Pontuao


Comentrios no arquivo Scilab, feitos ttulo de organizar o raciocnio, ou qualquer m, devem ser precedidos do smbolo de porcentagem, %. Por exemplo:

% observe que, no Scilab, como em muitas calculadoras, as operaes $a+b*c$ difere de $(a+b)*c$
A linha em questo no ser, portanto, tomada como parte das operaes matemticas. um recurso especialmente til nos arquivos de programao. Outro recurso a pontuao nal, indicando se desejas ou no exibir o produto na tela. Ilustrando:

-->Y=[1 2; 3 4] Y = ! 1. 2. ! ! 3. 4. !
Se no queres visualiz-la, ponha ponto e vrgula no nal:

-->Y=[1 2; 3 4];
desejvel quando estamos operando com transformaes longas, notadamente com matrizes ou sries, permitindo nos concentrar nas simples operaes lgicas, deixando de lado a computao numrica, que podemos deixar para o nal. 4

Captulo 2 Polinomios, Vetores, Matrizes e Listas


2.1 Polinmios
Seguem alguns exemplos de denio de Polinomios no Scilab

-->x=poly(0, 'x') x = x -->p=1 -3*x +x^2 p = 2 1 - 3x + x

2.2 Vetores
Um vetor y qualquer denido pelas variveis que o compe. No Scilab, faramos:

y=[1 2 3 4]';
Note que o ' aps o colchete dene a transposta de um vetor denido em [..]. Como a forma normal o vetor coluna, y do exemplo seria um vetor linha. Vamos criar dois outros vetores e fazer algumas operaes com eles.

ct=[1 1

1]';

O Scilab tem funes especcas para gerar alguns vetores ou matrizes especiais. No caso dos vetores, podemos ger-los pelas funes para sequncias do Scilab. Tomemos alguns exemplos de vetores de constantes:

z=ones(1:4) z2=3*ones(1:3)
5

z2 = ! 3.

3.

3. !

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

0.

0. !

Note que, dentro do parnteses, denimos a quantidade de termos do vetor, ou da seqencia, e fora do parnteses os termos constantes que o compe. Se quisermos operar com vetores dados por uma seqncia que progridem numa seqencia denida, dentro de um intervalo estabelecio, faramos:

-->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, tendncias temporais, ou outra srie temporal como seqencia denida, as quais so muito teis na anlise estatstica e economtrica.

2.3 Matrizes
Criam-se matrizes de forma semelhante, usando o operador ; para inserir linhas novas. Convm, tambm, seguir a conveno matemtica, usando maiscula 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. ! 3. 4.

5. 7.

6. 8.

9. 11.

10. ! 12. !

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

E=matrix(D,3,4)
Podemos, nalmente, transformar E numa matriz identidade:

F=eye(E)
6

Uma matriz identidade 3x3 poderia ser assim gerada:

-->Z=eye(3,3) z ! ! ! 1. 0. 0. 0. 1. 0.

= 0. ! 0. ! 1. !

Finalmente, dada uma matriz A

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

As funes abaixo, nos do:

-->size(A); \\as dimenses 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 dimenso numrica e espacial registrada na memria do programa. Quando desejamos nos certicar do contedo de tal matriz, trazendo-a tela, usamos a funo evstr(.):

-->evstr(E) ans = ! 1. 4. ! ! 3. 2. 5. 7.

6. 8. 9.

11. ! 10. ! 12. !


7

Suponha que tivssemos uma matriz muito grande, cuja exibio na tela ocuparia enorme espao, quando nos interessa avaliar apenas algumas de suas colunas, ou linhas. Neste caso, usamos os seguintes operadores:

M (1, :) M (2, :)

Toda linha 1 da matriz M; Toda linha 2;

M (:, 1) toda coluna 1 e M (:, 2)


Toda coluna 2.

Os dois pontos tudo e a vrgula denota linha, quando antes dela, e coluna, quando posterior a ela. Se queres apenas os dados da primeira linha, segunda coluna seria (1,2). Abaixo exemplicamos como procedemos no caso da matrix tbl61. Para o caso de vetores, tomemos por ilustrao o vetor y denido acima. Os operadores

-->y(:) ans = ! 1. ! !

//acessa todos seus elementos 2. ! ! 3. ! ! 4. !

-->y(2:4) //apenas do segundo ao quarto elemento ans = ! 2. 3. 4. !

2.5 Operaes com Vetores e Matrizes


Suponha que tenhamos um vetor x e uma matriz A e queremos obter um novo vetor e matriz correspondente ao quadrado de ambos. Fazemos:

x2=(x.^2);

A2=(A.^2);

Como x2 denido a partir de uma transformao de x, a funo que opera tal transformao denida entre parnteses. Outra observao importante: usamos o ponto antes do operador exponencial, , pois estamos transformando uma varivel, x, e no um nmero.

2.6 Listas

Captulo 3 Arquivos
3.1 Diretrio dos Dados
Ao operar com uma base de dados, ou manipulaes numricas, um primeiro passo saber em que diretrio o Scilab est operando, o que feito com a funo pwd:

-->pwd ans

= C:\WINDOWS\Desktop

Desejando mudar de diretrio, use a funo 'chdir'. Assim, supondo que seu arquivo esteja em C:\cursos\IEconometria\Apostila, faramos:

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

3.2 Importando Arquivos de Outros Programas


Na anlise estatstica, um trabalho comum seria a importao de arquivos de dados, sempre compostos numa matrix, onde cada coluna representa uma varivel e as linhas as respectivas observaes. So os chamados arquivos no tipo ascii. O Excel , talvez, o mais comum, embora . armazenados num arquivo Excel, com extenso ".xls". A forma ".csv"e ".prn"so as mais utilizadas em bancos de dados de domnio pblico, mantidos por instituies pblicas ou privadas. Para abrir tais arquivos no Scilab d o seguinte comando:

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

M = excel2sci("C:\arquivos\alguma-coisa\filename.csv", ":,:")
A despeito da funo excel2sci remeter ao Excel, veja que ela se aplica a outros arquivos ascii, como o csv do exemplo. Na realidade, para o caso de arquivos Excel, convm transform-los antes para bloco de notas, o que pode ser feito ou abrindo-o e salvando no 9

Bloco de Notas (entre os programas acessrios do Windows), ou pedindo, no Excel, para salv-lo como txt (com separador de vrgulas). Pelo mesmo caminho, possvel transformar um arquivo txt para csv, pedindo que o Excel salve-o como 'csv' (com separador de vrgulas). O Scilab no reconhecer corretamente as variveis 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 variveis. Abaixo, mostramos um caminho rpido para nomear as variveis do arquivo importado. Se o nome das variveis j foram retirados, outro caminho simplesmente colar. Suponha que os dados estejam no Excel, onde cada coluna est associada a uma varivel, com a primeira linha indicando o nome desta. Corte tal linha, faa o copy e insira, via paste, no Scilab, para posterior associao dos valores. Isto , ters que denir tais dados como uma matriz, com um nome e escrito na forma correspondente a uma matriz, como denido no captulo anterior.

3.3 Nomeando as Variveis


Como dissemos acima, ser preciso associar variveis e nomes, do arquivo importado ou copiado, pelo caminho especco do Scilab. Seguindo a notao matricial do programa, isto pode ser feita na forma:

-->nome da varivel=nome da matrix dos dados(:,no da coluna).


que d um determinado nome para toda coluna (no coluna) da matrix (nome). Supondo que estivssemos 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 transformao de todas as variveis de uma s vez, usando o separador ; aps a denio 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 = ! 1. 2. 3.1415927 ! ! 2.7182818 3. 4.!

Caso estivssemos operando num arquivo de programao, no editor do Scilab, faramos: 10

-->write('matx.dat',x) \\isto (nome do arquivo.extenso, nome da matrix


para armazen-lo com banco de dados especco ao programa, embora s seria necessrio caso no quisssemos operar futuramente com tal arquivo, de modo abreviado. O caminho outro quando estamos operando com bases de dados, das quais apenas algumas das variveis podem nos interessar. Suponha que tvessemos criado a base de dados:

-->X=[1960 1961 1962 1963 1964; 129.7 131.3 137.1 141.6 148.6; 0.925 0.914 .919 .918 .949]' X = 1960. 129.7 0.925 1961. 131.3 0.914 1962. 137.1 0.919 1963. 141.6 0.918 1964. 148.6 0.949
Para salv-la:

-->save('C:\DATA\dados.dat', X)
O arquivo data do tipo binrio, comum s formas de operaes matemticas no Scilab. Desocupamos a memria do Scilab com tal arquivo fazendo:

-->clear X
que poderia ser aplicada, tambm, matrix de nosso arquivo de programao, fazendo:

-->clear x
embora isto s tenha sentido caso estssemos operando com x no ambiente prprio do Scilab; isto , no aplicaramos clear num arquivo de programao. Para recarregar o arquivo, faramos:

-->load('C:\DATA\dados.dat', 'no_linhas, no_colunas')


Isto , nol inhas corresponderia ao nmero de linhas de nossa matrix do arquivo ascii recm criado. Se fssemos apenas ler o arquivo, sem carreg-lo, faramos:

x=read('nome do arquivo.txt', no. linhas, no. colunas)


Todos os dados do arquivo tabl6, que esto na forma ascii, apareceriam na tela, que deixamos de exibir aqui. O comando load no traz os dados tela. Querendo v-los, fazer: 11

-->evstr(X) ans = 1960. 1961. 1962. 1963. 1964.

129.7 131.3 137.1 141.6 148.6

0.925 0.914 0.919 0.918 0.949

Lembre-se, poderamos associar as variveis acima com caracteres, como:

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


Neste caso, para carreg-lo faramos:

-->load('C:\DATA\dados.dat', 'y,C,I')
Numa anlise estatsticas, podemos precisar de apenas um conjunto de variveis de uma matriz de dados, e variveis, contida em determinado arquivo. ttulo de exemplo, considere a matrix x criada acima, que nos interessaria apenas . eventualmente, quere tomar apenas algumas das variveis

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

xenw = ! 1.

2.

3.1415927 ! !

2.7182818

3.

4. !

Note que o comando read especica o nmero de linhas e colunas.

12

Captulo 4 Figuras
Em anlise estatstica usaramos anlise grca tanto para analisar a correlao entre dados, ou entre pontos previstos e pontos observados, quanto para simulaes das propriedades matemticas de alguns estimadores ou estatsticas. Nesta seo introduziremos a projeo de grcos de funes, o que ser til tanto para os dois ltimos tipos de anlise grca em estatstica. Nos captulos Estatsticas Bsicas e .. exporemos outros recursos grcos, trantando dos respectivos problemas estatsticos. Veremos, aqui, os comandos para a gerao de grcos mais comuns, em duas e trs dimenses. As novas verses do Scilab, como a 3.0, j dispe de uma interface grca para manipulao de grcos, facilitando muito o trabalho. Como esta. porm no est totalmente implementada, utilizares o prompt de comando para executar os grcos.

4.1 Grco de Funes em Duas Dimenses


Vamos iniciar o estudo de grcos de funes no espao dois. Para que o Scilab entenda que as variveis x e y esto relacionadas por uma funo, usamos de (denir funo) e especicamos:

-->deff("[y]=f(x)","y=sin(x)")
A funo seno uma das muitas j denidas no Scilab. Precisamos, agora, denir o domnio da funo:

-->x=[0:0.1:10]*%pi/10;
Isto posto, solicitamos plotar a funo f, como segue:

-->fplot2d(x,f)
cujo resultado est exposto na 4.1 abaixo. Para plotarmos duas funes juntas, basta colocarmos dentro dos colchetes:

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

1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 0.0 0.4 0.8 1.2 1.6 2.0 2.4 2.8 3.2

Figura 4.1: Plot em 2D da funo Seno

37 33 29 25 21 17 13 9 5 1 -3 0 10 20 30 40 50 60 70

Figura 4.2: Plot em 2D da funo Seno O resultado: Vamos agora apenas utilizar valores de x, sem denir funes. Declarando

x=[0:0.1:2*%pi]';
Podemos plotar sen(x), sen(2x) e sen(3x) juntos e dar nomes as curvas:

plot2d(x,[sin(x) sin(2*x) sin(3*x)],[1,2,3],leg="L1@L2@L3",nax=[2,10,2,10],rect=[0,-2,


14

O resultado:

2.0 1.6 1.2 0.8 0.4 0.0 -0.4 -0.8 -1.2 -1.6 -2.0 0 L1 L2 L3 1 2 3 4 5 6

Figura 4.3: Plot em 2D da funo Seno

r r r

4.2 Grco de Funes em 3 Dimenses


No captulo 9, expomos os recursos grcos do Scilab para anlise de dados e para anlise estatstica mais geral.

15

Captulo 5 Carregando Pacotes


H uma srie de pacotes que potencializam a execuo de alguns funes no Scilab. Para carregar tais pacotes h uma caminho especco. O primeiro o download a partir da pgina do Scilab http://scilabsoft.inria.fr/ contribution/... Ao abrir o arquivo zip, selecione todos os arquivos que o compe e faa o extract para a pasta c:\arquivosdeprograma\Scilab-30-RC1\macros, supondo que seja este o nome da verso 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, ento a opo 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, ento, instalado. Embora instalado, para utilizar cada pacote ser necessrio carreg-lo toda vez que for utiliz-lo. Caminho: no menu do Scilab, selecione File, ento exec, buscando o pacote. Ao clicar em cima dele, selecione seu "loader".

16

Captulo 6 Estatsticas Bsicas


H uma srie de funes no Scilab para o clculo de estatsticas ou parmetros de uma ou mais variveis, como ilustrado na tabela abaixo. No help do Scilab podem ser encontrados outras funes, assim como um maior detalhamento de alguns procedimentos especcos para clculo de algumas destas funes. Para ilustrar, tomemos duas sries (vetores) gerados arbitrariamente:

-->a=[26:-3:2]; -->b=[2:3:26];
E tambm nossa matrx E,

E=matrix(D,4,3) E = ! 1. 5. 9. ! ! 3. 7. 11. !

Tabela 6.1: Funes para Estatsticas Bsicas mean(e) mdia de e geomean(e) mdia geomtrica variance(e) variance de e varincia variance(e,2) std eviation(e) desvio padro covarincia, com freq para frequncia covar(e,a, fre) correl (e,a, fre) correlao entre a e b momentos, com ,.. indicando o momento especco moment(e,2) center(e) e centrado; desvios da mdia quart(e) quartis percentis perctl(e) 17

! !

2. 4.

6. 8.

10. ! 12. !

Na ilustrao abaixo, damos um nome para cada varivel, necessrio quando queremos operar matematicamente com tais resultados.

-->m=mean(b) m = 14. -->varb=variance(b) varb = 67.5 -->varE=variance(b) varE = 67.5 -->stde=st_deviation(e) stde = 8.2158384

18

Captulo 7 Variveis Aleatrias


Gerar variveis aleatria muitas vezes necessrio, principalmente quando desej-se realizar simulaes do tipo Monte Carlos. No Scilab, iremos utilizar uma caixa de ferramentas chamada Grocer. Esta pode ser obtida na Internet, no endereo http://scilabsoft. inria.fr/, em Contributions > Download > Data Analysis And Statistics. Este comando deve ser instalado seguindo instrues expostas na seo Carregando Pacotes. O comando bsico :

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


onde m a quantidade de elementos de cada gerao aleatria e n a quantidade de geraes aleatrias, distt ype o tipo de distribuio que se deseja gerar e [, p1, ..., pk] so os parmetros da dist. requerida. ttulo de exemplo, geremos 50 pontos de uma distribuio Normal, com mdia zero e varincia unitria:

-->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 gerao aleatria de uma normal com mdia 10 e varincia 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 grco de uma distribuio, gamma, bastante usada em inferncia bayesiana como priori para a varincia de um modelo. O comando: 19

0.6

0.5

0.4

0.3

0.2

0.1

0.0 2 1 0 1 2 3

Figura 7.1: Distribuio Normal h

Y=grand(500,1,'gam',5,50)
As distribuies disponveis esto listadas abaixo. Quanto aos parmetros, estes podem ser vistos utilizando o comando help do Scilab (help grand).

beta:

Y=grand(m,n,'bet',A,B);
binomial:

Y=grand(m,n,'bin',N,p);
binomial negativa:

Y=grand(m,n,'nbn',N,p);
chi-quadrada:

Y=grand(m,n,'chi', Df);
chi-quadrada no-central:

Y=grand(m,n,'nch',Df,Xnon);
20

0.12

0.10

0.08

0.06

0.04

0.02

0.00 8 4 0 4 8 12 16 20 24

Figura 7.2: Distribuio Normal

exponencial:

Y=grand(m,n,'exp',Av);
Distribuio F:

Y=grand(m,n,'f',Dfn,Dfd);
Distribuio F no central:

Y=grand(m,n,'nf',Dfn,Dfd,Xnon);
Gauss Laplace (normal):

Y=grand(m,n,'nor',Av,Sd);
gaussian multivariada:

Y=grand(n,'mn',Mean,Cov);
geomtrica:

Y=grand(m,n,'geom', p);
21

9 8 7 6 5 4 3 2 1 0 0.0300 0.0733 0.1167 0.1600 0.2033 0.2467 0.2900

Figura 7.3: Distribuio Gamma(5,50)

Markoviana:

Y=grand(n,'markov',P,x0);
multinomial:

Y=grand(n,'mul',nb,P);
Poisson :

Y=grand(m,n,'poi',mu);
Permutaes aleatrias:

Y=grand(n,'prm',vect);
uniforme (0,1):

Y=grand(m,n,'def');
variaes da uniforme.

22

Captulo 8 Anlise de Regresso


A grande vantagem do Scilab, sobre softwares especcos de estatstica, como o R, so seus recursos para computao matemtica. O processo mais lento, mas fazer estimaes denindo as operaes algbricas com os dados permite uma aprendizagem mais segura, alm de permitir o estudioso a alterar as funes sempre que problemas inesperados surjam. Finalmente, no caso de anlise de Regresso, que trataremos nesta seo, uma vez feito o primeiro programa, ele poder ser usado em todos os demais problemas, com pequenas alteraes, se necessrias. Ainda assim, no podemos desprezar as funes j construdas que permitam uma soluo mais rpida para anlise de Regresso. Com efeito, estruturamos esta seo comeando com uma programao para anlise de regresso no Scilab e, a seguir, apresentamos funes existentes para tratar dos problemas tpicos de Regresso.

8.1 Mnimos Quadrados Ordinrios: Programao


Estando dentro do Editor do Scilab, o primeiro passo carregar os dados, quer importando arquivos, como descrito acima, ou simplesmente denindo as variveis, como no exmplo abaixo.

y=[74 15 46 45 85 32 65 98 54 87 21 26 45 56]'; //Varivel dependente x=[1 1 1 1 1 1 1 1 1 1 1 1 1 1; 12 23 32 45 45 96 45 32 65 96 36 76 34 56; 67 98 34 23 56 67 78 57 34 98 45 34 54 65; 54 58 24 51 68 26 35 20 1 41 36 85 58 46]'; //variaveis independentes
Precisamos denir as dimenses do vetor y, nossa varivel independente, e da matrix x de nossas variveis independentes.

n=length(y); // Numero de elementos


23

y [n k]=size(x);//Numero delinhas (observaes) e de colunas (variveis)


Suponha que desejssemos transformar nossas variveis para logartmo, pelo conhecimento prvio que temos do problema.

y1=log(y); x1=log(x(:,2:4)); //Tranformando os dados, menos a constante. Note que podemos transformar uma grande quantidade de variaveis de uma s vez z=[x(:,1) x1]; //Nova matriz de Variaveis independentes

Algumas estatisticas descritivas


mm=mean(y1) vv=st_deviation(y1) Loop para calcular o vetor de mdias da var independents for j=1:4 m(j)=mean(z(:,j)); end meds=m Loop para os desvio-padres for j=1:4 st(j)=st_deviation(z(:,j)); end stdevs=st

Clculo dos coecientes betas


zzinv=inv(z'*z);//Calculo da Inversa zy=(z'*y1);//Calculo de x'y betas=zzinv*zy

Anlise da Varincia(ANOVA)
yhat=z*betas;//Valores ajustados y chapu (previsto) e=y1-yhat;//erros da regresso
24

sqt=y1'*y1;//Soma dos quadrados totais sqr=e'*e;//Calculo da somado quadrado dos residuos SQR sqe=yhat'*yhat;//soma dos quadrados explicados msqt=sqt/(n-1);//sqt mdios msqr=sqr/(n-k);//sqr mdios msqe=sqe/k-1;//sqe mdios

Teste dos Betas


I=eye(4,4)//matriz identidade com dimenso do nmero de coeficientes covarb=msqe*I*zzinv;//matriz varincia-covarincia dos betas varb=diag(covarb); //diagonal:varincia dos betas stdb=sqrt(varb); //dp dos betas tbetas=betas.\stdb; //nmero de dp dos betas; tem distribuio t-student

Qualidade e Teste do Moodelo


//R2 quadrados R2=sqe/sqt F=(sqe/(k-1))/(sqr/(n-k)) //Estatistica F R2j=1 - (msqr/msqt)// R2 Ajustado //Critrios de Informao de Akaike CIA = 1 + log(2*\%\pi) + + log(sqr/n) + 2*k/n

25

8.2 Mnimos Quadrados Ordinrios 8.3 Mnimos Quadrados Ponderados

26

Captulo 9 Anlise Estatstica Exploratria


9.1 Diagrama de Disperso 9.2 Diagrama de Disperso: Recursos Avanados

27

Anda mungkin juga menyukai