Modificaré el comando de mínimos cuadrados ordinarios (OLS) que se discutió en Programando un comando de estimación en Stata: Un mejor comando para MCO para permitir restricciones en la muestra, manejar valores perdidos, permitir variables factor, y para lidiar con la perfecta colinealidad de las variables.
Esta
es la octava publicación de la serie programando
un comando de estimación en Stata. Te recomiendo que empieces por el
principio.
Restricciones en la muestra
El
comando myregress4 descrito en programando un comando de estimación
en Stata: Un mejor comando para MCO tiene la sintaxis
myregress4 depvar [indepvars]
Donde indepvars pueden ser variables con operadores de series de tiempo. myregress5 permite restricciones en la muestra y valores perdidos. Tiene la sintaxis
myregress5 depvar [indepvars] [if] [in]
Un usuario puede opcionalmente especificar una expresión if o un rango in para restringir la muestra. También hice que myregress5 manejara valores perdidos en las variables especificadas por el usuario.
El
comando syntax en la línea 5 especifica que el usuario puede
opcionalmente restringir la muestra al especificar una expresión if o un
rango in. Cuando el usuario especifica una expresión if, syntax
lo pone dentro de una macro local if; de otra manera, la macro local if
estará vacía. Cuando el usuario especifica un rango in, syntax lo
pone dentro de una macro local in; de otra manera, la macro local in
estará vacía.
Podemos
usar las macros locales if e in para manejar restricciones en la
muestra especificadas por el usuario, pero estos no se encargan de los valores
perdidos en las variables especificadas por los usuarios.
El comando marksample
en la línea 6 crea una macro local llamada touse, la cual contiene el
nombre de una variable temporal que es una variable identificadora de la
muestra. Cada observación en la variable identificadora de la muestra tiene el
valor cero o uno. Es uno si la observación está incluida en la muestra.
Es cero
si la observación está excluida de la muestra. Una observación se puede excluir
de la muestra por una expresión if del usuario, por un rango in
especificado por el usuario, o porque hay un valor perdido en una de las
variables especificadas.
Las
líneas 20 a 23 usan la variable identificadora de muestra contenida en la macro
local touse para hacer que se cumplan las restricciones en los cálculos MCO.
La
línea 28 envía la variable identificadora de muestra dentro de e(sample),
la cual es uno si la observación fue incluida en la muestra de estimación y es
cero si la observación fue excluida de la muestra de estimación.
La línea 29 guarda el número de observaciones de la
muestra en e(N).
El ejemplo 1 ilustra que myregress5 ejecuta
la regresión solicitada en la muestra que respeta los valores faltantes en rep78
y a la expresión if
Ejemplo 1: myregress5 con valores
faltantes y una expresión if
Permitiendo variables factor
El ejemplo 1 incluye el número de repartaciones como una
variable continua, pero puede tratarse mejor como un factor discreto. myregress6
acepta factores. Las listas de variables factor generalmente implican listas de
variables que contienen variables perfectamente colineales, por lo que myregress6
también maneja variables perfectamente colineales.
El fv en el parentesis despues de varlist en el
comando syntax de la linea 5 modifica el varlist para aceptar
variables factor. Cualquier variable factor especificada es guardada en la
macro local varlist en una forma canonica.
La línea 15 guarda el número de columnas en la matriz formada por matrix accum en la macro local p. La línea 19 guarda el número de columnas linealmente independientes en la macro local k. Este caculo utiliza diag0cnt() para tener en cuenta las variables perfectamente colineales que se descartaron. (Cada variable descartada pone un cero en la diagonal del inverso generalizado calculado por symin() y diag0cnt() devuelve el número de ceros en la diagonal.)
Sobre la línea 29, especifico la opción builddfvinfo en ereturn post para guardar información escondida que ereturn display, contrast, margins, y pwcompare usan para etiquetar tablas y para decidir cuáles funciones de los parámetros son estimables.
La línea 31 guarda el número de variables linealmente independientes en e(rank) para comandos postestimación.
Ahora, utilizo myregress6 para incluir rep78 como una variable que puede utilizar operadores factoriales. La categoría base es descartada porque se incluye un término constante.
Ejemplo 2: myregress6 con una variable factor
Hecho y sin hacer
Gracias por leernos. Siga al pendiente de nuestras próximas entradas y siéntase libre de compartir este blog con sus colegas y amigos.
Para cualquier información referente a Stata, escríbanos a: info@multion.com
Este blog es administrado por MultiON Consulting S.A. de C.V.