Apostila Stata
Programa de Pós-Graduação em Saúde Coletiva
Universidade Federal do Maranhão
Disciplina: Métodos Estatísticos em Epidemiologia
Prof. Antônio Augusto Moura da Silva
O que é o Stata
O Stata é um programa estatístico potente, capaz de resolver tarefas simples como
calcular média, desvio padrão, testes de hipótese para médias e proporções,
intervalos de confiança, até estatísticas mais complexas como regressão linear
múltipla, análise de variância, regressão logística, análise de sobrevivência, regressão
de Cox etc. Tem recursos potentes de tabulação de variáveis e comandos para cálculo
das medidas de associação usadas em epidemiologia, como razão de incidências (rate
ratio), risco relativo (risk ratio), razão de chances (odds ratio) e risco atribuível.
Possui recursos poderosos para manipulação de variáveis, porém as ferramentas para
entrada de dados com verificação de erros de digitação são pobres. Usualmente, é
melhor criar um programa para entrada de dados no EPIINFO, digitar os dados usando
os recursos CHECK e VALIDATE, e depois exportar o arquivo para o STATA usando o
STAT TRANSFER. Ou, se forem poucos dados, criar uma planilha Excel e depois
cortar e colar os dados no Stata.
Quando se carrega o programa na memória, aparece a sua tela, como na figura abaixo:
Observa-se a barra do programa (em azul, acima) e os botões do Windows (minimizar,
maximizar e fechar). Logo abaixo está a barra de menu, com os recursos File, Edit,
Data, Graphics, Statistics, User, Windows e Help.
No menu File, existe a opção Open, para abrir um arquivo STATA. Logo abaixo
observa-se a barra de botões, com os botões Open (use), Save, Print Results, Log
Begin/Close/Suspend/Resume, New Viewer, Bring Graph Window to front, New
Do-file Editor, Data Editor, Data Browser, Clear – more – condition e Break.
Na área de trabalho há 4 janelas ativas: acima à esquerda, a janela Review, onde vão
surgindo os comandos já digitados. Acima à direita, a janela Results, onde vão
aparecendo os resultados do processamento. Abaixo à esquerda, a janela Variables,
onde ficam todas as variáveis do arquivo em uso e abaixo à direita a janela Command,
onde se digitam os comandos.
Na penúltima linha da tela, aparece o drive ativo, isto é, onde estão sendo gravados os
dados (c:\Arquivos de Programas\Stata10) e a última linha é a barra do Windows,
onde estão os botões Iniciar e os botões dos programas ativos no momento.
Todos os comandos no Stata podem ser acessados pelo menu ou digitando-se na janela
de comandos. Se você optar pelo menu, basta escolher clicando em File, Edit, Data,
Graphics, Statistics, User, Windows e Help, depois fazer as seleções, escolher as
opções nas caixas de diálogo e clicar OK. Se você optar pela digitação dos comandos,
será necessário digitá-los na janela Command.
Nesta apostila, todos os comandos que você vai precisar digitar ou escolher do menu
estarão destacados em negrito.
Apostila Stata
2
Abrindo arquivo no Stata - use
Vamos trabalhar agora com o banco de dados dnma.dta. Neste arquivo constam dados
dos nascidos vivos no Maranhão em 2009, cadastrados no SINASC (Sistema de Informações
Sobre Nascidos Vivos) do Ministério da Saúde. Veja abaixo as variáveis do arquivo que serão
utilizadas em exercícios neste curso e a sua codificação.
Apostila Stata
3
O primeiro passo é abrir o arquivo. Para tanto é preciso usar o comando File / Open /
e em seguida localizar o diretório Stata onde o arquivo dnma está localizado. Em seguida
clique em cima do arquivo dnma e escolha a opção Abrir. Observe que o comando use
c:\Arquivos de Programas\Stata10\dnma.dta foi copiado para a janela Review e que agora
os nomes de variáveis aparecem na janela Variables.
Se o arquivo não abrir, é possível que tenha aparecido uma mensagem de erro “no
room to add more observations” (não há espaço na memória para carregar o arquivo, numa
tradução livre). Se acontecer isto, você precisa aumentar o tamanho da memória disponível
para carregar o arquivo, pois o arquivo dnma é muito grande. Digite:
set memory 50m
(que pode ser abreviado para set memo 50m)
E pressione a seguir a tecla ENTER ou RETURN:
Pronto, a memória disponível aumentou para 50 mega e agora você vai poder carregar
o arquivo.
Outra opção digitar o comando na janela de comandos, pressionando a seguir a tecla
ENTER ou RETURN:
Apostila Stata
4
use dnma.dta
use dnma
[ENTER]
[ENTER]
ou
(você pode omitir a extensão .dta).
Verifique na barra de Status se o drive ativo é c:\Arquivos de Programas\Stata10.
Se não for, é preciso digitar o caminho completo das unidades de disco e pastas para que o
Stata possa localizar e abrir o arquivo.
use c:\Arquivos de Programas\Stata10\dnma.dta
Ou você precisa copiar o arquivo dnma.dta para o drive ativo antes de usar o comando
use dnma. Ou, ainda, você pode mudar o drive ativo. No menu, escolha File / Change Working
Directory e escolha a posta onde você deseja trabalhar (comando disponível a partir da
versão 11). Você pode também mudar o drive ou pasta ativa, digitando (não se esqueça de
delimitar o caminho usando aspas após o comando cd - abreviatura de change directory).
cd “c:\Arquivos de Programas\Stata10”
Em seguida, após mudar a pasta ativa, digite:
use dnma.dta
Observe que, aparece na janela de resultados o comando utilizado após o .
Isto nos informa que o que foi digitado se trata de um comando e não do resultado do
processamento. O resultado do processamento vai surgir em seguida.
. use dnma
O Stata está pronto para aceitar um comando quando o ponto . aparece na janela de
resultados.
Listando variáveis - list
Use o comando list para obter uma listagem das variáveis e dos dados gravados no
arquivo. Você pode usar o menu de comandos Data / Describe Data / List Data e teclar Ok
na janela de diálogo list – list values of variables. Nesta janela de diálogo você pode usar as
opções disponíveis, escolhendo apenas algumas variáveis para serem listadas e mudando a
largura das colunas para controlar a forma como os dados serão mostrados na tela (janela de
Resultados - Results).
Alternativamente você pode digitar na janela Command:
list
Apostila Stata
5
Observe que surgem na tela os dois primeiros registros. Veja também que alguns
nomes de variáveis grandes são abreviados e que algumas letras são substituídas por ~,
sendo que o Stata preserva a última letra. Por exemplo, a variável codmunnasc se
transformou em codmun~c. Observe também que, para continuar a rolar a tela e olhar os
próximos registros, é necessário apertar qualquer tecla ou clicar com o mouse em cima de –
more- .
Como este arquivo armazena dados de 123.635 nascidos vivos, levaríamos muito
tempo visualizando todos eles. Desta forma, localize o X vermelho na barra de ferramentas
e clique em cima dele para interromper a listagem. Após interromper a listagem, pressione
seta para cima e seta para baixo ou [Page Up] e [Page Down] para rolar a tela na janela de
resultados.
Data Editor (Edit) Variables Manager Log Begin / Close / Suspend / Resume New Do-­‐file Editor Interromper Data Editor (Browse) Apenas uma certa quantidade de resultados passados permanece armazenada na
janela de resultados. Assim, é possível que você faça o rolamento para cima e parte dos
resultados obtidos nesta seção tenham “desaparecido”. Por isso existe a possibilidade de
gerar um LOG file. Utilizando o comando log using <nome do arquivo> você grava todo o
resultado do processamento em um arquivo que você pode abrir depois. Tudo aquilo que for
digitado (comandos) e todos os resultados gerados a partir do momento em que você usa o
comando log serão gravados em um arquivo específico. Digite o comando abaixo para gerar
um LOG:
log using dnma
Observe que aparece na janela de resultados:
. log using dnma
---------------------------------------------------------------name: <unnamed>
log: /Arquivo de programas/Stata10/dnma.smcl
log type: smcl
opened on: 19 Aug 2011, 07:28:57
De agora em diante, tudo o que você digitar e os resultados do comando serão
gravados no arquivo dnna.smcl (smcl é a terminação que o Stata usa para guardar os dados
em formato próprio). Digite agora list parto para obter uma listagem apenas da variável tipo
de parto.
Apostila Stata
6
list parto
Vamos abrir agora o arquivo log para verificar que os comandos digitados e os
resultados obtidos estão sendo gravados no arquivo dnma.smcl. Identifique o ícone Log Begin
/ Close / Suspend / Resume e clique nele com o mouse. Na caixa de diálogo selecione a
opção View Snapshot of log file e clique em OK.
Outra forma de visualizar o conteúdo das variáveis é usar o ícone Data Editor
(Browse) para visualizar o conteúdo em forma de planilha. Observe que as variáveis são
colocadas nas colunas e as observações nas linhas. Enquanto você estiver no modo Browse
você não poderá executar outro comando. Para isso terá que fechar a janela do Browse e
retornar para a janela principal do Stata.
Se você quiser repetir um comando não precisa digitá-lo de novo. Basta localizar o
comando na janela Review e selecioná-lo, clicando em cima dele. Esta ação copiará o comando
para a janela Command. Aí basta você teclar [ENTER] para rodar o comando novamente. Ou
você também pode rodar o comando novamente clicando duas vezes em cima do comando na
janela Review. Ou, ainda, usando as teclas Page Up e Page Down para recuperar na janela
Command os últimos comandos digitados.
Obtendo frequências simples de variáveis tabulate
Para se obter uma tabela de distribuição de frequências de uma variável, utiliza-se o
comando tabulate. Vamos obter uma tabela de distribuição de frequências da variável tipo de
parto (parto). No menu clique em Statistics / Summaries, tables and tests / Tables / Oneway tables. Surgirá a janela de diálogos tabulate 1 – One-way tables, Escolha em categorical
variables a variável parto e tecle OK.
Outra alternativa é digitar na janela Command:
tabulate tiparto
No Stata é possível abreviar os comandos para digitação, usando-se as três primeiras
letras do comando. Desta forma você obteria o mesmo resultado digitando:
tab tiparto
parto |
Freq.
Percent
Cum.
------------+----------------------------------1 |
82,964
67.24
67.24
2 |
40,416
32.76
100.00
9 |
4
0.00
100.00
------------+----------------------------------Total |
123,384
100.00
Apostila Stata
7
Consultando a tabela de codificação observamos que 1=parto vaginal, 2= parto
cesáreo e 9=ignorado. Observe que o total 123.384 não é o mesmo total geral do arquivo
123.635, indicando que alguns casos foram deixados em branco no banco de dados. O Stata
usa o código . para indicar dados não digitados. Para se verificar isso é necessário digitar a
opção missing após o comando tab, que pode ser abreviada para mis. Note que para se usar
uma opção de comando é necessário separar o comando da sua opção por uma vírgula.
tab tiparto, mis
parto |
Freq.
Percent
Cum.
------------+----------------------------------|
251
0.20
0.20
1 |
82,964
67.10
67.31
2 |
40,416
32.69
100.00
9 |
4
0.00
100.00
------------+----------------------------------Total |
123,635
100.00
Observe que além de 4 partos codificados como 9, ignorados, existem ainda 251
casos sem informação do tipo de parto. Podemos descartar estes casos prejudicados da
análise utilizando o comando recode, para se trabalhar apenas com os casos com informação
completa.
recode parto 9=.
tab parto
parto |
Freq.
Percent
Cum.
------------+----------------------------------1 |
82,964
67.24
67.24
2 |
40,416
32.76
100.00
------------+----------------------------------Total |
123,380
100.00
Podemos verificar agora que a taxa de cesáreas no Maranhão em 2009 foi de
32,76%.
Renomeando variáveis - rename
Podemos mudar os nomes das variáveis usando o comando rename. Vamos mudar o nome
da variável parto para tiparto
rename parto tiparto
Apostila Stata
8
Rotulando variáveis e valores - label
Agora precisamos documentar o arquivo e torná-lo mais fácil de ser entendido,
utilizando rótulos (labels). Primeiro vamos documentar as variáveis. Não use acentos ou
cedilha pois ficará ininteligível ( o programa não entende símbolos do português).
Observe que é necessário colocar o rótulo da variável entre aspas.
label variable tiparto “Tipo de parto”
Use agora o comando describe para observar o resultado. Veja que agora a variável
tiparto tem uma variable label: Tipo de parto
describe tiparto
storage display
value
variable name
type
format
label
variable label
---------------------------------------------------------------------tiparto
float %9.0g
Tipo de parto
Vamos usar agora o recurso de rotular valores de variáveis numéricas. Por exemplo,
vamos dizer que, no caso da variável tiparto, 1 significa parto vaginal e 2 parto
cesáreo, usando os comandos label define e label values. No primeiro comando, label
define, os rótulos são definidos como 1 para parto vaginal e 2 para parto cesáreo. No
segundo comando, os valores do rótulo tipo são colocados na variável tiparto.
label define tipo 1 vaginal 2 cesareo
label values tiparto tipo
Agora, ao pedir uma tabulação observe que o valor 1 é substituído por vaginal e o
valor 2 por cesáreo.
tab tiparto
Tipo de |
parto |
Freq.
Percent
Cum.
------------+----------------------------------vaginal |
82,964
67.24
67.24
cesareo |
40,416
32.76
100.00
------------+----------------------------------Total |
123,380
100.00
Apostila Stata
9
Use agora o comando describe para observar o resultado e verificar que agora a
variável tiparto tem um rótulo chamado tipo:
describe tiparto
storage display
value
variable name
type
format
label
variable label
---------------------------------------------------------------------tiparto
float %9.0g
tipo
Tipo de parto
Entretanto, o valor da variável no arquivo não foi modificado. Para observar isto peça
uma tabulação omitindo o rótulo, usando a opção nolabel.
tab tiparto, nolabel
Tipo de |
parto |
Freq.
Percent
Cum.
------------+----------------------------------1 |
82,964
67.24
67.24
2 |
40,416
32.76
100.00
------------+----------------------------------Total |
123,380
100.00
Se você quiser, você pode pedir uma lista dos rótulos e dos seus conteúdos:
label list
. label list
tipo:
1 vaginal
2 cesareo
Todas as opções de mudar o nome da variável (rename), colocar um rótulo na variável
(label variable), criar rótulos para categorias (label define) e colocar rótulos nas categorias
das variáveis (label values) estão também disponíveis no ícone Variables Manager na barra
de ícones.
Apostila Stata
10
Exercícios
Não se esqueça de anotar os comandos utilizados para obter os resultados. Descarte
os valores ignorados se os percentuais forem baixos (inferiores a 2%).
1)
2)
3)
4)
5)
6)
Apostila Stata
Usando os comandos aprendidos acima, verifique a taxa de partos
gemelares no Maranhão em 2009.
Qual o percentual de mulheres que não realizaram pré-natal?
Qual o percentual de nascimentos no domicílio?
Use o recurso de rotular valores para a variável estcivmae.
Qual o percentual de nascimentos de mulheres solteiras?
Qual o percentual de nascimentos de mulheres com nenhuma escolaridade?
11
Criando arquivos no Stata - edit
Vamos agora gerar um arquivo simples, contendo 4 campos. Para criar um arquivo no
Stata basta clicar no botão Data Editor (Edit) ou digitar na janela de comandos edit.
Surge o editor, pronto para se digitar o primeiro registro da primeira variável (var1).
Aqui você pode ir digitando nas colunas os conteúdos das variáveis que o Stata vai
automaticamente criando as variáveis var1, var2, var3 etc. O programa, a partir do
que é digitado, vai automaticamente criando variáveis numéricas ou categóricas,
conforme o caso e determinando o tamanho de cada campo. Depois você pode mudar o
nome de cada campo, por exemplo de var1 para idade. Quando a casela for deixada
em branco o Stata coloca automaticamente o seu código para dado prejudicado
(missing) que é o ponto. Vamos começar, criando o arquivo abaixo:
Digite inicialmente só os dados nas colunas e depois vamos aprender o comando para
gerar o nome da variável. Digite 2350 e tecle ENTER para o cursor se mover para a
casela de baixo e assim sucessivamente. Quando digitar o 5o. dado da 1a. coluna passe
com as setas ou com o mouse para a 1a. casela da 2a. coluna e assim por diante. Quando
terminar feche o editor clicando no botão X, pois enquanto o modo Edit estiver ativo,
você não poderá executar comando no Stata. Observe, na janela Variables, que surgem
var1, var2, var3, var4 e var5 e na janela Review, edit.
pesonasc
tiparto
2350
1500
3430
2920
3100
idgest
1
2
1
1
2
idmae
40
33
41
38
39
sexo
30
22
19
33
25
1
1
1
2
2
No Stata os nomes de variáveis são minúsculos. Depois da digitação de dados, a
primeira coisa que você deve fazer é salvar os dados. Vá até a janela de comandos e
digite, sempre em minúsculas:
save rn
O Stata avisa
e tecle [ENTER]
file rn.dta saved (arquivo rn.dta salvo)
Aqui você pode observar que o Stata usa .dta como terminação de arquivo. Utilize
agora o comando describe para observar os tipos de variáveis criadas pelo Stata.
describe
Apostila Stata
e tecle [ENTER]
12
Contains data from rn.dta
obs:
5
vars:
5
size:
50 (100.0% of memory free)
------------------------------------------------------------------1. var1
int
%8.0g
2. var2
byte
%8.0g
3. var3
byte
%8.0g
4. var4
byte
%8.0g
5. var5
byte
%8.0g
------------------------------------------------------------------Sorted by:
Todas as variáveis criadas são numéricas (int e byte) e todas de tamanho 8 (%8.0g).
Outros tipos de variáveis numéricas são long, float and double. A diferença entre
estes tipos de variáveis numéricas é o seu tamanho e a precisão dos cálculos,
determinada pelo número de casas decimais depois da vírgula.
Outro tipo de variável que pode ser criada no Stata são as variáveis do tipo caracter,
usadas para armazenar informação não numérica, ou seja, endereço, nome, telefone.
Estas variáveis podem conter números, mas não vamos realizar operações matemáticas
com estes números, eles servem apenas como identificadores.
Vamos pedir agora uma listagem do arquivo.
list
1.
2.
3.
4.
5.
var1
2350
1500
3430
2920
3100
var2
1
2
1
1
2
var3
40
33
41
38
39
var4
30
22
19
33
25
var5
1
1
1
2
2
Estatística descritiva
E agora peça uma estatística descritiva destes campos.
summarize
Variable |
Obs
Mean
Std. Dev.
Min
Max
---------+----------------------------------------------------var1 |
5
2660
757.5949
1500
3430
var2 |
5
1.4
.5477226
1
2
var3 |
5
38.2
3.114482
33
41
var4 |
5
25.8
5.718391
19
33
var5 |
5
1.4
.5477226
1
2
Apostila Stata
13
O Stata mostra o número de observações, a média (mean), o desvio padrão (Std. Dev.),
o valor mínimo e o valor máximo. Note que no caso das variáveis tiparto e sexo, a média
não tem valor algum, pois estas variáveis estão codificadas. No caso de tiparto
(1=parto vaginal; 2=parto cesáreo) e no caso de sexo (1=masculino; 2=feminino).
Renomeando variáveis - rename
O próximo passo é mudar os nomes das variáveis.
rename
rename
rename
rename
rename
var1
var2
var3
var4
var4
pesonasc
tiparto
idgest
idmae
sexo
Rotulando variáveis e valores - label
Agora vamos rotular as variáveis.
label
label
label
label
label
variable
variable
variable
variable
variable
pesonasc “Peso ao nascer no HU em 1998”
tiparto “Tipo de parto”
idgest “Idade gestacional em semanas-DUM”
idmae “Idade da mae em anos completos”
sexo “Sexo do recem-nascido”
Use agora o comando describe para observar o resultado:
describe
Contains data from rn.dta
obs:
5
vars:
5
size:
50 (99.9% of memory free)
------------------------------------------------------------------------------1. pesonasc
int
%8.0g
Peso ao nascer no HU em 1998
2. tiparto
byte
%8.0g
Tipo de parto
3. idgest
byte
%8.0g
Idade gestacional semanas-DUM
4. idmae
byte
%8.0g
Idade da mae em anos completos
5. sexo
byte
%8.0g
Sexo do recem-nascido
------------------------------------------------------------------------------Sorted by:
Note: data has changed since last save
Para salvar as alterações feitas digite:
Apostila Stata
14
save, replace (salva, grava por cima do arquivo antigo com o mesmo nome rn)
Vamos usar agora o recurso de rotular valores de variáveis numéricas. Por exemplo,
vamos dizer que no caso da variável tiparto 1 significa parto vaginal e 2 parto cesáreo,
usando os comandos label define e label values.
label define tipo 1 vaginal 2 cesareo
label values tiparto tipo
Distribuição de frequências - tabulate
Peça agora a distribuição de freqüências da variável tiparto para observar o que
ocorreu:
tabulate tiparto
Tipo de
|
parto
|
Freq.
Percent
Cum.
------------+----------------------------------vaginal |
3
60.00
60.00
cesareo |
2
40.00
100.00
------------+----------------------------------Total |
5
100.00
Salve novamente as alterações, usando a opção replace para substituir (gravar por
cima) o arquivo anterior:
save, replace
Outro recurso importante é ordenar o conteúdo de um campo com o comando sort:
sort tiparto
list
Para fechar o arquivo e limpar a memória digite:
clear
Para abrir novamente o arquivo use o menu File e, em seguida, Open. Clique no arquivo
rn e no botão abrir. Ou, alternativamente, digite:
use rn
Apostila Stata
15
Criação de novas variáveis – generate
e recodificação – replace
Vamos recodificar o peso ao nascer em baixo peso (aquelas crianças com menos de
2500 gramas ao nascer) e não baixo peso (2500 gramas e mais). O primeiro passo é
criar uma nova variável através do comando generate. Toda variável criada no Stata
tem que ser inicializada com um valor específico. No caso criaremos a variável peso=0
e recodificaremos pesonasc < 2500, criando peso=1 nestes casos.
generate peso=0
replace peso=1 if pesonasc < 2500
tabulate peso
peso
|
Freq.
Percent
Cum.
------------+----------------------------------0 |
3
60.00
60.00
1 |
2
40.00
100.00
------------+----------------------------------Total |
5
100.00
Da mesma forma vamos recodificar idade gestacional em prematuro (<37 semanas) e
não prematuro (37 semanas e mais).
generate premat=0
replace premat=1 if idgest < 37
tabulate premat
premat
|
Freq.
Percent
Cum.
------------+----------------------------------0 |
4
80.00
80.00
1 |
1
20.00
100.00
------------+----------------------------------Total |
5
100.00
Operadores de comparação (usados após o if)
==
!=
>
<
>=
<=
Apostila Stata
igual a
diferente de
maior do que
menor do que
maior ou igual
menor ou igual
16
Tabelas 2 x 2 - tabulate
Peça agora uma tabela de peso com idade gestacional, com a opção row (para o cálculo
dos percentuais das linhas)
tabulate premat peso, row
| peso
premat |
0
1 |
Total
-----------+----------------------+---------0 |
3
1 |
4
|
75.00
25.00 |
100.00
-----------+----------------------+---------1 |
0
1 |
1
|
0.00
100.00 |
100.00
-----------+----------------------+---------Total |
3
2 |
5
|
60.00
40.00 |
100.00
Observe que a taxa de baixo peso nesta população é de 40%. Dentre os prematuros
(codificados como 1), 100% têm baixo peso e que dentre os não prematuros
(codificados como 0), 25% têm baixo peso.
Vamos pedir agora a tabela diferente, isto é, peso e prematuridade, com os
percentuais das colunas, colocando a variável resposta (peso ao nascer) nas linhas e a
exposição (idade gestacional) nas colunas.
tabulate peso premat, col
| premat
peso |
0
1 |
Total
-----------+----------------------+---------0 |
3
0 |
3
|
75.00
0.00 |
60.00
-----------+----------------------+---------1 |
1
1 |
2
|
25.00
100.00 |
40.00
-----------+----------------------+---------Total |
4
1 |
5
|
100.00
100.00 |
100.00
Operadores lógicos:
&
|
!
Apostila Stata
e
ou
não
17
Selecionando registros para processamento –
keep / drop
Às vezes se precisa limitar o processamento a determinados registros. Digamos que se
queira processar apenas os registros do sexo masculino (1). Pode-se usar o comando
keep, selecionado sexo==1 ou drop, desprezando-se sexo==2. Note que após o if você
precisar usar dois símbolos de igual ==
keep if sexo==1
drop if sexo==2
Cuidado com o uso destes comandos, pois os registros serão apagados
definitivamente! Por isso recomendamos que, toda vez que você usar drop ou keep,
salve o arquivo com outro nome em seguida, preservando o arquivo original.
Gravando o processamento em um arquivo log
Quando se processa grande quantidade de informação, a saída de dados vai rolando para
cima na janela Results e você vai deixando de observar os resultados. Para isto grave a
saída em um arquivo .log, usando o comando abaixo:
log using rn.txt, text
Os resultados do processamento de dados serão gravados no arquivo rn.txt, em formato
texto. Este arquivo poderá depois ser aberto em um processador de textos e as tabelas
utilizadas nos seus relatórios.
Apostila Stata
18
Exercícios – arquivo dnma.dta
Anote os comandos utilizados para obter os resultados. Descarte os valores
ignorados se os percentuais forem baixos (inferiores a 2%).
1) Use o comando keep para trabalhar apenas com os dados de mães residentes no
município de São Luís. O código de São Luís é 211130.
2) Recodifique a variável peso ao nascer em <2500 e maior ou igual a 2500 gramas.
3) Coloque rótulo na variável peso ao nascer.
4) Coloque rótulo nas categorias de peso ao nascer.
5) Peça uma listagem dos rótulos.
6) Qual o percentual de recém-nascidos em São Luís com baixo peso ao nascer?
7) Peça uma tabulação das variáveis tipo de parto e peso ao nascer. Coloque o tipo de
parto na linha e o peso ao nascer na coluna. Peça o cálculo da porcentagem da linha.
8) Qual o percentual de baixo peso ao nascer dentre os nascidos de parto vaginal?
9) Qual o percentual de baixo peso ao nascer dentre os nascidos de parto cesáreo?
Apostila Stata
19
Gerando programas no Stata – arquivo do
Geralmente quando vai processar muitos dados é conveniente, ao invés de ir processando
e obtendo resultados de forma interativa, gravar os comandos Stata em um arquivo tipo
texto com a extensão .do e depois executar todos os comandos deste arquivo de uma só
vez, em lote. Vamos criar um pequeno programa para rodar no Stata. Para isto clique no
botão New Do-file Editor e digite as seguintes linhas de comandos. Depois salve o
arquivo com o nome rn.do.
use rn
log using rn.txt, text replace
label variable pesonasc "Peso ao nascer no Maranhao em 2009"
generate peso=0
replace peso=1 if pesonasc < 2500
tabulate peso
Agora execute o programa no Stata. Para isto você tem várias alternativas:
a) Escolha, ainda dentro do Do-file Editor a última opção da barra de ícones - Execute
(do)
b) No menu do Stata, clique em File, escolha a opção Do, clique em cima de rn.do e
clique em Abrir.
c) Ou digite na janela de comandos:
do rn
O Stata vai executar de uma só vez todos os comandos acima e gravar os resultados do
processamento no arquivo rn.txt, em formato texto.
Veja, abaixo, uma descrição de cada comando:
use rn
Abre o arquivo rn.dta se o arquivo estiver na pasta corrente. Se não será necessário
indicar o caminho completo para que o Stata possa abrir o arquivo.
log using rn.txt, text replace
Passa a graver os comandos e o resultado do processamento no arquivo rn.txt, em
format texto. A opção replace é usada para substituir (gravar por cima) do arquivo
criado anteriormente com o mesmo nome.
label variable pesonasc "Peso ao nascer no Maranhao em 2009"
coloca rótulo na variável pesonasc
generate peso=0
Apostila Stata
20
cria uma nova variável e coloca o valor zero em todas as obervações
replace peso=1 if pesonasc < 2500
Substitui na variável peso 0 por 1, se o peso ao nascer na variável pesonasc for < 2500
gramas
tabulate peso
Gera uma tabela da nova variável peso
O uso do Stata escolhendo os comandos no menu é útil para se descobrir novos
comandos que não conhecemos, pois os comandos são copiados para a janela Command e
podemos então verificar o que o Stata fez e aprender novos comandos. Entretanto, é um
procedimento demorado e que não pode ser automatizado, por meio da geração de
arquivo DO, para processamento de vários campos e para realizar análise estatística.
Desta forma, para se fazer uma boa análise estatística dos dados é melhor usar o Stata
digitando os comandos, ao invés de usar o menu e utilizar a opção de gerar comandos em
arquivo DO. Se houver algum erro nos dados ou nos comandos você pode facilmente
editar o arquivo DO, corrigir o erro e rodá-lo novamente, poupando tempo.
IMPORTANTE:
Algumas mensagens de erro podem surgir quando trabalhamos com arquivos DO.
1) no; data in memory would be lost
. use dnma
no; data in memory would be lost
r(4);
Quando você tentar abrir um arquivo que foi modificado na memória e não foi salvo, o
Stata avisa: não; os dados na memória seriam perdidos (no; data in memory would
be lost).
Solução para este erro: salvar o arquivo ou usar o comando clear para limpar a memória
sem salvar o arquivo. Normalmente não salvamos o arquivo original. O ideal é deixar o
arquivo original intacto, gravar os comandos em um arquivo DO e executar os comandos
de uma só vez, gerar um arquivo LOG com os resultados e nunca salvar por cima do
arquivo original. Se você desejar salvar o arquivo modificado, salve sempre com outro
nome, como por exemplo:
save rn1
Apostila Stata
21
2) log file already open
. log using dnma
log file already open
r(604);
end of do-file
r(604);
Quando você tentar gerar um arquivo LOG e houver um arquivo LOG aberto, o Stata
avisa: arquivo LOG ainda aberto (log file already open).
Solução para este erro: digitar log close.
3) file ......... already exists
. log using dnma
file /Arquivos de Programas/Stata/dnma.txt already exists
r(602);
end of do-file
r(602);
Se você tentar gravar por cima de um arquivo existente, o Stata avisa. Se você quiser
mesmo gravar por cima é só usar a opção replace, no comando log using. Se quiser
preservar o arquivo LOG anterior, basta gravar o resultado em outro arquivo, com outro
nome.
Apostila Stata
22
Importando dados do Excel
Para trabalhar com dados no Stata é necessário inicialmente ter o arquivo disponível
em formato .dta. Para isto você pode criar o banco de dados no próprio Stata, importar do
Excel ou importar de outro programa. Existe um programa chamado StatTransfer que realiza
transferência de arquivos de vários programas entre si. Se você tiver um banco de dados
disponível no formato .xls (do Excel) você pode usar o StatTranfer para fazer a
transferência.
Outra alternativa para importar dados do Excel para o Stata é abrir o banco de dados
no Excel, selecionar tudo o que deseja transferir e usar o recurso de corte e cola do sistema
operacional (CTRL+C, CTRL+V). Vamos fazer isto passo a passo:
Inicialmente abra Excel e, em seguida, o arquivo dcor.xls localizado na pasta do
Stata. Selecione todos os dados que deseja transferir. Depois disso copie os dados para a
área de trabalho (Editar / Copiar ou CTRL+C). Abra o Stata, e digite edit ou clique o ícone
Data Editor (Edit) na barra de ícones. Dentro do editor agora escolha a opção Colar (CTRL+V)
ou Edit / Paste. O Stata vai perguntar se você deseja considerar a primeira linha como dados
ou como nome de variáveis (treat first row as data / treat first row as variable names).
Escolha considerar a primeira linha como nomes de variáveis. Pronto, a planilha foi transferida
para o Stata. Só falta agora salvar o arquivo. Feche o editor de dados no X. E agora salve o
banco de dados com o nome dcor.dta.
Apostila Stata
23
Usando o arquivo dcor.dta
Vamos usar os comandos aprendidos acima, desta vez com um arquivo maior, o dcor.dta.
Este arquivo armazena as variáveis do estudo “FRAMINGHAM HEART STUDY”,
realizado nos Estados Unidos, onde se acompanhou durante 18 anos a população da
pequena cidade de Framingham, para estudar os fatores de risco para doença
coronariana, realizando exames periódicos de 2/2 anos. Abra o arquivo dcor.dta e peça
describe, summarize e depois clique no botão Browse, para ver as variáveis do banco de
dados. Compare com a descrição abaixo:
sex
chd
age
sbp
sbp10
dbp
chol
frw
cig
yrs_chd
yrs_dth
death
cause
Apostila Stata
1=masculino 0=feminino
diagnóstico de doença coronariana
0=não tem
1= doença coronariana
presente ao primeiro exame (casos prevalentes) 2-10 = número do exame em
que foi feito o diagnóstico (casos incidentes).
idade em anos ao exame inicial (45-62 anos)
pressão arterial sistólica em mmHg no primeiro exame (90-300 mmHg)
pressão arterial sistólica em mmHg no décimo exame (94-264 mmHg). Em 635
casos a informação está prejudicada.
pressão arterial diastólica em mmHg no primeiro exame (50-160 mmHg)
colesterol sérico em mg/100 ml no primeiro exame (96-430 mg/100ml)
peso relativo em percentual no primeiro exame (11 casos prejudicados – 52222). O peso relativo foi calculado a partir da razão entre o peso da pessoa em
relação ao peso mediano para o seu grupo de sexo/altura.
número de cigarros fumados por dia
0=não é fumante (1-60, 1 dado
prejudicado)
pessoas-ano de observação até ocorrer perda ou o primeiro evento de doença
coronariana (43 pessoas já tinham doença coronariana ao primeiro exame e,
portanto, não estavam mais sob risco, varia de 0 a 18 anos)
pessoas-ano de observação para mortalidade (varia de 1 a 18 anos)
0=vivo 2-10 = número do exame em que já estava morto
causa do óbito (19 casos prejudicados)
0 vivo ao primeiro exame
1 doença coronariana (súbita)
2 doença coronariana (não súbita)
3 acidente vascular encefálico
4 outra doença cardiovascular
5 câncer
6 outro
24
Recodificação e tabulação – replace, recode, tab
Teste do qui-quadrado
Vamos recodificar o nível de colesterol sérico em 3 classes: < 220, 220 a 259 e 260 e
mais.
generate col=0
replace col=1 if chol >=220 & chol <=259
(&=e operador lógico)
replace col=2 if chol >= 260
label variable col “colesterol em mg/100ml”
label define colest 0 “<220” 1 “220a259” 2 “260+”
label values col colest
tabulate col
colesterol |
em mg/100ml |
Freq.
Percent
Cum.
------------+----------------------------------<220 |
531
37.77
37.77
220a259 |
478
34.00
71.76
260+ |
397
28.24
100.00
------------+----------------------------------Total |
1406
100.00
Você também pode usar ao invés de replace o comando recode. Veja abaixo:
generate col2=chol
recode col2 96/219=0 220/259=1 260/430=2
label variable col2 “colesterol em mg/100ml”
label values col2 colest
tabulate col2
Vamos recodificar a pressão arterial sistólica em 0 (risco basal pA menor que 165
mmHg) e 1 (risco, pA igual ou maior que 165 mmHg).
generate pas=.
replace pas=1 if sbp>=165
replace pas=0 if sbp<165
label variable pas "pA sistolica - mmHg"
label define pressao 0 "<165" 1 "165+"
label values pas pressao
tabulate pas
Apostila Stata
25
pA sistolica|
- mmHg
|
Freq.
Percent
Cum.
------------+----------------------------------<165 |
313
22.26
22.26
165+ |
1093
77.74
100.00
------------+----------------------------------Total |
1406
100.00
Vamos recodificar número de cigarros fumados em 0 (não fumante) e 1 (fumante),
excluindo 1 caso prejudicado (cig=99):
generate fumo=0
replace fumo=1 if cig!=0
replace fumo=. if cig==99
label define cigarro 0 "nao" 1 "sim"
label values fumo cigarro
tabulate fumo
( !=
diferente de)
fumo
|
Freq.
Percent
Cum.
------------+----------------------------------nao |
772
54.95
54.95
sim |
633
45.05
100.00
------------+----------------------------------Total |
1405
100.00
Qual o percentual de fumantes nesta população ?
Vamos agora recodificar chd, considerando 0 como não tendo doença coronariana e de 2
a 10 como casos de doença coronariana, excluindo 1 (casos prevalentes, isto é, pessoas
que já tinham doença coronariana ao primeiro exame. Observe que transformamos 1 em .
(missing – prejudicado). Desta forma o programa não processará mais estes registros
nas saídas posteriores.
generate dc=chd
recode dc 0=0 1=. 2/10=1
label variable dc “doenca coronariana”
label define doenca 0 “nao" 1 “sim”
label values dc doenca
tabulate dc
doenca
|
coronariana |
Freq.
Percent
Cum.
------------+----------------------------------nao |
1095
80.34
80.34
sim |
268
19.66
100.00
------------+----------------------------------Total |
1363
100.00
Qual a incidência de doença coronariana nesta população ?
Apostila Stata
26
Vamos pedir agora uma tabulação de colesterol e doença coronária, para verificar se o
colesterol é um fator de risco para doença coronariana, pedindo percentuais de linha e o
cálculo do Qui-quadrado.
tabulate col dc, row chi2
colesterol | doenca coronariana
em mg/100ml|
nao
sim |
Total
-----------+----------------------+---------<220 |
423
96 |
519
|
81.50
18.50 |
100.00
-----------+----------------------+---------220a259 |
377
81 |
458
|
82.31
17.69 |
100.00
-----------+----------------------+---------260+ |
295
91 |
386
|
76.42
23.58 |
100.00
-----------+----------------------+---------Total |
1095
268 |
1363
|
80.34
19.66 |
100.00
Pearson chi2(2) =
5.3202
Pr = 0.070
Observe a taxa de incidência de doença coronariana nos diversos níveis de colesterol
sérico. O valor de p do Qui-quadrado foi de 0.070, portanto maior que o nível crítico de
0.05. Diz-se, então, baseado no teste de hipótese, que não há diferença
estatisticamente significante entre ter colesterol elevado e sofrer de doença
coronariana. Em outras palavras, as diferenças nas taxas de incidência, 18,5% naqueles
com colesterol menor que 220 mg/100ml, 17,7% naqueles com colesterol sérico de 220 a
259 mg/100ml e de 23,6% naqueles com colesterol de 260 mg/100ml e mais, não são
estatisticamente significantes.
Peça agora a tabulação da pressão sistólica e doença coronariana.
tabulate pas dc, row chi2
pA
| doenca coronariana
sistolica -|
mmHg
|
nao
sim |
Total
-----------+----------------------+---------<165 |
894
173 |
1067
|
83.79
16.21 |
100.00
-----------+----------------------+---------165+ |
201
95 |
296
|
67.91
32.09 |
100.00
-----------+----------------------+---------Total |
1095
268 |
1363
|
80.34
19.66 |
100.00
Pearson chi2(1) =
Apostila Stata
36.9959
Pr = 0.000
27
Observe a diferença nas taxas de incidência de doença coronariana entre aqueles com
pA sistólica abaixo de 165 mmHg (16,2%) comparados com aqueles com pA sistólica
muito elevada (32,1%). O valor de p para o Qui-quadrado foi de 0.000, portanto
considera-se a diferença amostral observada estatisticamente significante. Desse
modo, a pA muito elevada é considerada um fator de risco para doença coronariana.
tabulate fumo dc, row chi2
| doenca coronariana
fumo |
nao
sim |
Total
-----------+----------------------+---------nao |
614
134 |
748
|
82.09
17.91 |
100.00
-----------+----------------------+---------sim |
480
134 |
614
|
78.18
21.82 |
100.00
-----------+----------------------+---------Total |
1094
268 |
1362
|
80.32
19.68 |
100.00
Pearson chi2(1) =
3.2612
Pr = 0.071
Interprete os resultados da tabela acima. Baseado nestes resultados há associação
entre fumo e doença coronariana ?
Apostila Stata
28
Exercícios - arquivo dnma.dta
1)
2)
3)
4)
5)
6)
7)
8)
9)
Crie um arquivo DO para processar os dados do arquivo dnma.dta.
No arquivo Do dê um comando para gravar o processamento em um arquivo
LOG, formato texto.
Use o comando keep para trabalhar apenas com os dados de mães
residentes no município de São Luís. O código de São Luís é 211130.
Recodifique a variável peso ao nascer em <2500 e maior ou igual a 2500
gramas, usando o comando recode
Coloque rótulo na variável peso ao nascer.
Coloque rótulo nas categorias de peso ao nascer.
Peça uma listagem dos rótulos.
Qual o percentual de recém-nascidos em São Luís com baixo peso ao
nascer?
Recodifique a variável idade materna em 3 níveis < 20 anos, 20 a 34 anos e
35 anos e mais.
Coloque rótulo na variável idade materna.
Coloque rótulo nas categorias de idade materna.
Peça uma listagem dos rótulos.
Peça uma tabulação das variáveis idade materna e peso ao nascer. Coloque a
materna na linha e o peso ao nascer na coluna. Peça o cálculo da porcentagem da
10)
11)
12)
13)
idade
linha.
14)
Quais os percentuais de baixo peso ao nascer de acordo com as categorias de
idde materna?
15)
Peça uma tabela com o qui-quadrado e verifique se há associação entre idade
materna e baixo peso ao nascer.
Apostila Stata
29
Download

Apostila Stata - programa de pós-graduação em saúde coletiva/ccbs