Está en la página 1de 33

Introducción al STATA

Osvaldo Nina
INESAD

Julio 2013
Contenido
1. INTRODUCCIÓN ..................................................................................................................... 1
2. PRELIMINARES ..................................................................................................................... 2
2.1. Elementos básicos ....................................................................................................... 2
2.2. Lectura de datos .......................................................................................................... 4
2.3. Descripción de datos ................................................................................................... 7
2.4. Archivo de salida de resultados ..................................................................................11
2.5. Lectura de comandos desde un archivo......................................................................12
3. MANEJO DE DATOS ..............................................................................................................14
3.1. Sintaxis básica de los comandos ................................................................................14
3.2. Creación o modificación de datos ...............................................................................18
3.3. Comandos más utilizados para el análisis descriptivo .................................................26
1. INTRODUCCIÓN

El objetivo del manual es realizar una introducción básica al STATA, que es un programa
completo e integrado de estadística para investigadores de diferentes disciplinas, desde
bioestadísticos hasta investigadores sociales y económicos. Los diferentes tipos de análisis
integrados a STATA están documentados y soportados teóricamente por numerosos documentos,
publicaciones y revistas, proporcionando todo lo necesario para el análisis de datos, gestión de
datos y gráficos. En general, STATA combina velocidad con un fácil uso, una biblioteca de pre-
programas analíticos, capacidad para el manejo de datos, y las programación tanto como se
necesario.

STATA mantiene un muy buen web-site con abundante información sobre el producto, para
usuarios iniciados y avanzados. El mismo está en:
http://www.stata.com

STATA dispone de una serie de tutoriales on-line. En el menú principal de comandos, haga clic
en Help para ver una lista de opciones tutoriales disponibles. Se recomienda altamente trabajar
con estos tutoriales.

El programa es sensible a mayúsculas y minúsculas para las variables. Es más, los comandos
deben ser escritos en minúsculas

El manual cubre los siguientes puntos:


1. Preliminares
2. Manejo de datos

1
2. PRELIMINARES
En esta sección, se describe los elementos esenciales del programa, los aspectos relacionados a la
lectura de datos y el manejo de archivos de salida y lectura desde un archivo.
2.1. Elementos básicos
El programa presenta cuatro ventanas para trabajar, como se puede apreciar en la Figura1, que
son:
1. Results: presenta los resultados de cada orden;
2. Command: ventana donde se escriben los comandos;
3. Review: ventana donde se acumula los comandos utilizados, los cuales pueden ser
reenviados a la ventana Comand haciendo clic sobre ellos;
4. Variables: muestra el listado de variables de la base de datos;

Figura 1. Ventanas de trabajo del STATA

El programa STATA incluye una carpeta integrada para obtener ayuda, haga click en Help y
obtendrá varias opciones de búsqueda, entre ellas tenemos:
− Search: para introducir una palabra clave
− Stata command: para introducir el nombre de un comando del STATA

Para terminar la sesión, cierre el programa haciendo clic en el botón superior derecho, como
cualquier otro programa de Windows.

2
Con la finalidad de agrupar y mantener ordena su computadora, se puede crear una carpeta donde
podrá almacenar toda la información y los archivos de STATA de su proyecto de investigación.

El STATA trabaja por default en la siguiente carpeta:

C:\Program Files\Stata 11 (Ver Figura 2)

Para la creación de carpeta de trabajo debe


Figura 2. Carpeta de trabajo default
seguir los siguientes pasos:

1. Crear una carpeta de trabajo en el


lugar donde desee: Carpeta
nombrada “CC” (Cambio Climático)
en el disco “F”
2. Para re-direccionar al STATA a la
carpeta de trabajo “CC”. Escribir en
la ventana de Command lo siguiente:
cd f:\cc

Esta acción se evidencia en la


ventana de Review
Figura 3. Carpeta de trabajo de creado
3. El STATA se encuentra en la carpeta
“CC” para realizar la lectura y el
almacenamiento de archivos en esa
dirección, ver Figura 3

Este re-direccionamiento permite al


investigador tener todos los archivos que
generan el STATA en esta carpeta,
facilitando el almacenamiento y seguimiento
de los archivos.

Las clases de archivos de STATA con sus


extensiones son:

.dta archivo de datos


.do archivos de comandos
.ado programas
.hlp archivos de ayuda
.gph gráficos
.dct archivos diccionarios
.smcl archivos log

3
2.2. Lectura de datos
La estructura básica de datos en STATA es una tabla, en donde cada columna representa a una
variable y cada fila a una observación. Si bien existen numerosos formas de incorporar datos a
STATA, describiremos la más usual: importación de datos desde una planilla cálculo tipo
EXCEL.

En el directorio f:\cc, que estamos utilizando como carpeta de trabajo, se debe almacenar el
archivo EXCEL con información de interés. En nuestro ejemplo, tenemos información de Bolivia
a nivel municipal en el archivo Bolivia.xlsx. Las variables cubren las siguientes dimensiones:
geográfica, climática y socio-económica. El archivo tiene 12 variables con 311 observaciones, de
acuerdo a la siguiente descripción.

Variables Nombre
Departamento departamento
Municipio municipio
2
Extensión del Municipio en Km area
Temperatura temp
Precipitación Pluvial rain
Altitud altitude
Pendiente slope
Población – Censo 2001 pob2001
Población Rural – Censo 2001 rural2001
Necesidades Básica Insatisfechas – Censo 2001 nbi2001
Índice de Desarrollo Humano idh2001
Esperanza de Vida – Censo 2001 espvida2001

La Figura 4 muestra la información disponible en el archivo.

Figura 4. Información del archivo Bolivia en Excel

