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.

ppca

El análisis de componentes principales probabilísticos

Descripción

ejemplo

[coeff,score,pcvar] = ppca(Y,K) Devuelve los coeficientes del componente principal para la matriz de datos basada en a (PPCA).npYanálisis probabilístico del componente principal También devuelve las puntuaciones del componente principal, que son las representaciones del espacio principal del componente, y las desviaciones del componente principal, que son los valores propios de la matriz de covarianza de, en.YYpcvar

Cada columna de contiene coeficientes para un componente principal y las columnas están en orden descendente de varianza de componentes.coeff Las filas corresponden a las observaciones y las columnas corresponden a los componentes.Puntuación Las filas de corresponden a observaciones y columnas corresponden a variables.Y

El análisis del componente principal probabilístico podría ser preferible a otros algoritmos que manejan los datos que faltan, como el algoritmo de mínimos cuadrados alternos cuando cualquier vector de datos tiene uno o más valores faltantes. Se supone que faltan los valores al azar a través del conjunto de datos. Se utiliza un algoritmo de maximización de expectativas para los datos completos y los que faltan.

ejemplo

[coeff,score,pcvar] = ppca(Y,K,Name,Value) Devuelve los coeficientes, las puntuaciones y las desviaciones del componente principal mediante opciones adicionales para el cálculo y el control de tipos de datos especiales, especificados por uno o varios argumentos de par.Name,Value

Por ejemplo, puede introducir valores iniciales para la desviación residual o modificar los criterios de terminación.v

ejemplo

[coeff,score,pcvar,mu] = ppca(___) también devuelve la media estimada de cada variable en.Y Puede utilizar cualquiera de los argumentos de entrada de las sintaxis anteriores.

ejemplo

[coeff,score,pcvar,mu,v,S] = ppca(___) también devuelve la varianza residual isotrópica y los resultados finales en la convergencia en la estructura.vS

Ejemplos

contraer todo

Cargue los datos de ejemplo.

load fisheriris

La doble matriz consta de cuatro tipos de mediciones en las flores, que, respectivamente, son la longitud y anchura de sépalos y pétalos.meas

Introducir valores faltantes aleatoriamente.

y = meas; rng('default'); % for reproducibility ix = random('unif',0,1,size(y))<0.20; y(ix) = NaN;

Ahora, aproximadamente el 20% de los datos está ausente, indicado por.NaN

Realizar análisis de componentes principales probabilísticos y solicitar los coeficientes y varianzas de componentes.

[coeff,score,pcvar,mu] = ppca(y,3); coeff
coeff = 4×3

    0.3562    0.6709   -0.5518
   -0.0765    0.7120    0.6332
    0.8592   -0.1597    0.0596
    0.3592   -0.1318    0.5395

pcvar
pcvar = 3×1

    4.0914
    0.2125
    0.0617

Realice el análisis del componente principal utilizando el algoritmo de mínimos cuadrados alternos y solicite los coeficientes y varianzas del componente.

[coeff2,score2,pcvar2,mu2] = pca(y,'algorithm','als',... 'NumComponents',3); coeff2
coeff2 = 4×3

    0.3376    0.4952    0.7406
   -0.0731    0.8609   -0.4476
    0.8657   -0.1168   -0.1233
    0.3623   -0.0086   -0.4857

pcvar2
pcvar2 = 3×1

    4.0733
    0.2652
    0.1222

Los coeficientes y las desviaciones de los dos primeros componentes principales son similares.

Otra forma de comparar los resultados es encontrar el ángulo entre los dos espacios extendidos por los vectores de coeficiente.

subspace(coeff,coeff2)
ans = 0.0884 

El ángulo entre los dos espacios es bastante pequeño. Esto indica que estos dos resultados están cerca uno del otro.

Cargue el conjunto de datos de ejemplo.

load imports-85

La matriz de datos tiene 13 variables continuas en las columnas 3 a 15: rueda-base, longitud, anchura, altura, peso en vacío, tamaño del motor, diámetro, carrera, relación de compresión, potencia, pico-rpm, ciudad-MPG y autopista-MPG.X Las variables Bore y Stroke faltan cuatro valores en las filas 56 a 59, y las variables de potencia y pico-RPM faltan dos valores en las filas 131 y 132.

Realice el análisis de componentes principales probabilísticos y visualice los tres primeros componentes principales.

[coeff,score,pcvar] = ppca(X(:,3:15),3);
Warning: Maximum number of iterations 1000 reached. 

Cambie la tolerancia de terminación para la función de coste a 0,01.

opt = statset('ppca'); opt.TolFun = 0.01;

