¿Cómo visualizar la verdadera dimensionalidad de los datos?


8

Tengo un conjunto de datos nominalmente de 16 dimensiones. Tengo alrededor de 100 muestras en un caso y alrededor de 20,000 en otro. Basado en varios análisis exploratorios que realicé utilizando PCA y mapas de calor, estoy convencido de que la verdadera dimensionalidad (es decir, el número de dimensiones necesarias para capturar la mayor parte de la "señal") es de alrededor de 4. Quiero crear una diapositiva para ese efecto para una presentación. La "sabiduría convencional" sobre estos datos, que estoy tratando de refutar, es que la verdadera dimensionalidad es una o dos.

¿Qué es una visualización buena y simple para mostrar la verdadera dimensionalidad de un conjunto de datos? Preferiblemente debería ser comprensible para las personas que tienen algunos antecedentes en estadísticas pero que no son estadísticos "reales".


1
Defina "verdadero", por favor.
cardenal

@cardinal: es inevitablemente subjetivo. Quiero la cantidad de dimensiones que capturan "la mayoría" de la varianza.
dsimcha

1
esta bien. Solo quería saber con certeza a qué ibas. Hay ejemplos interesantes en las estadísticas multivariadas donde, por ejemplo, si desea encontrar el mejor número de términos para mantener en un sentido de mínimos cuadrados para PCA, debe elegir un rango más pequeño que el rango verdadero, es decir, el rango de la actual estructura subyacente a partir de la cual se generaron los datos.
Cardenal

Encontraría un caso específico en el que el uso de 2 dimensiones conduce a una mala respuesta, mientras que el uso de 4 dimensiones conduce a una buena respuesta. Esto ayudará a transmitir su punto de vista: las personas entienden ejemplos. Agregue esto a algunas de las cosas más general que se da a continuación - "eblow" en el gráfico de sedimentación, etc.
probabilityislogic

los "ejemplos" serían aquellos casos que tienen puntajes grandes en los componentes tercero y cuarto
Probableislogic

Respuestas:


6

Un enfoque estándar sería hacer PCA y luego mostrar un diagrama de pantalla, que debería poder obtener de cualquier software que elija. Un pequeño retoque y podría hacerlo más interpretable para su audiencia particular si es necesario. A veces pueden ser convincentes, pero a menudo son ambiguos y siempre hay espacio para discutir sobre cómo leerlos, por lo que una trama de pantalla puede (editar: ¡no!) Ser ideal. Vale la pena echarle un vistazo.


3
@JMS, (+1) especialmente por la nota de precaución en gráficos de pantalla. Los llamaría "estándar", pero también "una mala idea" (en general). Aquí hay una historia de advertencia y también una forma de elegir el rango de manera más segura, especialmente si MSE es su métrica. Esto también proporciona un ejemplo, si recuerdo, donde el rango verdadero es el equivocado para minimizar MSE.
cardenal

@cardinal (+1) Thx para el enlace al artículo de Owen & Perry.
chl

Aparentemente reinventé las tramas de pantalla en un punto, pero no me di cuenta de que se llamaban algo. Gracias por recordarme y hacerme saber que son "estándar". Como mi objetivo es producir una visualización agradable, simple, estándar y lo suficientemente bueno gana sobre complicado pero más óptimo.
dsimcha

2
@dsimcha, hice una búsqueda rápida en Google y aparentemente hay un paquete R que implementa el enfoque en el enlace que proporcioné. Hay un buen artículo de hace aproximadamente 20 años (tal vez 30), creo en The American Statistician , que demuestra claramente los defectos de la inferencia al usar gráficos de pantalla "estándar". Veré si puedo recordar el título y publicaré un enlace o referencia. Si bien el estándar, pero (bastante) defectuoso, es un enfoque atractivo, especialmente bajo limitaciones de tiempo, quisiera advertir gentilmente contra tal mentalidad. Salud.
cardenal