4
Como se puede observar en la Figura 4, los nombres de las variables se encuentran en la primera
fila y las observaciones en las restantes, de modo cada columna corresponde a una variable.
STATA no puede importar planillas de cálculo directamente, por lo que hay que hacer una
pequeña conversión.

Primero, hay que abrir el archivo conteniendo los datos en EXCEL y proceder a grabarlo en
formato ASCII (con extensión .txt), que contiene las variables delimitados por tabulaciones. El
nuevo archivo se llama Bolivia.txt y se encuentra en el directorio:

f:\cc\Bolivia.txt

Segundo, debemos abrir el STATA para leer los datos y re-direccionar a la carpeta de trabajo (cd
f:\cc), luego debe seguir los siguientes pasos
1. En el menú de comando principal haga clic en File
2. Seguidamente haga clic en Import,
3. Luego haga clic en la opción ASCII data created by a spreadsheet
4. Aparecerá una ventana, donde debe escribir la ubicación del archivo texto:
F:\CC\Bolivia.txt
5. Luego haga clic en OK
6. Las variables aparecerán en la ventada de Variables

La Figura 5 ilustra la acción del paso 4.

Figura 5. Leer información del archivo Bolivia en texto: Paso 4

Otra alternativa es utilizar la ventana de Command, donde debe escribir el siguiente comando:

insheet using “F:\CC\Bolivia.txt”


o ( cuando está en la carpeta de trabajo)
insheet using Bolivia.txt

5
Una vez realizado la lectura, podemos revisar la información de la base de datos. En el menú
principal, haga clic en el icono de Data Editor (Browse), ver Figura 6.

Otra alternativa es escribir en la ventana Command el siguiente comando: browse.

Figura 6. Examinar la información importada

Una vez verificado que la información importada está completa, procedemos a guardar la
información en formato de STATA (.dta).

Para esto, en el menú principal haga clic en

File/Save

Tras cual (luego de elegir un nombre “bolivia” para el archivo) los datos son guardados en
formato STATA y no es necesario volver a realizar la conversión desde EXCEL al comienzo de
una nueva sesión. Para iniciar nuevamente la sesión con los datos en formato STATA, luego de
abrir STATA, en el menú principal, haga clic

File/Open

Seguidamente, elegir la base de datos deseada.

6
Otra alternativa es utilizar la ventana Command. Escribir el nombre del archivo donde
almacenará la información de acuerdo al siguiente comando:

save "F:\CC\bolivia.dta"
o (cuando está en la carpeta de trabajo)
save bolivia

Para la lectura de un archivo con una base de datos en formato STATA, se debe escribir en la
ventana de Command el siguiente comando:

use "F:\CC\bolivia.dta", clear


o (cuando está en la carpeta de trabajo)
use bolivia, clear

El programa STATA mantiene los datos en memoria. Si se ha estado trabajando en una base y se
quiere trabajar sobre otra, es necesario removerla de la memoria. Los comandos importantes para
una buena administración son: clear y set memory

clear

El comando clear borra todos los datos que se encontraban en memoria.

Si la base es grande, es necesario incrementar la cantidad de memoria disponible para una sesión
de STATA. Esto es necesario si se sabe de antemano que la base es grande o si cuando se intenta
leer la base se obtiene el siguiente mensaje:

no room to add more observations

set memory

El comando set mem (abreviado) amplia la memoria lo que sea necesario. El límite lo da el
computador. Por ejemplo, para ampliar la memoria a 100 megas, se debe escribir:

set mem 100m

2.3. Descripción de datos


STATA almacena o formatea los datos con dos posibilidades: numeric o string. Numeric
almacena números (por ejemplo, área, temperatura, etc) mientras que string almacena texto
(departamento, municipio, etc). String puede también almacenar números pero no se podrá
realizar ninguna operación con ellos. La Figura 7 muestra estas dos posibilidades.

7
Figura 7. String versus Numeric

Por otro lado, una vez que se leen lo datos, pueden ver las características de la base de datos y las
variables que se seleccionan (si no se seleccionan variables, se muestran todas las variables de la
base de datos que se encuentre en usos). Los comandos más utilizados son: describe, list,
codebook, summarize y tabulate.

describe

El comando describe muestra las características de toda la base de datos. En la ventana


Command escriba el siguiente comando:

des // descripción general de la base de datos

También se pueden conocer las características de las variables que se seleccionan.

des departamento area // descripción general de las variables departamento y area

Figura 8. Descripción de la base de datos

8
list

El comando list muestra los valores de las variables seleccionadas en todas las observaciones o
en rango de observaciones.

list // muestra los valores de todas las variables en todas las observaciones
list in 1/5 // muestra los valores de todas la variables en las primeras cinco observaciones
list area //muestra los valores de la variable área en todas las observaciones
list area temp in 1/15 //muestra los valores de las variables área y temperatura en las primeras
quince observaciones

Figura 9. Valores de las variables área y temperatura

codebook

El comando codebook informa sobre las variables: estadísticas descriptivas, etiquetas, detalle de
los valores missing, etc. Si no se especifican variables, codebook despliega estas estadísticas para
todas las variables de la base de datos.

codebook // despliega estadísticas para todas las variables de la base de datos.


codebook departamento area // despliega estadísticas sólo para las variables departamento y
área.

9
Figura 10. Estadísticas de las variables departamento y área

summarize

El comando summarize informa los estadísticas descriptivas básicas de las variables


especificadas (si no se especifican variables summarize reporta las estadísticas descriptivas de
todas las variables de la base de datos): número de observaciones, media, desvió estándar,
mínimo y máximo.

sum // despliega estadísticas descriptivas básicas para todas las variables de la base de datos
sum area temp // despliega estadísticas básicas para el área y la temperatura