Realizar análisis de componentes principales probabilísticos.

[coeff,score,pcvar] = ppca(X(:,3:15),3,'Options',opt);
Warning: Maximum number of iterations 1000 reached. 

ahora finaliza antes de que se alcance el número máximo de iteraciones porque cumple la tolerancia de la función de coste.ppca

Cargue los datos de ejemplo.

load hald y = ingredients;

Los datos de los ingredientes tienen 13 observaciones para 4 variables.

Introducir valores faltantes en los datos.

y(2:16:end) = NaN;

Cada 16º valor es.NaN Esto corresponde al 7,69% de los datos.

Encuentre los tres primeros componentes principales de los datos utilizando PPCA y visualice las observaciones reconstruidas.

[coeff,score,pcvar,mu,v,S] = ppca(y,3);
Warning: Maximum number of iterations 1000 reached. 
S.Recon
ans = 13×4

    6.8536   25.8700    5.8389   59.8730
    1.0433   28.9710   14.9654   51.9738
   11.5770   56.5067    8.6352   20.5076
   11.0835   31.0722    8.0920   47.0748
    7.0679   52.2556    6.0748   33.0598
   11.0486   55.0430    9.0534   22.0423
    2.8493   70.8691   16.8339    5.8656
    1.0333   31.0281   19.6907   44.0306
    2.0400   54.0354   18.0440   22.0349
   20.7822   46.8091    3.7603   25.8081
      ⋮

También puede reconstruir las observaciones utilizando los componentes principales y la media estimada.

t = score*coeff' + repmat(mu,13,1);

Cargue los datos.

load hald

Aquí, es una matriz con valores reales de variables predictoras.ingredients

Realice el análisis de componentes principales probabilísticos y los coeficientes de visualización.

[coeff,score,pcvariance,mu,v,S] = ppca(ingredients,3);
Warning: Maximum number of iterations 1000 reached. 
coeff
coeff = 4×3

   -0.0693   -0.6459    0.5673
   -0.6786   -0.0184   -0.5440
    0.0308    0.7552    0.4036
    0.7306   -0.1102   -0.4684

Visualice los resultados del algoritmo en la convergencia de la PPCA.

S
S = struct with fields:
           W: [4x3 double]
        Xexp: [13x3 double]
       Recon: [13x4 double]
           v: 0.2372
     NumIter: 1000
    RMSResid: 0.2340
      nloglk: 149.3388

Visualice la matriz.W

S.W
ans = 4×3

    0.5624    2.0279    5.4075
    4.8320  -10.3894    5.9202
   -3.7521   -3.0555   -4.1552
   -1.5144   11.7122   -7.2564

Orthogonalizing recupera los coeficientes.W

orth(S.W)
ans = 4×3

   -0.0693    0.6459    0.5673
   -0.6786    0.0184   -0.5440
    0.0308   -0.7552    0.4036
    0.7306    0.1102   -0.4684

Argumentos de entrada

contraer todo

Datos de entrada para los que se calculan los componentes principales, especificados como una-por-matriz.np Las filas de corresponden a observaciones y columnas corresponden a variables.Y

Tipos de datos: single | double

Número de componentes principales que se devuelven, especificados como un valor entero menor que el rango de datos. El rango máximo posible es min (,), donde está el número de observaciones y es el número de variables.npnp Sin embargo, si los datos están correlacionados, el rango puede ser menor que min (,).np

ordena los componentes en función de su varianza.ppca

Si es min (,), establece el equivalente a min (,) – 1, y se trunca a min (,) – 1 columnas si especifica a-by-Matrix.KnpppcaKnp'W0'pnppW0

Por ejemplo, puede solicitar sólo los tres primeros componentes, en función de la varianza del componente como se indica a continuación.

Ejemplo: coeff = ppca(Y,3)

Tipos de datos: single | double

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: Especifica que los valores iniciales de están en la matriz y utiliza las opciones definidas por.'W0',init,'Options',opt'W0'initppcaopt

Valor inicial de en el algoritmo, especificado como un par separado por comas que consta de y a-por-matriz.Wanálisis probabilístico del componente principal'W0'pk

Tipos de datos: single | double

Valor inicial de la varianza residual, especificado como el par separado por comas que consta de un valor escalar positivo.'v0'

Tipos de datos: single | double

Opciones para las iteraciones, especificadas como un par separado por comas y una estructura creada por la función. utiliza los siguientes campos en la estructura de opciones.'Options'statsetppca

