Ferramentas
•
•
•
•
Introdução ao STATA® (PDF)
Como Utilizar os Comandos infile e infix do STATA® (PDF)
Como Utilizar os Comandos merge e reshape do STATA® (PDF)
STATA® Corporation Web Site
17.871
2º Trimestre de 2002
1
Introdução ao Stata
1. Introdução
Stata é um pacote moderno e geral, acionado por comandos, para se fazer análise estatística,
gerenciamento de dados e gráficos. As versões estão disponíveis para PC/DOS/Windows,
Mac e Unix. Este documento revisa brevemente alguns elementos-chave do programa,
reproduz uma sessão de amostra e termina com uma tabela descrevendo alguns dos comandos
mais importantes do Stata. Este documento foi produzido para ajudar a introduzir o Stata no
ambiente operacional Athena; assim, o sistema operacional que estou assumindo é Unix.
1. Iniciando o Stata
Em uma janela xterm, digite o seguinte:
Isso acionará a interface gráfica do Stata. Se em vez de digitar xstata for digitado stata,
você obterá uma puramente uma interface de linha de comando.
ADVERTÊNCIA: No ano passado, quando a interface gráfica foi adicionada ao Unix, vários
problemas foram descobertos quando o Athena fez o upgrade. Particularmente, o xstata às
vezes fará com que as máquinas Athena apresentem falha, requerendo uma partida a frio.
Esse problema parece estar associado com gerenciadores de janelas não-padrão.
Os três pontos a seguir ajudam a contornar o problema:
(1) Salve seu trabalho com freqüência.
(2) Se o Athena trava para quando você usa o Stata, tente usar o
padrão do gerenciamento de janela Athena.
(3) Para se ter absoluta certeza de que você não vai ter esses problemas, use a versão da
linha de comando de Stata.
1.1 Inserindo e editando comandos
Os comando são inseridos e editados pelo teclado. Os comandos anteriores são salvos em um
buffer e podem ser recuperados para edição. Além disso, a interface do usuário contém uma
janela marcada como "review", que grava os comandos recentes inseridos por você. Depois de
ter inserido um comando, você pode ir até a Janela Review e clicar duas vezes sobre qualquer
1
Este documento foi profundamente inspirado em outro documento semelhante criado
por Jeroen Wessie, Departamento de Sociologia, Utrech University.
comando para executá-lo novamente. Um clique único leva o comando para a Janela
Command para edição e execução.
O quadro abaixo mostra os comando de edição mais úteis para a Janela Command, usando o
Unix.
Para revisar os 10 comandos anteriores, digite #review 10.
1.2 Sair do Stata
Para sair do Stata, execute o comando exit. Caso esteja trabalhando em um conjunto de
dados, você provavelmente fez alterações nos dados, como ter criado novas variáveis. Se você
não tiver primeiro salvado seus dados, o Stata irá recusar sua saída. Esse método
visa a protegê-lo de seu próprio erro. Para sair do Stata sem salvar os dados,
digite exit, clear.
1.3 Ajuda
A tecla F1 é reservada pelo Stata para ajuda. Usando o comando help, você obtém
informações detalhadas sobre a maioria dos aspectos dos programas e sobre os comandos. Por
exemplo, ao digitar help regress, você obtém informações detalhadas sobre a execução de
regressões lineares usando o comando regress.
1.4 Busca
O comando search topic permite que você procure pelo comando Stata para análises com
referência ao topic (tópico). Por exemplo, search regression dá uma pesquisa completa
dos comandos pertinentes à análise da regressão. Observação: no final da seção de ajuda dos
comandos, você também encontrará uma lista dos comandos relacionados.
1.5 Stata na Internet
O site do Stata na internet é www.stata.com, e ele pode ser acessado a partir do próprio Stata
por meio do menu Help. No site, você encontrará uma página extensa de perguntas
freqüentes, além de outros brindes .
1.6 Identificadores
Um identificador (“nome”), como o nome de um comando ou variável, é formado por no
máximo 32 caracteres (caixas alta e baixa, dígitos e underscores), no qual o primeiro
caractere deve ser preferencialmente uma letra (observe que o limite de 32 caracteres é novo
para a versão 7. As versões anteriores impunham um limite de 8 caracteres. Em função de
problemas de compatibilidade, eu continuarei a considerar o limite de 8 caracteres e pedirei
que façam o mesmo). O Stata faz distinção entre letras maiúsculas e minúsculas. Quase todos
os comandos do Stata estão em caixa baixa.
1.7 Abreviações
Uma regra geral no Stata é que você pode abreviar os comandos e nomes de variáveis desde
que o Stata não se confunda com o que você deseja fazer. Por exemplo, se você tiver as
variáveis income1 e inkvar2 em seu conjunto de dados, o Stata entenderá que inc é a
variável income1, mas não seria capaz de decidir se in significa income1 ou inkvar1. Se
você realmente quiser especificar todas as variáveis que começam com “in,” é possível usar
uma expressão com curinga (in*).
1.8 Arquivos de log
O comando log using filename especifica que todos os comandos que são inseridos a
partir do teclado, mais a maioria dos resultados produzidos, são salvos em um arquivo de
nome filename.scml.
Dessa maneira, você pode salvar o resultado e revisá-lo. Infelizmente (a meu ver), o Stata v. 7
produz como padrão um arquivo de log que é uma versão não convencional de html.
Portanto, para traduzir um arquivo de log em algo que possa ser lido com mais facilidade,
você precisará executar o comando translate. É possível pular esta etapa ao digitar log
using filename, text.
1.9 Comandos de shell
Você pode inserir comando Unix ao colocar nele o prefixo “!”. Por exemplo, !ls relacionará a
list de arquivos que estão no diretório atual.
1.10 Arquivos em lote
Você pode construir um arquivo de comandos do Stata para ser executado em lote.
Isso é muito útil para replicar suas análises, e você precisará escrever esses arquivos para
documentar seu trabalho em alguns problemas e em seu projeto final. Para
construir e testar um arquivo de comandos do Stata, é possível usar tanto um editor de ASCII
(como emacs) quanto o Editor de Arquivos "Do" na interface gráfica.
1.11 Uma sessão de amostra
A seguir é apresentada uma sessão introdutória em Stata, usando o conjunto de dados dos
Governistas Negros Eleitos (beo_example.dta) em /mit/17.801/Examples. Os comentários são
precedidos por *.
2. A sintaxe do Stata
O Stata possui uma sintaxe poderosa e consistente. Com algumas 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
tabulate sex edu if
tabulate sex edu,no
by cohort: tabulate
exp sex
age>25
freq cell chi2
sex edu
Observações sobre a sintaxe do Stata:
•
•
•
No diagrama de sintaxe exibido acima, as partes opcionais estão dentro de colchetes [ ].
by
varlist1: requisita uma análise separada para cada valor de varlist1:
As partes opcionais [if expr2] [in range] restringem o conjunto de observações sobre
o qual o comando opera. Eles podem 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), significando a última observação. Por exemplo, in 1/10
significa “apenas para as dez primeiras observações;” in l significa apenas a última
observação; -5/l significa as últimas 5 observações.
Não discutimos pesos aqui.
Observe que uma vírgula é obrigatória antes das opções. Na maioria dos casos pode
haver no máximo uma vírgula (algumas funções separam argumentos usando vírgulas,
mas elas 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 usado
para 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 um arquivo ".do"), você pode alterar o separador de
comandos para “;” por #delimit ; , enquanto o comando #delimit cr leva-o de volta
para o retorno do carro. Nenhum outro caractere é permitido como delimitador.
A sintaxe faz diferenciação de letras MAIÚSCULAS e minú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/ou underscores, começando
com uma letra. Para facilitar a compatibilidade com versões anteriores do Stata, é uma
boa idéia manter os nomes com 8 ou menos caracteres.
Um nome de variável pode conter o caractere curinga *. As listas de variáveis são
indicadas por “–“ . Em uma lista de nomes, v1 - v100 significa v1, v2, . . . v100.
O Stata suporta diferentes tipos de variáveis: inteiros (bye, int, long) números reais
aproximados (float, double), datas e strings alfa-numéricas. O padrão é float.
Muitos nomes de sistema começam com _. Por exemplo:
_n
_N
_all
_b
_se
•
•
número da observação corrente
número total de observações
todas as variáveis
vetor dos coeficientes de regressão
vetor dos erros-padrão dos coeficientes de regressão
Ao ser combinado com by, _N e _n, refere-se ao número de observações dentro do
grupo atual.
Para expressões, veja abaixo ou help exp. Em expressões lógicas, use == para
igualdade. O Stata permite indexar ou subscrever variáveis no comando generate,
usando [ ], _n, _N, etc. Por exemplo, gen dx = x - x[_n-1] significa gerar uma nova
variável (dx) que subtraia o valor de x da observação anterior do valor de x da
observação corrente.
Aspas são usadas apenas para strings. Use aspas duplas.
3. Expressões e transformação de dados
3.1 As expressões lógicas podem conter os seguintes operadores:
Aqui, & é E, | é OU e ~ é NÃO. Observe o uso de sinal de igual duplo (==) para a igualdade
booleana. No Stata, um único = é usado exclusivamente para tarefas, enquanto o duplo == é
usado para o operador booleano de igualdade.
3.2 As expressões aritméticas podem conter os seguintes operadores:
Observações:
• x^y representa xy . Observe que -2^2 resulta em –4, enquanto (-2)^2 resulta em 4.
• [ ] são usados para subscrever ou para a geração de variáveis defasadas: x[3] é o valor de x
para a observação 3; x[_n-1] é o valor de x para a observação anterior.
• _n é o número da observação corrente e _N é o número total de observações.
• . (ponto final) representa o valor ausente no sistema quando se refere a variáveis numéricas
(valores ausentes para variáveis de string são representados por strings nulas). Internamente,
os valores ausentes são representados pelo maior valor possível do tipo de dado. Isso pode
requerer alguns cuidados. Por exemplo: 0 <= x é verdadeiro se x estiver ausente.
As funções matemáticas mais importantes são:
abs()
exp()
int()
round(x,y)
log()
min(varlist)
max(varlist)
mod(x,y)
sqrt()
sign()
sum()
uniform()
valor absoluto
a função exponencial, e0
o inteiro obtido pelo truncamento, ou seja, pela eliminação das casas decimais :
int(1.1) resulta em 1
arredonda x em unidades de y. round(x,1) arredonda para o inteiro mais
próximo.
logaritmo natural
o mínimo de varlist. Para obter o mínimo na linha,
possivelmente dentro de subgrupos de observações, veja a sub-função
rmin() de egen.
o máximo de varlist. Para obter o máximo na linha,
possivelmente dentro de subgrupos de observações, veja a sub-função
rmax() de egen.
x modulo y = o resto quando x é dividido pelo y inteiro; resto da divisão de x
por y.
raiz quadrada
sign(x) resulta em +1, -1 ou 0 para x > 0, x < 0 ou x == 0,
respectivamente.
A soma de todos os valores da expressão () para todas as observações
anteriores e a observação corrente (ou seja, uma soma contínua ou
acumulada)
Isso gera um número aleatório uniformemente distribuído entre 0 e 1.
Nenhum argumento é necessário, mas o () não deve ser omitido. A
semente pode ser alterada com set seed. Como padrão, o Stata estabelece uma
única semente , sempre gerando a mesma seqüência de números aleatórios.
Além disso, autocode, group e recode são funções muito úteis para se fazer a recodificação
dentro de um conjunto discreto de valores. O comando tabulate pode ser usado para gerar
variáveis dummy, que são discutidas no próximo parágrafo. Além disso, há várias funções
para as strings, e entre strings e números, funções de distribuição: da distribuição normal, a
2
distribuição χ (chiprob(df,x)), a distribuição F, a distribuição T-Student e o inverso da
distribuição normal. A última função pode ser usada para gerar números aleatórios
normalmente distribuídos: invnorm(uniform()). Para obter mais detalhes, veja o manual
ou digite help functions.
3.3 Transformações de dados
O Stata possui recursos muito bons de transformação de dados.
• Ao contrário da maioria dos pacotes estatísticos, há diferentes comandos para
definir novas variáveis (gene rate) e para modificar as variáveis existentes
(replace ).
• tabulate pode ser usado para fazer variáveis dummy, chamadas de variáveis
indicadoras pelo Stata.
• As expressões Stata são bastante poderosas: há um bom conjunto de funções e a
possibilidade de mistura de expressões lógicas e numéricas, como está explicado
abaixo.
Para alterar os valores de uma variável discreta, você pode també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 e tudo por 3.
Veja três exemplos de generate:
gen laginc = inc[_n-1]
gen loginc = log(inc)
gen hiinc = inc > 100000
O primeiro exemplo mostra como fazer uma variável defasada. O terceiro exemplo cria uma
variável dummy hiinc, que é igual a 1 para as observações maiores do que 100.000 e para
valores ausentes, 0.
Qualquer expressão lógica pode ser usada como uma expressão aritmética ou parte dela.
“Verdadeiro” é interpretado como 1; “falso” é 0. De modo contrário, toda expressão
aritmética pode ser interpretada como expressão lógica. Qualquer expressão com resultado 0 é
tomada como “falsa”; qualquer expressão com outro número ou um valor ausente como
resultado é tomada como “verdadeira”.
Considere que temos a variável age (em anos) e que desejamos recodificá-la em quatro
categorias com pontos de quebra em 20, 40 e 60 anos. A expressão lógica (age>20) é 1 (ou
seja, “verdadeira”) para todas as pessoas com mais de 20 anos. Assim, podemos escrever:
gerando uma nova variável, age4, que terá valores 1, 2, 3 ou 4. O resultado será 1 para todos
os pesquisados com idade igual ou inferior a 20 anos e 4 para todos com mais de 60 anos.
Se quisermos transformar uma variável contínua como age em discreta usando
os limites superiores das faixas de idade como novos valores podemos usar a função recode:
Se oldvar <= x1, newvar = x1; caso contrário se x1 < oldvar < x2, então newvar = x2, etc.
Para transformar a idade nas mesmas quatro categorias acima, poderíamos digitar:
gen age4a = recode(age,20,40,60,80)
Agora, age4a é apenas 20*age4 do exemplo anterior.
Uma versão automática de recode é autocode.
gen newvar = autocode(oldvar, ng, xmin, xmax)
Agora, o intervalo (xmin, xmax) é “automaticamente” dividido em ng subintervalos de
extensão igual e o novo valor de newvar é o limite superior do intervalo ao qual oldvar
pertence. Observe que acima, a idade foi dividida em intervalos de extensão igual. Se não
tivermos interrogados acima de 80 anos de idade, age4a também pode ser criada assim:
gen age4a = autocode(age,4,0,80)
Uma única variável dummy indicando todas as observações que têm o valor 3 na variável x
pode ser criado da seguinte maneira:
gen x3 = (x==3)
onde os parênteses são opcionais. A expressão lógica (x == 3) é usada aqui em um contexto
numérico, de modo que ela retorna o valor 1 se for verdadeira e 0 se for falsa.
Se x for discreto e for desejada uma variável dummy para cada valor possível, o método
acima é trabalhoso. Uma alternativa melhor é usar a opção generate de tabulate, da
seguinte forma:
Algumas manipulações poderosas de dados são possíveis com a opção by. Por exemplo,
digamos que você tenha um conjunto de dados que possua informações sobre pessoas em
diferentes lares; cada um possui vários entrevistados. Se a variável hhold identificar o lar em
que um indivíduo está e age registrar a idade de cada pessoa, então o exemplo a seguir
descobrirá a idade média das pessoas mais velhas em todos os lares:
sort hhold age
by hhold : gen oldest = _n == _N
summ age if oldest
O comando a seguir encontraria a idade média dos outros membros do lar: summ age
if~oldest.
Como outro exemplo, vamos supor que você tenha dados sobre as rendas das pessoas dentro
dos lares. Você quer descobrir a renda total do lar, fazendo a soma de todos em cada casa. É
possível fazer isso com o seguinte conjunto de comandos:
sort hhold
by hhold : gen hhinc = sum(inc)
by hhold : replace hhinc = hhinc[_N]
Esta última operação é realizada de modo mais fácil usando uma das funções egen:
egen hhinc = sum(inc), by(hhold)
4 Resumo dos comandos do Stata
Nesta seção, há uma breve explicação para os comandos mais importantes do Stata.
Indicamos abreviações permitidas ao sublinhá-las. Não use abreviações em excesso nos
arquivos ".do", pois isso dificulta a compreensão.
4.1 Ajuda
Stata
help help
help topic
search string
lookfor string
Descrição
Ajuda interativa sobre como usar o sistema de ajuda.
Ajuda interativa sobre o topic (comandos do Stata), como por exemplo
help regress.
Lista as descrições dos comandos do Stata relacionadas com o termo
string, como por exemplo search regression. O resultado
também inclui tópicos que apareceram no Boletim Técnico do Stata e os
programas disponíveis em arquivos antigos dos programas do Stata.
Relaciona as variáveis que contêm string no nome da variável ou no
rótulo da variável, como por exemplo lookfor age.
4.2 Lendo e gravando arquivos de dados
Stata
use
save filename
merge commonvar using
filename
append filename
compress
edit
input varlist
infile varlist
infix varlist
insheet using
filename
outfile using filename
outsheet using
filename
Descrição
Carrega um arquivo do sistema do Stata para processamento.
Salva como arquivo do sistema do Stata; não se esqueça de
substituir caso deseje sobrescrever um arquivo de disco
existente.
Adiciona variáveis de outro arquivo de sistema para o arquivo
atual. Os dois arquivos devem ter uma variável em comum,
commonvar, que identifique os casos a serem combinados. Os
dois arquivos devem ser classificados por commonvar.
Adiciona casos de outro sistema de arquivo.
Compacta o arquivo de dados ao converter, por exemplo,
números reais de 4 bytes em inteiros, se isso for possível, sem
causar perda da informação. Esse comando pode economizar
muito espaço em disco e memória interna.
Insere os dados diretamente no editor de dados ou altera o
valor das variáveis existentes (isso não está disponível na
versão de linha de comando do Stata).
Insere os dados de forma interativa. Digite end para encerrar a
inserção.
Lê os dados ASCII em formato livre ou fixo.
Lê os dados ASCII em formato fixo.
Lê os dados ASCII em formato delimitado por tabulações ou
vírgula.
Escreve um arquivo de dados ASCII de formato livre
(opcionalmente, com um dicionário)
Escreve um arquivo de dados ASCII em formato delimitado
por tabulações ou vírgula.
4.3 Modificando os dados de forma interativa
Stata
generate newvar =
expr
replace oldvar = expr
edit / browse varlist
for
egen
recode varname
reshape
collapse
Descrição
Cria uma nova variável newvar usando uma expressão expr.
Altera os valores de uma variável existente.
Insere dados diretamente no editor de dados ou altera o valor
das variáveis existentes usando uma interface semelhante a
uma planilha (isso não está disponível na versão de linha de
comando do Stata).
Repete um comando para uma lista de variáveis, uma lista
numérica ou uma lista de strings arbitrários.
Várias extensões úteis para o comando generate, incluindo
geração de médias de variáveis na mesma linha, etc.
Recodifica a variável varname.
Altera a organização de um conjunto de dados entre os
formatos “largura” e “altura”. Isso é muito útil para
administrar conjuntos de dados que possuam uma organização
individual (pessoa, lugar, coisa) por unidades de tempo.
Agrega variáveis. Por exemplo, se você possuir um
conjunto de dados em nível municipal, é possível agregar até o
nível estadual usando o comando collapse. Advertência: o
comando collapse sobrescreve os valores existentes
das variáveis.
4.4 Procedimentos descritivos
Stata
describe
ds
Summarize
summarize, detail
by varname :
tab varname,
Tabulate
tab varname,
by varname :
Table
inspect
correlate
pwcorr
summ
summ()
plot
tab
Descrição
Lista de nomes, rótulos e nº de observações de
variáveis, entre outros
Lista compacta de nomes de variáveis.
Estatísticas resumidas básicas sobre as observações válidas.
Estatísticas resumidas detalhadas, incluindo quanta,
assimetria, curtose.
Estatística para subgrupos.
Resumo para subgrupos.
Tabelas de uma e duas entradas.
Histogramas.
Tabelas de várias entradas.
Tabelas de várias entradas, com formatação avançada.
Outros resumos univariados para inspeção de dados.
Matriz de correlação ou covariância das variáveis.
Matriz de correlação com exclusão de pares de casos
ausentes.
pcorr
spearman
count if exp
list
display expr
Correlações parciais.
Correlação não-paramétrica de Spearman.
Para quantas observações a expressão exp é verdadeira.
Lista de observações.
Calculadora rudimentar. Calculadora simples.
4.5 Gráficos
Stata
graph,
graph,
graph,
graph,
graph,
box
hist
oneway
matrix
twoway
Avplot
Descrição
Plotagem do tipo Box plot.
Histogramas (padrão, se for dada apenas uma variável).
Plotagens de freqüência em diagrama de barras.
Plotagem de matriz de dispersão de duas variáveis.
Diagrama de dispersão (padrão se forem dadas duas
variáveis).
Plotagens de variável agregada depois da regressão.
4.6 Procedimentos estatísticos
Stata
regress
Ttest
Descrição
Regressão.
t-teste. Teste T-Student
4.7 Procedimentos variados
Stata
sort
order
rename
drop if expr
drop varlist
drop all
clear
sample
keep
label
do filename
run filename
Descrição
Classifica as observações com base em uma ou mais variáveis.
Reorganiza as variáveis na matriz de dados.
Altera o nome de uma variável.
Abandona observações quando expr é verdadeira.
Abandona as variáveis em varlist.
Abandona todas as variáveis.
Abandona todas as variáveis.Necessário antes que um novo
conjunto de dados possa ser lido.
Amostra aleatória de observações de dados.
O oposto de drop.
Rotula variáveis e valores de variáveis.
Executa um arquivo ASCII de comandos do Stata. Assume
que a extensão do arquivo é .do, a menos que seja determinada
outra extensão.
Mesmo que do, apenas executa o arquivo sem apresentar
resultados.
exit
exit, clear
log using filename
Sai do Stata (isso não é permitido quando os dados foram
alterados mas não foram salvos).
Sai do Stata mesmo se os dados alterados não foram salvos.
Gera arquivo de log com o nome filename.
Download

Ferramentas