Figura 11. Estadísticas básicas de la base de datos

10
tabulate

El comando tabulate despliega la tabla de frecuencia de una o dos variables. Tiene distintas
opciones tales como porcentajes por fila, columna y celda. Además, otros estadísticos, como Chi-
cuadrado.

tab departamento // despliega tabla de frecuencia para la variable departamento

Figura 12. Tabla de frecuencia de la variable departamento

2.4. Archivo de salida de resultados


La tarea de almacenar los resultados es necesaria para su edición. A veces es útil guardar
resultados en un archivo de texto (log file) que puede ser editado con un procesador de textos
común. El log file (.smcl) es un archivo ASCII que puede ser editado con cualquier procesador o
editor (tipo WORD o Notepad).

Previamente al inicio del análisis de datos, procedemos a guardar los resultados en formato
ASCII.

Para esto, en el menú principal haga clic en

File/Log/Begin

Luego de elegir un nombre (“output” para el archivo en formato smcl), los resultados serán
guardados en formato ASCII a medida que vaya realizando el análisis de la base de datos. Para
cerrar la sesión de trabajo, en el menú principal, haga clic

File/Log/Close

Los resultados estarán guardados en el archivo “output.smcl”, que puede abierto con un
procesador de textos común.

11
Otra alternativa es utilizar la ventana Command. Escribir el nombre del archivo donde
almacenará los resultados de acuerdo al siguiente comando:

log using "F:\CC\output.smcl"


o (cuando está en la carpeta de trabajo)
log using output

Para el cierre de sesión de trabajo, se debe escribir en la ventana de Command el siguiente


comando:

log close

2.5. Lectura de comandos desde un archivo


Para crear una secuencia de comandos, se debe crear un archivo de texto con formato .do. Este
archivo permite ingresar una lista de comandos para que pueda ejecutarse todos los comandos
que contiene. Esto permite guardar ordenadamente todos los comandos del análisis de datos que
puede ser ejecutado en el futuro. Además, permite conservar la base de datos original sin
modificaciones.

Para esto, en el menú principal haga clic en

Window/Do-file Editor/New Do-file Editor

Tras abrirse una nueva ventana, haga clic en

File/Save As

Luego de elegir un nombre “sesion1” para el archivo, podrá escribir los comandos a ejecutarse
para el análisis de la base de datos, que será guardado en formato .do del STATA, véase Figura
13.

Figura 13. Creación del archivo DO

12
Los comandos a ejecutar en el archivo sesion1.do son:

*Introducción al STATA
* Sesion1.do
clear // borra los datos en memoria
set mem 100m // amplia la memoria
insheet using Bolivia.txt // leer base de datos en formato ASCII
log using output, replace // iniciar sesión para almacenar resultados en archivo smcl
des departamento area // descripción de las variables departamento y área
list area temp in 1/15 // muestra los valores de las variables área y temperatura
codebook departamento area //despliega estadísticas de las variables departamento y área
sum area temp //despliega estadísticas básicas para el área y la temperatura
tab departamento //despliega tabla de frecuencia para la variable departamento
log close // cierra sesión para almacenar resultados en archivo smcl
save bolivia, replace // guarda base de datos en formato .dta de STATA

Las expresiones * y // sirven para hacer comentarios en los archivos .do

El comando replace después de la “coma”, tiene la finalidad de sobrescribir en los archivos


existentes dentro de la carpeta de trabajo, facilitando la ejecución del archivo .do en cualquier
momento.

Para ejecutar el archivo sesion1.do, utilizar la ventana Command. Escribir el nombre del archivo
que desea ejecutar de acuerdo al siguiente comando:

do "F:\CC\sesion1.do"
o (cuando está en la carpeta de trabajo)
do sesion1

Figura 14. Secuencia de comandos del archivo sesion1.do

13
3. MANEJO DE DATOS

3.1. Sintaxis básica de los comandos


El programa es sensible a mayúsculas y minúsculas para las variables. Es más, los comandos
deben ser escritos en minúsculas.

El mejor uso de los comandos depende del conocimiento de la estructura de una instrucción en
STATA, que es:

[by varlist]: comando [varlist] [=exp] [if exp] [in range] [weight], [options]

La información disponible del archivo bolivia.dta, que fue generado en la sección anterior, será
utilizado para ilustrar el uso de los comandos.

Lista de variables de la base de datos:

des // descripción de las variables de la base de datos [varlist]

Contains data from bolivia.dta


obs: 311
vars: 12 29 Jul 2013 01:17
size: 28,923 (99.9% of memory free)
-----------------------------------------------------------------
storage display value
variable name type format label variable label
-----------------------------------------------------------------
departamento str10 %10s
municipio str39 %39s
area float %9.0g
temp float %9.0g
rain float %9.0g
altitude float %9.0g
slope float %9.0g
pob2001 long %12.0g
rural2001 float %9.0g
nbi2001 float %9.0g
idh2001 float %9.0g
espvida2001 float %9.0g
-----------------------------------------------------------------
Sorted by:

14
comando [varlist]

sum area temp altitude rural2001 // despliega las estadísticas descriptivas del área, temperatura
altitud y población rural

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
area | 311 3413.428 6908.347 12.24069 70962.87
temp | 311 15.16249 6.934345 3.82818 26.4684
altitude | 311 2500.825 1485.253 142.716 4589.8
rural2001 | 311 .8132849 .2826554 .0007 1

[by varlist]: comando [varlist]

El by varlist se aplica el comando específico por valores de determinada variable. Para poder
aplicar la opción by los datos siempre deben estar ordenados por la variable de corte
seleccionada. El comando utilizado para ordenar datos es sort.

