

















Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
El documento trata de como es el entorno del software de sata
Tipo: Apuntes
1 / 25
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


















1.1. Stata es “case sensitive” 1.2. Sintaxis de las órdenes 1.3. Recursos de memoria 1.4. Comando de ayuda 1.5. Precisión de las variables 1.6. Abreviaturas de comandos 1.7. Salir de Stata
7.1. Estimación por MCO 7.2. Estimación por VI 7.3. Estimación de modelos de elección binaria 7.4. Estimación de modelos censurados 7.5. Obtención de resultados tras la estimación 7.6. Contrastes de hipótesis 7.7. Estimación con datos de panel
& y | ó ~ negación
mientras que los operadores de relación vienen dados por:
mayor que < menor que = mayor o igual que <= menor o igual == igual != distinto(también puede escribirse: ~=)
Por defecto, la memoria con la que trabajamos en un PC en Stata es de 1024K. Pero si la base de datos que vamos a manejar es muy grande, es posible que no tengamos memoria suficiente. Podemos incrementar los recursos de memoria con el comando set memory. Ejemplo:
set memory 20000
incrementa los recursos de memoria hasta 20000K.
Mediante la instrucción
help comando
obtendremos la ayuda referente al comando que hemos escrito después de help.
Las variables numéricas se almacenan en Stata según uno de los siguientes tipos: byte , int , long , float (por defecto) y double. Las variables de tipo byte son almacenadas en 1 byte, las de tipo int en 2 bytes, las de tipo long y float en 4 bytes y las de tipo double en 8 bytes. Las variables alfanuméricas, es decir, las que contienen texto, son de tipo cadena ( string ), que se denota por str #### (str1, str2, …, str80). En cuanto al formato de visualización, es decir, la forma en que los datos son presentados, es el siguiente: para variables numéricas, viene expresado como %w.d , seguido de uno de estos tres formatos: e , f , g. Con w denotamos un número entero que especifica la anchura del formato, mientras que d indica el número de dígitos que siguen al punto decimal. Para variables alfanúmericas, el formato es %w s , donde s indica string y w es un número entero que indica la anchura dada a la variable. Por defecto, el formato que asigna Stata a los distintos tipos de variable es:
byte %8.0g int %8.0g long %12.0g float %9.0g double %10.0g
Es posible cambiar el formato de visualización de las variables con el comando format. Por ejemplo, supongamos que en nuestros datos la variable var1 es tipo float , formato %9.0g. Si queremos darle formato %10.2g la instrucción será:
format var1 %10.2g
El formato de visualización no afecta a la precisión de almacenamiento de los datos. La cantidad de memoria que consumen nuestros datos puede reducirse con el comando compress. Este comando reduce el tamaño de los datos del siguiente modo:
double pasa a long , int o byte float pasa a int o byte long pasa a int o byte int pasa a byte string pasa a longitud de cadena más corta
Stata permite referirnos a la mayoría de los comandos utilizando sólo sus tres primeras letras (incluso sólo la primera en algunos casos). Así, por ejemplo, el comando generate puede escribirse como gen , el comando tabulate como tab , etc. Hay algunas excepciones que deben escribirse sin abreviar, como compress. En las próximas secciones veremos estos y otros comandos.
Podemos terminar una sesión de Stata con el comando exit.
Con el comando edit accedemos al editor de Stata. Aparece una ventana a modo de hoja de cálculo donde podemos introducir datos.
borra la variable var
drop var1 var
segunda borra las variables var1 y var
keep iden year var
mantiene las variables iden , year y var1 , borrando el resto de las variables del fichero. Stata admite plantillas para referirse a una lista de variables. Por ejemplo,
drop var*
borra todas las variables que empiezan por var. Los comandos drop y keep también permiten borrar y mantener, respectivamente, un rango concreto de observaciones. Así, por ejemplo,
drop if year>
borra, en todas las variables del fichero en uso, todas las observaciones para las que year> drop in 5/
borra, en todas las variables, todas las observaciones desde la 5 hasta la 15.
keep if dum==1 & var1 >
mantiene, en todas las variables, todas las observaciones para las que dum=1 y _var
20_ , borrando el resto de observaciones.
rename var1 nvar
label variable iden “identificador de individuo”
Si hemos etiquetado una variable, el comando describe nos dará, además del nombre, la etiqueta de la variable.
count if iden>20 & dum==
nos da el número de observaciones del fichero en uso que cumplen la condición señalada detrás de if.
list var1 var list var1 in 2/ list var1 in 90/l list year if iden>10 & year!= list year var1 in 2/50 if var1 <=var2 | dum==
donde con la orden in 2/10 señalamos el rango que queremos listar: de la segunda observación a la décima de la variable especifcada, en este caso var1. Con in 90/l el rango señalado es desde la observación 90 hasta la última ( l ast). Con la orden if expresión sólo listamos, para las variables especificadas, aquellas observaciones que cumplen la expresión escrita después de if.
inspect var1 var
indica el número de valores positivos, negativos, cero y faltantes (missing values), así como el número de valores enteros y no enteros de las variables var1 y var2. Los “missing values” se señalan en Stata mediante un punto (.). Se considera que un “missing value” es mayor que cualquier valor.
summarize var3 (o bien, sum var3 )
proporciona información acerca del número de observación, la media, la desviación típica, el mínimo y el máximo de la variable especificada.
summarize var3 , detail (o bien, sum var3 , d )
proporciona, además, coeficientes de asimetría y curtosis y varios percentiles de la variable especificada.
table year dum , contents ( n var1 mean var2 ) row table year dum if year<1993 , contents ( median var3 ) row col
añadiendo además la opción row ( col ), la tabla incluirá una fila (columna) adicional con los valores totales, para cada valor de year y dum , de las opciones que aparecen en contents. Todo lo que aparece después del comando table y las variables especificadas son opciones, y por tanto, no son necesarias en la sintaxis del comando. Si no aparecen, es decir, si sólo escribimos
table year table year dum
obtendremos sólo las tablas de frecuencias correspondientes, como con el comando tabulate.
Las opciones más frecuentes dentro de contents son:
n (número de observaciones) mean (media) sd (desviación típica) median (mediana) max (máximo) m in (mínimo) p1 (primer percentil) p2 (segundo percentil) ··· p98 (percentil 98) p99 (percentil 99) iqr (rango intercuartílico)
El comando para generar variables es generate, que puede abreviarse como gen Ejemplos:
generate var4 =var1 +var generate var5 = var1 /var2 if dum==
En la segunda de estas órdenes, Stata asignará un “missing value”,., a aquellas observaciones que no cumplen la condición señalada después de if. También podemos generar una variable considerando cada valor de una variable de referencia. Para ello es necesario que los datos estén ordenados según dicha variable. Ejemplo:
by iden: gen var4 =sum(var2 )
Esta orden trata las observaciones por grupos según el valor de la variable especificada después de by. Dado que en nuestro ejemplo la variable iden toma 30 valores diferentes (1,2,···,30), tenemos 30 grupos de observaciones. La instrucción anterior genera una variable var4 que va asignando a las observaciones de cada grupo, la suma de las observaciones de var2 en ese grupo. Es decir:
iden year var2 var 1 1991 6.2 6. 1 1992 4.1 10. 1 1993 3.5 13. 1 1994 4.5 18. 1 1995 5.4 5. 2 1991 7.8 13. 2 1992 6.2 19. 2 1993 1.3 20.
Siempre que generamos variables por grupos (con el comando by , como en el ejemplo anterior), Stata va mostrando por pantalla mensajes intermedios que pueden ser suprimidos si al inicio de la instrucción escribimos el comando quietly. Es decir, la instrucción anterior podría escribirse como:
quietly by iden: gen var4 =sum(var2 )
Además, podemos opcionalmente especificar la precisión de la variable que vamos a generar. Por ejemplo:
gen double var5 =ln( var1 )
Es importante tener en cuenta el tipo de variable que vamos a generar si queremos determinar una precisión distinta a la que Stata asigna por defecto. Así, si vamos a generar una variable que tiene decimales y la generamos como byte , tendremos errores. Por ejemplo, 12.8 será almacenado como 12. Con las órdenes que utilizan by combinado con generate , también es posible utilizar los comandos if e in para especificar un subconjunto de observaciones.
Existe una extensión del comando generate , el comando egen. Este comando genera variables que vienen expresadas como ciertas funciones de otras variables. También es posible declarar la precisión de la variable que queremos generar, así como combinar el comando con if e in. Ejemplos:
egen var7 =max( var1 + var2 ) if dum==
encuesta en la que se preguntó a los individuos si habían viajado al extranjero en el período considerado, siendo las respuestas posibles: 1 si el individuo ha viajado al extranjero y 0 en caso contrario. Una variable categórica divide a la muestra en grupos dependiendo de cierta característica. Podemos pensar, por ejemplo, que la variable categ recoge los resultados de una encuesta en la que se preguntó a los individuos sobre el número de conciertos a los que asistieron en el período considerado, siendo las respuestas posibles: 5 si fueron a menos de 5 conciertos, 10 si presenciaron entre 5 y 15 conciertos y 20 si fueron a más de 15. Toda variable indicador es una variable cate g órica, pero lo contrario no es cierto. Stata permite convertir variables continuas en variables categóricas o variables indicador y convertir variables categóricas en variables indicador.
gen d1=(var1 > 25)
genera una variable indicador d1 , que tomará el valor 1 para las observaciones para las que var1 >25 y 0 para el resto. Por defecto, la variable d1 que genera Stata será float , pero dado que sólo va a tomar los valores 1 y 0, es mejor generarla como byte para ahorrar memoria. Por tanto, es mejor generarla como:
gen byte d1=(var1 >25)
Hay que tener en cuenta que si existen missing values, éstos son considerados mayores que cualquier otro valor, por tanto, es mejor generar la variable de forma que sólo tome los valores 0 y 1 para las observaciones donde no hay missing value. Entonces, la forma de generar la variable es:
gen byte d1=(var1 >25) if var1 !=.
De esta forma, la variable d1 tendrá un missing value en aquellas observaciones en las que la variable var1 =. Otra forma de generar la variable d1 es en dos pasos, del siguiente modo:
gen d1=1 if var1 >25 & var1 !=. replace d1=0 if var1 <
La primera de estas instrucciones asigna 1 a las observaciones que cumplen la condición señalada en if y missing values al resto. La segunda reemplaza por 0 los valores que cumplen la condición señalada en if , sin alterar el resto.
gen byte d2=0 if var1 <=
replace d2=1 if var1 >15 & var1 <= replace d2=2 if var1 >30 & var1 !=.
tab categ, gen ( indi )
El resultado será una tabla de frecuencias de la variable categ , y la creación de tres nuevas variables: indi1 (que vale 1 cuando categ =5 y 0 en el resto de los casos), indi (que vale 1 cuando categ =10 y 0 en el resto de los casos) e indi3 (que vale 1 cuando categ =20 y 0 en el resto de los casos).
Es necesario que los datos estén ordenados adecuadamente. Supongamos que tenemos un fichero de datos de series temporales que contiene dos variables: time , que recoge el período de tiempo ,y serie , que recoge los valores de una serie temporal, por ejemplo, el IPC. Supongamos que queremos generar una variable, por ejemplo serie_1 , que recoja los valores de la variable serie desfasados un período. Las instrucciones serán:
sort time gen _serie_1=serie[n-1]
En general, si queremos generar retardos de orden k, escribiremos
gen _serie_k=serie[n-k]
y si queremos generar las primeras diferencias de la variable serie (la llamamos, por ejemplo, d1serie ),la instrucción será
gen _d1serie=serie-serie[n-1]
Para generar diferencias de orden k,
gen _dkserie=serie-serie[n-k]
Los datos que venimos manejando no forman series temporales sino un panel de datos. En este caso, no tiene sentido crear los retardos y las diferencias como en el ejemplo anterior. Lo más razonable será crear retardos y diferencias en las series temporales que tenemos para cada individuo. Por ejemplo, para crear la variable var1 retardada un período escribiremos
Los gráficos se generan en Stata con el comando graph. Si sólo se hace referencia a una variable y no se especifica nada acerca del tipo de gráfico, Stata genera un histograma de la variable considerada. Si queremos otro tipo de gráfico, hay que especificarlo como una de las opciones del comando graph. Si especificamos dos variables, Stata genera un diagrama en el que aparece la primera variable en el eje de ordenadas y la segunda en el eje de abscisas. Si especificamos más de dos variables, la última será representada en el eje de abscisas y el resto en el eje de ordenadas. Con el comando graph también es posible utilizar by , in e if.
Ejemplos: graph var graph var1 in 2/10 , box graph var1 var2 if dum== by iden : graph var
Para grabar un gráfico cuando lo creamos, debemos incluir la opción saving , y un nombre para el fichero que contendrá el gráfico. La extensión que Stata asigna a este fichero es .gph. Ejemplo:
graph var1 var2 , saving ( grafi1, replace )
genera un gráfico de la variable var1 sobre la variable var2 y lo guarda en un fichero llamado grafi1.gph. La opción replace reemplaza este fichero en caso de que ya exista. Si queremos recuperar por pantalla un gráfico ya creado, lo haremos llamando al fichero en el que lo hemos guardado. Por ejemplo:
graph using grafi
Hay muchas opciones que pueden especificarse en un gráfico de Stata referentes al tipo de gráfico, la forma de conectar y señalar los puntos en un gráfico, los títulos del gráfico y los ejes, etc.
La fusión de ficheros de datos en Stata se hace con los comandos append y merge. Supongamos que además de nuestro fichero datos.dta tenemos un fichero datos2.dta , que contiene información sobre otras variables referentes a la misma muestra de individuos del fichero datos.dta. Las variables que aparecen en el fichero datos2.dta serán iden y year (que identifican las observaciones como en el fichero datos.dta ) y otras variables, por ejemplo, x1 y x2. Si queremos construir un fichero llamado total.dta que contenga toda la información de los anteriores, los comandos serán:
use datos.dta
merge iden year using datos2.dta save total.dta
Los ficheros que se fusionan deben estar ordenados respecto a la lista de variables que se utilizan para identificar las observaciones, en este caso, iden y year. Con el comando merge , además de añadir al fichero datos.dta las variables de datos2.dta , Stata crea una variable llamada _merge , que toma el valor 1 para observaciones que están en el primer fichero pero no en el segundo, 2 para las observaciones que están en el segundo fichero pero no en el primero y 3 para las que están en los dos ficheros. Tabularemos esta variable, y nos quedaremos sólo con las observaciones para las que _merge =3. Es decir:
tab _merge keep if _merge== save total.dta , replace
Si en lugar de unir ficheros que contienen distintas variables para las mismas observaciones queremos unir dos ficheros que contienen las mismas variables, pero distintas observaciones, el comando a utilizar es append.
Hay dos modos de trabajar en Stata:
Un fichero .do es un fichero de texto ASCII que contiene un conjunto de comandos e instrucciones de Stata que serán ejecutados con el comando do seguido del nombre del fichero. Podemos crear un fichero .do con el editor de Stata o con cualquier editor de texto. Supongamos que hemos creado un fichero llamado fich.do. Para ejecutarlo, escribimos en la línea de comandos de Stata la siguiente instrucción:
do fich
Veamos un ejemplo. Supongamos que fich.do contiene las siguientes instrucciones:
use datos.dta describe list var1 var2 in 1/ gen var1 2=var1 *var save datos.dta , replace
Cuando tecleamos la instrucción do fich , obtendremos por pantalla el resultado de los comandos e instrucciones que aparecen en el fichero fich.do.
abierto. Para evitar este problema, la instrucción capture log close indica que aún en el caso de no poder ejecutar un fichero .do hasta el final, si hemos abierto un fichero .log , Stata debe “capturar” la instrucción log close y cerrar el fichero .log. Para ejecutar el fichero, tecleamos do fich2 en la línea de comandos. Para ver los resultados, abrimos el fichero salidas.log con cualquier editor o procesador de texto o directamente en Stata.
Todas las instrucciones de estimación de Stata tienen la misma sintaxis y comparten la mayoría de las opciones.
El comando es regress seguido de la variable dependiente y la lista de variables independientes, separadas por un espacio. Ejemplo:
regress var1 var2 var
El comando regress permite hacer estimación para un cierto rango de observaciones (con in e if ), así como estimación por grupos de observaciones (con by ). En este caso, los datos deben estar ordenados con respecto a la variable que define los grupos. Ejemplos:
regress var1 var2 var3 if categ==
sort iden by iden : regress var1 var2 var
Para obtener la matriz de varianzas-covarianzas de los estimadores, el comando es vce. Añadiendo a este comando la opción corr , es decir, mediante la instrucción
vce, corr
obtenemos la matriz de correlación de los estimadores. Para hacer los resultados de la estimación robustos a heterocedasticidad se utiliza la opción robust. Ejemplo:
regress var1 var2 var3 , robust
También es posible hacer una estimación ponderada, dando mayor o menor peso a las observaciones según su importancia en una variable de referencia. Supongamos que la variable de referencia es var4. Entonces haremos la estimación ponderada mediante la instrucción:
regress var1 var2 var3 [ weight = var4 ]
Supongamos que queremos regresar var1 sobre var2 y var3 , y disponemos de dos variables instrumentales llamadas ins1 e ins2. La estimación VI se hará incluyendo entre paréntesis la lista de instrumentos después de los regresores:
regress var1 var2 var3 (ins1 ins2)
Para simplificar las órdenes y si se van a hacer regresiones sucesivas con las mismas variables explicativas, pueden crearse nombres de listas de variables. Supongamos que tenemos los regresores var2 , var3 , var4 , var5 y var6 y queremos hacer regresiones sobre el grupo var2 , var3 , var4. Entonces:
global grupo “ var2 var3 var4 ” regress var1 $grupo
Si en lista de regresores están incluidos var2 , var3 , var4 , var5 y var6 , podemos simplificar la orden mediante:
regress var1 var2 - var
El número de variables que pueden incluirse en una estimación son, por defecto, 40. Si queremos ampliar el número de variables, el comando es set matsize. Ejemplo:
set matsize 150
aumenta hasta 150 el número posible de variables a incluir en la estimación. El número máximo de variables permitido es 800.
Existen varios comandos que permiten estimar modelos de eleción binaria, dependiendo del supuesto que se realice sobre la función de distribución que genera la probabilidad de escoger uno u otro suceso. Bajo el supuesto de normalidad, tendremos el modelo probit, y el comando utilizado lleva este mismo nombre, con sintaxis análoga a la de la regresión lineal. Sea y la variable dependiente (binaria) y var1 , var2 y dum los regresores. Entonces la instrucción para la estimación es:
probit y var1 var2 dum
Si se quieren medir directamente los efectos sobre la probabilidad del suceso de referencia (aquel para el que y=1 ) de cambios infinitesimales en cada una de las variables explicativas (o de un cambio discreto en variables explicativas discretas), puede aplicarse directamente el comando dprobit , con idéntica sintaxis:
dprobit y var1 var2 dum