7 votos

Inferir fechas probables basadas en otras fechas relacionadas en el conjunto de datos incompletos

Estoy dando mis primeros pasos en la ciencia de datos y aprendizaje automático. Estoy experimentando con un proyecto donde tengo ni idea siquiera de qué enfoques yo podría empezar, así que agradecería cualquier conduce:

Tengo un conjunto de datos (para la explicación de la causa) de estudiante graduaciones. El conjunto de datos completa que contiene la totalidad de la población; todos los registros deben tener una fecha de graduación.

Sin embargo, debido a un mantenimiento de registros de fallo, los mayores registros tienen la fecha de graduación falta.

Tiene las siguientes características:

  • Para graduaciones desde el 2014, tenemos una graduation_date
  • Para graduaciones antes de 2014, la fecha de graduación falta
  • Para todos los estudiantes, tenemos una fecha de nacimiento
  • Para muchos estudiantes, la graduación será proporcional a la fecha de nacimiento. Por ejemplo, puede a menudo que se gradúan de 21 años después de nacer. Sin embargo, algunos serán estudiantes maduros, por lo que se pueden graduar muchos años después de la edad de 21 años.
  • El Id de certificado son más o menos secuencial y numérico. Se puede suponer que el Id de certificado de cerca uno del otro, por tanto, representar a los estudiantes que se gradúan aproximadamente en la misma época
  • La metáfora es algo imperfecto; se presupone que los estudiantes pueden graduarse en cualquier día

Mi reto es crear un enfoque en el que se puede inferir una fecha de graduación para todos los estudiantes, basados en la fecha de nacimiento.

El enfoque que he estado pensando en algo como esto:

  1. Para todos los estudiantes, donde ambas fechas están disponibles, tome un modo (graduation_age)
  2. El grupo de los estudiantes en bandejas de (digamos) 1000, de acuerdo a la secuencia de ID de certificado
  3. Encontrar el más común, mes y año de nacimiento para los estudiantes en cada bin
  4. Agregar el modo (graduation_age) para el más común de mes/año, para un determinado bin y asignar que como el graduation_date para todos los estudiantes en la papelera

Una muestra en la pandas podría parecerse a:

graduations = [
       # Old data with missing graduation dates
       {'certificate_id': '090029, 'birth_date': '01/01/1983', 'graduation_date': NaT},
       {'certificate_id': '090048, 'birth_date': '04/01/1983', 'graduation_date': NaT},
       ...
       # This is 'normal' students graduating roughly 21 years after
       # their birth date
       {'certificate_id': '120015, 'birth_date': '01/01/1993', 'graduation_date': 01/03/2014},
       {'certificate_id': '120019, 'birth_date': '01/04/1993', 'graduation_date': 04/03/2014},
       # However there are many exceptions, mature students or those
       # graduating early
       {'certificate_id': '120150, 'birth_date': '01/01/1966', 'graduation_date': 05/03/2014},
       {'certificate_id': '120155, 'birth_date': '01/04/1996', 'graduation_date': 06/03/2014}, 
       ]

       df = pd.DataFrame(graduations)

Se agradece cualquier ayuda, incluso si usted es capaz de decirme lo que este tipo de problema se llama para que yo pueda seguir investigando, o que me deje saber que no es posible con este conjunto de datos. Actualmente estoy ni siquiera seguro de cuál es la correcta etiquetas!

1voto

Loffen Puntos 163

Se han descrito una falta de datos del problema, y concretamente uno de censurar. (Para mantener la censura directamente del fenómeno similar de truncamiento, me gusta pensar de texto en un informe censuradas. Usted sabe que hay texto, pero usted simplemente no sabe lo que dice; esta es su propia situación con la de 'fechas de graduación'. Por el contrario, si los 2 últimos capítulos del informe se cortaban, a continuación, el informe ha sido truncada. En este caso, no sólo que no se puede saber el contenido, pero ni siquiera sé si no era cualquier contenido. @whuber la pregunta anterior fue sobre clavando esta distinción en los datos.)

En este particular problema de falta de datos, usted tiene lo que suena como una muy sencilla falta de mecanismo de datos: la fecha en que falta precisamente cuando "graduación" se produjo antes de 2014. Si usted está tratando con un tiempo homogéneo problema que carecen de importantes tendencias seculares, entonces se puede considerar este hecho como una ventaja. En ese caso, usted no tiene una situación donde faltan datos, por alguna razón, que sería de carácter informativo sobre algunos terriblemente características importantes de los 'estudiantes'.

En los datos que faltan lingo, el término específico para lo que usted está tratando de hacer es culpa de la falta de fechas. El objetivo de la imputación es, por supuesto, para permitir la retención de los registros con los valores que faltan, para evitar la práctica medieval de los llamados completo-análisis de casos, que consiste en la ejecución de la maravillosa datos en otros campos de la trama de datos por un delito de asociación con la falta de valor de fecha. (He asumido que hacer , de hecho, tienen numerosas columnas de los datos que se han omitido de su ejemplo de marco de datos; es la existencia de la valiosa información que en estas columnas adicionales que justifiquen un deseo de llevar a cabo tal imputación.)

Tan lejos como una buena lectura de los datos que faltan, haciendo Wikipedia búsquedas de los diferentes términos en cursiva en mi respuesta sería un buen comienzo. La canónica de referencia en "la Inferencia y la falta de datos" es Rubin, 1976. Si usted es de un Bayesiano disposición, a continuación, la multa (aunque difícil) tratamiento en el Capítulo 8 de BDA3 puede ser de utilidad para usted. Usted puede en lugar de disfrutar de una introducción práctica a la imputación a través de la exploración de software como los RATONES. (Lo siento no me he enterado de Python opciones en este sentido, pero debo suponer que hay algunos.)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X