sort departamento // ordena los datos por los valores de la variable departamento
by departamento: sum temp // despliega las estadísticas descriptivas de la variable temperatura
por departamento

---------------------------------------------------------------------------------------
-> departamento = Beni

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
temp | 19 25.75087 .5111304 24.9434 26.4684

---------------------------------------------------------------------------------------
-> departamento = Chuquisaca

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
temp | 28 17.00425 2.571096 13.2461 23.0664

---------------------------------------------------------------------------------------
-> departamento = Cochabamba

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
temp | 44 14.86745 3.933291 7.13093 25.1793

---------------------------------------------------------------------------------------
-> departamento = La Paz

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
temp | 75 10.71216 5.236136 4.67189 25.3291

---------------------------------------------------------------------------------------

15
-> departamento = Oruro

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
temp | 34 7.521635 1.395077 3.82818 9.51336

---------------------------------------------------------------------------------------
-> departamento = Pando

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
temp | 15 25.76912 .6223883 24.6695 26.4122

---------------------------------------------------------------------------------------
-> departamento = Potosí

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
temp | 38 10.03903 2.853995 4.3467 16.8241

--------------------------------------------------------------------------------------
-> departamento = Santa Cruz

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
temp | 47 22.76083 2.604718 16.9006 25.78787

--------------------------------------------------------------------------------------
-> departamento = Tarija

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
temp | 11 18.09578 3.916801 10.582 23.2967

Alternativamente también podemos hacer:

by departamento, sort: sum temp

comando [varlist] [if exp]

Se aplica el comando if si se cumple una condición específica. Para poder definir una expresión
que involucre valores de variables, se utilizan los siguientes símbolos:
⋅ < (menor)
⋅ <= (menor o igual)
⋅ > (mayor)
⋅ >= (mayor o igual)
⋅ == (igual)
⋅ & (y)
⋅ | (o)
⋅ != (diferente de)

16
Vamos a determinar la temperatura promedio en función a la altura.

sum temp if altitude>3000 // despliega las estadísticas descriptivas de la temperatura de los


municipios con una altura mayor a 3000 msm

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
temp | 154 9.071899 2.641408 3.82818 14.9375

sum temp if altitude>=2000 & altitude<=3000 // despliega las estadísticas descriptivas de la


temperatura de los municipios con una altura
mayor o igual a 2000 msm y menor a igual
3000 msm

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
temp | 49 16.2509 1.1254 13.5097 18.2704

sum temp if altitude<2000 // despliega las estadísticas descriptivas de la temperatura de los


municipios con una altura menor a 2000 msm

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
temp | 108 23.3534 2.66784 17.1316 26.4684

comando [varlist] [in range]

Se aplica el comando in a un rango de las observaciones.

sort altitude // ordena los datos por los valores de la variable altitud
sum temp in 1/10 // despliega las estadísticas descriptivas de la variable temperatura de los 10
municipios con menor altitud

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
temp | 10 26.17056 .3159933 25.5282 26.4684

sum temp in 302/311 // despliega las estadísticas descriptivas de la variable temperatura de los
10 municipios con mayor altitud

Variable | Obs Mean Std. Dev. Min Max


-------------+--------------------------------------------------------
temp | 10 5.177171 .9619788 3.82818 6.50057

17
comando [varlist] [=exp]

[=exp] especifica el valor asignado a una variable. Generalmente se usa con los comandos
generate y replace.

comando [varlist] [weight]

[weight] indica el ponderador asignado a cada observación, hay distintos ponderadores (ver help
weights)

comando [varlist], [options]

[options] especifica las opciones después de una coma. Las opciones también admiten
abreviaciones y dependiendo del comando se tendrá un set de opciones diferentes. Para ver la
sintaxis y las opciones admitidas por un comando (así como para tener información acerca de
qué es lo que hace exactamente del comando) se puede utilizar la ayuda de STATA (help
comando)

La opción detail de sum produce estadísticos adicionales, incluyendo la asimetría, curtosis, los
cuatro valores más pequeños y más grandes, y varios percentiles.

sum temp, detail // despliega las estadísticas descriptivas de la temperatura de los municipios
con otros estadísticos adicionales

temp
-------------------------------------------------------------
Percentiles Smallest
1% 4.65601 3.82818
5% 6.29268 4.29106
10% 7.13093 4.3467 Obs 311
25% 8.33835 4.65601 Sum of Wgt. 311

50% 14.6933 Mean 15.16249


Largest Std. Dev. 6.934345
75% 21.8758 26.4038
90% 25.1793 26.4122 Variance 48.08515
95% 25.9993 26.4198 Skewness .2326727
99% 26.4038 26.4684 Kurtosis 1.653994

3.2. Creación o modificación de datos


Los comandos más usados para la creación de variables a partir de las que ya se disponen son:
generate, egen, replace y rename.

Las estadísticas descriptivas de las variables de la base de datos Bolivia.dta son:

18
sum
Variable | Obs Mean Std. Dev. Min Max
-------------+--------------------------------------------------------
departamento | 0
municipio | 0
area | 311 3413.428 6908.347 12.24069 70962.87
temp | 311 15.16249 6.934345 3.82818 26.4684
rain | 311 81.73835 53.86671 5.758824 337.7436
-------------+--------------------------------------------------------
altitude | 311 2500.825 1485.253 142.716 4589.8
slope | 311 40.59374 32.56744 0 96.44317
pob2001 | 311 26605.55 92819.59 221 1135526
rural2001 | 311 .8132849 .2826554 .0007 1
nbi2001 | 311 84.27705 17.92908 19.07955 100
-------------+--------------------------------------------------------
idh2001 | 311 .5480803 .0793745 .3106447 .7408361
espvida2001 | 311 60.43313 5.031016 40.34542 70.24457

