Sie sind auf Seite 1von 39

Conhecendo o Stata 7

Conhecendo o Stata 7
o um software estatstico o Veja site www.STATA.com o J esta na verso 8 que um pouquinho diferente que a 7. Ateno arquivos salvos em STATA 8 no abrem no 7. o Abra o STATA tem vrias janelas

3 - Lista comandos j executados

2 Variveis

1 - Linha de comando

1 - Na linha de comando voc conseguir recuperar os comandos j executados clicando em Page Up ou Page Down 2 Na janela de variveis: basta clicar na varivel para que ela aparea na linha de comando 3 Na janela de Review basta clicar em um dos comandos para que eles apaream na linha de comando podendo ser modificado e novamente executado

Conhecendo o Stata 7 Ainda temos as seguintes janelas:

Editor e Visualizador de dados Abre um editor para os arquivos Do Tipo de Arquivos .dta : arquivo contendo os dados pode apenas ser aberto no Help! STATA ou exportado para que possa ser aberto em outros softwares .do: Arquivo contendo uma seqncia de comando que poder ser executado inmera vezes (equivalente a um arquivo .sas) .ado: arquivo que contem as macros/programas do STATA. Pode ser

criado usando a linguagem macro. Uma vantagem: muitos usurios criam seus ados e disponibilizam na internet .hlp: arquivo de ajuda para cada ado file aberto na janela do Help. .gph: Ao grficos feitos no STATA podem ser salvos em arquivos terminados gph .dct: Dicionrio de dados do STATA para ler arquivos em formato ASCII utilizando o comando -infileDisposio do arquivo dta Colunas so as variveis E linhas so as observaes. Comandos necessrios ao iniciar o STATA: -clear- Limpa a memria do STATA, garante que um arquivo Dta em branco est em uso; necessrio antes do comando use-set mem ???- aloca memria necessria para lidar com arquivos com mais de 1 MB de tamanho (default do Intercooled). Antes de uma linha como essa necessrio que o comando clear- seja executado: -set more on/off- muitas vezes quando a listagem dos resultados ser interrompida pela mensagem more- sendo necessrio clicar em alguma tecla do teclado ou o boto Go para dar continuidade. set more off- evita essa mensagem

Conhecendo o Stata 7 !!! Ateno: Pode-se ter variveis com letras maisculas, mas maisculas sero sempre maisculas no STATA. Os comando so escritos sempre em letras minsculas!!! Usando o editor de arquivos do Tudo que for digitado na linha de comando poder ser colado no editor de arquivos do. Esse editor muito til quando precisamos rodar uma anlise diversas vezes. No necessrio o uso de ; no final de cada comando como no SAS; e como no SAS no necessrio rodar todo o programa de vez, basta selecionar a parte que se quer rodar e clicar no boto que diz Do current file. Tambm possvel rodar um arquivo do sem abri-lo no editor, basta na linha de comando digitar do arquivo.do . Isso tambm valido para o editor Do, ou seja qualquer arquivo do poder ser invocado e executado dentro de outro arquivo do. Entrando com Dados usePara chamar um arquivo de dados em .DTA no Stata, utilize o comando use- ou utilize os menus: File>Open>*.dta
Exemplo: use "C:\Stata\census.dta", clear /* le todo o arquivo*/ use state region pop using "C:\Stata\census.dta", clear /*le apenas variaveis state region pop do arquivo census.dta*/ use "C:\Stata\cancer.dta" if died==1, clear /* le apenas as variaveis onde a variavel died recebe valor 1*/ /* Linhas de comentrios podem ser escritas dessa maneira */ * ou com apenas um asteristico no seu inicio /* linhas assim no sero executadas pelo STATA*/ /*!!! No preciso como no sas terminar a linha de comando com ; apenas quando na primeira linha do arquivo .do esteja o seguinte comando: delimet (;); ai sim, todas as linhas tero que terminar com ; */

!!!! Uma outra maneira simples de entrar com os dados no STATA, se tratando de arquivos de dados pequenos, simplesmente copiar de uma planilha em Excel e colar no Editor de dados. Para arquivos mais complexos como no caso da PNAD necessrio o uso de um dicionrio de dados e isto ser visto nas prximas aulas.!!!! Salvando um arquivo de Dados saveUtilize o comando save- para salvar arquivos .dta
Exemplo: save "C:\Stata\aula.dta" /* salva o arquivo no diretrio STATA*/

Conhecendo o Stata 7

save "C:\Stata\aula.dta", replace /* salva substituindo o arquivo aula.dta*/

!!!Use a opo, replace apenas quando realmente quiser substituir o arquivo j existente!!! O comando -compress _all- ir reduzir o tamanho do seu arquivo quando possvel liberando sempre mais memria
. compress _all . save "C:\Stata\census.dta", replace

Salvando resultados em arquivos log O comando - log using- pode ser usado para gerar arquivo de sada para os resultados gerados pelo STATA. Para criar um log faa :
. log using "C:\Stata\aula.log", replace/append

!!! necessrio fechar o arquivo LOG sempre antes de sair do STATA ; use o comando -log close-!!! Ainda possvel utilizar as opes log on/off- que abre ou fecha um arquivo log criado sempre que necessrio. Exemplo
log using "C:\Stata\aula.log", replace log off use aula.dta, clear sum /*mostra o conteudo do arquivo com algumas estatisticas basicas */ log on tab age drug log off log close

Nesse exemplo o arquivo log conter apenas o resultado para o comando tab. Isso ficar mais claro mais a frente. !!! Os resultados gerados pelo STATA tambm podem ser copiados e colados em qualquer planilha ou editor de texto !!! Lista de comandos iniciais: Para testar os comando abra um arquivo de dados, digite por exemplo:
use "C:\Stata\auto.dta", clear

!!! O help do STATA no to ruim. Consulte sempre que necessrio basta na linha de comando digitar help comando-!!! Comando describe- ou des- Lista as variveis de um arquivo Dta mostrando formatao e labels. Veja no help a opo fullnames.

Conhecendo o Stata 7

Comando ds- listas os nomes das variveis em um arquivo dta. Comando summarize- ou sum- Listas as variveis em um arquivo dta e algumas de suas estatsticas bsicas: N, Media, DP, Min, Max; Comando keep- Comando usado para selecionar observaes ou variveis, ex:
keep if chefe==1 /*seleciona, mantendo no arquivo, apenas os chefes*/ keep chefe idade educa /* seleciona mantendo no arquivo apenas essas trs variveis*/

Comando drop- Remove variveis ou observaes de um arquivo


drop if chefe~=1 /* remove do arquivo as pessoas que tem a varivel chefe DIFERENTE de 1*/ drop renda posic /* remove do arquivo as variaves renda e posic*/

Comando display- Usado para fazer clculos que no afetaro os dados, ex: display 2*3*7 Comando generate- ou gen- ou g- deve ser usado toda vez que uma nova varivel for criada. Posse ser associado com if-, ex:
gen A= B*C g D= A*2 if C==1

!!!Olhe o help para functions para conhecer as funes que podem ser usadas com o comando generate por exemplo log() ln() exp() int() round() max() min() etc!!! Comando egen- uma outra maneira de criar varivel. Tem suas prprias funes alguma delas podendo ser combinadas com o comando by-. Veja help egen Comando rename- d novos nomes as variveis de um arquivo dta
Rename A Nova_A

Comando recode- re-codifica valores das variveis. No Stata 8 , quando usado com a opo ,gen() cria uma nova varivel recodificada um bom comando para criao de variveis categricas a partir de variveis contnuas, ex:
recode idade (min/14.999=1)(14.999/34.999=2)(34.999/54.999=3) /// (54.999/max=4) , generate(gridade) Essa opo no vlida no Stata 7. /*No Stata 7 faa:*/ g gr_price=price recode gr_price min/3895=1 3895/5006=2 5006/10000=3 10000/max=4

Conhecendo o Stata 7 Uma outra maneira de criar uma var categrica sem o uso do recodeg gr_price1=. replace gr_price1=1 replace gr_price1=2 replace gr_price1=3 replace gr_price1=4 replace gr_price1=. if if if if if (price<3895) (price>=3895 & price<5006) (price>=5006 & price<10000) (price>=10000) price==.

