Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

El escalado multidimensional no clásico

En este ejemplo se muestra cómo visualizar datos de dessimilitud mediante formas no clásicas de escalado multidimensional (MDS).

Los datos de dessimilitud surgen cuando tenemos un conjunto de objetos, y en lugar de medir las características de cada objeto, solo podemos medir cuán similares o diferentes son cada par de objetos. Por ejemplo, en lugar de conocer la latitud y la longitud de un conjunto de ciudades, sólo podemos conocer sus distancias interurbano. Sin embargo, MDS también funciona con las disimilaridades que son más abstractas que la distancia física. Por ejemplo, es posible que hayamos pedido a los consumidores que califique cómo similares encuentran varias marcas de mantequilla de maní.

El objetivo típico de MDS es crear una configuración de puntos en una, dos o tres dimensiones, cuyas distancias entre puntos están "cercanas" a las disimilaridades originales. Las diferentes formas de MDS utilizan diferentes criterios para definir "CLOSE". Estos puntos representan el conjunto de objetos, por lo que una gráfica de los puntos se puede utilizar como una representación visual de sus disimilaridades.

Algunas aplicaciones del MDS "clásico" se describen en el ejemplo.Escalado multidimensional clásico aplicado a distancias no espaciales

El DataSet de código Morse de Rothkopf

Para demostrar los MDS, usaremos los datos recopilados en un experimento para investigar la percepción del código Morse (Rothkopf, E.Z., J. exper. Psych., 53 (2): 94-101). Los sujetos en el estudio escucharon dos señales de código Morse (secuencias sonoras de uno o más "puntos" y "guiones", representando los caracteres alfanuméricos 36) jugado en sucesión, y se les preguntó si las señales eran iguales o diferentes. Los sujetos no sabían código Morse. La dessimilitud entre dos caracteres diferentes es la frecuencia con la que se distinguen correctamente esos caracteres.

La matriz de disimilaridades de 36x36 se almacena como un vector de elemento de 630 que contiene los elementos de la subdiagonal de la matriz. Puede utilizar la función para transformar entre el formato vectorial y la forma de matriz completa.squareform Aquí están las primeras 5 Letras y sus disimilaridades, reconstruido en forma de matriz.

load morse morseChars(1:5,:) dissMatrix = squareform(dissimilarities); dissMatrix(1:5,1:5) 
 ans =    5x2 cell array      {'A'}    {'.-'  }     {'B'}    {'-...'}     {'C'}    {'-.-.'}     {'D'}    {'-..' }     {'E'}    {'.'   }   ans =       0   167   169   159   180    167     0    96    79   163    169    96     0   141   166    159    79   141     0   172    180   163   166   172     0  

En estos datos, los valores más grandes indican que los sujetos más experimentales pudieron distinguir las dos señales, por lo que las señales eran más disímiles.

Escalado métrico

El MDS métrico crea una configuración de puntos de tal forma que sus distancias entre puntos se aproximen a las disimilaridades originales. Una medida de la bondad de ajuste de esa aproximación se conoce como el "estrés", y eso es lo que usaremos inicialmente. Para calcular la configuración, proporcionamos la función con los datos de la dessimilitud, el número de dimensiones en las que queremos crear los puntos (dos) y el nombre del criterio de bondad de ajuste que estamos usando.mdscale

Y1 = mdscale(dissimilarities, 2, 'criterion','metricstress'); size(Y1) 
 ans =      36     2  

Devuelve un conjunto de puntos en, para este ejemplo, dos dimensiones.mdscale Podríamos trazarlos, pero antes de usar esta solución (es decir, la configuración) para visualizar los datos, haremos algunas parcelas para ayudar a comprobar si las distancias entre puntos de esta solución recrean las disimilaridades originales.

La trama de Shepard

La trama de Shepard es una gráfica de dispersión de las distancias entre puntos (hay n (n-1)/2 de ellas) frente a las disimilaridades originales. Esto puede ayudar a determinar la bondad de ajuste de la solución MDS. Si el ajuste es deficiente, entonces la visualización podría ser engañosa, porque grandes (pequeñas) distancias entre puntos podrían no corresponder a grandes (pequeñas) disimilaridades en los datos. En la trama de Shepard, una dispersión estrecha alrededor de una línea 1:1 indica un buen ajuste de las distancias a las disimilaridades, mientras que una gran dispersión o un patrón no lineal indica una falta de ajuste.