sort y gsort

El comando sort ordena la base de datos por una o varias variables, dando prioridad al orden de
la variable que se pone en primer lugar, segundo, etc.. Por defecto, sort ordena las observaciones
de menor a mayor

sort altitude
sort altitude temp

list altitude temp in 1/5


+--------------------+
| altitude temp |
|--------------------|
1. | 142.716 25.9993 |
2. | 142.771 26.3481 |
3. | 144.668 26.4198 |
4. | 145.993 26.2672 |
5. | 148.413 26.4684 |
+--------------------+

El comando gsort permite elegir cómo se debe ordenar cada variable, pudiendo cambiar entre
descendente (signo +) o ascendente (signo -) para cada variable

gsort +altitude –temp

list altitude temp in 1/5

+--------------------+
| altitude temp |
|--------------------|
1. | 4589.8 4.3467 |
2. | 4475.81 4.67189 |
3. | 4398.38 6.46022 |
4. | 4389.91 5.85101 |
5. | 4384.41 5.00167 |
+--------------------+

19
generate

El comando generate admite todas las expresiones de if más todos los operadores matemáticos
sencillos: suma, resta, multiplicación, división, elevado a, etc.

Para generar nuevas variables: pobrural (población rural), poburbana (población urbana),
pobtotal (población total) y densidad, los comandos son:

gen pobrural=rural2001*pob2001
gen poburbana= (1-rural2001)*pob2001
gen pobtotal=pobrural + poburbana
gen densidad=pobtotal/area

Para observar los valores de las nuevas variables en las cinco primeras observaciones, se debe
escribir el siguiente comando:

list pobrural poburbana pobtotal densidad in 1/5

+-------------------------------------------+
| pobrural poburb~a pobtotal densidad |
|-------------------------------------------|
1. | 2094.009 3832.991 5927 .5908391 |
2. | 740 0 740 .2019498 |
3. | 1018 0 1018 .4929233 |
4. | 1933.824 3518.176 5452 .6296514 |
5. | 7348.675 33095.32 40444 6.221823 |
+-------------------------------------------+

Para generar el número de una observación en la base de datos pero previo ordenamiento por una
variable de referencia (tener en cuenta que es a partir del momento que se ejecuta el comando y
no en el orden original)

sort pobtotal
gen id=_n

list id pobtotal in 1/10

+---------------+
| id pobtotal |
|---------------|
1. | 1 221 |
2. | 2 267 |
3. | 3 353 |
4. | 4 387 |
5. | 5 390 |
|---------------|
6. | 6 509 |
7. | 7 616 |
8. | 8 716 |
9. | 9 740 |
10. | 10 815 |
+---------------+

20
Para generar una variable con grupos de igual tamaño se puede usar la función group. Es
aconsejable primero ordenar la base por una variable de referencia antes de crear los grupos, ya
que este comando asigna 1 al primer grupo, 2 al siguiente grupo y así sucesivamente.

sort pobtotal
gen gpob=group(50) // se ha generado 50 grupos de igual tamaño

list id gpob pobtotal in 1/10

+----------------------+
| id gpob pobtotal |
|----------------------|
1. | 1 1 221 |
2. | 2 1 267 |
3. | 3 1 353 |
4. | 4 1 387 |
5. | 5 1 390 |
|----------------------|
6. | 6 1 509 |
7. | 7 1 616 |
8. | 8 2 716 |
9. | 9 2 740 |
10. | 10 2 815 |
+----------------------+

Para generar la suma acumulada de la población total por municipio (va sumando reglón por
reglón):

gen totpob=sum(pobtotal)

Para observar los valores de las nuevas variables en las diez primeras observaciones, se debe
escribir el siguiente comando:

list id gpob pobtotal totpob in 1/10

+-------------------------------+
| id gpob pobtotal totpob |
|-------------------------------|
1. | 1 1 221 221 |
2. | 2 1 267 488 |
3. | 3 1 353 841 |
4. | 4 1 387 1228 |
5. | 5 1 390 1618 |
|-------------------------------|
6. | 6 1 509 2127 |
7. | 7 1 616 2743 |
8. | 8 2 716 3459 |
9. | 9 2 740 4199 |
10. | 10 2 815 5014 |
+-------------------------------+

Para observar los valores de las nuevas variables en las diez ultimas observaciones, se debe
escribir el siguiente comando:

21
list id gpob pobtotal totpob in 302/311

+---------------------------------+
| id gpob pobtotal totpob |
|---------------------------------|
302. | 302 49 104206 4331472 |
303. | 303 49 117100 4448572 |
304. | 304 49 145057 4593629 |
305. | 305 50 153457 4747086 |
306. | 306 50 215660 4962746 |
|---------------------------------|
307. | 307 50 215778 5178524 |
308. | 308 50 517024 5695548 |
309. | 309 50 649958 6345506 |
310. | 310 50 793293 7138799 |
311. | 311 50 1135526 8274325 |
+---------------------------------+

Para generar variables binarias o dummy hay distintas opciones para crearlas:

gen lapaz1=departamento== “La Paz”

Crea una variables binaria que es igual a 1 si departamento= “La Paz” (entre comillas por la
variables es string) y cero en otro caso.

Otra alternativa

gen lapaz2=0
replace lapaz2=1 if departamento== “La Paz”

Para observar los valores de las nuevas variables en las diez primeras observaciones, se debe
escribir el siguiente comando:

sort rural2001
list departamento lapaz1 lapaz2 in 1/10

