Está en la página 1de 25

Estadística Aplicada

STATA – Programación
• Objetos de programación
• Macros global | local | macro list | macro drop
• Escalares scalar | scalar list | scalar drop | scalar drop _all
• Matrices matrix | J(r,c,val) | matrix dir | matrix list | matrix drop
• Estructuras de programación
• Condicionales if | else
• Bucle cerrado forvalues | foreach of | foreach in
• Bucle abierto while
• Comandos en internet
Macros y escalares
• Macros: espacio de memoria que puede guardar números y/o strings de modo permanente
(global, se borra al cerrar Stata) o temporal (local, se borra al detener la ejecución)
• Crear macro global llamada gname global gname [=exp | "string"]
• Llamar macro global gname $gname
• Crear macro local llamada lname local lname [=exp | "string"]
• Llamar macro local lname `lname’ ` ctrl + alt + } + espacio ‘ (apóstrofe)
• Listar macros existentes macro list
• Borrar la macro mname macro drop mname

• Escalares: objeto que puede guardar un número (escalar)


• Crear escalar scalar_name scalar scalar_name = exp
• Listar todos los escalares scalar list
• Para borrar el escalar scalar_name scalar drop scalar_name
• Para borrar todos los escalares scalar drop _all

2
Matrices
Objeto que puede guardar números ordenados en filas y columnas
• Crea matriz mname de nrow por ncol llena de # matrix mname=J(nrow,ncol,#)
• Guarda #num1 en fila i y columna j de mname matrix mname[i,j]=#num1
• Lista los nombres de matrices en memoria matrix dir
• Muestra la matriz mname matrix list mname
• Borra la matriz mname matrix drop mname
• Une matrices A y B una debajo de otra matrix C=A\B \ ctrl+alt+’
• A y B tienen el mismo número de columnas
• Une matrices D y E una a lado de otra matrix F=D,E
• D y E tienen el mismo número de filas
• Crea matriz de 3 x 4 llena de random U(0,1) matrix G=matuniform(3,4)
• Guarda matriz mname en variables svmat mname
• Guarda variables en matriz mname mkmat varlist [if] [in] [, matrix(mname)]
3
Condicionales
• Ejecuta las líneas dentro de la estructura si cond es verdadera if cond {
multiple commands
}
• Ejecuta las líneas dentro de la estructura si cond es falsa else {
Es una extensión, no es obligatorio usar else al usar if exp multiple commands
Pero es obligatorio haber declarado if cond si se usa else }

• Si solo se desea condicionar la ejecución de solo un comando if cond single command


else single command

• No confundir estructura de programación if con parte [if] de cualquier comando


• Estructura de programación if condiciona la ejecución misma del comando
• [if] en sintaxis del comando condiciona sobre qué observaciones se ejecuta el comando

4
Bucles cerrados
• Ejecuta las líneas dentro de la estructura determinada cantidad de veces
• lname macro local que toma un valor de la lista en cada repetición
• numlist #inicial(#step)#final 3(-2)-4 ídem a 3 1 -1 -3
#inicial/#final 5/9 ídem a 5 6 7 8 9
#num1 #num2 #num3 8 -1 4 13