Comando replace- utilizado para modificar variveis j existentes em um arquivo de dados. Note que o STATA no permite re-criar uma varivel sem o uso do replace-, outro ex:
gen A= B*C replace A=B replace A=C if B~=A

!!Ateno : No STATA missing o maior valor de todos!! Comando encode- cria uma varivel numrica de uma varivel string (texto), cria tambm labels de valores; o comando decode- cria uma varivel string de uma varivel numrica que fora criada pelo comando encode-. !!! Para criar uma varivel string utilizando o comando gen- necessrio informar o seu formato, ex:
encode sexo , generate(genero) drop sexo decode genero, gen(sexo) ou gen str1 sexo=string(gnero) replace sexo=F if genero==1 replace sexo=M if genero==2

Comando destring- U ma outra maneira de criar uma varivel numrica de uma string
destring var_string , generate(var_numer)

!!! O destring s pode ser usado quando voc tem uma varivel em formato texto, mas que seus dgitos so nmeros. Por exemplo, em um banco existe o cdigo de municpio em formato string e o destring cria um novo cdigo numrico equivalente ao comando INPUT () do sas. O STATA tambm contem um comando equivalente ao SUBSTR no sas, veja o help functions e subinstr(s1,s2,s3,n) returns s1 where the first n occurrences in s1 of s2 have been replaced with s3. If n is `.', all occurrences are replaced. !!!

Conhecendo o Stata 7 Comando renvars- Um comando muito til para modificar nomes de variveis. uma macro no disponvel pelo STATA, precisa ser baixada da Internet.
renvars _all, l /* coloca todas as variveis com letras minsculas*/ Syntax dos commandos [prefixo:] commando [lista de var][if ][in.][ponderao][, opes]

Prefixo: Um exemplo de prefixo o comando by- que permite fazer anlises delimitando sub-universos
sort sexo by sexo: sum

Lista de Variveis: as variveis includas na sua anlise, exemplos de lista de variveis _all todas as variveis sexo idade gravida trs vars gravida peso-altura var grvida e todas as variveis entre peso e altura pro* todas as variveis comeam com pro IF e IN: tambem delimitam sub universos
sum _all if sexo==1 /* produz um sumario dos dados para as obs com sexo igual a 1*/ sum _all in 1/200 /*produz o sumario dos dados nas 200 primeiras observaes*/

Ponderao: Existem 4 opes de ponderao fweights: pesos de freqncia (diz quantas vezes cada obs deve ser repetida) pweights: Indicam o peso amostral (inverso da probabilidade de seleo) aweights: Peso analtico (pesos inversamente proporcionais a varincia de uma obs a soma desses pesos representaram o numero total de obs na amostra) iweights: sem definio estatstica representa a importncia de cada obs Segunda e Terceira Aulas 1. Base de dados a. Leitura -- Exemplo da PNAD 2002 e dicionrio b. Extenso do comando --use-- delimitando variveis e universo c. Dica: gl ... (libname) d. Transferncia de arquivos e. Sub-universos f. Combinando arquivos (--merge--, --append--) 7

Conhecendo o Stata 7 g. h. i. j. k. Comparando arquivos (--cf3--) Documentao (label variable & value) Variveis Dummy Algoritmos (--replace--) Sorteando e Transpondo (reshape, transpose) Lista de Novos comandos -infile- Le no STATA arquivos textos. preciso usar um arquivo formato DCT com o dicionrio do arquivo texto:
/* o arquivo DCT tem essa cara:*/ dictionary { _column(1) double _column(5) byte _column(5) double _column(13) byte } V0101 UF V0102 V0103 %4f %2f %8f %3f "ANO DE REFERNCIA" "UNIDADE DA FEDERAO" "NMERO DE CONTROLE" "NMERO DE SERIE"

/* deve ser salvo X.dct*/ /* Para chamar o arquivo DCT em um arquivo DO, escreva:*/ infile using "Arquivo em dct",using ("arquivo com os dados em ASCII")

-global- ou gl- Linguagem macro. No nosso caso inicial vamos usar este comando para formar uma espcie de Diretrio (libname), ex:
gl NOME DO DIR "ENDEREO DO DIR" gl in "C:\Documents and Settings\Alinne Veiga\Meus documentos\Alinne\Aulas" /*Toda vez que eu escrever no meu arquivo do $in o STATA vai entender como C:\Documents and Settings\Alinne Veiga\Meus documentos\Alinne\Aulas */ *outro exemplo: gl tab "Titulo da Tabela" display "$tab" tab machine /* o resultado ser . display "$tab" Titulo da Tabela . tab machine five brands | of machine | Freq. Percent Cum. ------------+----------------------------------1 | 13 22.81 22.81 2 | 11 19.30 42.11 3 | 9 15.79 57.89 4 | 13 22.81 80.70 5 | 11 19.30 100.00 ------------+----------------------------------Total | 57 100.00 */

Conhecendo o Stata 7

-sort- Sorteia (ascendente) o arquivo de acordo com as variveis listadas. necessrio antes de alguns comandos tipo merge- e by:sort urbano by urbano: sum _all /*uma maneira de ver as estatsticas bsicas por condio Urbana e rural*/ /* veja help sort- e veja help gsort-*/

-merge- Comando usado para unir dois arquivos que tenha variveis comuns que sirvam com variveis chave. Une as linhas comuns de dois arquivos. Por exemplo, voc conduz uma pesquisa com dois perodos no tempo, as mesmas pessoas so entrevistadas e existe um cdigo para cada pessoa e essa varivel se chama cd_pess. Vc precisa unir os arquivos de dados dos dois perodos, garantindo que as pessoas tenham a srie para os dois perodos:
/* necessario sortear os arquivos pela variavel chave*/ use periodo1, clear sort cod_pes use periodo2, clear sort cod_pes /* abre o arquivo do periodo1*/ use periodo1, clear /* junta o arquivo 1 com o 2 pela variavel codpes*/ merge cod_pes using periodo2.dta /* o merge cria uma variavel que indica como o merge funcionou, veja o help essa varivel se chama _merge e sempre bom pedi um tab dela*/ tab _merge /*_merge==3 significa apenas os registros comuns aos dois keep if _merge==3 arquivos*/

drop _merge /* bom jogar for a a var _merge pois toda vez que esse comando for executado uma nova _merge ser criada, dando erro se ela j existir no arquivo de dados. Se vc no quiser apaga-la do arquivo pode renomeala tipo */ *rename _merge merge1 /*vc saber que _merge1 corresponde ao primeiro merge e assim por diante.*/

-append- Um outro comando para unir arquivos, mas dessa vez no preciso ter uma var chave. Na verdade o append coloca as novas observaes abaixo das do arquivo em uso, e o merge coloca as novas observaes ao lado. Por exemplo, voc tem um arquivo para Urbano e outro para Rural com as mesmas variveis. Voc precisa fazer uma anlise conjunta e tem que unir os dois arquivos, voc pode fazer o seguinte:

Conhecendo o Stata 7
use arq_urbano, clear append using arq_rural sum /*vai fazer o sum de toda a amostra URB + RUR*/

-erase- Comando para apagar arquivo dta que no so mais necessrios:


erase temp.dta /*apaga o arquivo temp.dta. eh necessrio escrever a extenso .dta*/

-format- Especifica o formato em que a varivel ser apresentada. Necessrio quando pedimos para listar partes do arquivo dta ou para garantir que o STATA no truncar uma varivel longa.
format age %9.0g format name %20s

-cf- e cf3- Comando utilizado para comparar dois arquivos DTA supostamente iguais. No muito utilizado, mas vale a ressalva.
/* Sytax: cf3 VARIAVEIS_A_SEREM_COMPARADAS using "ARQUIVO-Q-SE-QUER-COMPARAR", id(IDENTIFICADOR) verbose use "$in/pes_2002_URB", clear/*chama o arquivo pes_2002_URB*/ cf3 _all using "$in/pes_2002_URB_New", id(identn) verbose /*compara todas as variaveis do arquivo pes_2002_URB com as variveis do arquivo pes_2002_URB_New, sendo que a varivel chave se chama identn*/

-label- Comando para documentar arquivos, variveis e valores de variveis


use "$in/pes_2002_URB", clear label data "Pnad 2002 Pessoas em Domicilios Urbanos" label variable urb "Domicilio Urbano" label var rur "Domic Rural" label define laburb 0 rural 1 urbano label values urbano laburb label define labrur 0 urbano 1 rural label values rural labrur /* para dar label aos valores primeiro defina as categorias criando um nome para esse label; depois fale para o STATA que o label de valores da var rural se chama labrur (que pode ter qualquer outro nome)*/ /* se vc tiver vrias variveis que tem os mesmos labels de valores vc pode definir um nico label*/ label label label label ... define values values values simnao 0 no 1 sim var1 simnao var2 simnao var3 simnao

10

Conhecendo o Stata 7 -gen- Uma maneira de se criar uma dummy usando o arquivo gen em uma linha, faa:
g urb=(V4728>=1 & V4728<=3)

-tab- Uma maneira de se criar uma dummy para cada categoria de uma varivel categrica. Por exemplo, vamos criar uma dummy para cada UF. No precisa escrever 27 linhas e sim uma s:
/* se aplicssemos o comando anterior para criar uma dummy para cada uf teramos que fazer: g d_uf11==(UF==11) g d_uf12==(UF==12) ... g d_uf53==(UF==53) ao invs faa isso com apenas uma linha:*/ tab UF, gen (d_Uf) /*verifique agora seu arquivo dta */

Listas de Comandos Usados nas aulas 4, 5 e 6 Lembrando: -renvars- Re-nomeia as variveis. Esse comando tem que ser baixado da Internet -keep- Mantem linhas e/ou colunas do seu arquivo
keep peso inat desocup ocup gridade branco mulher d_Uf4 d_Uf3 d_Uf2 d_Uf1/* */ urb chefe educa rendad rendaf rendat rendap uf v0102 v0103 v0301

-save- salva seu arquivo de dados depois de modificaes feitas ( preciso pedir para salvar)
save aula4, replace

-log using- Abre um arquivo externo onde o STATA salvar os resultados (Pode ser ligado, desligado e finalizado).
log log log log using aula4.log,replace off on close

-sort- Sorteia de forma ascendente o seu arquivo (veja gsort para descendente) Novos Comandos: -aorder- Organiza as variveis de um arquivo de dados em ordem alfabtica

11

Conhecendo o Stata 7 -order- Leva as variveis listadas para o comeo do arquivo (no sorteia!)
order v0102 v0103 v0301

-by :- Pede resultados por alguma varivel


sort cor by cor: tab ocup sexo [freq = peso], nofreq row /* s mostra o %*/

-for- Outra forma de gerar resultados para por variveis. Para maiores detalhes veja o help.
for var renda*: sum X, detail for num 1/4: tab d_UfX urb [freq = peso], row *onde aparecer o X o STATA substitui pelo que foi definido antes de : "

-tab- ou tabulate- Tabula variveis; gera tabelas de 1 e duas entradas. Se usado com o comando -by:- capaz de fazer tabulaes de mais entradas. Produz nmeros absolutos e % -table- Tabula variveis gerando mdias/varincias/etc de outras variveis quando pedido:
table educa [pw = peso ], c(mean rendap max rendad mean ocup mean branco) center row /* para cada ano de educao ser gerada a mdia de renda o mximo da renda domiciliar, % de ocupados e brancos*/ table educa gridade [pw = peso] if ocup==1 & chefe==1 , c(mean rendap) center row /*para cada ano de educacao e grupo de idade ser gerado a media do salrio de chefes cocupados*/

-collapse- Esse comando reduz o banco de dados gerando as estatsticas pedidas para as variveis listadas. A reduo ser determinada pela varivel do by ():
collapse (mean) rendaf rendat rendap rendad [pw = peso] , by (uf)

/*As variveis no incluidas no collapse sero eliminadas. O arquivo passa a ter uma linha para cada UF e no mais uma linha para cada PESSOA!*/

- outsheet- e insheet- Comandos usados para importar e exportar dados em formato texto delimitado. Um arquivo delimitado por , como um .csv facilmente aberto no Excel.
outsheet using aula4.csv , noquote comma replace insheet using aula4.csv, comma clear

Alguns testes estatsticos presentes no STATA. -ttest- Faz o teste T para igualdade de medias 12

Conhecendo o Stata 7

-sdtest- testa igualdade de varincias -prtest- testa igualdade de propores para amostras grandes -median- faz o teste no paramtrico de K-amostra para igualdade de medianas -kwallis- Testa a hiptese de que amostras diferentes so de uma mesma populao -tab x y, chi2- Calcula e mostra o teste de Qui-quadrado de Pearson para tabelas de duas entradas -tab x y, exact- Faz o teste Exato de Fisher (para tabelas de n x m entradas)
ttest rendap, by(mul) sdtest rendap, by(mul) prtest ocup, by(mul) median rendad, by(ocup) kwallis gridade, by(uf) tab ocup mul, chi2 tab ocup mul, exact

Grficos: o STATA 8 parece ter melhores grficos que o STATA 7 -plot- Produz grficos de disperso
plot yvar1 [yvar2 [yvar3]] xvar [if exp] [in range] [, columns(#) encode hlines(#) lines(#) vlines(#) ]

-graph- Comando que produz diferentes tipos de grficos. Tem muitas opes veja o help para maiores detalhes. Veja a syntax:
graph [varlist] [weight] [if exp] [in range] [, graph_type specific_options common_options]

Exemplos:
stem rendaf, round(1000) /*ramo em folha*/ plot rendaf idade /* dispersao*/ graph rendaf idade, xlabel(0 10 to 100) ylab /* dispersao*/ graph idade, box /*box plot*/

13

Conhecendo o Stata 7
graph rendaf , normal bin(50) /* histograma*/ graph educa rendaf uf, matrix /*matriz*/

/* outros tipos*/ kdensity ln_renda, normal ylabel xlabel /*alternative to histograms is the kernel density plot, which approximates the probability density of the variable*/ symplot resid1 , xlabel ylabel /*A variable that is symmetric would have points that lie on the diagonal line.*/

Modelos de Regresso: O STATA contem comandos simples para executar anlise de modelos de regresso. Veja abaixo a lista de comandos e para maiores detalhes veja o help que contem exemplos
help anova help cnreg help heckman help intreg help ivreg help newey help prais help qreg help reg3 help rreg help sureg help svyintreg help svyivreg help svyreg help tobit help treatreg help truncreg help xtabond help xtintreg help xtreg help xtregar disturbance help xttobit analysis of variance and covariance censored-normal regression Heckman selection model interval regression instrumental variables (2SLS) regression regression with Newey-West standard errors Prais-Winsten, Cochrane-Orcutt, or Hildreth-Lu regression quantile (including median) regression three-stage least squares regression robust regression (NOT robust standard errors) seemingly unrelated regression interval regression with survey data instrumental variables regression with survey data linear regression with survey data tobit regression treatment effects model truncated regression Arellano-Bond linear, dynamic panel-data estimator panel data interval regression models fixed- and random-effects linear models fixed- and random-effects linear models with an AR(1) panel data tobit models

Depois de rodar um modelo de regresso preciso executar o comando predict- para que o STATA crie variveis como, por exemplo, valores ajustados, resduos, vetor X Veja abaixo alguns exemplos:
regress ln_renda educa idade predict yhat if e(sample) predict resid if e(sample), resid graph yhat resid pnorm resid /*verifique os resduos*/

tambm possvel realizar seleo de variveis do modelo via Stepwise com opes Foward e Backward, usando o comando swsw reg ln_renda urb ocup mulher branco idade educa d_Uf4 d_Uf3 d_Uf2 , pr(.01)

14

Conhecendo o Stata 7
xi:sw logit ocup mulher branco urb d_Uf4 d_Uf3 d_Uf2 i.gridade , pr(.01)

-xi:- Trasnforma as cateorias de uma var categorica em dummies. Esse comando necessrio para termos de interao
xi:logistic ocup mulher branco urb d_Uf4 d_Uf3 d_Uf2 i.gridade xi:logit ocup i.mulher i.branco i.mulher*i.branco urb d_Uf4 d_Uf3 d_Uf2 i.gridade

O teste da mxima verossimilhana pode ser feito utilizando o comando lrtest-. Veja tambm test- e -lincomxi:logistic ocup mulher branco urb d_Uf4 d_Uf3 d_Uf2 i.gridade lrtest, saving(0) xi:logistic ocup mulher urb d_Uf4 d_Uf3 d_Uf2 i.gridade lrtest

Um site com muitos exemplos: http://www.ats.ucla.edu/stat/STATA/examples/ara/default.htm ou http://www.ats.ucla.edu/stat/STATA/examples/ Anlises de dados amostrais complexos: para rodar os comandos para dados amostrais complexos no STATA preciso ter as variaveis usadas para o desenho do plano, por exemplo: - estratos - UPAs - unidae primaria de amostragem - fpc - variavel que corrige para populao finita (indica o numero total de upas na amostra) - pweight - peso amostral Dependendo de quais variveis forem declaradas o Stata entende qual o plano amostral, exemplo: - amostra aleatria simples sem reposio: define peso e FPC (equivalente ao WOR do SUDDAN) - conglomerado em 1 estagio: FPC pweight Upa - estratificada: strata fpc pweight No caso da PNAD o seu desenho definido como amostra probabilstica de domiclios obtida em trs estgios de seleo: -unidades primrias - municpios; -unidades secundrias - setores censitrios; -e unidades tercirias - unidades domiciliares Na seleo das unidades primrias e secundrias (municpios e setores censitrios) da PNAD da primeira dcada do sculo 21, foram adotadas a diviso territorial e a malha setorial vigentes em 1o de agosto de 2000 e utilizadas para a realizao do Censo Demogrfico de 2000. Arquivo sobre a metodologia da PNAD Usando os dados da PNAD, usamos as variveis fornecidas:

15

Conhecendo o Stata 7 UPA STRAT e no PSU Delimitao do municpio - Identificao de estrato de municpio auto-representativo auto-representativo Unidade primria de amostragem

preciso estabelecer qual o desenho com o comando svysetsvyset pweight peso svyset strata strat svyset psu upa

Veja o help svy- para a lista de todos os commandos para Anlise de dados Amostrais Complexos no STATA:
Svydes svymean rendaf, by(branco) svytotal rendaf, by(mul) svyreg ln_renda urb ocup mulher branco idade educa d_Uf4 d_Uf3 d_Uf2, deft xi:svylogit ocup mulher branco urb d_Uf4 d_Uf3 d_Uf2 i.gridade svylogit, deft svylogit ,or

MACROS: A linguagem macro do STATA um pouco complicada, mas mesmo sem conhecer todas os comandos macro possvel construir loopings simples como os listados abaixo. Esse tipo de looping facilita quando necessrio repetir um bloco de comandos para muitas variveis como por exemplo ou, ler diferentes arquivos que tenham o mesmo dicionrio como no caso do CENSO 2000.
* Le arquivos do Censo substituindo o ``i'' pelos cdigos das UFs /* primeiro preciso certificar que o programa j no existe*/ capture program drop cm /* dai cria o programa entre chaves */ program define cm local i 1 while "``i''"~="" { display "UF ``i''" infile using "$read\EDOM2000.dct" , using("$data\\``i''\Dom${N``i''}.txt") save "$out/``i''DOM",replace local i = `i' + 1 } end /* finalize o programa e chame para os parmetros necessrios*/ cm RO AC AM RR PA AP TO MA PI CE RN PB PE AL SE BA /* vai ler o censo para essas ufs*/

