2 votos

Marcar variables categóricas redundantes en un gran conjunto de datos

Tengo un conjunto de datos con ~150 variables categóricas y ~150k filas. De antemano se espera que algunas de las variables categóricas sean idénticas o casi idénticas. Me gustaría codificar algo en R para marcar estas variables.

Mi primer esfuerzo en este sentido ha consistido en tomar la primera variable categórica y, a continuación, realizar secuencialmente pruebas de Chi-cuadrado de esta variable con el resto de variables del conjunto de datos. Sin embargo, esto produce muchos "falsos positivos".

Por ejemplo, tengo una variable de fecha que arroja valores p inferiores a 0,01 cuando se compara con otra variable. Y . Ahora bien, es totalmente plausible que la distribución de Y varió con la fecha, por lo que quizá la prueba Chi-Sq sea inadecuada para esta tarea. En realidad, busco algún medio para comprobar si estas variables categóricas son casi totalmente equivalentes, digamos que el 95 % de las filas son equivalentes cuando se codifican.

¿Algún consejo?

0voto

Noel Puntos 26

He encontrado una solución que funciona razonablemente bien. En lugar de probar con Chi Cuadrado, para ver si dos variables son similares, tomo una muestra de los datos, la divido en subconjuntos de "entrenamiento" y "prueba", y luego ajusto una máquina de vectores soporte o un clasificador Naive Bayes, utilizando una variable como resultado y otra como regresor. A continuación, utilizo el clasificador para predecir en el conjunto de datos de "prueba" y compruebo si los valores predichos coinciden con los reales. Si la coincidencia es suficientemente alta, considero que estas dos variables son potencialmente redundantes. He puesto esta prueba en un algoritmo, usando un bucle while que toma una variable de referencia (dependiente) de la lista completa de categóricas, y un bucle for que ajusta estos modelos de prueba en las variables restantes, probando la redundancia. En cada paso del bucle while, elimino cualquier variable que haya sido fuertemente predicha para no tenerla en cuenta en el siguiente paso, y guardo las variables redundantes marcadas.

SVM funciona un poco mejor con mis datos, pero Naive Bayes sólo tarda un 10% más en ejecutarse.

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