distances1 = pdist(Y1); plot(dissimilarities,distances1,'bo', [0 200],[0 200],'k--'); xlabel('Dissimilarities') ylabel('Distances') 

Esta gráfica indica que esta solución métrica en dos dimensiones probablemente no sea adecuada, ya que muestra un patrón no lineal y una dispersión grande. El primero implica que muchas de las mayores disimilaridades tienden a ser algo exageradas en la visualización, mientras que las disimilaridades moderadas y pequeñas tienden a ser subindicadas. Esto último implica que la distancia en la visualización sería generalmente un pobre reflejo de la dessimilitud. En particular, una buena fracción de las grandes disimilaridades estaría mal subestimada.

Comparando criterios métricos

Podríamos intentar usar una tercera dimensión para mejorar la fidelidad de la visualización, porque con más grados de libertad, el ajuste debería mejorar. También podemos probar un criterio diferente. Otros dos criterios métricos populares se conocen como mapeo Sammon y tensión cuadrada ("sstress"). Cada uno conduce a una solución diferente, y una u otra puede ser más útil en la visualización de las disimilaridades originales.

Y2 = mdscale(dissimilarities,2, 'criterion','sammon'); distances2 = pdist(Y2); Y3 = mdscale(dissimilarities,2, 'criterion','metricsstress'); distances3 = pdist(Y3); 

Una trama de Shepard muestra las diferencias en las tres soluciones hasta el momento.

plot(dissimilarities,distances1,'bo', ...      dissimilarities,distances2,'r+', ...      dissimilarities,distances3,'g^', ...      [0 200],[0 200],'k--'); xlabel('Dissimilarities') ylabel('Distances') legend({'Stress', 'Sammon Mapping', 'Squared Stress'}, 'Location','NorthWest'); 

Tenga en cuenta que en los valores de dessimilitud más grandes, la dispersión para el criterio de tensión cuadrada tiende a estar más cerca de la línea 1:1 que para los otros dos criterios. Por lo tanto, para estos datos, el estrés cuadrado es un poco mejor en la preservación de las mayores disimilaridades, aunque mal subestados algunos de ellos. En valores de dessimilitud más pequeños, la dispersión para el criterio de asignación de Sammon tiende a estar un poco más cerca de la línea 1:1 que para los otros dos criterios. Por lo tanto, Sammon mapping es un poco mejor en la preservación de pequeñas disimilaridades. El estrés está en algún lugar. Los tres criterios muestran una cierta cantidad de no linealidad, lo que indica que la escala métrica puede no ser adecuada. Sin embargo, la elección del criterio depende del objetivo de la visualización.

Escalado no métrico

La escala no métrica es una segunda forma de MDS que tiene un objetivo ligeramente menos ambicioso que el escalado métrico. En lugar de intentar crear una configuración de puntos para las que las distancias en pares se aproximen a las disimilaridades originales, el MDS no métrico solo intenta aproximar la de las disimilaridades.ranks Otra forma de decir esto es que el MDS no métrico crea una configuración de puntos cuyas distancias entre puntos aproximan una de las disimilaridades originales.monotonic transformation

El uso práctico de tal construcción es que las grandes distancias entre puntos corresponden a grandes disimilaridades, y pequeñas distancias entre puntos a pequeñas disimilaridades. Esto es a menudo suficiente para transmitir las relaciones entre los elementos o categorías que se estudian.

En primer lugar, crearemos una configuración de puntos en 2D. La escala no métrica con el criterio de tensión no métrico de Kruskal es la opción predeterminada.mdscale

[Y,stress,disparities] = mdscale(dissimilarities,2); stress 
 stress =      0.1800  

La segunda salida de es el valor del criterio que se utiliza, como una medida de lo bien que la solución recrea las disimilaridades.mdscale Los valores más pequeños indican un mejor ajuste. El esfuerzo para esta configuración, alrededor del 18%, se considera pobre para justo para el criterio de la tensión no métrica. Los rangos de valores de criterio aceptables difieren para los diferentes criterios.

La tercera salida de es un vector de lo que se conoce como disparidades.mdscale Estas son simplemente la transformación monotónica de las disimilaridades. Se utilizarán en una trama de Shepard que se escala no métrica a continuación.

Visualizando los datos de Dessimilitud

Aunque este ajuste no es tan bueno como nos gustaría, la representación 2D es más fácil de visualizar. Podemos trazar los puntos y guiones de cada señal para ayudar a ver por qué los sujetos perciben diferencias entre los personajes. La orientación y la escala de esta configuración es completamente arbitraria, por lo que no se han mostrado etiquetas ni valores de ejes.