/*Macro para dar Merge em diversos arquivos chamada mmerge cap program drop mmerge

16

Conhecendo o Stata 7
program define mmerge args file1 file2 file_m *file1 = arquivo 1 *file2 = arquivo 2 *file_m = arquivo resultante do merge use "$dir/`file1'", clear merge ident using "$dir/`file2'" tab _m drop _m sort ident save "$dir/`file_m'", replace end * para chamar a macro mmerge Dom Pes DOMPES

/*macro que cria arquivos mensais da PME*/ cap program drop gmes program define gmes args file local i=1 while `i'<13{ use "$dir\\`file'", clear keep if mesp==`i' sort ident save "$dir\\`file'm`i'", replace local i=`i' + 1 } end gmes /*para que a macro execute basta chama-la*/ /*a macro salvara 12 arquivos com o mesmo nome do arquivo inicial s que com terminao m"mes"*/

Existem muitos outros comandos que no foram mencionados aqui. Antes de criar alguma coisa nova procure no site do stata ou em algum site de procura, por que muitos usurios do STATA deixam suas macros disponveis para download. Se no for ideal para o que precisa, voc pode tentar adapt-las. Exemplos de macros encontradas:inequal, lorenz, relsgini e glcurve7

17

Conhecendo o Stata 7

/*******************************************************************/ /******************* AULA UM **********************************/ /*******************************************************************/ clear set mem 10m use "C:\Stata\auto.dta", clear /*chama arquivo*/ list /*lista o arquivo dta*/ set more off list /*compare /******************************************************************/ use "C:\Stata\census.dta", clear use state region pop using "C:\Stata\census.dta", clear /*le apenas variaveis state region pop do arquivo census.dta*/ use "C:\Stata\cancer.dta" if died==1, clear /* le apenas as variaveis onde a variavel died recebe valor 1*/ * comentrio como no sas /* use "C:\Stata\cancer.dta" if died==1, clear */ save "C:\Stata\aula.dta" /* salva o arquivo no diretrio STATA*/ save "C:\Stata\aula.dta", replace /* salva substituindo o arquivo aula.dta*/ compress _all /* ajuda a diminuir o tamanho do arquivo e liberar memoria*/ /******************************************************************/ use "C:\Stata\cancer.dta", clear log using "C:\Stata\aula.log", replace tab age drug log close log using "C:\Stata\aula.log", append tab age died log close use "C:\Stata\cancer.dta", clear log using "C:\Stata\aula1.log", replace cap log off cap log on tab age drug cap log off cap log on tab age died cap log of

18

Conhecendo o Stata 7

log close /******************************************************************/ use "C:\Stata\auto.dta", clear des /* como se fosse o proc contents do sas*/ /*compare*/ ds sum /* estatisticas basicas*/ sum, detail/* que equivalente ao proc univariate*/ /*toda vez que se abre um arquivo no sas ele informa o # de obs no STATA preciso perguntar para ele com o comando*/ count/*74*/ /*subuniversos*/ /* vc pode delimitar o universo no use ou usando o "keep if"*/ tab rep78 keep if rep78==3 /* para recuperar os que foram eliminados s chamando o arquivo de volta*/ sum price if rep78==3 /* o duplo = necessrio en toda condio!!!!!*/ /* uma opo para delimitar universo quando executando comandos*/ keep make price mpg rep78 headroom weight length use "C:\Stata\auto.dta", clear drop if rep78~=3 /* ~= => diferente */ drop turn displacement gear_ratio gear_ratio /******************************************************************/ use "C:\Stata\auto.dta", clear drop if rep78==. display 2*3*7 /* queremos o peso em kilos*/ gen peso_kilos = weight/2.2046 des pes* /* queremos mudar o nome da variavel weight*/ rename weight peso_libras /* usnado funcoes */ g ln_preco=ln(price) /* criar o preco medio por rep78*/ /* no sas vc teria que fazer um proc means se quisesse a media de uma var por uma outra que por exemplo fosse categorica no STATA basta usar o comando -egen- da seguinte maneira*/ egen m_price=mean(price), by (rep78) /* as variaceis do by devem sempre estar entre parenteses o STATA vai criar a variavel no mesmo arquivo de dados no sendo necessario o merge como no sas*/

19

Conhecendo o Stata 7

/* o comando egen tem muitas funcoes. Veja o seu help*/ /* Categorizando carros por preco*/ g gr_price=price recode gr_price min/3895=1 3895/5006=2 5006/10000=3 10000/max=4 /* veja help para lista de numeros help numlist*/ tab price gr_pr /*verifica se o recode funciona*/ g gr_price1=. replace gr_price1=1 replace gr_price1=2 sas*/ replace gr_price1=3 replace gr_price1=4 replace gr_price1=. if (price<3895) if (price>=3895 & price<5006) /* repare diferena com o if (price>=5006 & price<10000) if (price>=10000) if price==.

/* as duas sero iguais, confira*/ tab gr_price gr_price1 encode make , generate(model) drop make tab model, nolabel /* tabula mostrando os valores e no os labels*/ decode model, gen(make) /*recupera a var make*/ tab make, nolabel /*nada muda por que a variavel string*/ renvars _all,u des

20

Conhecendo o Stata 7

/****************************************************************************/ /************************ AULA DOIS *************************************/ /****************************************************************************/ set more off clear set mem 32m /* Leitura -- Exemplo da PNAD 2002 e dicionrio */ /* para ler um arquivo tipo PNAD preciso criar um dicionario de dados, um arquivo .dct que ser invocado em seu programa . Abra o arquivo aula2.dct*/ /* Abaixo s para ilustrar est o conteudo do arquivo dct _column() - define em que coluna comea a variavel double, byte ou str - define o formato da var %?? - o tamanho da variavel "" - label da variavel Exemplo de dct que sera usado: dictionary { _column(1) double _column(5) byte _column(5) double _column(13) byte _column(16) byte _column(18) byte _column(27) byte _column(30) byte _column(33) byte _column(666) byte _column(668) byte _column(669) byte _column(688) double _column(700) double _column(712) double _column(724) double _column(766) byte _column(767) byte _column(768) double } */ /* para ler o arquivo da pnad: uso o comando infile*/ infile using "\\\MICRO-15\Aula\Aula2\Aula2.dct" if (UF>30 & UF<40),/* sudeste */ using ("\\\MICRO-15\Aula\Aula2\PES2002.txt") /*** tenha paciencia que demora um pouco!!!****/ sum des compress _all /*salvando o arquivo*/ save "\\\MICRO-15\Aula\Aula2/pes_2002_SE.dta", replace V0101 UF V0102 V0103 V0301 V0302 V8005 V0401 V0404 V4703 V4704 V4705 V4718 V4719 V4720 V4721 V4727 V4728 V4729 %4f "ANO DE REFERNCIA" %2f "UNIDADE DA FEDERAO" %8f "NMERO DE CONTROLE" %3f "NMERO DE SERIE" %2f "NMERO DE ORDEM" %1f "SEXO" %3f "IDADE DO MORADOR" %1f "CONDIO NA UNIDADE DOMICILIAR" %1f "COR OU RACA" %2f "ANOS DE ESTUDO" %1f "COND ATIVIDADES NA SEMANA" %1f "COND OCUPAO NA SEMANA" %12f "REND MENSAL TRABALHO PRINCIPAL" %12f "REND MENSAL TODOS OS TRABALHOS" %12f "REND MENSAL TODAS AS FONTES" %12f "REND MENSAL DOMICILIAR, 10 OU+" %1f "CD. REA CENSITRIA" %1f "CD. SITUAO CENSITARIA" %5f "PESO DA PESSOA"

21

Conhecendo o Stata 7
/******************************************************************************* / /* uma maneira de criar uma espcie de libname como no sas criando uma macro */ /* global da seguinte maneira */ /******************************************************************************* / gl in "\\\MICRO-15\Aula\Aula2" *toda vez que aparecer no programa $in o STATA entendera como o diretorio \\\MICRO-15\Aula\Aula2 /* Extenso do comando --use-- delimitando variveis e universo e chamando dct */ /* agora utilizando a macro chame o arquivo pes_2002_SE_SE considerando apenas pessoas em domicilios urbanos */ use "$in/pes_2002_SE" if (V4728>=1 & V4728<=3), clear *transformano maiusculas em minusculas renvars _all, l *copie rename rename rename rename rename os arquivos renvars* para o seu STATA antes de rodar esse comando v4703 anos_estudo v4704 atividade v4705 ocupacao v4727 codigo_area v4728 codigo_situacao

/* TAREFA: Antes de salvar renomee as variaveis: v8005 v4703 v4704 v4705 v4727 v4728 para que elas faam sentido para vc. Dica: leia os labels destas variaveis ou veja na documentao da pnad no diretorio da aula2*/ /* rename... ...*/ * sorteando o arquivo pelas variaveis que identificam cada pessoa na pnad sort v0101 uf v0102 v0103 v0301 save "$in/pes_2002_SE_URB" , replace ** note que mudei o nome do arquivo /**********************************************/ /************* Sub-universos ****************/ /**********************************************/ /* Criando arquivos s para mulheres e s para homens em domicilios urbanos*/ use "$in/pes_2002_SE_URB", clear keep if v0302==2 /* s homens*/ gen str3 sexo = "hom" rename v0302 sex tab sex /* deve ter apenas valores iguais a 2*/ tab sexo

22

Conhecendo o Stata 7

save "$in/pes_2002_SE_URB_HOM" , replace /****/ use "$in/pes_2002_SE_URB", clear keep if v0302==4 /* s mulheres*/ gen str3 sexo = "mul" rename v0302 sex tab sex /* deve ter apenas valores iguais a 4*/ tab sexo save "$in/pes_2002_SE_URB_MUL" , replace /*************************************/ /* criar um arquivo s com as rendas */ /*************************************/ use "$in/pes_2002_SE_URB", clear keep v0101 uf v0102 v0103 v0301 v4718 v4719 v4720 v4721 /*TAREFA: antes de salvar: renome as variaveis de v4718 v4719 v4720 v4721 para que elas indiquem que tipo de renda que estamos lidando - dica: Veja o label dessas variaveis originais*/ /* rename ... ...*/ rename rename rename rename v4718 v4719 v4720 v4721 ren_trab_p ren_todos_trab ren_todos_fontes ren_dom

sort v0101 uf v0102 v0103 v0301 save "$in/pes_2002_SE_renda" , replace /* Exportando os dados 15\StatT6*/ /* transferindo dados do /* transferindo dados do /* transferindo os dados Usando o STAT/TRANSFER - v no link: \\Microsas para o STATA */ excel para o STATA*/ do STATA para qualquer outro*/

/* Aproveite o tempo para "brincar" com os arquivos, use os comandos da aula passada*/ /* Tente criar um novo arquivo dta lendo novas variaveis da PNAD*/

23

Conhecendo o Stata 7

/****************************************************************************/ /************************ AULA TRES *************************************/ /****************************************************************************/ clear set mem 32m set more off /* Antes de rodar os procedimentos para a aula 3, crie um diretorio em seu computador e grave os arquivos *.dta que esto no diretrio aula2 neste novo direrrio crie tambem o caminho usando o comando gl ... veja no arquivo aula2.do como usar o comando gl . Se criar um diretrio com outro nome diferente de "in" lembre-se de substituir $in por $Seu diretorio Para substituir qualquer coisa no seu arquivo do v em Search-> replace*/ /***** Combinando arquivos (--merge--, --append--) ******/

/* Primeiro uno os arquivos de homens e mulheres */ use "$in/pes_2002_SE_URB_MUL" , clear append using "$in/pes_2002_SE_URB_HOM" /* elimino variaveis velhas de renda*/ drop v4718 v4719 v4720 v4721 /* ns vamos agra dar juntar esse arquivo com o de rendas com as variaveis renomeadas*/ sort v0101 uf v0102 v0103 v0301 save temp, replace count /* checa o numero de obs do arquivo em uso*/ /* agora uno o arquivo temp com o arquivo de rendas */ use temp, clear merge v0101 uf v0102 v0103 v0301 using "$in/pes_2002_SE_renda" /* o merge cria uma variavel _m que permite checar como fora realizado */ /* para mais detalhes digite na linha de comando help merge */ tab _merge /* foi um merge perfeito - recuperamos o arquivo original com domic urbano*/ drop _m save "$in/pes_2002_SE_URB_New", replace /* para apagar arquivos desnecessrios */ erase temp.dta *erase "$in/pes_2002_SE_renda.dta" *erase "$in/pes_2002_SE_URB_HOM.dta" *erase "$in/pes_2002_SE_URB_MUL.dta"

24

Conhecendo o Stata 7

/*************************************************/ /** Comparando arquivos (--cf3--) ***/ /***********************************************/ /* o STATA fornece comandos que permite comparar dois arquivos dta veja o help cf Na web encontra-se disponivel uma verso mais atualizada do --cf-que o --cf3-- (help cf3) para comparar os arquivos preciso que se tenha um identificador comum */ clear set mem 100m use "$in/pes_2002_SE_URB_New", clear *egen ident=concat(v0102 v0103 v0301), format(%30s) /* essa funo supostamente concatena as variaveis criando um identificador*/ gen double identn=v0102*1000+v0103*100+v0301 format identn %30.0g sort v0101 uf v0102 v0103 v0301 save "$in/pes_2002_SE_URB_New", replace /***/ use "$in/pes_2002_SE_URB", clear *egen ident=concat(v0102 v0103 v0301) /* essa funo concatena as variaveis criando um identificador*/ gen double identn=v0102*1000+v0103*100+v0301 format identn %30.0g sort v0101 uf v0102 v0103 v0301 save "$in/pes_2002_SE_URB", replace /* comparando os dois arquivos */ use "$in/pes_2002_SE_URB", clear cf3 _all using "$in/pes_2002_SE_URB_New", id(identn) verbose /* veja o que aconteceu*/ /***************************************/ /** Variveis derivadas **/ /*************************************/ use "$in/pes_2002_SE.dta" , clear

/* criando dummies*/ g urb=(V4728>=1 & V4728<=3) /* dummy para urbano*/ tab urb [freq=V4729] g sexo=(V0302==2) /*dummy para homem*/ /* usando os comando tab e by: veja o que acontece*/ sort sexo by sexo: tab UF urb , nofreq column /* s mostra o %*/ by sexo: tab UF urb /*s mostra a contagem*/

25

Conhecendo o Stata 7
by sexo: tab UF urb, colum /*mostra a contagem e % mas muito comfuso*/ /* criando uma dummy para cada UF*/ /* se aplicssemos o comando anterior para criar uma dummy para cada uf caso estivessemos com trabalhando com um arquivo a nivel Brasil teramos que fazer: g d_uf11==(UF==11) g d_uf12==(UF==12) ... g d_uf53==(UF==53) ao inves faa isso com apenas uma linha:*/ tab UF, gen (d_Uf) /*verifique agora seu arquivo dta */ /* se quiser, renome as dummies para MG ES RJ e SP */

/* Crie labels para as Dummies */ label var RJ "Dummy para o Estado do Rio de Janeiro" label var MG "Dummy para o Estado de Minas Gerais" * Crie os labels para ES e SP /*************************************************************************/ /*********************** Algoritmos (--replace--) *********************/ /*************************************************************************/ /* Vc pode criar variaveis de outras variaveis */ /*Exemplos de algortimos para a PNAD*/ /* tratamento da renda da pnad*/ rename v4718 rendap replace rendap=0 if rendap<=0 | rendap==. replace rendap=. if rendap==999999999999 rename v4719 rendat replace rendat=0 if rendat<=0 | rendat==. replace rendat=0 if rendat==999999999999 rename v4720 rendaf replace rendaf=0 if rendaf<=0 | rendaf==. replace rendaf=0 if rendaf==999999999999 rename v4721 rendad replace rendad=0 if rendad<=0 | rendad==. replace rendad=0 if rendad==999999999999 /* genero g mulher=1 if v0302==4 replace mulher=0 if v0302==2 label var mulher "Dummy para Mulheres" drop v0302 tab mulher

26

Conhecendo o Stata 7
*/ /*Branco e no branco: g branco=. replace branco=1 if v0404==2|v0404==6 replace branco=0 if v0404==4|v0404==8|v0404==0 replace branco=. if v0404==9 label var branco "Dummy para branco" drop v0404 tab branco */ /* Grupo de idade: g gridade=. replace gridade=1 replace gridade=2 replace gridade=3 label var gridade if (age>=10 & age<=20) if (age>20 & age<=40) if (age>40 & age~=.) "Grupos de Idades*/

/* Veja como cria label de valores*/ label define grid 1 "10 a 20" 2 "21 a 40" 3 "41 e mais" label value gridade grid tab grid */ /* Dummy para ocupado, desocupado e inativo: g ocup=(v9001==1 | v9002==2 | v9003==1 | v9004==2) g desocup=(v9001==3 & v9002==4 & v9003==3 & v9004==4 & v9115==1 & (v9119>=1 & v9119<=8)) g inat=(v9001==3 & v9002==4 & v9003==3 & v9004==4 & v9115==3) replace inat=1 if (v9001==3 & v9002==4 & v9003==3 & v9004==4 & v9115==1 & (v9119==0)) replace inat=0 if (ocup==1 | desocup==1) */ /* Peso g peso=v4729*/

/* Exercicio: Faa um arquivo DCT para ler as variaveis da PNAD necessrias para criar esses algoritmos acima. Selecione qualquer outra variavel da sua escolha e tente criar um novo algoritmo Dica: tente delimitar ao mximo seu universo para ser mais rpido, expemplo use regiao metropolitana do rio ou delimite um grupo de idade*/

27

Conhecendo o Stata 7

/****************************************************************************/ /************************ AULA QUATRO*************************************/ /****************************************************************************/ /* Leia o arquivo do diretorio que vc salvou na aula passada*/ use "$in/pes_2002_SE.dta" , clear

/* preparando o arquivo*/ renvars _all, l /* Educao pela variavel j construida pela PNAD veja no dicionario */

g educa=v4703-1 replace educa=. if educa>=16 *o que vcs acham de considerar a ultima categoria como 16? * replace educa=16 if educa==15 /* v4703 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 */

categoria Sem instruo e menos de 1 ano 1 ano 2 anos 3 anos 4 anos 5 anos 6 anos 7 anos 8 anos 9 anos 10 anos 11 anos 12 anos 13 anos 14 anos 15 anos ou mais No determinados e sem declarao

/* Chefe do domicilio */ g chefe=(v0401==1) /* criando dummies*/ g urb=(v4728>=1 & v4728<=3) /* dummy para urbano*/ tab uf, gen (d_Uf) /*verifique agora seu arquivo dta */ /* genero */ g mulher=1 if v0302==4 replace mulher=0 if v0302==2 label var mulher "Dummy para Mulheres" drop v0302 tab mulher /*Branco e no branco:*/ g branco=. replace branco=1 if v0404==2|v0404==6 replace branco=0 if v0404==4|v0404==8|v0404==0 replace branco=. if v0404==9

28

Conhecendo o Stata 7
label var branco "Dummy para branco" drop v0404 tab branco /* Grupo de idade:*/ g gridade=. replace gridade=1 replace gridade=2 replace gridade=3 label var gridade if (v8005>=10 & v8005<=20) if (v8005>20 & v8005<=40) if (v8005>40 & v8005~=.) "Grupos de Idades"

/* Veja como cria label de valores*/ label define grid 1 "10 a 20" 2 "21 a 40" 3 "41 e mais" label value gridade grid tab grid /* Dummy para ocupado, desocupado e inativo:*/ g ocup=(v4705==1 & v4704==1) g desocup=(v4705==2 & v4704==1) g inat=(v4704==2) /* Peso */ g peso=v4729 **tratamento de renda rename v4718 rendap replace rendap=0 if rendap<=0 | rendap==. replace rendap=. if rendap==999999999999 rename v4719 rendat replace rendat=0 if rendat<=0 | rendat==. replace rendat=. if rendat==999999999999 rename v4720 rendaf replace rendaf=0 if rendaf<=0 | rendaf==. replace rendaf=. if rendaf==999999999999 rename v4721 rendad replace rendad=0 if rendad<=0 | rendad==. replace rendad=. if rendad==999999999999 /* vou selecionar s as variaveis construidas , veja a dica!* keep peso inat desocup ocup gridade branco mulher d_Uf4 d_Uf3 d_Uf2 d_Uf1/* */ urb chefe educa rendad rendaf rendat rendap uf v0102 v0103 v0301

aorder /* organiza as variaveis em ordem alfabetica*/ order v0102 v0103 v0301 /* leva as variaveis listadas para o comeo do arquivo*/ /*tente salvar este arquivo no diretorio q vc criou na aula 3*/ save aula4, replace /********************************************************/ /*********** Analisando ********************************/ /********************************************************/ /* Antes de gerar qualquer resultado abra um log gravando em seu diretorio!*/

29

Conhecendo o Stata 7
log using aula4.log,replace cap log off use aula4, clear /* Como vimos aula passada*/ /**Usando o TAB**/ *sem expandir a amostra tab urb *expandindo a amostra tab urb [freq=peso] /* Two-way Tables*/ /* Contagens */ tab mul bran cap log on tab mul bran [freq = peso] cap log off /* % */ tab mul tab mul tab mul tab mul bran bran bran bran [freq [freq [freq [freq = = = = peso], peso], peso], peso], nofreq nofreq nofreq nofreq column row col row col row /*Muito confuso!*/

/* Usando o by:*/ sort mul cap log on by mul: tab ocup branco [freq = peso], nofreq row /* s mostra o %*/ cap log off /* Usando o comando for*/ /* o cmando diz: para cada variavel que comece com renda faa: sumrio de cada var!*/ for var renda*: sum X, detail /* para cada var df de 1 a 4 faa tab dufxurb*/ for num 1/4: tab d_UfX urb [freq = peso], row /*onde aparecer o X ele substitui por o que foi definido antes de : " /**Usando o table */ /* o table permite vrias estatsticas!!! Veja o help para saber quais so*/ cap log on table educa [pw = peso ], c(mean rendap max rendad mean ocup mean branco) center row cap log off /* na tabela da cima faco mdias de renda, maximo de rendad, % de ocupados e % brancos para cada nvel educadional . Note uso o PWeight, neste caso Fweight e Pweight produzem os mesmos resultados */ table educa [pw = peso ], c(mean rendap mean ocup) by (mul) center table educa gridade [pw = peso], c(mean rendap) center row row

30

Conhecendo o Stata 7

table educa gridade [pw = peso] if ocup==1 & chefe==1 , c(mean rendap) center row *** Tente outras tabulaoes for num 1/4: table educa gridade [pw = peso] if ocup==1 & chefe==1 & d_UfX==1, c(mean rendap) center row /*ou*/ sort uf by uf:table educa gridade [pw = peso] if ocup==1 & chefe==1 , c(mean rendap) center row /**********Usando o collapse *************/ /* o collapse tambem faz mdias e outras estatsticas mas elimina o seu arquivo em uso reduzindo Por exemplo vc quer ter um arquivo a nivel de UF com as mdias de todas as variveis de seu arquivo - use o collapse mas se vc precisa apenas gerar um resultado com mdias by uf use o table!*/ table uf [pw = peso] , c(mean rendaf mean rendat mean rendap mean rendad) /*veja como est seu arquivo*/ collapse (mean) rendaf rendat rendap rendad [pw = peso] , by (uf) cap log on list cap log off /* agora OLHE o seu arquivo! Sim ele reduziu de tamanho!*/ /* caso vc realmente queira usar o collapse vc pode gerar um arquivo para ser lido no excel usando o comando outsheet - crie em seu diretorio*/ outsheet using aula4.csv , noquote comma replace /*cria um arquivo em csv que abre no excel! Tente*/ /* dica: vc pode ler esse arquivo de volta no STATA usando o comando insheet*/ insheet using aula4.csv, comma clear /* depois do collapse vc tem que chamar o seu arquivo Aula4.dta para prosseguir! */ cap log close /* olhe o seu log!*/ /****************************************/ /** testes estatisticos *****************/ /****************************************/ use aula4, clear keep if ocup==1 * ttest performs one-sample, two-sample, and paired t tests on the equality of means ttest rendap, by(mul)

31

Conhecendo o Stata 7
ttest rendap, by(branco) **s permite por dois grupos *sdtest performs tests on the equality of variances (standard deviations). sdtest rendap, by(mul) use aula4, clear keep if chefe==1 *prtest performs tests on the equality of proportions using large-sample statistics. prtest ocup, by(mul) prtest ocup, by(bra) /*tire o filtro para chefes e rode os testes de novo, veja q a conclusao muda*/ *median performs a nonparametric K-sample test on the equality of medians. median rendad, by(ocup) /*???*/ *kwallis tests the hypothesis that several samples are from the same population. kwallis gridade, by(uf) /*???*/ **teste chi2 * chi2 calculates and displays Pearson's chi-squared for the hypothesis that the rows and columns in a two-way table are independent. tabulate ocup mul, row col chi2 /*compare com*/ ttest ocup, by(mul) /*exact displays the significance calculated by Fisher's exact test and may be applied to r x c as well as 2 x 2 tables. In the case of 2 x 2 tables, both one- and two-sided probabilities are displayed.*/ tabulate ocup mul, all exact col tabulate ocup gridade, exact col /*faz, mas demora muito!*/ tabulate ocup educa, exact col /*Nem roda!*/

32

Conhecendo o Stata 7
clear set mem 32m /***************************************************************************/ /********************************* aula 5 ***********************************/ /***************************************************************************/ /*1. Outras Anlises a. Analises de dados amostrais complexos (usando desenho amostral) b. Modelos de Regresso (simples, probit, logit) (robust & weight) 2. Grficos */ /***************************************************************************/ /** Modelos de regresso **/ /* abra o qruivo: */ use "C:\Stata\aulas\aula4", clear keep if (gridade>=1 & gridade<=3) *keep if uf==33 keep if chefe==1 /* grafico de ramo e folha*/ stem rendaf, round(1000) stem idade plot rendaf idade graph rendaf idade, xlabel(0 10 to 100) ylab /* podemos ver se existem outliers*/ graph idade, box sort uf graph idade, box by (uf) /* podemos eliminar esses valores extremos*/ sum rendaf, detail drop if rendaf>10000 & rendaf~=. graph rendaf, box by (uf) graph rendaf , normal bin(50) /*criando log da renda*/ g ln_renda=ln(rendaf) graph ln_renda , normal bin(50) *kdensity rendaf, xlabel(0 5000 to 18000) ylab/*demore um pouco*/ /* Mais grficos */ graph ln_renda , box graph idade educ , xlabel(0 2 to 16) ylabel(0 5 10 to 100) graph educa rendaf uf, matrix

/* Modelo de regressao*/ regress ln_renda educa idade predict yhat if e(sample) predict resid if e(sample), resid

33

Conhecendo o Stata 7
/* grficos de diagnostico*/ graph yhat resid g idade2=idade*idade regress ln_renda educa idade idade2 graph yhat idade graph resid educa graph ln_renda yhat idade,connect(.l) graph ln_renda yhat idade, connect(.l) symbol(Oi) sort pnorm resid /*verifique os resduos*/ /* regressao robusta e regress ln_renda educa regress ln_renda educa regress ln_renda educa com peso*/ idade idade2 , robust idade [pw=peso] idade

/* stepwise */ sw reg ln_renda urb ocup mulher branco idade educa d_Uf4 d_Uf3 d_Uf2 , pr(.01) sw reg ln_renda urb ocup mulher branco idade educa d_Uf4 d_Uf3 d_Uf2 [pw=peso], pr(.01) reg ln_renda urb ocup mulher branco idade educa d_Uf4 d_Uf3[pw=peso] predict yhat1 if e(sample) predict resid1 if e(sample), resid graph resid1 yhat1 pnorm resid /*verifique os resduos*/ graph ln_renda yhat idade, connect(.l) symbol(Oi) sort /*a primeira serie vai ser bolinha e a segunda invisivel*/ graph ln_renda, normal bin(20) kdensity ln_renda, normal ylabel xlabel /*alternative to histograms is the kernel density plot, which approximates the probability density of the variable*/ symplot ln_renda, xlabel ylabel /*A variable that is symmetric would have points that lie on the diagonal line.*/ symplot resid1 , xlabel ylabel /*A variable that is symmetric would have points that lie on the diagonal line.*/ pnorm ln_renda /*pnorm is sensitive to deviations from normality nearer to the center of the distribution*/ /*apesar da transformao a renda ainda parece no normal*/ /*****Regressao logistica*****/ xi:logistic ocup mulher branco urb d_Uf4 d_Uf3 d_Uf2 i.gridade xi:logistic ocup mulher urb d_Uf4 d_Uf3 i.gridade display -2*(-16997.331- (-16995.367)) xi:logistic ocup mulher branco urb d_Uf4 d_Uf3 d_Uf2 i.gridade [pw=peso]

34

Conhecendo o Stata 7
/*mostra as razoes de vantagens = exp(betas)*/ xi:logit ocup mulher branco urb d_Uf4 d_Uf3 d_Uf2 i.gridade [pw=peso] /* mostra os betas*/ /* Teste da mxima verossimilhanca*/ drop if branco==. /*tem que ter o mesmo numero de obs*/ xi:logit ocup mulher branco urb d_Uf4 d_Uf3 d_Uf2 i.gridade lrtest, saving(0) xi:logit ocup mulher urb d_Uf4 d_Uf3 i.gridade lrtest predict phat if e(sample) predict r, resid graph r phat, ylab (-6 -4 -2 0 +2 +4 +6) /*probit*/ xi:probit ocup mulher branco urb d_Uf4 d_Uf3 d_Uf2 i.gridade [pw=peso] /*coeficientes */ xi:dprobit ocup mulher branco urb d_Uf4 d_Uf3 d_Uf2 i.gridade [pw=peso] /* efeitos marginais*/ /* Um site com muitos exemplos:http://www.ats.ucla.edu/stat/STATA/examples/ara/default.htm ou http://www.ats.ucla.edu/stat/STATA/examples/ */ /* Analises de dados amostrais complexos*/ /* para rodar os comandos para dados amostrais complexos no STATA preciso ter variaveis referentes aos: - estratos - UPA - unidae primaria de amostragem - fpc - variavel que corrige para populao finita (indica o numero total de upas na amostra) - pweight - peso amostral*/ * amostra aleatria simples sem reposio: define peso e FPC (equivalente ao WOR do SUDDAN) * conglomerado em 1 estagio: FPC pweight Upa * estratificada: strata fpc pweight /* o desenho da PNAD: amostra probabilstica de domiclios obtida em trs estgios de seleo: -unidades primrias - municpios; -unidades secundrias - setores censitrios; -e unidades tercirias - unidades domiciliares Na seleo das unidades primrias e secundrias (municpios e setores censitrios) da PNAD da primeira dcada do sculo 21, foram adotadas a diviso territorial e a malha setorial vigentes em 1o de agosto de 2000 e utilizadas para a realizao do Censo Demogrfico de 2000 */ /*abrindo um arquivo construdo com as informacoes sobre o plano amostral da PNAD 2002*/ use "$in/AuxInfo2002.dta",clear sum

35

Conhecendo o Stata 7
des sort uf v0102 v0103 save "$in/AuxInfo2002.dta", replace use aula4, clear sort uf v0102 v0103 count merge uf v0102 v0103 using "$in/AuxInfo2002.dta" tab _merge keep if _merge==3 /* No arquivo de documentao da PNAD diz: UPA - Delimitao do municpio STRAT - Identificao de estrato de municpio auto-representativo e no autorepresentativo PSU - Unidade primria de amostragem */ * primeiro : diz qual o desenho svyset pweight peso svyset psu upa svydes svymean rendaf, by(branco) svytotal rendaf, by(mul) g ln_renda=ln(rendaf) reg ln_renda urb ocup mulher branco idade educa d_Uf4 d_Uf3 d_Uf2 [pw=peso] svyset pweight peso svyset psu upa svyreg ln_renda urb ocup mulher branco idade educa d_Uf4 d_Uf3 d_Uf2, deft /* os betas devem ser os mesmos mas os SE no*/ /* o deft diz o quanto vc substima ou sobrestima se no leva em conta o plano amostral (sempre comparando a uma amosta aleatoria simples) Se igual a 1 no pode seguir sem levar em conta o plano amostral No vai existir vantagem em no considerar a amostra como aleatria simples*/ xi:logit ocup mulher branco urb d_Uf4 d_Uf3 d_Uf2 i.gridade [pw=peso] svyset pweight peso svyset psu upa xi:svylogit ocup mulher branco urb d_Uf4 d_Uf3 d_Uf2 i.gridade svylogit, deft svylogit ,or /*veja help svy para maiores detalhes*/

36

Conhecendo o Stata 7
/*************************************************************************** Sexta aula (6/02) 3. Macros 4. Outras anlises a. Variveis Instrumentais, Anlise de sobrevivncia ***************************************************************************/ /* No vamos rodar nada por enquanto Exemplos de Macros: capture program drop cm program define cm local i 1 while "``i''"~="" { display "UF ``i''" infile using "$read\EDOM2000.dct" , using("$data\\``i''\Dom${N``i''}.txt") save "$out/``i''DOM",replace local i = `i' + 1 } end cm RO AC AM RR PA AP TO MA PI CE RN PB PE AL SE BA * Le arquivos do Censo substituindo o ``i'' pelos cdigos das UFs */ /* Outro exemplo: capture program drop cm program define cm local i 1 while "``i''"~="" { display "UF ``i''" append using "$in/PropD``i''" local i = `i' + 1 } end cm AC AM RR PA AP TO MA PI CE RN PB PE AL SE BA MG1 MG2 ES RJ SP1 SP2 SP3 PR SC RS MS MT GO DF * essa macro junta todas as UFs do Censo em um s arquivo */ /*Macro para dar Merge em diversos arquivos cap program drop mmerge program define mmerge args file1 file2 file_m *file1 = arquivo 1 *file2 = arquivo 2 *file_m = arquivo resultante do merge use "$dir/`file1'", clear merge ident using "$dir/`file2'" tab _m drop _m sort ident save "$dir/`file_m'", replace end * para chamar a macro mmerge Dom Pes DOMPES

37

Conhecendo o Stata 7
/*macro que cria arquivos mensais da PME cap program drop gmes program define gmes args file local i=1 while `i'<13{ use "$dir\\`file'", clear keep if mesp==`i' sort ident save "$dir\\`file'm`i'", replace local i=`i' + 1 } end * a macro salvara 12 arquivos com o mesmo nome do arquivo icinial s que com terminao m"mes" */ /* Tente aplicar essa ultima macro ao arquivo de dados que estamos trabalhando nas ultimas aulas tente criar arquivos para diferentes Ufs ou outra caracteristica*/

