1. Los problemas
Los usuarios a menudo desean reemplazar los valores perdidos por valores vecinos
que no faltan, particularmente cuando las observaciones ocurren en algún orden
definido, a menudo (pero no siempre) un orden de tiempo. Normalmente, esto ocurre
cuando los valores de alguna variable deben ser idénticos dentro de los bloques de
observaciones, pero, por alguna razón, los valores no se pierden explícitamente en el
conjunto de datos solo para ciertas observaciones, la mayoría de las veces la primera.
Entonces, hay un deseo de copiar valores dentro de bloques de observaciones.
Tenga en cuenta que todos los métodos de interpolación mencionados aquí (y algunos
otros) se implementan directamente en el mipolado de comandos contribuido por la
comunidad (que se puede descargar desde el SSC).
. sort time
Si los valores faltantes ocurrieron solos, entonces podrían ser reemplazados por el
valor anterior
missing(myvar) captura tanto las faltas numéricas como las fallas de la cadena. Si
myvar es numérico, podrías escribir
porque . <.a <.b <... <.z son los valores numéricos que faltan. La mayoría de los
problemas involucran valores numéricos faltantes, por lo que, a partir de ahora, los
ejemplos serán solo para variables numéricas. Sin embargo, si myvar fuera cadena,
sería la sintaxis correcta, no el comando anterior, porque la cadena vacía "" falta una
cadena.
desea reemplazar no solo myvar [2], sino también myvar [3] con 42.
es una solución interactiva, pero, para conjuntos de datos más grandes, necesita una
forma más sistemática de proceder. Para obtener esto, es útil saber que reemplazar
siempre usa el orden de clasificación actual: el valor para la observación 2 siempre se
reemplaza antes que para la observación 3, por lo que el valor de reemplazo para 2 se
puede usar para calcular el valor de reemplazo para 3.
¿Qué sucede si desea utilizar solo el valor anterior y no desea este efecto en cascada?
Necesitas copiar la variable y reemplazar desde eso:
. tiempo de gsort
. Reemplace myvar = myvar [_n-1] si myvar> =.
gsort le permite obtener ordenación inversa; ver [D] gsort. El tiempo de orden del
comando pone los valores más altos al final, mientras que gsort −time coloca los
valores más altos primero. Es como si hubieras generado una variable que fue
multiplicada por el tiempo por -1 y ordenada en ella, y, de hecho, esto es exactamente
lo que gsort hace entre bastidores, aunque la variable es temporal y se elimina
después de que haya cumplido su propósito.
Una vez más, no se puede hacer nada con los valores faltantes al final de la serie
(colocados al principio después del gsort). Después del reemplazo, probablemente
querrá revertir la clasificación una vez más
. tiempo de clasificación
5. Complicaciones: varias variables y estructura del panel.
Dos complicaciones comunes son
Quiere hacer esto con varias variables: use foreach. ordene o gsort una vez, reemplace
todas las variables usando foreach y, si es necesario, ordene nuevamente.
Usted tiene datos del panel, por lo que el reemplazo apropiado es un valor no faltante
para cada individuo en el panel.
Supongamos que los individuos son identificados por id. Hay solo algunos detalles
adicionales para revisar, como
. gsort id-time
. silenciosamente por id: reemplaza myvar = myvar [_n-1] si myvar> =.
. tipo de tiempo de identificación
La clave de muchos problemas de administración de datos con los datos del panel se
encuentra en la siguiente clasificación por algunos cálculos en: Para obtener más
información, consulte las secciones del manual indexado en :.
6. Con tsset
Si tiene que configurar sus datos, digamos, escribiendo
. tiempo tsset
entonces
https://www.stata.com/support/faqs/data-management/replacing-missing-values/