1
@JMS Hay un artículo de Zwick & Velicer (1986) que argumenta a favor del uso del análisis paralelo (remuestreo de valores propios para probar si los valores observados fueron mayores de lo esperado por casualidad) o su criterio MAP sobre gráficos de pantalla o la regla raíz-uno. En sus simulaciones, los dos primeros métodos superan ampliamente a los demás (p. Ej., 92% frente a 22% de precisión) en la identificación del verdadero número de componentes. El paquete R psychimplementa ambos con gráficos de pantalla similares (ver fa.parallel()y VSS()). El documento es "Comparación de cinco reglas para determinar el número de componentes a retener".
cerrado el

4

Una forma de visualizar esto sería la siguiente:

  1. Realizar un PCA en los datos.
  2. VV
  3. XyoVVXyo=vyo+Cyo
  4. El |El |CyoEl |El |El |El |vyoEl |El |

2

En Matlab (agachándose de todos los zapatos lanzados):

lat_d = 2;   %the latent dimension of the generating process
vis_d = 16;  %manifest dimension
n = 10000;   %number of samples
x = randn(n,lat_d) * randn(lat_d,vis_d) + 0.1 * randn(n,vis_d); %add some noise
xmu = mean(x,1);
xc = bsxfun(@minus,x,xmu);    %Matlab syntax for element recycling: ugly, weird.
[U,S,V] = svd(xc);  %this will be slow;
prev = U(:,1:2) * S(1:2,1:2);
prec = U(:,3:end) * S(3:end,3:end);
normv = sqrt(sum(prev .^2,2));
normc = sqrt(sum(prec .^2,2));
scatter(normv,normc);
axis equal;  %to illlustrate the differences in scaling, make axis 'square'

Esto genera el siguiente diagrama de dispersión:

diagrama de dispersión hecho por el código

Si cambia lat_da 4, la línea es menos plana.


@shabbychef, esto parece presuponer que (a) la estructura verdadera es una variedad lineal y (b) las direcciones de alta varianza son las importantes.
cardenal

1
@cardinal Puede ser confuso suposición y efecto. La curvatura en el múltiple se manifestará como curvatura en estos gráficos de dispersión y la magnitud de la curvatura se revelará en la magnitud de la variación vertical en los gráficos. En efecto, shabbychef está viendo los datos como residiendo aproximadamente dentro de una vecindad tubular de un espacio lineal de baja dimensión. Eso no impone restricciones de ningún tipo en la forma de los datos.
whuber

@shabbyshef +1 para la idea de descomposición, y por supuesto la mención de los zapatos :)
mpiktas

@whuber, @shabbychef, probablemente estaba un poco apresurado con mi comentario inicial, especialmente porque estaba lejos de una computadora en ese momento. Creo que al principio también leí mal la descripción de Shabby y no pude ver las tramas. Estos son una buena manera de aumentar un diagrama de pares estándar.
cardenal

1
(s,t)(cos(2πt),pecado(2πt),2s/ /5 5,t2)stiid uniform (0,1), ordenado por varianza decreciente. Las proporciones de la varianza total son 49.2%, 46.5%, 2.9%, 1.4%. Las dos filas inferiores emulan las parcelas de @ shabby. Demuestran la naturaleza casi 2D de los datos mientras revelan la pequeña no linealidad que puse en ellos. ¿Es esto en lo que estabas pensando?
whuber

0

He hecho algo similar usando PROC Varclus en SAS. La idea básica es generar una solución de 4 conglomerados, elegir la variable correlacionada más alta con cada conglomerado y luego demostrar que esta solución con 4 conglomerados explica más la variación que la solución con dos conglomerados. Para la solución de 2 clústeres, puede usar Varclus o los primeros 2 Componentes principales, pero me gusta Varclus ya que todo se explica a través de variables y no de los componentes. Hay un varclus en R, pero no estoy seguro de si hace lo mismo.

-Ralph Winters

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.