Documente Academic
Documente Profesional
Documente Cultură
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.
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,
Prefs, 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, Save, Print Results, Begin Log, Start Viewer, Bring Results Window to
front, Bring Graph Window to front, 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 Stata Command, onde se digitam os comandos. Na penúltima linha da tela,
aparece o drive ativo, isto é, onde estão sendo gravados os dados e a última linha é a
barra do Windows, onde estão os botões Iniciar e os botões dos programas ativos no
momento.
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.
Todas as variáveis criadas são numéricas (int e byte) e todas de tamanho 8 (%8.0g).
Depois vamos ver detalhadamente o que estes códigos significam. Vamos pedir agora
uma listagem do arquivo.
list
summarize
Nomeando variáveis
O próximo passo é mudar os nomes das variáveis. O tamanho máximo de uma variável
no Stata é 32.
describe
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
Distribuição de freqüências
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
save, replace
sort tiparto
list
clear
Para abrir o arquivo use o menu File e, em seguida, Open. Clique no arquivo rn e no
botão abrir. Ou, alternativamente, digite:
use rn
generate peso=0
replace peso=1 if pesonasc < 2500
tabulate peso
generate premat=0
replace premat=1 if idgest < 37
== igual a
!= diferente de
> maior do que
< menor do que
>= maior ou igual
<= menor ou igual
Tabelas 2 x 2
Peça agora uma tabela de peso com idade gestacional, com a opção row (para o cálculo
dos percentuais das linhas)
| 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 prevalência de baixo peso nesta população é de 40%. Dentre os baixo
peso (1), 100% são prematuros e que dentre os não baixo peso (0), 25% são
prematuros.
| 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:
& e
| ou
! não
keep if sexo==1
drop if sexo==2
use rn.dta
log using rn.log
describe
list
summarize
rename var1 pesonasc
rename var2 tiparto
rename var3 idgest
rename var4 idmae
rename var4 sexo
label variable pesonasc "Peso ao nascer no HU em 1998"
label variable tiparto "Tipo de parto"
label variable idgest "Idade gestacional em semanas-DUM"
label variable idmae "Idade da mae em anos completos"
label variable sexo "Sexo do recem-nascido"
label define tipo 1 vaginal 2 cesareo
label values tiparto tipo
tabulate tiparto
generate peso=0
replace peso=1 if pesonasc < 2500
tabulate peso
Agora execute o programa no Stata. Para isto clique em File, escolha a opção Do, clique
em cima de rn.do e clique em Abrir. 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.log
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/220=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
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
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
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
| 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
cc dc pas
pA sistolica - mmHg
Proportion
| Exposed Unexposed | Total Exposed
-----------------+------------------------+----------------------
Cases | 95 173 | 268 0.3545
Controls | 201 894 | 1095 0.1836
-----------------+------------------------+----------------------
Total | 296 1067 | 1363 0.2172
| |
| Pt. Est. | [95% Conf. Interval]
|------------------------+----------------------
Odds ratio | 2.442412 | 1.822462 3.273429 (Cornfield)
Attr. frac. ex. | .5905687 | .4512916 .69451 (Cornfield)
Attr. frac. pop | .2093434 |
+-----------------------------------------------
chi2(1) = 37.00 Pr>chi2 = 0.0000
Para se obter o risco relativo (risk ratio), utiliza-se o comando cs. No exemplo acima
seria:
cs cd pas
sex
| Exposed Unexposed | Total
-----------------+------------------------+----------
Cases | 164 104 | 268
Noncases | 479 616 | 1095
-----------------+------------------------+----------
Total | 643 720 | 1363
| |
Risk | .2550544 .1444444 | .1966251
| |
| Pt. Est. | [95% Conf. Interval]
|------------------------+----------------------
Risk difference | .11061 | .0682488 .1529711
Risk ratio | 1.765761 | 1.414969 2.203521
Attr. frac. ex. | .4336721 | .2932706 .5461809
Attr. frac. pop | .2653814 |
+-----------------------------------------------
chi2(1) = 26.31 Pr>chi2 = 0.0000