+------------------------------+
departam~o lapaz1 lapaz2
------------------------------
1. Cochabamba 0 0
2. La Paz 1 1
3. La Paz 1 1
4. Cochabamba 0 0
5. Santa Cruz 0 0
------------------------------
6. Santa Cruz 0 0
7. Santa Cruz 0 0
8. Beni 0 0
9. Oruro 0 0
10. Pando 0 0
+------------------------------+

22
En cualquiera de estos dos casos se debe tener cuidado si hay missing values, puesto que se
estaría asignando un cero a algo que en realidad es un missing.

Otras expresiones

gen altitude2=altitude*altitude // altitud al cuadrado


gen lnslope=ln(slope) // log natural de la pendiente
gen logslope=log10(slope) // log base 10 de la pendiente
gen diffpob=abs(poburbana-pobrural) // diferencia absoluta en la poblacion
gen ten=10 // valor constante 10

egen

Es un comando muy útil para crear variables. El comando egen (o extended generate) se utiliza
cuando se quiere generar variables que requieren operadores matemáticos complejos: suma de
una variable (no renglón a renglón sino el total), máximo, mínimo, número de casos, media,
mediana, etc.

egen spobtotal=sum(pobtotal) // suma de la población total de los municipios


egen mtemp=mean(temp), by(departamento) //temperatura media por departamento
egen nmunic=count(id), by(departamento) // número de municipios por departamento

Para observar los valores de las nuevas variables en las diez ultimas observaciones ordenadas por
la variable pobtotal, se debe escribir los siguientes comandos:

sort pobtotal
list pobtotal totpob spobtotal in 302/311

+-------------------------------+
| pobtotal totpob spobto~l |
|-------------------------------|
302. | 104206 4331472 8274325 |
303. | 117100 4448572 8274325 |
304. | 145057 4593629 8274325 |
305. | 153457 4747086 8274325 |
306. | 215660 4962746 8274325 |
|-------------------------------|
307. | 215778 5178524 8274325 |
308. | 517024 5695548 8274325 |
309. | 649958 6345506 8274325 |
310. | 793293 7138799 8274325 |
311. | 1135526 8274325 8274325 |
+-------------------------------+

23
Para observar los valores de las nuevas variables por departamento, se debe escribir los siguientes
comandos:

sort departamento
list departamento temp mtemp nmunic in 15/24

+------------------------------------------+
| departam~o temp mtemp nmunic |
|------------------------------------------|
15. | Beni 24.975 25.75087 19 |
16. | Beni 26.4684 25.75087 19 |
17. | Beni 26.4038 25.75087 19 |
18. | Beni 25.0893 25.75087 19 |
19. | Beni 26.0853 25.75087 19 |
|------------------------------------------|
20. | Chuquisaca 15.6975 17.00425 28 |
21. | Chuquisaca 17.1584 17.00425 28 |
22. | Chuquisaca 19.2151 17.00425 28 |
23. | Chuquisaca 23.0664 17.00425 28 |
24. | Chuquisaca 18.2704 17.00425 28 |
+------------------------------------------+

Para más detalle de otros operadores, escribir el comando: help egen

replace

El comando replace permite cambiar una variable existente. Es más, con variables string es
necesario utilizar el comando replace

gen depto=0
replace depto=1 if departamento== “La Paz”
replace depto=2 if departamento== “Oruro”
replace depto=3 if departamento== “Potosí”
replace depto=4 if departamento== “Chuquisaca”
replace depto=5 if departamento== “Cochabamba”
replace depto=6 if departamento== “Tarija”
replace depto=7 if departamento== “Santa Cruz”
replace depto=8 if departamento== “Beni”
replace depto=9 if departamento== “Pando”

label

El comando label var se utiliza para asignarle una etiqueta, por ejemplo para ponerle una
etiqueta a la variable depto, procedemos de la siguiente forma:

label var depto “Departamento”

24
El comando label define se utiliza para definir una lista de asociaciones de números enteros y
texto llamadas “value labels” (leyendas de valores):

label define depto 1 “La Paz” 2 “Oruro” 3 “Potosí” 4 “Chuquisaca” 5 “Cochabamba”


label define depto 6 “Tarija” 7 “Santa Cruz” 8 “Beni” 9 “Pando”, add

El comando label values se utiliza para anexar una leyenda de valores a una variable:

label values depto depto // primero se introduce el nombre de la variable y luego de la lista

Para observar los valores de las nueva variable depto, se debe escribir el siguiente comando:

tab depto

Departament |
o | Freq. Percent Cum.
------------+-----------------------------------
La Paz | 75 24.12 24.12
Oruro | 34 10.93 35.05
Potosí | 38 12.22 47.27
Chuquisaca | 28 9.00 56.27
Cochabamba | 44 14.15 70.42
Tarija | 11 3.54 73.95
Santa Cruz | 47 15.11 89.07
Beni | 19 6.11 95.18
Pando | 15 4.82 100.00
------------+-----------------------------------
Total | 311 100.00

rename

El comando rename cambia el nombre de las variables

rename slope pendiente // primero se introduce el nombre viejo y luego el nuevo

keep y drop

Estos comandos permiten mantener o eliminar variables u observaciones de la base de datos.

keep departamento temp // sólo utilizará las variables departamento y temperatura


keep if departamento== “La Paz” // utilizará sólo las observaciones del departamento de
La Paz

drop temp // eliminará la variable temperatura


drop if departamento== “La Paz” // eliminará sólo las observaciones del departamento de
La Paz

25
3.3. Comandos más utilizados para el análisis descriptivo
El análisis descriptivo se lo realiza con dos o más variables. Además, de la variable depto vamos
a generar dos nuevas variables:
⋅ altura, que dividirá a los municipios en tres categorías: Alta, Media y Baja
⋅ region, que dividirá a los municipios en dos regiones: Urbana y Rural

