Entendendo o Stata
O Stata possi ilita !erenciamento de dados" an#lise estat$stica e ela ora%&o de !r#ficos' E(istem pro!ramas para tornar o Stata mais ami!#)el para a*+eles *+e n&o !ostam de tra alhar com comandos' O pr,prio Stata poss+i men+s e -anelas *+e )isam facilitar se+ +so' .o entanto" o c+rso ser# aseado no estilo padr&o de comandos' Principais -anelas do Stata: Review" Variables" Results" Command e Do-file Editor' /ancos de dados em Stata poss+em e(tens&o 0'dta0" e pro!ramas 1 syntax2 poss+em e(tens&o 0'do0' O Stata tra alha com os dados copiando3os na mem,ria 4A5' Em )irt+de disso" ancos de dados !randes podem ser de dif$cil !erenciamento no Stata' 6+ando +m anco 7 a erto" nenh+ma m+dan%a 7 reali8ada at7 *+e )oc9 sal)e o anco' O fato de +sar +ma c,pia dos dados 7 importante por*+e: : 6+ando se +tili8a o comando 0+se ar*+i)o0" os dados s&o copiados para a mem,ria do comp+tador" e o ar*+i)o ori!inal 7 fechado' : ;oc9 pode fa8er o *+e *+iser com os dados na mem,ria" e a c,pia permanente contin+ar# a mesma em se+ disco' : A <nica forma de m+dar +ma c,pia permanente dos dados 7 +tili8ando o comando 0sa)e0' : Al7m disso" se al!+m erro 7 reportado" nenh+ma m+dan%a 7 reali8ada no encontra na mem,ria' anco *+e se
2 http://==='ats'+cla'ed+/stat/stata/=hatstat/=hatstat'htm : 0Denerali8ed Linear Latent And 5i(ed 5odels 1DLLA5520: http://==='!llamm'or! : Enstala%&o do 0Denerali8ed Linear Latent And 5i(ed 5odels 1DLLA5520: http://==='!llamm'or!/install'html
'nserindo comentrios
Para inserir coment#rios no Stata" simplesmente +tili8e asterisco 1L2 antes do te(to:
*Isso um tido como um comentrio no Stata
O O Stata tem por )olta de M00 comandos' .o *+adro a ai(o" est&o listados al!+ns comandos *+e todos de)em sa er do *+e se tratam: (ategoria O tendo a-+da At+ali8ando o Stata pela internet ?ome%ando" sal)ando e terminando o tra alho Emportando dados para o Stata @sando e sal)ando dados do disco 4eportando dados #sicos 5anip+la%&o de dados Formatando ?on)eni9ncia (omandos no Stata search" *indit" help update" net" ado" ne+s clear# set mem# set more# log" notes# e,it in*i,# input# in*ile# insheet use" save" append" merge" compress descri)e" code)oo-" list" )ro+se" edit# count" inspect" summarize" ta)le" ta)ulate generate" replace" egen" rename" drop" -eep" sort" encode" decode" order" )." reshape *ormat" la)el displa.
!)tendo a uda
O comando 0*indit0 proc+ra informa%Ces de +ma determinada pala)ra3cha)e' O 0findit0 fa8 +ma proc+ra completa" incl+indo as proc+ras de 0 help0 *+e proc+ra por comando e(istente no StataN 0search0 *+e proc+ra pela pala)ra3cha)e na internetN e 0 net search0 *+e proc+ra por pacotes para instala%&o no site ==='stata'com'
@tili8e o comando 0ado0 para listar pacotes instalados' Para descre)er pacotes instalados" di!ite:
ado describe
4 Deralmente o comando 0clear0 inicia +m pro!rama 0'do0 para limpar a mem,ria do Stata:
clear
Para *+e essa *+antidade de mem,ria se-a permanente toda )e8 *+e a rir o Stata:
set mem 1 m, perm
Se !randes ta elas o+ re!ressCes forem ser !eradas pelos se+s comandos" 7 comando a ai(o para *+e o pro!rama n&o paralise a tela:
set more off
om di!itar o
A rindo +m ar*+i)o 0'lo!0 para sal)ar o tra alho' O ideal 7 escre)er esse comando no come%o do ar*+i)o 0'do0:
lo! usin! "#$%cursoufpe%lo!%aula1&lo!", te't replace
Sal)ando os comandos e ta elas !eradas' Escre)a esse comando no final do ar*+i)o 0'do0:
lo! close
.o final do tra alho" rode todo o pro!rama no)amente para sal)ar o 0lo!0 completo" +sando os comandos Hlo! +sin!J e Hlo! closeJ' Para sal)ar somente os comandos" fa8er +m ar*+i)o 0'do0 no 0Do3file Editor0' Se a -anela 04e)ie=0 ti)er sido +sada" cli*+e com o ot&o direito do mo+se para copiar o conte<do e colar em +m ar*+i)o 0'do0' ?olocando a)isos no anco de dados:
notes$ criar rtulos em portu!u(s para )ari)eis p* 1+p*11
e
notes p, 1$ )erificar se )ari)el foi codificada corretamente
Encerrar o Stata:
e'it
Se ho+)er +m anco de dados a erto no Stata" o ideal 7 di!itar o se!+inte comando para encerrar o pro!rama sem sal)ar os dados:
e'it, clear
A# ainda o comando 0set matsi8e0 *+e indica ao Stata o n<mero m#(imo de )ari#)eis *+e podem ser incl+$das nos comandos do Stata' Por e(emplo" esse n<mero indica a *+antidade m#(ima de )ari#)eis *+e podem ser +sadas em +ma re!ress&o'
P O tamanho padr&o no Stata/5P e Stata/SE 7 de 400 )ari#)eis" podendo ser m+dado para ai(o o+ para cima" com limite m#(imo de 11'000 )ari#)eis' .o Stata/E?" o )alor inicial 7 de 200" com limite m#(imo de M00' Por e(emplo" podemos m+dar o n<mero m#(imo de )ari#)eis nos comandos de estima%&o para P00:
set matsi-e *
o+
set matsi-e * , permanentl.
Al7m disso" o Stata/5P e Stata/SE permitem m+dar o n<mero m#(imo de )ari#)eis no anco de dados com o comando 0set ma()ar0' Esso n&o 7 permitido no Stata/E?'
set ma')ar *
o+
infi' ) 1 , 1,+ 10 ) 1 1
R# *+e os ancos de dados em Stata +sam a e(tens&o 0'dta0" )oc9 pode a rir o anco sem di!itar a e(tens&o:
use 7r!entina*1
Se al!+m o+tro anco -# esti)er a erto" 7 preciso +tili8ar a op%&o 0clear0 para limpar a mem,ria do Stata:
Z
use c$%cursoufpe%dados%7r!entina*1&dta, clear
anco a erto"
O+ se-a" +m anco 7 sal)o somente com o comando 0sa)e0" tornando dif$cil perder os dados ori!inais' 5esmo se o comando 0sa)e0 n&o for +sado intencionalmente" o Stata rec+sar# !ra)ar o anco por cima do ori!inal" se a op%&o 0replace0 n&o for colocada' @tili8e o comando Hsa)eoldJ para sal)ar na )ers&o anterior do Stata 1)ersCes M e 92 para *+e n&o ha-a pro lemas *+ando for +sar o Stat Bransfer o+ o Stata anti!o:
sa)eold ar8ui)o&dta
e
describe p* 1+p*11
O+tra forma de mostrar informa%Ces so re as )ari#)eis do anco" com il+stra%&o de *+antidade de n<meros ne!ati)os" positi)os e 0missin!s0" al7m de +m pe*+eno !r#fico de ramos e folhas 1com distri +i%&o da )ari#)el entre os se+s )alores2:
inspect
Para contar *+antos le!isladores pensam *+e os riscos para consolida%&o da democracia s&o m+ito altos em decorr9ncia da crise econYmica 1pP02S42 e da d$)ida e(terna 1pP0ZS42:
count if p* ,::1 ; p* 2::1
[ Para mostrar o anco na tela de res+ltados do Stata" +tili8e o comando 0list0' Para mostrar as )ari#)eis *+e indicam a opini&o dos le!isladores do partido @?4 1partidoS22 so re as poss$)eis )anta!ens de +m re!ime democr#tico 1p201 e p202 ori!in#rias da per!+nta P2 na p#!ina 1 do *+estion#rio2" di!ite o comando:
list p, 1 p, , if partido::,
| p201 p202 | |---------------------| | la posib la posib | | la prote la resol | | la prote la posib | | la prote la posib | | la prote el respe | |---------------------| | la prote la resol | | la prote la posib | | la prote el respe | | la prote la mayor | | la prote la posib | |---------------------| | la prote la mayor | | el creci la posib | | la prote la posib | | la prote la posib | | la posib la prote | |---------------------| | la prote la posib | | la mayor el creci | | la resol la mayor | | el respe el creci | | el respe la posib | |---------------------| | la posib la prote | | la posib la resol | | la prote la posib | | la prote el respe | +---------------------+
21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 97. 98. 99. 100. 101. 102. 103.
21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 97. 98. 99. 100. 101. 102. 103.
M
+-------------+
Para editar +m anco" +tili8asse o comando 0edit0 da mesma forma *+e o 0list0 e 0 ro=se0' O comando 0edit0 pode ser acessado com o $cone 0Data Editor0 da arra de ferramentas' Sem a +tili8a%&o da op%&o 0nola el0" as )ari#)eis *+e aparecem em preto n&o poss+em r,t+los" a*+elas *+e aparecem em a8+l poss+em o r,t+lo )is+ali8ado" e as *+e apresentam a cor )ermelha s&o )ari#)eis nominais 1string o+ character2' I poss$)el o ter estat$sticas #sicas de )ari#)eis com o comando 0s+mmari8e0 *+e 7 o mesmo *+e 0s+m0' Podemos analisar as respostas *+anto aos temas *+e podem representar +ma amea%a ao risco de consolida%&o da democracia 1pP01 a pP112:
summari-e p* 1+p*11
Variable | Obs Mea !t". #e$. Mi Ma% -------------+-------------------------------------------------------p501 | 104 1.596154 .6464125 1 4 p502 | 104 3.144231 .8409226 1 4 p503 | 104 2.048077 .9791993 1 4 p504 | 103 3.048544 .8561043 1 4 p505 | 104 2.509615 .9552633 1 4 -------------+-------------------------------------------------------p506 | 103 3 .9801961 1 4 p507 | 104 3.086538 .7896242 1 4 p508 | 103 2.203883 .7965517 1 4 p509 | 103 3.38835 .8311699 1 4 p510 | 103 2.84466 .9472073 1 4 -------------+-------------------------------------------------------p511 | 103 2 .8631906 1 4
.ote acima *+e essas )ari#)eis )ariam de 1 1.ada2 a 4 15+ito2' I om estar ciente *+e poderia ha)er casos i!+ais a M 1.&o sa eS.S2 e 9 1.&o responde+S.?2" o *+e en)iesaria a an#lise' @ma an#lise de percentil poderia ser feita com a op%&o 0detail0 *+e 7 o mesmo *+e 0d0:
summari-e p* 1+p*11, detail
;ari#)eis nominais s&o a+tomaticamente retiradas do s+m#rio pelo Stata' Para ordenar +m anco de dados por +ma )ari#)el o+ con-+nto de )ari#)eis" +tili8e a op%&o 0sort0:
sort partido
Para reali8ar +ma ta ela de +ma )ari#)el" +tili8e o comando 0ta +late0" *+e 7 o mesmo *+e 0ta 0' As op%Ces de 0nola el0" 0if0 e 0missin!0 tam 7m podem ser +tili8adas:
tab p* 1 if p* 1=:1, nolabel missin!
Para !erar ta elas simples para cada +ma das )ari#)eis listadas:
9
tab1 partido p* 1+p*11
Para !erar ta elas com cr+8amentos entre d+as )ari#)eis para todas com ina%Ces poss$)eis:
tab, partido p* 1 p* ,
Para o ter a m7dia" des)io padr&o e fre*\9ncia da )ari#)el pP01 em cada partido:
tab partido, summari-e(p* 1)
/anipula%o de dados
Bransformar )ari#)el n+m7rica em )ari#)el nominal 1 string2" +tili8e o comando 0decode0:
decode partido, !enerate(nomepart)
O comando 0tostrin!0 n&o e(i!e a cria%&o de +ma no)a )ari#)el para transformar +ma )ari#)el n+m7rica para nominal' Esso s, f+nciona se a )ari#)el n&o ti)er r,t+lo 1 label2:
tostrin! nestu, replace
O comando 0destrin!0 pode con)erter todas )ari#)eis nominais para n+m7ricas em +m <nico comando:
destrin!, replace
5o)er +ma )ari#)el para +ma posi%&o anterior ] se!+nda )ari#)el indicada no comando:
mo)e entre) pais
?olocar em ordem alfa 7tica as )ari#)eis listadas e mo)93las para o come%o do anco:
aorder le!isbis partido departam
Para e(cl+ir +ma )ari#)el o+ con-+nto de )ari#)eis do anco" +tili8e a op%&o 0drop0' Foi escolhido o n<mero do est+do 1nest+2" pois ele n&o )aria no anco de dados:
drop nestu
.ote *+e s, e(cl+$mos a )ari#)el da c,pia do anco *+e est# na mem,ria 4A5" e n&o a *+e est# ori!inalmente no disco' Para remo)er o ser)a%Ces do anco" +tili8e o comando 0drop0 com indica%&o da primeira e <ltima o ser)a%Ces a serem retiradas' Por e(emplo" )amos remo)er as o ser)a%Ces de P a 10:
drop in */1
Essa remo%&o pode tam 7m ser feita de o+tras formas' Por e(emplo" )amos remo)er a*+eles *+e consideram *+e as rela%Ces entre as for%as armadas e o !o)erno n&o apresentam risco para a consolida%&o da democracia 1pP01S12:
drop if p* 1::1
o+
10
drop if p* 1=:, ; p* 1=:/ ; p* 1=:1 ; p* 1=:&
o+
drop if p* 1>,
o+
drop if p* 1>, ; p* 1?:1
.o Stata" o 0missin!0 7 o maior n<mero 1ao contr#rio do SAS2" por isso o comando 0drop if pP01V20 n&o e(cl+i os )alores de pP01 i!+ais a 0missin!0' I poss$)el tam 7m escolher por manter determinadas )ari#)eis no anco com o comando 0>eep0:
9eep if p* 1=:1
o+
9eep if p* 1::, @ p* 1::/ @ p* 1::1 @ p* 1::&
Para !erar +ma )ari#)el" +tili8e o comando 0!enerate0" *+e 7 o mesmo *+e 0!en0 o+ 0!0:
!en p* :p* 1Ap* ,Ap* /Ap* 1Ap* *Ap* 2Ap* 6Ap* 0Ap* 5Ap*1 Ap*11 :ro<total(p* 1 p* , p* / p* 1 p* * p* 2 p* 6 p* 0 p* 5 p*1 p*11)
o+
e!en p*
.ote *+e a op%&o 0ro=total0 considera os )alores 0missin!s0 i!+ais a 8ero' ?omo o comando 0!en0 simplesmente retira os casos *+e t9m 0missin!s0 em al!+mas )ari#)eis" o res+ltado 7 diferente entre os dois comandos acima' Para !erar o mesmo res+ltado" poder$amos fa8er os se!+intes comandos:
drop if p* 1::& @ p* ,::& @ p* /::& @ p* 1::& @ p* *::& @ p* 2::& @ p* 6::& @ p* 0::& @ p* 5::& @ p*1 ::& @ p*11::&
e
!en p* tab p* :p* 1Ap* ,Ap* /Ap* 1Ap* *Ap* 2Ap* 6Ap* 0Ap* 5Ap*1 Ap*11
o+
e!en p* tab p* :ro<total(p* 1 p* , p* / p* 1 p* * p* 2 p* 6 p* 0 p* 5 p*1 p*11)
A informa%&o da ta ela acima 1n<mero de dep+tados por partido2 pode ser inserida no 1como +ma )ari#)el2" se!+indo os se!+intes passos:
!en deputado:1 sort partido b. partido$ e!en ndeputado:count(deputado) bro<se partido deputado ndeputado tab ndeputado
"ep+ta"o | 're(. )erce t *+m. ------------+----------------------------------5 | 5 5.68 5.68 9 | 9 10.23 15.91 15 | 15 17.05 32.95 16 | 16 18.18 51.14 18 | 18 20.45 71.59 25 | 25 28.41 100.00 ------------+----------------------------------,otal | 88 100.00
11 anco
Para renomear +ma )ari#)el" di!ite 0rename0" o nome at+al da )ari#)el e o nome *+e dese-a' ;amos renomear a )ari#)el *+e informa o n<mero do *+estion#rio:
rename cuesti 8uest
Para criar +ma no)a cate!ori8a%&o da )ari#)el *+e informa so re o !ra+ de confian%a *+e o le!islador tem so re o poder -+dici#rio 1p[012 na )ida p< lica ar!entina" podemos a!r+par os )alores de 0m+ito0 1p[01S42 e 0 astante0 1p[01SO2 em +ma cate!oria" e os )alores de 0po+co0 1p[01S22 e 0nenh+ma0 1p[01S12 em o+tro !r+po' Primeiramente" )amos sa er se essa )ari#)el tem )alores de 0n&o sa e0" 0n&o responde+0 o+ 0missin!0:
tab p6 1, missin!
o+
tab p6 1, missin! nolabel
0ormatando
O comando 0format0 esta elece o formato de determinadas )ari#)eis no anco' @se 0help format0 para )er as diferentes op%Ces' 5+dando o ponto da )ari#)el 0peso0 para )$r!+la:
format peso B5,2fc
e
label )ariable p6 1! "Eoder Fudicirio (a!rupado)"
e
label define escala! "Cada/Eouco" 1 "Gastante/Huito"
e
label )alues p6 1! escala!
(onveni1ncia
0DisplaQ0 mostra )alores nominais e n+m7ricos de e(pressCes escalares' .<mero de o ser)a%Ces no anco de dados:
displa. _C
2ue)ra de linha
.o caso de comandos m+ito lon!os 1tais como os +tili8ados para !erar !r#ficos e re!ressCes2" 7 om inserir *+e ras de linha *+e indicam ao Stata *+e o comando n&o foi finali8ado na linha at+al" e *+e contin+a na linha a ai(o' Esso a-+da na or!ani8a%&o da pro!rama%&o' Podemos +sar tr9s arras 1///2 no final da linha para fa8er essa indica%&o ao Stata:
drop if p* 1::& @ p* ,::& @ p* /::& @ p* 1::& @ /// p* *::& @ p* 2::& @ p* 6::& @ p* 0::& @ /// p* 5::& @ p*1 ::& @ p*11::&