Escolar Documentos
Profissional Documentos
Cultura Documentos
TABLA DE CONTENIDOS
INTRODUCCIN
I.
II.
III.
IV.
15
IV.1. DESCRIBE
IV.2. CODEBOOK
IV.3. EDIT
IV.4. IST; INSPECT; DUPLICATES; COUNT; ORDER
IV.5. SUM
IV.6. TABULATE
16
17
20
22
25
28
V.
38
38
42
47
48
51
52
VI.
56
APLICANDO LO APRENDIDO
56
60
61
VII.
69
VIII.
CICLOS RECURSIVOS
71
IX.
GRFICOS
72
X.
AYUDA: HELP
83
2
Introduccin
Este documento pretende los introducir el uso del programa STATA, mediante la
entrega de conceptos y comandos bsicos para el inicio en este software. En una
primera parte haremos una pequea introduccin al programa, luego veremos
brevemente como se carga una base de datos, y en una tercera parte se ver cual es
la manera ms adecuada de trabajar con ella. Adicionalmente, en una cuarta parte se
vern los comandos que comnmente se utilizan para inspeccionar una base de datos
y obtener estadsticas descriptivas de sus variables, especficamente veremos
comandos como sum, el cual nos entrega un set de estadsticas bsicas de la variable,
describe, y varios otros. En una quinta parte se enseara como se pueden modificar
las bases de datos, especialmente, cambiando el nombre de las variables, unir bases
de datos, eliminar y agregar variables, cambiar la estructura de ellas y crear nuevas
variables a partir de las variables existentes.
En una sexta parte se aplicar lo aprendido y a partir de ese ejercicio se introducir la
utilidad de los archivos log y do. En la sptima parte se mostrar cmo podemos
plasmar la informacin que nos interesa de los datos en diferentes tipos de grficos.
Finalmente en la octava y ltima parte se ensear la utilidad del comando help, el
cual nos ser de gran utilidad para poder avanzar y utilizar stata cuando no tenemos
muy claro cual es el comando a utilizar.
Es importante aclarar que gran parte de los comandos de stata se puede hacer
mediante la utilizacin directa del comando, o mediante la utilizacin de ventanas.
Durante este curso veremos ambas formas.
Un concepto importante de entender antes de comenzar a utilizar este software
estadstico, es el de Base de Datos, el primer paso para poder trabajar con STATA es
cargar la base de datos. Una base de datos en un conjunto (matriz) de informacin,
tenemos filas y columnas, las que en su conjunto forman la base de datos.
Generalmente se organiza de forma tal que las variables se representan por columnas
y las observaciones por filas. Por ejemplo, si estamos estudiando las variables
escolaridad e ingreso para las mujeres. Nuestra base de datos tendr dos columnas,
donde cada una de ellas representa la escolaridad e ingreso, y cada fila representa una
mujer.
escolaridad
10
12
13
4
5
8
17
21
2
Ingreso
80.000
120.000
110.000
85.000
70.000
65.000
450.000
1.200.000
60.000
3
Lo ideal es combinar la utilizacin de un do y un log; el primero permite tener en forma ordenada todos
los comandos que se estn utilizando y todas las instrucciones que se quieren ejecutar, mientras que el
segundo guarda en un archivo de texto todos los resultados que surgen de este archivo do.
5
pwd
C:\data Este resultado nos indica que estamos ubicados en el disco C del
computador en la carpeta data
Para cambiar el directorio o carpeta se debe realizar lo siguiente:
cd C:\Nivelacion_Stata
Esto problema es comn cuando trabajan en el Escritorio del computador, ya que la carpeta en este caso
es C:\Documents and Settings\...., tiene espacios en blanco.
6
III.
Las bases de datos en formato Stata tienen extensin .dta. Las versiones antiguas del
software no se pueden abrir bases de datos que han sido trabajadas y guardas en una
versin ms moderna, cuando intentemos hacer esto el programa entregar un error
indicando que la base no tiene formato Stata.
Antes de abrir una base de datos se tienen que cumplir dos condiciones:
1- El programa debe estar limpio, sin ninguna base de datos ya cargada.
Para limpiar el programa de otras bases de datos se debe utilizar el
comando clear. Si he estado trabajando una base de datos previamente la
cual se ha modificado y no he guardado estas modificaciones, al intentar
abrir una nueva base de datos sin limpiar antes arrojar el siguiente error:
10
o alternativamente:
11
12
Cuando las bases de datos vienen el texto y son muy grandes no se pueden
ver utilizando un block de notas, en estos casos se recomienda utilizar el
programa
TextPad
que
puede
ser
descargado
gratuitamente
(www.textpad.com). Siempre es recomendable inspeccionar la base de
datos en texto antes de ser traspasada a Stata.
5- Si la base de datos tiene otro formato, por ejemplo, SPSS (.sav), dbase
(.dbf), Access (.mbd), etc; existe un software llamado Stat Transfer, que
permite transformar base de datos desde y a diversos formatos.
Luego para guardar la base de datos utilizamos el comando save:
save C:\Nivelacion_Stata\ingresos_new.dta
Una vez que los datos han sido cargados, se puede optimizar el espacio que
estos ocupan utilizando el comando compress, este comando comprime la
base de datos. Es muy til cuando trabajamos con bases de datos grandes.
Hasta ahora hemos aprendido como cargar una base de datos en Stata, en lo que
sigue se vern los comandos bsicos para analizar una base de datos.
Entonces, con los comandos recin estudiados, comencemos por abrir la base de
datos:
cd C:\Nivelacion_Stata
set mem 100m
use ingreso.dta, clear
14
Como podemos ver, si vamos a la opcin Data y luego seguimos la opcin Describe
data, veremos una serie de opciones que veremos a continuacin, tal como el
comando describe o el codebook. Tambin mediante la opcin Data podemos
directamente ver el editor de stata.
15
IV.1. Describe
El comando describe entrega informacin de todas las variables que se encuentran en
la base de datos. Esta informacin incluye el tipo de almacenamiento (byte, int, long,
float, double, string)4, el formato de los datos, la variable que contiene el label
(etiqueta), y la descripcin de la variable. Adems entrega informacin de nmero de
observaciones, nmero de variables y tamao de la base de datos.
. describe
Contains data from C:\Nivelacin_I\ingreso.dta
obs:
252,748
vars:
5
19 Mar 2006 12:01
size:
5,307,708 (49.4% of memory free)
--------------------------------------------------------------------------storage display
value
variable name
type
format
label
variable label
--------------------------------------------------------------------------esc
byte
%8.0g
escolaridad (aos)
expr
float %9.0g
experiencia laboral
dhombre
float %9.0g
genero (1 hombre 0 mujer)
ingreso
float %9.0g
ingreso laboral
folio
long
%8.0g
---------------------------------------------------------------------------
Para usar el comando mediante el uso de ventanas basta con seguir el mismo
esquema recin mostrado y hacer doble clic sobre Describe variables in memory.
17
18
Otra funcin que podemos aplicar sobre la misma ventana es condicionarla a algo,
como, por ejemplo, que la inspeccin sea slo para lo hombres:
19
IV.3. Edit
Otra forma de conocer o tener una visin ms amplia de la base de datos es mediante
el comando edit; el que nos mostrar una planilla donde podremos ver la base de
datos completa; sus variables y todas sus observaciones. Tambin lo podemos hacer
va ventanas mediante la opcin Data y luego Data editor
20
Al igual que en los casos anteriores tambin se puede realizar la misma operacin va
el comando edit y tambin podemos editar una matriz mas pequea especificando las
variables que queramos incluir utilizando la encuesta casen 2003, por ejemplo edit
sexo ecivil edad esc
21
22
Otro comando; el cual asegura que una variable es una codificacin nica dentro de
una base de datos, es el comando duplicates report. Este comando se usa
generalmente para chequear que no existan observaciones duplicadas (folios
duplicados) dentro de una base de datos. Si tenemos la siguiente base de datos:
23
24
El comando count, lo que hace es contar tal como lo dice su nombre. Por ejemplo:
25
. sum
Variable |
Obs
Mean
Std. Dev.
Min
Max
-------------+-------------------------------------------------------esc |
180914
8.319069
4.286882
0
21
expr |
252748
59.3625
101.0047
0
5045
dhombre |
252748
.4987854
.4999995
0
1
ingreso |
76993
195579.2
361822
1002
2.19e+07
folio |
252748
126374.5
72962.21
1
252748
Si nos interesan las estadsticas de una sola variable, por ejemplo, escolaridad:
. sum esc
Variable |
Obs
Mean
Std. Dev.
Min
Max
-------------+-------------------------------------------------------esc |
180914
8.319069
4.286882
0
21
. sort dhombre
.
---------------------------------------------------------------------------> dhombre = 0
Variable |
Obs
Mean
Std. Dev.
Min
Max
-------------+-------------------------------------------------------esc |
91557
8.29598
4.30015
0
21
---------------------------------------------------------------------------> dhombre = 1
Variable |
Obs
Mean
Std. Dev.
Min
Max
-------------+-------------------------------------------------------esc |
89357
8.342726
4.273139
0
21
26
8
12
13
15
17
Largest
21
21
21
21
Mean
Std. Dev.
8.319069
4.286882
Variance
Skewness
Kurtosis
18.37735
-.1286632
2.403091
27
IV.6. Tabulate
El comando tabulate (o tab) permite hacer tablas con las variables de inters. La
tabla ms sencilla se realiza de la siguiente forma:
. tab
dhombre
genero (1 |
hombre 0 |
mujer) |
Freq.
Percent
Cum.
------------+----------------------------------0 |
126,681
50.12
50.12
1 |
126,067
49.88
100.00
------------+----------------------------------Total |
252,748
100.00
Esta tabla indica el nmero de observaciones total y de cada una de las categoras de
la variable, el porcentaje que cada uno representa sobre el total y el porcentaje
acumulado.
28
El comando tab1
simultneamente:
. tab1
permite
hacer
esto
mismo
pero
para
varias
variables
dhombre esc
Adems, con este comando, se pueden realizar cruces entre variables, por ejemplo:
29
| genero (1 hombre 0
escolarida |
mujer)
d (aos) |
0
1 |
Total
-----------+----------------------+---------0 |
5,842
4,991 |
10,833
1 |
1,198
1,283 |
2,481
2 |
2,709
2,725 |
5,434
3 |
4,571
4,622 |
9,193
4 |
5,284
5,019 |
10,303
5 |
3,818
3,694 |
7,512
6 |
9,915
9,250 |
19,165
7 |
3,501
3,503 |
7,004
8 |
9,791
10,712 |
20,503
9 |
5,173
5,409 |
10,582
10 |
6,435
6,549 |
12,984
11 |
4,707
4,677 |
9,384
12 |
18,245
17,018 |
35,263
13 |
2,672
2,148 |
4,820
14 |
2,180
1,785 |
3,965
15 |
1,523
1,633 |
3,156
16 |
1,596
1,581 |
3,177
17 |
1,929
1,924 |
3,853
18 |
326
555 |
881
19 |
92
200 |
292
20 |
45
77 |
122
21 |
5
2 |
7
-----------+----------------------+---------Total |
91,557
89,357 |
180,914
Si en vez de las frecuencias uno quiere ver el porcentaje, que sume 100% en forma
horizontal (filas), se debe agregar a lo anterior una coma y la palabra row y poner
adems nofreq (para que no se muestre las frecuencias):
30
| genero (1 hombre 0
escolarida |
mujer)
d (aos) |
0
1 |
Total
-----------+----------------------+---------0 |
53.93
46.07 |
100.00
1 |
48.29
51.71 |
100.00
2 |
49.85
50.15 |
100.00
3 |
49.72
50.28 |
100.00
4 |
51.29
48.71 |
100.00
5 |
50.83
49.17 |
100.00
6 |
51.73
48.27 |
100.00
7 |
49.99
50.01 |
100.00
8 |
47.75
52.25 |
100.00
9 |
48.88
51.12 |
100.00
10 |
49.56
50.44 |
100.00
11 |
50.16
49.84 |
100.00
12 |
51.74
48.26 |
100.00
13 |
55.44
44.56 |
100.00
14 |
54.98
45.02 |
100.00
15 |
48.26
51.74 |
100.00
16 |
50.24
49.76 |
100.00
17 |
50.06
49.94 |
100.00
18 |
37.00
63.00 |
100.00
19 |
31.51
68.49 |
100.00
20 |
36.89
63.11 |
100.00
21 |
71.43
28.57 |
100.00
-----------+----------------------+---------Total |
50.61
49.39 |
100.00
31
Si se quiere que los porcentajes sumen 100% en forma vertical (columnas) debemos
hacer lo siguiente:
.
| genero (1 hombre 0
escolarida |
mujer)
d (aos) |
0
1 |
Total
-----------+----------------------+---------0 |
6.38
5.59 |
5.99
1 |
1.31
1.44 |
1.37
2 |
2.96
3.05 |
3.00
3 |
4.99
5.17 |
5.08
4 |
5.77
5.62 |
5.69
5 |
4.17
4.13 |
4.15
6 |
10.83
10.35 |
10.59
7 |
3.82
3.92 |
3.87
8 |
10.69
11.99 |
11.33
9 |
5.65
6.05 |
5.85
10 |
7.03
7.33 |
7.18
11 |
5.14
5.23 |
5.19
12 |
19.93
19.04 |
19.49
13 |
2.92
2.40 |
2.66
14 |
2.38
2.00 |
2.19
15 |
1.66
1.83 |
1.74
16 |
1.74
1.77 |
1.76
17 |
2.11
2.15 |
2.13
18 |
0.36
0.62 |
0.49
19 |
0.10
0.22 |
0.16
20 |
0.05
0.09 |
0.07
21 |
0.01
0.00 |
0.00
-----------+----------------------+---------Total |
100.00
100.00 |
100.00
Este cdigo entrega dos tablas de la variable escolaridad, una para los hombres y otra
para las mujeres. Lo mismo es posible de ser realizado utilizando el condicional if:
32
Si los aos de educacin toman valores que van desde 0 a 21, se generarn 22
variables dicotmicas.
Supngase ahora que se requiere hacer un cuadro con los aos de escolaridad, pero en
vez de entregar la frecuencia o porcentaje de observaciones en cada categora, se
requiere que muestre una estadstica de otra variable, por ejemplo, el promedio de
ingreso. Para realizar este tipo de tablas se debe usar el comando tab agregndole
despus de una coma la palabra summarize. Para el ejemplo citado debera utilizar el
siguiente cdigo:
33
Por ltimo, el comando tabstat permite realizar tablas con las siguientes estadsticas:
34
-------------------------------------------------mean
promedio
count
cuenta el nmero de observaciones que tiene valor
n
igual que count
sum
suma
max
mximo
min
mnimo
range
rango=max-min
sd
desviacin estndar
var
varianza
cv
coeficiente de variacion (sd/mean)
semean
error estndar de la media = sd/sqrt(n)
skewness
asimetra
kurtosis
kurtosis
median
mediana (lo mismo que p50)
p1
1st percentile
p5
5th percentile
p10
10th percentile
p25
25th percentile
p50
50th percentile (igual que la mediana)
p75
75th percentile
p90
90th percentile
p95
95th percentile
p99
99th percentile
iqr
rango interquantil = p75 - p25
q
equivalente a especificar "p25 p50 p75"
--------------------------------------------------
deben
ser
entregadas
Como hemos visto en los casos anteriores tambin podemos tabular usando las
ventanas:
35
Si quisiramos graficar escolaridad contra sexo hacemos doble click sobre Table of
summary statistics observamos el dibujo que viene y ponemos esc en Row
variable y sexo sobre Column variable.
36
37
No tiene asociada una variable secundaria que nos indique que significa el nmero 1 y
el nmero 0 en esta variable.
Entonces para etiquetar los cdigos de una variable se deben realizar dos pasos:
1- Crear la variable secundaria (value label) que realice el nexo entre los cdigos y
sus etiquetas:
label define generolbl 1 Hombre 0 Mujer
Al hacer un describe de la variable dhombre, este indica que existe una variable que
contiene la etiqueta de los nmeros o cdigos de esta variable:
38
Si es que la base de datos que uno tiene ya viene con las variables secundarias de
etiquetas (value labels), y queremos saber que cdigo esta relacionado a que etiqueta,
se debe utilizar el comando label list:
Por otro lado si queremos en ese instante darle nombre a las variables y su respectiva
descripcin, hacemos doble click sobre la variable y nos aparecer el siguiente cuadro:
39
40
Para ver la base de datos en la pantalla se puede tipear en Stata Command la palabra
edit o
Cuando una variable est en formato string (no numrico) no se pueden obtener, la
diferencia es que el primero de los comandos despliega la hoja de clculo y el segundo
despliega los datos en la ventana de resultados (Stata Results). Tambin en el editor
se puede introducir las etiquetas a las variables y a los cdigos de cada variable.
Cuando una variable est en formato string (no numrico) no se pueden obtener
estadsticas de ella. Los comandos encode y decode cambian el formato de una
variable string a numrico y viceversa:
41
Mediante este cdigo generamos una nueva variable que le asigna un cdigo a cada
palabra distinta en la variable y deja como etiqueta la palabra.
Ahora cuando la variable que no tiene formato numrico, pero en realidad es un
nmero slo que al traspasarlo a la base de datos quedo en formato string, lo
recomendable es utilizar el siguiente comando:
generate nueva_variable=real(variable)
8
9
11
13
15
2
0
10
9
sexo
edad
1
2
2
2
1
2
1
1
1
20
55
45
47
32
31
28
26
35
Y supongamos que tenemos otra base de datos (dos.dta) con la siguiente informacin:
id
ingreso
1
3
4
6
8
9
10
11
80000
99000
110000
130000
150000
200000
115000
98000
42
sort id
save dos.dta, replace
use uno.dta
sort id
merge id using dos.dta
La base de datos que resulta de esto es de la siguiente forma:
id
esc
sexo
edad
1
2
3
4
5
6
7
8
9
10
11
8
9
11
13
15
2
0
10
9
1
2
2
2
1
2
1
1
1
20
55
45
47
32
31
28
26
35
ingreso _merge
80000
99000
110000
130000
150000
200000
115000
98000
3
1
3
3
1
3
1
3
3
2
2
Al realizar este pegue de datos, el programa generar una variable, si Ud. no le asigna
un nombre se crear con el nombre _merge, pero Ud. puede darle el nombre que
desee de la siguiente forma:
43
Si quiero construir entonces una sola base de datos que contenga todas estas variables
en forma conjunta, debera realizar los siguientes pasos:
Lo que este pequeo cdigo nos indica es que carguemos la base de datos
ingreso2.dta, la ordenemos (utilizando el comando sort) de acuerdo al identificador
folio, y guardemos los cambios realizados (esta base de datos se denomina using
dataset). Luego abrimos la base de datos a la cual le vamos a pegar variables (master
dataset), ingreso1.dta, la ordenamos de acuerdo al identificador folio, y finalmente le
pegamos la informacin que esta en la base ingreso2.dta utilizando el comando merge.
Si alguna de las bases de datos no esta ordenada les arrojara un mensaje de error:
Por otro lado, el comando append, anexa observaciones para el mismo conjunto de
variables, es decir, agrega filas a la base de datos. Supongamos que adems de
uno.dta tenemos otra base de datos (tres.dta) que contiene las mismas variables que
la primera pero para otros 10 individuos distintos:
44
id esc
10
11
12
13
14
15
16
17
18
19
8
9
11
13
15
2
0
10
9
4
sexo
edad
1
2
2
2
1
2
1
1
1
2
20
55
45
47
32
31
28
26
35
20
Entonces podemos juntar estas 19 observaciones en una sola base de datos mediante
el comando append, de la siguiente forma:
use dos.dta
append using tres.dta
El resultado es el siguiente:
id esc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
8
9
11
13
15
2
0
10
9
8
9
11
13
15
2
0
10
9
4
sexo
edad
1
2
2
2
1
2
1
1
1
1
2
2
2
1
2
1
1
1
2
20
55
45
47
32
31
28
26
35
20
55
45
47
32
31
28
26
35
20
45
Supongamos ahora que no contamos con la base ingreso.dta, sino que tenemos dos
bases de datos. La primera (ingreso3.dta) tiene las primeras 126.374 observaciones, y
la segunda (ingreso4.dta) tiene las siguientes 126.374 observaciones. En total si
juntamos ambas bases completamos las 252.748 observaciones de la base original
(ingreso.dta).
Podemos juntar la informacin de ambas bases en una sola de la siguiente forma:
use ingreso3.dta
append using ingreso4.dta
Podemos juntar bases de datos usando las ventanas tambin; en la opcin Data
existe la opcin Combine datasets luego se hace doble clic en Merge o Append y
nos sale una ventana que nos permite juntar dos o mltiples bases de datos:
Luego, para el caso de merge, buscamos la base que le queremos aadir a la base que
estamos usando y ponemos su direccin donde sale Filnename of dataset on disk,
luego en Key variables ponemos el nombre de la variable mediante el cual queremos
unir las dos bases de datos.
46
El cdigo anterior crea una base de datos con cuatro variables (hogar, edad, educacin
e ingreso) con una observacin por hogar, la cual contiene el promedio de la edad por
hogar, el mximo de la educacin por hogar y la mediana del ingreso por hogar.
47
Wide form:
En la base de datos en forma vertical (long form) podemos ver que existe una variable
que es constante al interior de un grupo, en este caso, al interior de una empresa,
48
tenemos una variable que vara al interior de este grupo, el precio, y una variable que
me sirve para identificar las distintas observaciones al interior de un grupo, que es la
variable ao.
En la base de datos en forma horizontal (wide form), tengo una sola observacin por
empresa pero tengo ms de una variable precio, una para cada ao.
El comando reshape me permite intercambiar las bases de datos entre estos dos tipos
de formatos, de la siguiente forma:
reshape long precio, i(Empresa) j(ao) (Wide Long)
reshape wide precio, i(Empresa) j(ao) (Long Wide)
Long Wide
49
Wide Long
50
Tambin podramos requerir mantener todas las variables pero slo un subconjunto de
las observaciones, como por ejemplo, las de los hombres:
keep if dhombre==1
keep if esc<=12
keep if ingreso>=200000
El comando drop cumple el mismo rol que el comando keep, sin embargo, ste borra
observaciones o variables, en vez de mantenerlas. Para realizar lo mismo que hicimos
con el comando keep pero utilizando drop, se debera hacer lo siguiente:
drop
drop
drop
drop
51
suma
resta
multiplicaci
n
divisin
igual
>=
>
<=
Mayor o igual
Mayor estricto que
Menor o igual que
&
y
|
o
exp() exponencial
<
!=
log() logartmo
sum() suma
52
Ejemplos:
g tesc=.
replace tesc=1
replace tesc=2
replace tesc=3
replace tesc=4
replace tesc=5
if
if
if
if
if
esc<8
esc==8
esc>8 & esc<12
esc==12
esc>12
El comando replace, reemplaza observaciones que cumplen con cierta condicin con
el valor que uno especifica.
Otro comando til, similar a generate, es el comando egen. Este contiene una gran
cantidad de funciones pre-establecidas con las que se pueden generar nuevas
variables. La diferencia con el comando generate es que en este uno define como
quiere generar la variable (sumando, restando, multiplicando, etc.), sin embargo, el
comando egen tiene funciones ya establecidas, por ejemplo, el promedio, la desviacin
estndar, etc
Algunos ejemplos de estas funciones son:
La mayora de estas funciones pueden ser combinadas con el comando by, el que
permite generar variables por diversas categoras. Por ejemplo, si se quiere crear el
promedio de la experiencia laboral para cada ao de educacin, se debe realizar lo
siguiente:
egen promexpr=mean(expr), by(esc)
by esc: egen promexpr=mean(expr)
54
Luego de apretar doble clic sobre Create new variable podemos ver que es trivial la
forma de generar otra variable.
55
57
En la tabla anterior podemos ver que hay hogares (68.153) e individuos (257.077);
adems podemos ver que el nmero de individuos por hogar vara. La variable id tiene
asignado un cdigo por hogar y vemos que el hogar 13 tiene asociados 3 individuos, a
su vez el hogar nmero 7 tiene asociados 2 individuos y en el hogar numero 4 son 5
individuos.
Ahora, sabiendo el nmero de personas que viven en el hogar, generaremos el ingreso
per capita del hogar para lo cual tenemos que dividir el ingreso total del hogar por el
nmero de personas que viven en l. Veamos los diferentes tipos de personas que
viven en el hogar:
tab pco1
parentesco con el |
jefe(a) hogar |
Freq.
Percent
Cum.
-----------------------+----------------------------------jefe(a) de hogar |
68,153
26.51
26.51
cnyuge o pareja |
47,864
18.62
45.13
hijo(a), hijastro(a) |
104,375
40.60
85.73
padre o madre |
1,776
0.69
86.42
suegro(a) |
1,166
0.45
86.87
yerno o nuera |
3,749
1.46
88.33
nieto(a) |
19,044
7.41
95.74
hermano(a) |
2,828
1.10
96.84
cuado(a) |
942
0.37
97.21
otro familiar |
4,875
1.90
99.10
no familiar |
1,675
0.65
99.75
s. domstico p.adentro |
630
0.25
100.00
-----------------------+----------------------------------Total |
257,077
100.00
Como vemos en algunas casas ocurre que hay personas que prestan servicios
domsticos puertas adentro y generalmente para calcular el ingreso per capita del
hogar debemos excluir a esas personas. Para ello generaremos una variable llamada s;
la cual tomar el valor 1 si la personas pertenece al hogar y no presta servicios dentro
de l; y toma el valor de 0 si la personas presta servicios dentro del hogar. Despus
generaremos el nmero de personas que pertenecen al hogar y no prestan servicios
dentro de l. Finalmente botamos la variable s, ya que la creamos slo como una
variable momentnea para excluir a las personas que prestan servicios domsticos
puertas adentro y ya tenemos la variable np, que es la que nos seala el nmero de
personas que realmente son parte del hogar.
g s=1
replace s=0 if pco1==12
egen np=sum(s), by(id)
drop s
58
Ahora, que tenemos el nmero de personas que pertenecen al hogar, estamos listos
para crear la variable que nos indica el nivel de ingreso individual de los habitantes del
pas y poder separarlo de acuerdo al nivel de pobreza.
g ing=ytothaj/np
Una persona es pobre si est recibe ingresos menores a $43.712 y vive en zona
urbana y $29.473 y est vive en zona rural. Una persona ser indigente si recibe
ingresos menores a $21.856 y vive en zona urbana; y $16.842 si esta vive en zona
rural. Como se est pidiendo el nmero y le porcentaje de pobres e indigentes,
necesitamos clasificar a los individuos en alguna de las tres categoras posible; no
pobres; pobres no indigentes e indigentes.
g pobre=1 if ing<21856 & z==1
replace pobre=1 if ing<16842 & z==2
replace pobre=2 if ing>=21856 & ing<43712 & z==1
replace pobre=2 if ing>=16842 & ing<29473 & z==2
replace pobre=3 if pobre==.
replace pobre=. if pco1==12
label variable pobre "Situacion de pobreza"
label define pobrelbl 1 "Indigente" 2 "Pobre no indigente" 3 "No pobre"
label values pobre pobrelbl
Finalmente debemos realizar la tabulacin de tal forma de captar no slo el nmero de
personas pobres e indigentes, sino que tambin su porcentaje. Es importante notar
que hay que usar factor de expansin; ya que ello nos entregar el valor poblacional
de los nmeros que buscamos:
tab pobre z [w=expr], col
Situacion de |
zona
pobreza |
urbana
rural |
Total
-------------------+----------------------+---------Indigente |
599,008
129,055 |
728,063
|
4.47
6.19 |
4.70
-------------------+----------------------+---------Pobre no indigente | 1,890,085
289,568 | 2,179,653
|
14.11
13.88 |
14.08
-------------------+----------------------+---------No pobre |10,905,022 1,667,008 |12,572,030
|
81.42
79.93 |
81.22
-------------------+----------------------+---------Total |13,394,115 2,085,631 |15,479,746
|
100.00
100.00 |
100.00
59
60
Frente a esto tenemos dos opciones, cual de ellas se tome depende de los objetivos:
reemplazar el archivo ya existente, o seguir escribiendo en el archivo existente a
continuacin de lo ltimo ingresado.
Para reemplazar el archivo existente:
El archivo do no es mas que un archivo de texto que permite escribir las instrucciones
para la ejecucin de comandos en Stata.
Para abrir el archivo do debemos pinchar el icono
62
Con esto ya he abierto la base de datos. A continuacin puedo empezar a escribir los
comandos para transformar la base de datos, para obtener estadsticas, etc.
Exactamente de la misma forma que lo hara en la ventana de comandos pero ahora
en forma ms ordenada.
Es importante constantemente ir corriendo el do para detectar los errores que se estn
cometiendo.
En el cuadro siguiente observamos el archivo do file correspondiente al ejemplo visto
en la seccin 1;
63
64
g sexojh=sexo if pco1==1
label define sexolbl 1 "Hombre" 2 "Mujer"
label values sexojh sexolbl
Ahora se generar una variable que tomar el valor de 1 para todos los miembros del
hogar cuando est es hombre y 2 para todos los miembros del hogar cuando este es
mujer.
Esto
se
hace
generando
una
variable
con
el
comando
egen sexojhm=max(sexojh), by (id) el cual genera una variable que toma el
nmero mayor asociado a la variable sexojh- por hogar; y como en los hogares
donde el jefe de hogar es hombre el nmero mayor de la variable sexojh es 1 lo
otros son missings- y en los hogares donde el jefe es mujer ese nmero es 2.
egen sexojhm=max(sexojh), by(id)
drop sexojh
rename sexojhm sexojh
label values sexojh sexo
edit id sexo sexojh sexojhm
65
66
Situacion de |
sexojh
pobreza |
hombre
mujer |
Total
-------------------+----------------------+---------Indigente |
4.24
6.30 |
4.70
Pobre no indigente |
13.82
15.00 |
14.08
No pobre |
81.94
78.70 |
81.22
-------------------+----------------------+---------Total |
100.00
100.00 |
100.00
Podemos decir que las personas que viven en hogares con jefes de hogar hombres
tienen una tasa de indigencia es un 4.24%, y un porcentaje de pobres no indigentes
igual a 13.82%, con lo cual la tasa de pobreza es un 18.06%. Por su parte las
personas que viven en hogares con jefes de hogar mujer tienen una tasa de indigencia
de 6.3%, y un porcentaje de pobres no indigentes un 15%, de esta forma la tasa de
pobreza es 21.3%.
b. Nmero de personas del hogar
Se generar una variable llamada categ_np la cual divide a los hogares en 8
diferentes categoras, la cuales dependen del nmero de personas que tenga el hogar.
La categoras 1, son los hogares que tienen un solo miembro, la segunda categoras
son los hogares que tienen dos miembros, y as hasta la octava categora que incluye
a los hogares que tienen 8 o ms miembros.
g categ_np=np
replace categ_np=8 if np>=8
tab categ_np pobre [w=expr], row nofreq
|
Situacion de pobreza
categ_np | Indigente Pobre no
No pobre |
Total
-----------+---------------------------------+---------1 |
1.96
2.89
95.15 |
100.00
2 |
1.95
4.25
93.81 |
100.00
3 |
3.15
9.24
87.60 |
100.00
4 |
3.76
12.65
83.58 |
100.00
5 |
4.74
16.29
78.97 |
100.00
6 |
7.08
18.98
73.94 |
100.00
7 |
7.41
22.18
70.41 |
100.00
8 |
9.73
24.45
65.82 |
100.00
-----------+---------------------------------+---------Total |
4.70
14.08
81.22 |
100.00
En esta tabla se puede apreciar como las tasas de pobreza e indigencia aumentan a medida
que aumenta el tamao del hogar. En hogares de una persona el porcentaje de indigentes
es 1.96%, y el porcentaje de pobres no indigentes es 2.89%. Por el contrario, en hogares
67
VII.
esc
Variable |
Obs
Mean
Std. Dev.
Min
Max
-------------+-------------------------------------------------------esc |
180914
8.319069
4.286882
0
21
. return list
scalars:
r(N)
r(sum_w)
r(mean)
r(Var)
r(sd)
r(min)
r(max)
r(sum)
=
=
=
=
=
=
=
=
180914
180914
8.319068728788263
18.37735307412638
4.28688150922397
0
21
1505036
esc, detail
escolaridad (aos)
69
------------------------------------------------------------Percentiles
Smallest
1%
0
0
5%
0
0
10%
2
0
Obs
180914
25%
5
0
Sum of Wgt.
180914
50%
75%
90%
95%
99%
Largest
21
21
21
21
12
13
15
17
Mean
Std. Dev.
8.319069
4.286882
Variance
Skewness
Kurtosis
18.37735
-.1286632
2.403091
. return list
scalars:
r(N)
r(sum_w)
r(mean)
r(Var)
r(sd)
r(skewness)
r(kurtosis)
r(sum)
r(min)
r(max)
r(p1)
r(p5)
r(p10)
r(p25)
r(p50)
r(p75)
r(p90)
r(p95)
r(p99)
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
180914
180914
8.319068728788263
18.37735307412638
4.28688150922397
-.1286631597722507
2.403091261120855
1505036
0
21
0
0
2
5
8
12
13
15
17
Ingreso
promedio
Escolaridad
promedio
Experiencia
laboral
promedio.
Hombre
Mujer
Esto puede hacerse generando una matriz de dos filas y tres columnas, para
posteriormente completar sus elementos con las estadsticas correspondientes. Para
esto primero se debe generar la matriz, llammosla A.
matrix A=J(2,3,0)
70
Luego se hace el primer sum, de la variable ingreso para los hombres, y guardo este
resultado en la posicin [1,1] de la matriz:
sum ingreso if dhombre==1
matrix A[1,1]=r(mean)
Y as sucesivamente hasta completar toda la matriz:
sum ingreso if dhombre==0
matrix A[2,1]=r(mean)
sum esc if dhombre==1
matrix A[1,2]=r(mean)
sum esc if dhombre==0
matrix A[2,2]=r(mean)
sum expr if dhombre==1
matrix A[1,3]=r(mean)
sum expr if dhombre==0
matrix A[2,3]=r(mean)
Con esto se completa la matriz. Luego para que se vea, en Stata Results se tipea el
comando matriz list:
. matrix list A
A[2,3]
r1
r2
c1
210198.54
162629.12
c2
8.3427264
8.2959796
c3
58.336718
60.383309
71
IX. Grficos
En STATA se pueden realizar grficos de todos los tipos. Esto, al igual que otras
funciones preestablecidas, no requiere del conocimiento de todos los comandos, ya que
pinchando Graphics aparecen todas las opciones y en cada una de ellas un cuadro de
opciones bastante completo:
72
Donde se nos presentan varias opciones, como hacer el grfico por cierta categora
(por ejemplo gnero) a travs del comando by, condicionar el grfico a cierto grupo a
travs del comando if, introducir factores de expansin, ajustar una densidad normal,
ajustar una densidad estimada en forma no paramtrica (kernel), y poner ttulos,
etiquetas, etc
73
Educacin)
74
75
76
2.
Ahora mostraremos el mismo grafico slo que con la lnea de regresin que minimiza la
distancia entre los puntos:
twoway (scatter ing esc) (lfit ing esc ), ytitle(Ingreso) xtitle(Aos de
Educacion) title(Relacin entre educacin e ingresos)
77
Pero; qu ocurre con ambos grficos?, ocurre que no se observa una correlacin entre
el nivel de ingresos y el nivel de escolaridad, debido a que los ingresos muy altos
distorsionan la distribucin. A continuacin mostraremos un grafico de puntos junto a
su lnea de regresin, pero que slo toma en cuenta a los individuos que tienen
ingresos menores a un milln de pesos.
twoway (scatter ing esc) (lfit ing esc )
if ing <1000000,
ytitle(Ingreso) xtitle(Aos de Educacion) title(Relacin entre educacin
e ingresos)
78
3.
79
Este grfico nos muestra que para los indigentes y los pobres no indigentes el nivel de
ingreso entre hombres y mujeres es similar, sin embargo para los individuos no pobres
el ingreso de los hombres supera al ingreso de las mujeres.
80
Un grfico til son los box plots, estos entregan informacin sobre el centro,
dispersin, simetra y observaciones extremas, en un solo grfico. Por ejemplo
observamos en el siguiente box-plot del ingreso per cpita. La lnea horizontal dentro de
la caja muestra la mediana. La caja muestra el rango intercuartil y, correspondiente a
la diferencia entre el ingreso del percentil 75 y del percentil 25. La lnea superior
horizontal se establece en un valor igual al percentil 75 ms 1,5 veces el rango
intercuartil. La lnea inferior horizontal, por su parte, se fija en un valor igual al
percentil 25 menos 1,5 veces el rango intercuartil. Todos los valores superiores o
inferiores a estas lneas representan valores extremos (outliers) de la distribucin.
Podemos ver que los nmeros o coinciden realizando un sum detail, el que se muestra
a continuacin del box-plot.
81
82
X. Ayuda: Help
La ayuda que trae este programa es bastante amigable y fcil de utilizar. Si Ud. Se
dirige a Help se despliega un cuadro con diferentes opciones, puede buscar ayuda
por contenidos, por comandos, etc, en Whats new encontrar todas las novedades
del programa, que nuevos comandos hay y podr descargarlos haciendo un update.
Por ejemplo, supongamos se quiere saber como calcular correlacin entre variables.
Entonces se debe buscar en Search:
83
Dependiendo que este buscando pincha el comando (en azul), y se abrir una ventana
con una completa ayuda sobre el comando.
84
Para que el Help de STATA le sea realmente til es fundamental que Ud. aprenda a leer
la sintaxis de cada comando. Por ejemplo, en este caso la sintaxis del comando
correlate es la siguiente:
correlate [varlist] [if] [in] [weight] [, correlate_options]
85
Esta sintaxis nos indica que el commando correlate puede ser utilizado entregando el
listado de variables, sino se entrega el default es considerar todas las variables en la
base de datos. Se puede utilizar la opcin if, in y weight todas ellas antes de la coma,
la que es utilizada tambin en forma opcional para poner algunas opciones del
comando. Entonces siempre lo que aparece en parntesis cuadrados son alternativas
opcionales del comando. Ms adelante de la sintaxis, se indican cuales son estas
correlate_options, tambin se presenta una descripcin general del comando y sus
opciones.
A continuacin se muestra otro ejemplo de sintaxis, para el comando table:
table rowvar [colvar [supercolvar]] [if] [in] [weight] [, options]
Recordemos que todo lo que esta entre parntesis cuadrado son opciones voluntarias
de comando. En este caso rowvar no esta entre parntesis cuadrado, significa que
debemos obligadamente sealar la variable fila en la tabulacin, es voluntario indicar
la variable de columna, si no se indica la tabulacin resultante es una distribucin de la
variable sola, si se indica colvar la tabla ser un cruce entre rowvar y colvar. Este
ejemplo nos permite notar la diferencia en aquellos insumos del comando que son
obligatorios de los que son voluntarios.
Puede ser que algunos de los comandos que aparezcan Ud. no los tenga cargados, en
este caso si se encuentra conectado a Internet los podr bajar online. Aparecer algo
de la siguiente forma:
86