gen altura=0
replace altura=1 if altitude <=1000
replace altura=2 if altitude >1000 & altitude <=3000
replace altura=3 if altitude>3000
label define altura 1 “Baja” 2 “Media” 3 “Alta”
label values altura altura

gen region=0
replace region=1 if rural2001>0.50
label define region 0 “Urbana” 1 “Rural”
label values region region

Los comandos más utilizados para el análisis descriptivo son: tabulate y table

tabulate

El comando tabulate despliega la tabla de frecuencia de una o dos variables. Tiene distintas
opciones tales como porcentajes por fila, columna y celda.

Para conocer las frecuencias o distribución de las nuevas variables:


tab depto

Departament |
o | Freq. Percent Cum.
------------+-----------------------------------
La Paz | 75 24.12 24.12
Oruro | 34 10.93 35.05
Potosí | 38 12.22 47.27
Chuquisaca | 28 9.00 56.27
Cochabamba | 44 14.15 70.42
Tarija | 11 3.54 73.95
Santa Cruz | 47 15.11 89.07
Beni | 19 6.11 95.18
Pando | 15 4.82 100.00
------------+-----------------------------------
Total | 311 100.00

tab region

region | Freq. Percent Cum.


------------+-----------------------------------
Urbana | 49 15.76 15.76
Rural | 262 84.24 100.00
------------+-----------------------------------
Total | 311 100.00

26
tab altura

altura | Freq. Percent Cum.


------------+-----------------------------------
Baja | 78 25.08 25.08
Media | 79 25.40 50.48
Alta | 154 49.52 100.00
------------+-----------------------------------
Total | 311 100.00

Para conocer las frecuencias o distribución de dos variables:

tab depto region

Departamen | region
to | Urbana Rural | Total
-----------+----------------------+----------
La Paz | 3 72 | 75
Oruro | 3 31 | 34
Potosí | 5 33 | 38
Chuquisaca | 1 27 | 28
Cochabamba | 6 38 | 44
Tarija | 4 7 | 11
Santa Cruz | 16 31 | 47
Beni | 10 9 | 19
Pando | 1 14 | 15
-----------+----------------------+----------
Total | 49 262 | 311

tab depto altura

Departamen | altura
to | Baja Media Alta | Total
-----------+---------------------------------+----------
La Paz | 3 16 56 | 75
Oruro | 0 0 34 | 34
Potosí | 0 1 37 | 38
Chuquisaca | 1 22 5 | 28
Cochabamba | 3 21 20 | 44
Tarija | 3 6 2 | 11
Santa Cruz | 34 13 0 | 47
Beni | 19 0 0 | 19
Pando | 15 0 0 | 15
-----------+---------------------------------+----------
Total | 78 79 154 | 311

tab region altura

| altura
region | Baja Media Alta | Total
-----------+---------------------------------+----------
Urbana | 29 6 14 | 49
Rural | 49 73 140 | 262
-----------+---------------------------------+----------
Total | 78 79 154 | 311

27
Para conocer la composición en porcentaje por fila:
tab depto altura, row

+----------------+
| Key |
|----------------|
| frequency |
| row percentage |
+----------------+

Departamen | altura
to | Baja Media Alta | Total
-----------+---------------------------------+----------
La Paz | 3 16 56 | 75
| 4.00 21.33 74.67 | 100.00
-----------+---------------------------------+----------
Oruro | 0 0 34 | 34
| 0.00 0.00 100.00 | 100.00
-----------+---------------------------------+----------
Potosí | 0 1 37 | 38
| 0.00 2.63 97.37 | 100.00
-----------+---------------------------------+----------
Chuquisaca | 1 22 5 | 28
| 3.57 78.57 17.86 | 100.00
-----------+---------------------------------+----------
Cochabamba | 3 21 20 | 44
| 6.82 47.73 45.45 | 100.00
-----------+---------------------------------+----------
Tarija | 3 6 2 | 11
| 27.27 54.55 18.18 | 100.00
-----------+---------------------------------+----------
Santa Cruz | 34 13 0 | 47
| 72.34 27.66 0.00 | 100.00
-----------+---------------------------------+----------
Beni | 19 0 0 | 19
| 100.00 0.00 0.00 | 100.00
-----------+---------------------------------+----------
Pando | 15 0 0 | 15
| 100.00 0.00 0.00 | 100.00
-----------+---------------------------------+----------
Total | 78 79 154 | 311
| 25.08 25.40 49.52 | 100.00

Para conocer la composición en porcentaje (excluyendo la frecuencia) por columna:

tab region altura, col nof

| altura
region | Baja Media Alta | Total
-----------+---------------------------------+----------
Urbana | 37.18 7.59 9.09 | 15.76
Rural | 62.82 92.41 90.91 | 84.24
-----------+---------------------------------+----------
Total | 100.00 100.00 100.00 | 100.00

28
Para conocer la frecuencia y porcentaje por celda:

tab region altura, cell

+-----------------+
| Key |
|-----------------|
| frequency |
| cell percentage |
+-----------------+

| altura
region | Baja Media Alta | Total
-----------+---------------------------------+----------
Urbana | 29 6 14 | 49
| 9.32 1.93 4.50 | 15.76
-----------+---------------------------------+----------
Rural | 49 73 140 | 262
| 15.76 23.47 45.02 | 84.24
-----------+---------------------------------+----------
Total | 78 79 154 | 311
| 25.08 25.40 49.52 | 100.00

El comando tab conjuntamente con gen puede crear una variable binaria para cada valor que se
encuentra en la variable depto, poniéndoles el nombre de depto1, depto2,…, depto9 (o el nombre
que se elija, pero siempre asignará valores correlativos a la variables binarias generales).

tab depto, gen(depto)

