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.

Escalado multidimensional no clásico y no métrico

Realizar escalado multidimensional no clásico mediante.mdscale

El escalado multidimensional no clásico

La función realiza escalado multidimensional no clásico.mdscale Como con, se utiliza para visualizar datos de dessimilitud para los que no existen "ubicaciones", o para visualizar datos de alta cota reduciendo su dimensionalidad.cmdscalemdscale Ambas funciones toman una matriz de disimilaridades como entrada y producen una configuración de puntos. Sin embargo, ofrece una opción de diferentes criterios para construir la configuración, y permite la falta de datos y pesos.mdscale

Por ejemplo, los datos de cereales incluyen mediciones en 10 variables que describen los cereales para el desayuno. Puede utilizar para visualizar estos datos en dos dimensiones.mdscale Primero, cargue los datos. Para mayor claridad, este código de ejemplo selecciona un subconjunto de 22 de las observaciones.

load cereal.mat X = [Calories Protein Fat Sodium Fiber ...      Carbo Sugars Shelf Potass Vitamins]; % Take a subset from a single manufacturer mfg1 = strcmp('G',cellstr(Mfg)); X = X(mfg1,:); size(X) ans =     22 10

A continuación, utilice para transformar los datos de 10 dimensiones en disimilaridades.pdist La salida de es una matriz de dessimilitud simétrica, almacenada como un vector que contiene sólo los elementos (23 * 22/2) en su triángulo superior.pdist

dissimilarities = pdist(zscore(X),'cityblock'); size(dissimilarities) ans =      1   231

Este código de ejemplo estandariza primero los datos de cereal y, a continuación, utiliza la distancia de bloque de ciudad como una dessimilitud. La elección de la transformación a las disimilaridades depende de la aplicación, y la elección aquí es sólo para la simplicidad. En algunas aplicaciones, los datos originales ya están en forma de disimilaridades.

A continuación, use para realizar la métrica MDS.mdscale A diferencia de, debe especificar el número de dimensiones deseado y el método que se usará para construir la configuración de salida.cmdscale Para este ejemplo, utilice dos dimensiones. El criterio de tensión métrica es un método común para calcular la salida; para otras opciones, consulte la página de referencia en la documentación en línea.mdscale La segunda salida es el valor de ese criterio evaluado para la configuración de salida.mdscale Mide qué tan bien las distancias entre puntos de la configuración de salida aproximan las disimilaridades de entrada originales:

[Y,stress] =...  mdscale(dissimilarities,2,'criterion','metricstress'); stress stress =     0.1856

Una gráfica de dispersión de la salida representa los datos de 10 dimensiones originales en dos cotas, y puede utilizar la función para etiquetar los puntos seleccionados:mdscalegname

plot(Y(:,1),Y(:,2),'o','LineWidth',2); gname(Name(mfg1))

Escalado multidimensional no métrico

El escalado multidimensional métrico crea una configuración de puntos cuyas distancias entre puntos se aproximan a las disimilaridades dadas. Esto es a veces un requisito demasiado estricto, y el escalado no métrico está diseñado para relajarlo un poco. En lugar de tratar de aproximar las disimilaridades en sí, la escala no métrica se aproxima a una transformación no lineal, pero monótona, de ellas. Debido a la monotonicidad, las distancias mayores o menores en una trama de la salida corresponderán a las disimilaridades más grandes o más pequeñas, respectivamente. Sin embargo, la no linealidad implica que sólo intenta preservar el orden de las disimilaridades.mdscale Por lo tanto, puede haber contracciones o expansiones de distancias a diferentes escalas.

Se utiliza para realizar MDS no métricos de la misma manera que para el escalado métrico.mdscale El criterio de tensión no métrico es un método común para calcular la salida; para más opciones, consulte la página de referencia en la documentación en línea.mdscale Al igual que con la escala métrica, la segunda salida es el valor de ese criterio evaluado para la configuración de salida.mdscale Sin embargo, para el escalado no métrico, mide el rendimiento aproximado de las disparidades entre las distancias entre puntos de la configuración de salida. Las disparidades se devuelven en la tercera salida. Son los valores transformados de las disimilaridades originales:

[Y,stress,disparities] = ...  mdscale(dissimilarities,2,'criterion','stress'); stress stress =     0.1562

Para comprobar el ajuste de la configuración de salida a las disimilaridades, y para entender las disparidades, ayuda a hacer un Trama de Shepard:

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

Esta gráfica muestra que ha encontrado una configuración de puntos en dos dimensiones cuyas distancias inter-punto se aproximan a las disparidades, que a su vez son una transformación no lineal de las disimilaridades originales.mdscale La forma cóncava de las disparidades como una función de las disimilaridades indica que el ajuste tiende a contraer pequeñas distancias en relación con las disimilaridades correspondientes. Esto puede ser perfectamente aceptable en la práctica.

utiliza un algoritmo iterativo para encontrar la configuración de salida, y los resultados a menudo pueden depender del punto de partida.mdscale De forma predeterminada, se utiliza para construir una configuración inicial, y esta opción a menudo conduce a una solución globalmente mejor.mdscalecmdscale Sin embargo, es posible parar en una configuración que sea un mínimo local del criterio.mdscale Tales casos pueden ser diagnosticados y a menudo superado por correr varias veces con diferentes puntos de partida.mdscale Puede hacerlo utilizando los argumentos de par nombre-valor.'start''replicates' El código siguiente ejecuta cinco réplicas de MDS, cada una comenzando en una configuración inicial diferente elegida aleatoriamente. El valor del criterio se imprime para cada replicación; Devuelve la configuración con el mejor ajuste.mdscale

opts = statset('Display','final'); [Y,stress] =...  mdscale(dissimilarities,2,'criterion','stress',...  'start','random','replicates',5,'Options',opts);  35 iterations, Final stress criterion = 0.156209 31 iterations, Final stress criterion = 0.156209 48 iterations, Final stress criterion = 0.171209 33 iterations, Final stress criterion = 0.175341 32 iterations, Final stress criterion = 0.185881

Tenga en cuenta que encuentra varias soluciones locales diferentes, algunas de las cuales no tienen un valor de tensión tan bajo como la solución encontrada con el punto de partida.mdscalecmdscale