aula 03 - uspminúsculas: a é diferente de a! otdos os nomes do stata estão em minúsculas. os...

24

Upload: others

Post on 29-Feb-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Aula 03Bibliogra�a: Apresentação

Cláudio R. Lucinda

FEA-RP/USP

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 2: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Objetivos da Aula

1 STATA

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 3: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

STATA

Quatro janelas são apresentadas quando o STATA é iniciado.São elas:

Review: janela onde são armazenados os comandosVariables: janela que apresenta a lista das variáveis do bancode dados ativoStata Results: janela que mostra os resultadosStata Command: janela onde os comandos do STATA devemser digitados

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 4: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

STATA - Interface

O menu está disponível na primeira linha e possui os recursos:

File Edit Prefs Data Graphics Statistics Window e Help

Por exemplo, o menu "HELP -> SEARCH" é utilizado para

procurar ajuda sobre comandos do STATA.

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 5: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Stata (III)

Na segunda linha encontra-se a Barra de Ferramentas com os ícones:

(1) Open (use): Carrega ou abre um banco de dados no formato doSTATA (dta).(2) Save: Salva um arquivo no formato do STATA (dta).(3) Print Results: Imprime a janela de resultados.(4) Begin Log: Carrega, abre ou cria um arquivo do tipo ".log" ou".smcl".(5) Start Viewer: Exibe a tela de ajuda (Help) em primeiro plano.(6) Bring Results Window to Front: Exibe a tela dos resultados emprimeiro plano.(7) Bring Graph Window to Front: Exibe a tela com o grá�co em primeiroplano.(8) Do-�le Editor: Edita um arquivo de comandos (arquivo tipo ".do").(9) Data Editor: Edita o arquivo de dados que está sendo utilizado.(10) Data Browser: Visualiza o arquivo de dados que está sendo utilizado.(11) Clear: prossegue a execução do comando.(12) Break: Interrompe a execução de uma tarefa ou comando.

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 6: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Stata (IV)

Tipos de Arquivo:

.ado arquivos programa "do-�les"

.dct arquivos ASCII , arquivo dicionário

.do do-�le

.dta arquivos de dados formato do STATA

.gph arquivos grá�cos

.log ou .smcl arquivos textos com os resultados

.out arquivos para impressão

.raw arquivos ASCII arquivos de dados

.sum arquivos controle de rede

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 7: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Linha de Comando vs. Scripts

Existe uma tendência de tentarmos executar tudo ou porcliques no mouse ou escrevendo os comandos na linha decomando e apertando enter.

RESISTAM A ESTA TENDÊNCIA!

Utilizem sempre o Editor de do-�le do Stata!!!!

Porque:

Vocês podem reaproveitar o códigoVocês sabem e lembram exatamente o que �zeramE podem descobrir formas mais e�cientes de fazer o que�zeram

Na hora de salvar, será gerado um arquivo com a extensão .do

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 8: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Do-Files

Comandos Importantes no Começo de um Do-�le:

clear: Limpa o que está na memóriaset more off,permanently: Evita que você tenha que clicarna janela toda vez que a rolagem ocupa uma tela inteiraset mem: Para algumas versões do Stata, ele determina aalocação de memória ao processo do Stata � As versões maisrecentes não tem este comando mais � o Stata ajustadinamicamente a chamada de memória (você tem que estipularo valor!)set matsize: Estipula o tamanho máximo da matriz a serutilizada em comandos � Dependendo da versão, o valormáximo que você pode estipular pode ser maior ou menor.cd "C:.."Estipula onde estão os seus arquivos

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 9: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Variáveis vs. Macros

O Stata tem uma distinção muito precisa entre variáveis � quesão os dados que você colocou no programa � e o que elechama de �macros�, que são as coisas que existem apenas nocontexto de um do-�le (e que são importantíssimos para evitarmontilhões de Ctrl-C+Ctrl+V com todos os erros quecostumam aparecer).

Entre as macros, existe uma distinção entre:

Locais: São coisas que existem somente no contexto de umarodada do do-�le. Estas coisas precisam ser declaradasexplicitamente, por exemplo local i=5 cria uma variável localchamada �i� com o valor de 5. Ela pode ser usada em outroslugares no do-�le da seguinte forma: display "Este é o