plot(Y(:,1),Y(:,2),'.', 'Marker','none'); text(Y(:,1),Y(:,2),char(morseChars(:,2)), 'Color','b', ...     'FontSize',12,'FontWeight','bold', 'HorizontalAlignment','center'); h_gca = gca; h_gca.XTickLabel = []; h_gca.YTickLabel = []; title('Nonmetric MDS solution for Rothkopf''s Morse code data'); 

Esta reconstrucción indica que los caracteres se pueden describir en términos de dos ejes: hablando aproximadamente, la dirección noroeste/sureste discrimina la longitud de la señal, mientras que la dirección suroeste/noreste discrimina los puntos de los guiones. Los dos caracteres con las señales más cortas, ' E ' y ' t ', están algo fuera de posición en esa interpretación.

La gráfica de Shepard no métrica

En la escala no métrica, es costumbre mostrar las disparidades, así como las distancias en una trama de Shepard. Esto proporciona un control sobre qué tan bien las distancias recrean las disparidades, así como cuán no lineal es la transformación monotónica de las disimilaridades a las disparidades.

distances = pdist(Y); [dum,ord] = sortrows([disparities(:) dissimilarities(:)]); plot(dissimilarities,distances,'bo', ...      dissimilarities(ord),disparities(ord),'r.-'); xlabel('Dissimilarities') ylabel('Distances/Disparities') legend({'Distances' 'Disparities'}, 'Location','NorthWest'); 

Esta gráfica muestra cómo las distancias en la escala no métrica aproximan las disparidades (la dispersión de los círculos azules sobre la línea roja), y las disparidades reflejan las filas de las disimilaridades (la línea roja es no lineal pero creciente). La comparación de esta gráfica con la gráfica de Shepard a partir de la escala métrica muestra la diferencia en los dos métodos. El escalado no métrico intenta recrear no las disimilaridades originales, sino más bien una transformación no lineal de ellas (las disparidades).

Al hacer esto, la escala no métrica ha hecho un trade-off: las distancias no métricas recrean las disparidades mejor que las distancias métricas recrearon las disimilaridades-la dispersión en esta trama es más pequeña que en el diagrama métrico. Sin embargo, las disparidades son bastante no lineales como una función de las disimilaridades. Por lo tanto, aunque podemos estar más seguros de que con la solución no métrica, las pequeñas distancias en la visualización corresponden a pequeñas disimilaridades en los datos, es importante recordar que las distancias absolutas entre los puntos de esa visualización no deben tomarse demasiado literalmente-sólo distancias relativas.

Escala no métrica en 3D

Debido a que el estrés en la construcción 2D era algo alto, podemos probar una configuración 3D.

[Y,stress,disparities] = mdscale(dissimilarities,3); stress 
 stress =      0.1189  

Este valor de tensión es un poco más bajo, lo que indica un mejor ajuste. Podemos trazar la configuración en 3 dimensiones. Una figura de MATLAB® en vivo se puede rotar de forma interactiva; aquí nos conformaremos con mirar desde dos ángulos diferentes.

plot3(Y(:,1),Y(:,2),Y(:,3),'.', 'Marker','none'); text(Y(:,1),Y(:,2),Y(:,3),char(morseChars(:,2)), 'Color','b', ...     'FontSize',12,'FontWeight','bold', 'HorizontalAlignment','center'); set(gca,'XTickLabel',[], 'YTickLabel',[], 'ZTickLabel',[]); title('Nonmetric MDS solution for Rothkopf''s Morse code data'); view(59,18); grid on 

Desde este ángulo, podemos ver que los caracteres con señales de uno y dos símbolos están bien separados de los caracteres con señales más largas, y entre sí, porque son los más fáciles de distinguir. Si rotamos la vista a una perspectiva diferente, podemos ver que los caracteres más largos pueden, como en la configuración 2D, ser aproximadamente descritos en términos del número de símbolos y el número de puntos o guiones. (A partir de este segundo ángulo, algunos de los caracteres más cortos parecen ser intercalados con los más largos.)

view(-9,8); 

Esta configuración 3D reconstruye las distancias con mayor precisión que la configuración 2D, sin embargo, el mensaje es esencialmente el mismo: los sujetos perciben las señales principalmente en términos de cuántos símbolos contienen, y cuántos puntos frente a guiones. En la práctica, la configuración 2D podría ser perfectamente aceptable.