'Display'Nivel de salida de pantalla. Las opciones son, y.'off''final''iter'
'MaxIter'Número máximo de pasos permitidos. El valor predeterminado es 1000. A diferencia de la configuración de optimización, alcanzar el valor se considera como convergencia.MaxIter
'TolFun'Entero positivo que indica la tolerancia de terminación para la función de coste. El valor predeterminado es 1E-6.
'TolX'Entero positivo que indica el umbral de convergencia para el cambio relativo en los elementos de.W El valor predeterminado es 1E-6.

Puede cambiar los valores de estos campos y especificar la nueva estructura en el uso del argumento de par nombre-valor.ppca'Options'

Ejemplo: opt = statset('ppca'); opt.MaxIter = 2000; coeff = ppca(Y,3,'Options',opt);

Tipos de datos: struct

Argumentos de salida

contraer todo

Coeficientes del componente principal, devueltos como a-by-Matrix.pk Cada columna contiene coeficientes para un componente principal.coeff Las columnas están en el orden descendente de la varianza del componente,.pcvar

Puntuaciones de componentes principales, devueltas como una matriz.nk Las filas corresponden a las observaciones y las columnas corresponden a los componentes.Puntuación

Las desviaciones de componentes principales, que son los valores propios de la matriz de covarianza de, devueltas como un vector de columna.Y

Media estimada de cada variable en, devuelta como un vector de fila.Y

Varianza residual isotrópica, devuelta como un valor escalar.

Resultados finales en la convergencia, devueltos como una estructura que contiene los siguientes campos.

Wen la convergencia.W
XexpExpectativa condicional de la variable latente estimada.x
ReconObservaciones reconstruidas utilizando componentes principales.k Se trata de una aproximación de cota baja de los datos de entrada, y es igual a + *.YmuPuntuacióncoeff'
vVarianza residual.
RMSResidRaíz cuadrada media de residuos.
NumIterNúmero de recuentos de iteraciones.
nloglkValor de función de logverosimilitud negativa.

Más acerca de

contraer todo

Análisis de componentes principales probabilísticos

El análisis de componentes principales probabilísticos (PPCA) es un método para estimar los ejes principales cuando cualquier vector de datos tiene uno o más valores faltantes.

PPCA se basa en un modelo de error isotrópico. Busca relacionar un vector de observación dimensional con un vector dimensional correspondiente de variable latente (o no observada), que es normal con la media cero y la covarianza I ().pykxk La relación es

yT=WxT+μ+ε,

donde está el vector de fila de la variable observada, es el vector de fila de variables latentes, y es el término de error isotrópico. es Gaussiano con media cero y covarianza de * I (), donde está la varianza residual.yxεεvkv Aquí, debe ser más pequeño que el rango para que la varianza residual sea mayor que 0 (> 0).kv El análisis del componente principal estándar, donde la varianza residual es cero, es el caso limitante de PPCA. Las variables observadas,, son condicionalmente independientes dados los valores de las variables latentes,.yx Por lo tanto, las variables latentes explican las correlaciones entre las variables de observación y el error explica la variabilidad única de un determinadoyi. La-por-matriz relaciona las variables latentes y de observación, y el vector permite que el modelo tenga una media distinto de cero.pkWμ PPCA asume que los valores faltan al azar a través del conjunto de datos. Esto significa que si falta un valor de datos o no depende de la variable latente dados los valores de datos observados.

Bajo este modelo,

y~N(μ,W*WT+v*I(k)).

No hay una solución analítica de forma cerrada para y, por lo que sus estimaciones se determinan por la maximización iterativa de la logprobabilidad correspondiente utilizando un algoritmo de expectativa-maximización (EM).Wv Este algoritmo EM maneja los valores faltantes tratándolos como variables latentes adicionales. En la convergencia, las columnas de abarca el subespacio, pero no son ortoonormal. Obtiene los coeficientes ortoonormales, para los componentes por ortogonalización de.WppcacoeffW

Referencias

[1] Tipping, M. E., and C. M. Bishop. Probabilistic Principal Component Analysis. Journal of the Royal Statistical Society. Series B (Statistical Methodology), Vol. 61, No.3, 1999, pp. 611–622.

[2] Roweis, S. “EM Algorithms for PCA and SPCA.” In Proceedings of the 1997 Conference on Advances in Neural Information Processing Systems. Vol.10 (NIPS 1997), Cambridge, MA, USA: MIT Press, 1998, pp. 626–632.

[3] Ilin, A., and T. Raiko. “Practical Approaches to Principal Component Analysis in the Presence of Missing Values.” J. Mach. Learn. Res.. Vol. 11, August, 2010, pp. 1957–2000.

Introducido en R2013a