meu local `i'" (�quem espertos que o local tem que sercercado por um acento grave antes e um apóstrofo depois)

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 10: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Globais

Globais são o outro tipo de macros.

Diferentemente das locais, as globais existemindependentemente da execução do do-�le. Enquanto estiverna mesma seção do Stata, ela vai existir.

Você declara a global da seguinte forma global i=5 e elapode ser usada da seguinte forma display "este é o meu

global $i"

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 11: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Importando dados no Stata

insheet - Imputar dado de uma base que foi criada em umaplanilha ou em algum programa que usou vírgula ou tab paraseparar os dados.

infix � Leitura de dados em formato �xo. A coluna tem umformato �xo. Por exemplo, as colunas de 1 a 10 é o nome, 11-12 idade. Não há necessidade de ter delimitador entre asvariáveis. De�nir as colunas que aparecem em cada entrada devariável.

use � Abre arquivos formato nativo do Stata (.dta)

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 12: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Abreviações

Uma regra geral no Stata é que você pode abreviar oscomandos e nomes de variáveis desde que o Stata não seconfunda com o que você deseja fazer.

Por exemplo, se você tiver as variáveis income1 e inkvar2 emseu conjunto de dados, o Stata entenderá que inc é a variávelincome1, mas não seria capaz de decidir se in signi�caincome1 ou inkvar1. Se você realmente quiser especi�cartodas as variáveis que começam com �in,� é possível usar umaexpressão com curinga ( in*).Tem um monte de alternativas, é só colocar help varlist.

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 13: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Arquivos de Log

O comando log using filename especi�ca que todos oscomandos que são inseridos a partir do teclado, mais a maioriados resultados produzidos, são salvos em um arquivo de nomefilename.scml.

Dessa maneira, você pode salvar o resultado e revisá-lo.Infelizmente (a meu ver), o Stata v. 7 produz como padrãoum arquivo de log que é uma versão não convencional de html.

Portanto, para traduzir um arquivo de log em algo que possaser lido com mais facilidade, você precisará executar ocomando translate. É possível pular esta etapa ao digitarlog using filename, text.

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 14: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Sintaxe do Stata

O Stata possui uma sintaxe poderosa e consistente. Comalgumas exceções, a forma básica é:

[by varlist1:] command [varlist2] [weight] [if

expr2] [in range] [,options]

Exemplos de comandos do Stata:

summarize age

regress income educ exp sex

tabulate sex edu if age>25

tabulate sex edu,no freq cell chi2

by cohort: tabulate sex edu

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 15: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Sintaxe do Stata (II):

No diagrama de sintaxe exibido acima, as partes opcionaisestão dentro de colchetes [ ].by varlist1: requisita uma análise separada para cadavalor de varlist1:As partes opcionais [if expr2] [in range] restringem oconjunto de observações sobre o qual o comando opera. Elespodem ser colocados em qualquer ordem.Um conjunto de observações é referido na forma de # ou#/#; # representa um número ou l (ou seja, a letra L),signi�cando a última observação. Por exemplo, in 1/10

signi�ca �apenas para as dez primeiras observações;� in l

signi�ca apenas a última observação; -5/l signi�ca as últimas5 observações.Não discutimos pesos aqui.

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 16: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Sintaxe do Stata (III):

Observe que uma vírgula é obrigatória antes das opções. Namaioria dos casos pode haver no máximo uma vírgula(algumas funções separam argumentos usando vírgulas, maselas são raras).A linha que começar com * é ignorada. Em um arquivo ".do",qualquer texto entre /* e */ é considerado um comentário.Eles precisam estar na mesma linha: /* */ pode ser usadopara fazer uma nova linha invisível no Stata.Como padrão, as linhas de comando terminam com ENTER(retorno do carro). Em um arquivo ".do" (e somente em umarquivo ".do"), você pode alterar o separador de comandospara �;� por #delimit ; , enquanto o comando #delimit

cr leva-o de volta para o retorno do carro.Outra alternativa mais esperta é usar � ///� (espaço e trêsbarras)Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 17: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Sintaxe do Stata (IV):

A sintaxe faz diferenciação de letras MAIÚSCULAS eminúsculas: a é diferente de A!

Todos os nomes do Stata estão em minúsculas.

Os nomes podem ser formados por 1 a 32 letras, dígitos e/ouunderscores, começando com uma letra. Para facilitar acompatibilidade com versões anteriores do Stata, é uma boaidéia manter os nomes com 8 ou menos caracteres.

O Stata suporta diferentes tipos de variáveis: inteiros (bye, int,long) números reais aproximados (�oat, double), datas estrings alfa-numéricas. O padrão é �oat.

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 18: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Sintaxe do Stata (V):

Muitos nomes de sistema começam com _. Por exemplo:

_n número da observação corrente

_N número total de observações

_all todas as variáveis

_b vetor dos coe�cientes de regressão

_se vetor dos erros-padrão dos coe�cientes de regressão

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 19: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Gerando Variáveis no Stata:

Ao contrário da maioria dos pacotes estatísticos, há diferentescomandos para de�nir novas variáveis (generate) e paramodi�car as variáveis existentes (replace).

tabulate pode ser usado para fazer variáveis dummy,chamadas de variáveis indicadoras pelo Stata.

O pre�xo xi: pode ser usado para gerar essas dummies dentrode um comando de forma automática

As expressões Stata são bastante poderosas: há um bomconjunto de funções e a possibilidade de mistura de expressõeslógicas e numéricas, como está explicado abaixo.

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 20: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Variáveis no Stata (II):

Para alterar os valores de uma variável discreta, você podetambém usar o comando recode.

Eis um exemplo:

recode xyz 1=2 2=1 *=3

Para a variável xyz, este comando substitui 1 por 2, 2 por 1 etudo por 3.

Veja três exemplos de generate:

gen laginc = inc[_n-1]

gen loginc = log(inc)

gen hiinc = inc > 100000

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 21: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Programando Loops no Stata

Quando você tem uma tarefa repetitiva, o uso de um loopajuda a reduzir o tempo de programação e ajuda a evitar errosde programação (sempre aparecem quando usamos muitoCtrl+C e Ctrl+V)

Conceito básico: Quando você programa um loop, você temque dizer ao Stata três coisas:

O que você quer fazer repetitivamenteQuantas vezes você precisa repetirO que vai mudar cada vez

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 22: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Exemplo

forvalues x = 1/5 {

display "`x' + 1 = "