Sobre cualquier lista foreach lname in any_list {


Sobre lista de variables foreach lname of varlist varlist {
Sobre lista de números foreach lname of numlist numlist {
Sobre valores en un local foreach lname of local lname2 {
Sobre lista de números forvalues lname=#inicial(#step)#final {
}
5
Bucles abiertos
• Ejecuta los comandos entre llaves una y otra vez mientras exp sea
cierta. Cuando cond sea falsa detiene las repeticiones.
• Importante: cond debe cambiar de valor dentro de la estructura
while cond {
multiple commands
}

6
Comandos en internet
• Busca string en páginas de internet asociadas a Stata, inclusive adiciones
• Adiciones (.ado) son paquetes (comandos, funciones) creados por usuarios
findit string

• Instala name.ado desde internet ssc install name

• Muestra la programación de name.ado viewsource name.ado

• ¿name es un .ado o un comando de Stata? which name

• ¿Cuál es el Coeficiente de Gini nacional y por departamento del ingreso por


hora? Muestre sus resultados en una tabla (en Excel) y un gráfico.
Ejercicio 1 – Condicionales
A partir de los módulos 4 y 5 de la ENAHO
• Cree la variable ingreso laboral mensual. Suponga que se quiere dar un subsidio a
todos aquellos que reciban ingresos laborales pero no tengan seguro de salud (p4191-
p4198).
• Cree una macro local que contenga un número aleatorio 0 y 1.
• Si el número es mayor a 0.5, se asigna un subsidio de 10% del ingreso laboral.
• Se decide cambiar la estructura de subsidio de la siguiente forma: si el número es
menor a 0.3 (inclusive), el subsidio será del 10% y si es mayor, será de 20%.
• Finalmente, hacen un último cambio. Además, si el número es menor o igual a 0.1, se
dará un subsidio de 5% a los que sí tienen seguro; si el número es mayor a 0.1 y
menor o igual a 0.7, se dará un subsidio de 10% a los que no tienen seguro y si es
mayor a 0.7, el subsidio será de 20% para los que no tienen seguro.
Ejercicio 2 – Bucles cerrados
• Cree la matriz A de orden 10x8 cuyos elementos son aleatorios de la
forma:

• Cree la matriz B triangular inferior de orden 8. Cada elemento de la


matriz es un valor aleatorio que proviene de una distribución normal
con media 8 y desviación estándar igual a 3.
• Cree la matriz C de orden 8x10. Cada elemento de la matriz es un
valor aleatorio que proviene de una distribución uniforme de 0 a 1.
Ejercicio 3 - Cuartiles
A partir del archivo 2_sumaria.dta en Cuartiles.zip
Cree las variables cuardep_ing1, cuardep_ing2, cuardep_ing3 y
cuardep_ing4 que guarden los cuartiles a los cuales pertenece cada
individuo para las variables ing1 ing2 ing3 e ing4 respectivamente.
Para armar los cuartiles, en lugar de ubicar la posición del ingreso de
cada individuo en la distribución de ingresos del Perú, tome como
referencia la distribución de ingresos de cada departamento. Así, un
mismo ingreso colocaría a un individuo en el cuartil 4 si vive en Lima,
pero si viviera en Amazonas pertenecería al cuartil 2 de ingresos.
Nota: bysort no está definido para el comando xtile
(2 puntos) Ejercicio basado en 2018-1
A partir de enaho_ayuda.dta, cree una variable que contenga el centil
al que cada individuo pertenece según la distribución del salario
mensual contemporánea (mismo año) de la subpoblación con la que
comparte lengua materna y sexo.
Ejercicio 4 – Coeficiente de Variabilidad
A partir del módulo 34 de la ENAHO (Sumaria)
a. Calcule el coeficiente de variabilidad (CV) de los ingresos netos por
hogar eliminando las colas de las distribución. Para hacerlo, primero
calcule los estadísticos requeridos para datos comprendidos entre el
percentil 1 y 99; luego 2 y 98; hasta 20 y 80. Finalmente grafique los
CV obtenidos contra el número de percentiles excluidos.
b. Replique el ejercicio anterior para los ingresos brutos (inghog1d) y
netos (inghog2d) y para los gastos monetarios (gashog1d) y totales
(gashog2d).
Ejercicio 5 - Aleatorios
• Cree una base de 10,000 observaciones.
• Genere 100 variables de números pseudos-aleatorios uniformemente
distribuidos. No obstante los parámetros van a estar definidos de
acuerdo con el siguiente patrón: 𝑦_𝑗(𝑖)~𝑢𝑛𝑖𝑓𝑜𝑟𝑚𝑒(𝑗∗(𝑖−1),𝑗∗𝑖), en
donde i representa el número de la observación en cuestión y j el
índice de la variable.
• Seguidamente, generar una serie mean_y_j, en donde cada
mean_y_j(x) representa el promedio desde la primera observación
hasta la x-ésima observación.
• Se recomienda emplear bucles para la generación de cada observación.
Ejercicio 6 – Replicar tabla
A partir de datos3.dta
• Exporte la tabla a “Prueba.xlsx”
• superior_b: cambio del ingxh ante el cambio en el
máximo nivel educativo alcanzado al pasar de sin
nivel a superior universitaria completa,
controlando el efecto del sexo y sector
• Considere que para algunos departamentos la prima
de ser formal puede ser significativamente distinta
según sexo. Ajuste el modelo para cada
departamento según si la prima es significativamente
diferente o no.
• sup_icinf y sup_icsup: intervalo al 95% de
confianza
• Recuerde que:
• Puede observar los valores guardados tipo r(xxxx)
con ret list y tipo e(xxxx) con eret list
• p-value=2*prob_acum_normal(-abs(t_stat))
Ejercicio 7 – Bucles abiertos
A partir del módulo 34 de la ENAHO (Sumaria)
a. Un investigador necesita dos muestras de 100 hogares pobres (no pobre
extremo) en Lima metropolitana y recurre a usted para que lo ayude. La
media de los ingresos netos de cada muestra no debe diferir en más de S/. 5.
b. Realice una prueba de medias (lincom) comparando el ingreso y el gasto
mensual per capita del hogar. Guarde en un local el ratio entre la diferencia y
el error estándar (vea como lincom guarda los valores). Mientras este ratio
sea mayor a 1.96, agregue y quite 5 soles al gasto y al ingreso per capita;
respectivamente. No olvide utilizar svy.
• Una vez haya concluido, piense en cómo modificar su código si le piden que
debe guardar la diferencia, la desviación estándar y el ratio entre ambos para
cada repetición en una matriz.
Ejercicio 8 – Muestra aleatoria
A partir de datos3:
• Elija aleatoriamente 100 conglomerados hasta que no pueda rechazar
con 95% de confianza que la prima por ser formal para las mujeres es
menor que la prima por ser formal para los hombres.
• Modifique su código de modo que los 100 conglomerados elegidos
mantengan la distribución por departamento de la muestra. Por
ejemplo: si la muestra tiene 1000 conglomerados – 200 en el
departamento A y 800 en el departamento B –, entonces 20 de los
conglomerados elegidos aleatoriamente proviene del departamento A
y 80 del departamento B
(3 puntos) Ejercicio basado en 2018-2
ENCONTRANDO A LA PAREJA IDEAL
Cree dos bases de datos de 100 individuos (basei.dta y basej.dta). Cada base
deberá contener dos variables: identificador de individuo y valor por
individuo. El valor en ambos casos distribuye normal con media 5 y
desviación estándar 3. En basei.dta, cree una variable que guarde la
identificación de la pareja ideal en basej.dta correspondiente a cada
individuo en basei.dta. Para cada individuo i, los candidatos a pareja ideal son
aquellos individuos de basej.dta cuyos valores (vj) sean menores al valor del
individuo i (vi). De entre ellos, la pareja ideal es aquel con el valor máximo (vj
máximo).
NOTA: Puede desarrollarse sin usar programación estructurada (help expand)
(5 puntos) Ejercicio basado en 2018-0
A partir de base1.dta, cree base2.dta que contiene la probabilidad de estar enfermo si todos en la
familia están sanos (enfermo0), si solo un familiar está enfermo (enfermo1) y si dos o más
familiares están enfermos (enfermo2) para cada categoría de las variables edad (edad), años de
educación (aedu), altitud en m.s.n.m. de la vivienda (altitud), latitud en grados respecto a la línea
ecuatorial (latitud), tiempo que toma llegar al establecimiento de salud (demora) y gasto per cápita
(gaspc). Las categorías para las variables discretas son cada valor de la variable y para las continuas
son los cuantiles para generar 20 grupos.
1. Crear los cuantiles para las variables continuas. Por ejemplo, dgaspc para gaspc.
2. Crear una base auxiliar llamada edad.dta que contiene las variables enfermo0, enfermo1 y
enfermo2 para cada categoría de la variable edad (variable categ) y la variable var que
contiene “edad” para todas las observaciones.
3. Modifique el código que realizó para edad de modo que repita el proceso para las demás
variables: aedu, dlatitud, daltitud, dgaspc y ddemora.
4. Anexar y borrar las bases de datos auxiliares. Guarde como base2.dta.
(4.5 puntos) Ejercicio basado en 2017-2
Revise Pobreza_Peru.xlsx. A partir de ayuda.dta, complete los cuadros a nivel nacional y
para cada categoría de region que muestran: promedio de la variable para pobres
extremos (col1), para pobres moderados (col2), la diferencia entre ambos promedios
(col3), p-value de la H0: dif=0 (col4) y conclusión que indique si son “Diferentes” al
rechazar la H0 o “Iguales” de lo contrario (col5).
donde es la función normal()
1. Evalúe la H0 de diferencia de medias entre pobres extremos y moderados
(pobre_mod) sobre la proporción de personas con jefe de hogar mujer (mujer_hh)
a nivel nacional. Guarde en la primera fila de una matriz los valores de col1 a col4.
2. Complete las demás filas de la matriz con hipótesis sobre las demás variables.
3. Exporte a Excel el cuadro a nivel nacional, no olvide completar col5.
4. Generalice el proceso para completar los demás cuadros.
Ejercicios basados en 2017-1
• (8 puntos) Proyectando las clases económicas
• (5 puntos) Muestra aleatoria con estructura (pasos 3 al 5)
Simulacro de examen (15 minutos – 2
puntos)
Junte las bases de datos de los módulos 3 y 5 de las ENAHO 2007 y
2016. Guarde como base0716 que contiene las siguientes variables:
1. De identificación conglome vivienda hogar codperso
2. Otras de identificación aÑo estrato dominio ubigeo
3. De los módulos 5 p207 a p209, p501 a p503, y p5041 a p505
4. Del módulo 3 del 2016 p301a p301a1 p301b1 factor07
5. Del módulo 3 del 2007 p301a p301a1 factor07
Use macros globales para referirse a cada lista de variables mencionada
En las últimas tres listas agregue las dos primeras listas
Simulacro de examen (15 minutos – 3
puntos)
Genere las siguientes bases de datos de descripción de códigos:
• codigos5.dta A partir de enaho-tabla-ciuo-88 (zip módulo 5),
(1 punto) cada observación es un código distinto de hasta 3
dígitos (codocupa) contiene la descripción de los
códigos (desocupa)
• codigos3.dta A partir de ENAHO-CODIGO DE INSTITUCIONES EDUCATIVAS.XLSX
(2 puntos) celdas C6:D56, C1402:D1930 y C1199:D1292 (zip
módulo 3), cada observación es un código de 9
dígitos diferente (codinsti) y contiene la institución
educativa (institucion) a la que refiere el código
Simulacro de examen (20 minutos – 3
puntos)
A partir de base0716, codigos5 y codigos3, cree las siguientes variables:
• (0.5) economista 1 si estudió economía, 0 de lo contrario
Según el clasificador de carreras, economía equivale
a los códigos de carreras que empiezan en “341”.
• (0.5) concluyo 1 si terminó la universidad, 0 de otro modo (d.o.m.)
• (0.5) ocupado 1 si dijo que sí a alguna pregunta entre p501 y
p50411, missing si no respondió p502 y 0 d.o.m.
• (0.5) institucion en qué institución estudio, proviene de codigos3
• (1) ejerce 1 si trabaja como economista, 0 de otro modo. Según su
criterio, escoja 5 ocupaciones entre las más comunes
Borre a los que no estudiaron economía. Guarde como base.dta.
Simulacro de examen (20 minutos – 3
puntos) aÑo concluyo ocupado ejerce

(1) Replique la tabla 2007 51.2 78.1 5.6


• En el 2007, el 51.2% de economistas concluyó 2016 60.2 72.6 12.3
la carrera, el 78.1% de economistas trabajó y
el 5.6% de economistas trabajó como
economista 9. Universidad del Pacífico
Trabajan
100
Ejercen
98

• La opción del formato es: format(%4.1f)


8. Universidad Nacional de San Agustín 99 45

(2) Genere el gráfico para el 2016 7. Pontificia Universidad Católica del Perú 94 43

• Las universidades mostradas son las 9 con 6. Universidad Nacional de San Antonio Abad del Cusco 49 38

mayor número de economistas


5. Universidad Nacional Mayor de San Marcos 75 25
• La variable del eje vertical es numérica con
etiquetas ordenadas según ejercen. Para 4. Universidad de Lima 100 21

mostrar las etiquetas use las opciones: 3. Universidad Nacional del Altiplano 41 12

• Eje y ylabel(1/9, value angle(horizontal)) 2. Universidad Nacional Federico Villarreal 90 0

• Puntos mlabel(varname)
1. Universidad Ricardo Palma 50 0

• Los porcentajes de trabajan y ejercen son en 0 50 100 0 50 100

base a los que concluyeron la carrera % de economistas que concluyeron la carrera


GRÁFICO NO REPRESENTATIVO
Simulacro de examen (10 minutos – 1 punto)
Establezca hipótesis para responder la siguiente pregunta: ¿Los que
concluyen la carrera tienen mayor probabilidad de estar ocupados? De
ser así, ¿Qué tanto más? (en puntos porcentuales)
• Forma 1: prueba de diferencia de medias
• Forma 2: regresión univariada
• Forma 3: regresión multivariada
• Controle el efecto cuadrático de la edad sobre la probabilidad de trabajar

También podría gustarte