/* Para poder rodar esses comando preciso copiar os diretrio ADO no micro 15 para dentro de seu computador (ou baixe da Internet)*/ inequal rendad [fw=peso] lorenz rendad [fw=peso] relsgini rendad [fw=peso] glcurve7 rendad, gl(gl1) p(p1) graph gl1 p1, xlab ylab s(i) c(l) glcurve7 rendad [fw=peso] , gl(gl4) p(p4) by(uf) split

/***********************************************/ /**** outras anlises *******************/ /***********************************************/ /* variveis intrumentais: ivreg y1 (y2 = z1 z2 z3) x1 x2 x3 Y2 uma variavel endogena Zs so os instrumento ou variaveis exogenas X sa tambem exogenas*/ /* Assim como a analise de dados amostrais complexos, existe um conjunto de comandos para serem usados apenas para analise de sobrevivencia veja help st. Como no svy antes de rodar qualquer anlise preciso definir algumas variveis stset ftime, failure(dpt1) /*varivel que diz o tempo em que ocorre o evento (falha)*/ sts graph , xlab(0,90,180,270) failure by(ba) b2(Idade que recebeu a primeira dose de DPT, em dias) l2(Porcentagem de vacinados) lstyle ([#] [-])

38

Conhecendo o Stata 7
/* o comando acima produz o grafico da funo de sobrevivencia de Kaplan-Meier ou a funo Hazard*/ ltable ftime dpt1 if aged<274, by(ba) test /* realiza testes para igualdade de funes de Sobrevivencia por grupo*/ /* nesse caso examina se o tempo ocorrido at a primeira dose de DPT o mesmo entre os grupos de beneficiarios e no beneficiarios*/ stsum if ba~=1 stsum if ba==1 /* D algumas estatsticas para os dados de Analise de Sobrevivencia*/

39

Das könnte Ihnen auch gefallen