Para observar los valores de las nuevas variables en las quince primeras observaciones, se debe
escribir el siguiente comando:

list depto depto1 depto2 depto3 depto4 depto5 depto6 depto7 depto8 depto9 in 1/15
+-----------------------------------------------------------------------------------------+
| depto depto1 depto2 depto3 depto4 depto5 depto6 depto7 depto8 depto9 |
|-----------------------------------------------------------------------------------------|
1. | Oruro 0 1 0 0 0 0 0 0 0 |
2. | La Paz 1 0 0 0 0 0 0 0 0 |
3. | Oruro 0 1 0 0 0 0 0 0 0 |
4. | Oruro 0 1 0 0 0 0 0 0 0 |
5. | Oruro 0 1 0 0 0 0 0 0 0 |
|-----------------------------------------------------------------------------------------|
6. | Pando 0 0 0 0 0 0 0 0 1 |
7. | Oruro 0 1 0 0 0 0 0 0 0 |
8. | Potosí 0 0 1 0 0 0 0 0 0 |
9. | Pando 0 0 0 0 0 0 0 0 1 |
10. | Potosí 0 0 1 0 0 0 0 0 0 |
|-----------------------------------------------------------------------------------------|
11. | Oruro 0 1 0 0 0 0 0 0 0 |
12. | Oruro 0 1 0 0 0 0 0 0 0 |
13. | Pando 0 0 0 0 0 0 0 0 1 |
14. | Oruro 0 1 0 0 0 0 0 0 0 |
15. | Pando 0 0 0 0 0 0 0 0 1 |
+-----------------------------------------------------------------------------------------+

29
table

El comando table se puede crear tablas estadísticas controlando el contenido de cada casilla. Por
ejemplo, podemos calcular una tabla de doble entrada y situar en cada celda el estadístico
solicitado.

Los estadísticos pueden ser:

freq frequency
mean varname mean of varname
sd varname standard deviation
sum varname sum
count varname count of nonmissing observations
n varname same as count
max varname maximum
min varname minimum
median varname median
p1 varname 1st percentile
p2 varname 2nd percentile
... 3rd-49th percentile
p50 varname 50th percentile (median)
... 51st-97th percentile
p98 varname 98th percentile
p99 varname 99th percentile
iqr varname interquartile range

El comando table puede replicar los estadísticos del comando sum: número de observaciones,
media, desvió estándar, mínimo y máximo de la variables temp. Además, los números tienen un
formato (help format).

table depto, contents (n temp mean temp sd temp min temp max temp) format ( %8.2f)

-----------------------------------------------------------------------
Departamen |
to | N(temp) mean(temp) sd(temp) min(temp) max(temp)
-----------+-----------------------------------------------------------
La Paz | 75 10.71 5.24 4.67 25.33
Oruro | 34 7.52 1.40 3.83 9.51
Potosí | 38 10.04 2.85 4.35 16.82
Chuquisaca | 28 17.00 2.57 13.25 23.07
Cochabamba | 44 14.87 3.93 7.13 25.18
Tarija | 11 18.10 3.92 10.58 23.30
Santa Cruz | 47 22.76 2.60 16.90 25.79
Beni | 19 25.75 0.51 24.94 26.47
Pando | 15 25.77 0.62 24.67 26.41
-----------------------------------------------------------------------

30
El análisis descriptivo requiere una tabla de doble entrada, esto puede obtenerse de esta manera:

table depto altura, contents (mean temp) format ( %8.2f)


--------------------------------
Departamen | altura
to | Baja Media Alta
-----------+--------------------
La Paz | 24.44 17.54 8.03
Oruro | 7.52
Potosí | 16.82 9.86
Chuquisaca | 23.07 17.48 13.72
Cochabamba | 24.25 16.53 11.71
Tarija | 22.61 17.81 12.19
Santa Cruz | 24.21 18.97
Beni | 25.75
Pando | 25.77
--------------------------------

table region altura, contents (mean temp) format ( %8.2f)


-------------------------------
| altura
region | Baja Media Alta
----------+--------------------
Urbana | 24.70 16.89 8.78
Rural | 24.89 17.55 9.10
-------------------------------

table depto region altura, c(mean temp) format ( %8.2f) // c es equivalente a contents
---------------------------------------------------------------
| altura and region
Departamen | ---- Baja ---- ---- Media --- ---- Alta ----
to | Urbana Rural Urbana Rural Urbana Rural
-----------+---------------------------------------------------
La Paz | 24.44 17.54 8.85 7.98
Oruro | 7.24 7.55
Potosí | 16.82 9.62 9.89
Chuquisaca | 23.07 16.30 17.53 13.72
Cochabamba | 24.25 16.41 16.55 8.84 12.22
Tarija | 22.61 16.27 18.12 12.19
Santa Cruz | 24.37 24.09 19.55 18.92
Beni | 25.80 25.70
Pando | 24.96 25.83
---------------------------------------------------------------

table depto region altura, c (mean nbi2001) format ( %8.2f)


---------------------------------------------------------------
| altura and region
Departamen | ---- Baja ---- ---- Media --- ---- Alta ----
to | Urbana Rural Urbana Rural Urbana Rural
-----------+---------------------------------------------------
La Paz | 88.65 89.70 66.82 95.55
Oruro | 59.33 93.28
Potosí | 98.73 57.23 93.60
Chuquisaca | 85.20 39.95 90.75 87.69
Cochabamba | 83.89 33.95 80.65 38.73 85.14
Tarija | 48.97 31.33 84.17 92.91
Santa Cruz | 54.64 75.97 55.81 74.01
Beni | 76.14 93.77
Pando | 45.92 93.81
---------------------------------------------------------------

31

También podría gustarte