display `x' + 1

display ""

}

forvalues bottom = 20(5)45 {

local top = `bottom' + 4

gen age`bottom'to`top' = 0

replace age`bottom'to`top' = 1 if age >=`bottom' \\\

& age <= `top'

}

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 23: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Forvalues

generate kgwt1 = wt1/2.2

generate kgwt2 = wt2/2.2

generate kgwt3 = wt3/2.2

generate kgwt4 = wt4/2.2

generate kgwt5 = wt5/2.2

* Ou...

foreach var of varlist wt1-wt5 {

generate kg`var' = `var'/2.2

}

Cláudio R. Lucinda FEA-RP/USP

Aula 03

Page 24: Aula 03 - USPminúsculas: a é diferente de A! oTdos os nomes do Stata estão em minúsculas. Os nomes podem ser formados por 1 a 32 letras, dígitos e/ou underscores, começando com

STATA

Estout

...estimates store mod05estimates store mod06

qui estout mod05 mod06 using "branch04\trunk\Output\mixlogit.tex", ///cells(b(fmt(%6.4f) star) t(par fmt(%6.4f)) ) ///stats(N chi2 ll, labels(`"Observations"' `"LR chi2"' `"Log-Lik."')) ///title(Mixed Logit Results \label{mixlogtab}) ///varlabels(_cons Constant) ///mlabels(, titles span prefix(\multicolumn{@span}{c}{) suffix(})) ///prehead("\begin{table}[htbp]\caption{@title}" "\tiny" ///"\begin{center} " "\begin{tabular}{l*{@M}{rr}}" "\hline \hline") ///posthead("\hline") label collabels(,none) ///prefoot("\hline") postfoot("\hline \hline" ///"\multicolumn{@span}{p{4cm}}{\small\textit{Source:} Authors' ///Calculations. @starlegend}" "\end{tabular}" "\end{center}" "\end{table}") style(tex) ///stardetach order(*_1 *_2 *_3 *_4 *_5 timetime costcost SD:costcost) ///eqlabels(Fixed Random,span prefix(\hline\multicolumn{@span}{c}{) suffix(})) replace

Cláudio R. Lucinda FEA-RP/USP

Aula 03