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.

robustcov

La robusta covarianza multivariada y la estimación media

Descripción

ejemplo

sig = robustcov(x) Devuelve la estimación de covarianza robusta de los datos multivariados contenidos en.sigx

[sig,mu] = robustcov(x) también devuelve una estimación de la media robusta del determinante de la covarianza mínima (MCD),.mu

[sig,mu,mah] = robustcov(x) también devuelve las distancias robustas, calculadas como las distancias Mahalanobis de las observaciones utilizando las estimaciones sólidas de la media y la covarianza.mah

[sig,mu,mah,outliers] = robustcov(x) también devuelve los índices de las observaciones retenidas como valores atípicos en los datos de ejemplo.outliers

ejemplo

[sig,mu,mah,outliers,s] = robustcov(x) también devuelve una estructura que contiene información sobre la estimación.s

ejemplo

[___] = robustcov(x,Name,Value) Devuelve cualquiera de los argumentos mostrados en las sintaxis anteriores, utilizando opciones adicionales especificadas por uno o más argumentos de par.Name,Value Por ejemplo, puede especificar qué estimador robusto utilizar o el método de inicio que se utilizará para los atractores.

Ejemplos

contraer todo

Utilice una cópula gaussiana para generar puntos de datos aleatorios a partir de una distribución bivariada.

rng default rho = [1,0.05;0.05,1]; u = copularnd('Gaussian',rho,50);

Modifique 5 observaciones seleccionadas aleatoriamente para que sean valores atípicos.

noise = randperm(50,5); u(noise,1) = u(noise,1)*5;

Calcule las matrices de covarianza sólidas utilizando los tres métodos disponibles: MCD rápido, Gnanadesikan-Kettenring ortogonal (OGK), y Olive-Hawkins.

[Sfmcd, Mfmcd, dfmcd, Outfmcd] = robustcov(u); [Sogk, Mogk, dogk, Outogk] = robustcov(u,'Method','ogk'); [Soh, Moh, doh, Outoh] = robustcov(u,'Method','olivehawkins');

Calcule los valores de distancia clásicos para los datos de muestra utilizando la medida Mahalanobis.

d_classical = pdist2(u, mean(u),'mahal'); p = size(u,2); chi2quantile = sqrt(chi2inv(0.975,p));

Cree diagramas DD para cada método de cálculo de covarianza robusto.

figure subplot(2,2,1) plot(d_classical, dfmcd, 'o') line([chi2quantile, chi2quantile], [0, 30], 'color', 'r') line([0, 6], [chi2quantile, chi2quantile], 'color', 'r') hold on plot(d_classical(Outfmcd), dfmcd(Outfmcd), 'r+') xlabel('Mahalanobis Distance') ylabel('Robust Distance') title('DD Plot, FMCD method') hold off  subplot(2,2,2) plot(d_classical, dogk, 'o') line([chi2quantile, chi2quantile], [0, 30], 'color', 'r') line([0, 6], [chi2quantile, chi2quantile], 'color', 'r') hold on plot(d_classical(Outogk), dogk(Outogk), 'r+') xlabel('Mahalanobis Distance') ylabel('Robust Distance') title('DD Plot, OGK method') hold off  subplot(2,2,3) plot(d_classical, doh, 'o') line([chi2quantile, chi2quantile], [0, 30], 'color', 'r') line([0, 6], [chi2quantile, chi2quantile], 'color', 'r') hold on plot(d_classical(Outoh), doh(Outoh), 'r+') xlabel('Mahalanobis Distance') ylabel('Robust Distance') title('DD Plot, Olive-Hawkins method') hold off

En una gráfica DD, los puntos de datos tienden a agruparse en una línea recta que pasa a través del origen. Los puntos que están muy alejados de esta línea se consideran generalmente valores atípicos. En cada una de las parcelas anteriores, el símbolo rojo ' + ' indica los puntos de datos que se consideran Outliers.robustcov

En este ejemplo se muestra cómo utilizar para evaluar datos de ejemplo para distribuciones normales multivariadas o de otro contorno (EC).robustcov

Genere datos de muestra aleatorios a partir de una distribución normal multivariada. Calcule las distancias de Mahalanobis para las estimaciones de covarianza sólidas (utilizando el método Olive-Hawkins) y las estimaciones clásicas de covarianza.

rng('default') x1 = mvnrnd(zeros(1,3),eye(3),200); [~, ~, d1] = robustcov(x1,'Method','olivehawkins'); d_classical1 = pdist2(x1,mean(x1),'mahalanobis');

Genere datos de muestra aleatorios a partir de una distribución de contorno elísticamente (EC). Calcule las distancias de Mahalanobis para las estimaciones de covarianza sólidas (utilizando el método Olive-Hawkins) y las estimaciones clásicas de covarianza.

mu1 = [0 0 0]; sig1 = eye(3); mu2 = [0 0 0]; sig2 = 25*eye(3); x2 = [mvnrnd(mu1,sig1,120);mvnrnd(mu2,sig2,80)]; [~, ~, d2] = robustcov(x2, 'Method','olivehawkins'); d_classical2 = pdist2(x2, mean(x2), 'mahalanobis');

Genere datos de muestra aleatorios a partir de una distribución lognormal multivariada, que no sea ni multivariada ni contorneada de forma elíptica. Calcule las distancias de Mahalanobis para las estimaciones de covarianza sólidas (utilizando el método Olive-Hawkins) y las estimaciones clásicas de covarianza.

x3 = exp(x1); [~, ~, d3] = robustcov(x3, 'Method','olivehawkins'); d_classical3 = pdist2(x3, mean(x3), 'mahalanobis');

Cree una gráfica D-D para cada uno de los tres conjuntos de datos de ejemplo que se compararán.

figure subplot(2,2,1) plot(d_classical1,d1, 'o') line([0 4.5], [0, 4.5]) xlabel('Mahalanobis Distance') ylabel('Robust Distance') title('DD Plot, Multivariate Normal')  subplot(2,2,2) plot(d_classical2, d2, 'o') line([0 18], [0, 18]) xlabel('Mahalanobis Distance') ylabel('Robust Distance') title('DD Plot, Elliptically-Contoured')  subplot(2,2,3) plot(d_classical3, d3, 'o') line([0 18], [0, 18]) xlabel('Mahalanobis Distance') ylabel('Robust Distance') title('DD Plot, 200 Lognormal cases')

Para los datos con una distribución normal multivariada (como se muestra en la parte superior izquierda), los puntos trazados siguen una línea recta de 45 grados que se extiende desde el origen. Para los datos con una distribución contorneada de forma elíptica (como se muestra en la parte superior derecha), los puntos trazados siguen una línea recta, pero no están en un ángulo de 45 grados con respecto al origen. Para la distribución lognormal (como se muestra en la parte inferior izquierda), los puntos graficados no siguen una línea recta.

Es difícil identificar cualquier patrón en la trama de distribución lognormal porque la mayoría de los puntos se encuentran en la parte inferior izquierda de la trama. Utilice un gráfico DD ponderado para ampliar esta esquina y revelar las entidades que están oscurecido cuando existen grandes distancias sólidas.

d3_weighted = d3(d3 < sqrt(chi2inv(0.975,3))); d_classical_weighted = d_classical3(d3 < sqrt(chi2inv(0.975,3)));

Añada un cuarto subgráfico a la figura para mostrar los resultados del proceso de ponderación en los datos distribuidos de forma lognormica.

subplot(2,2,4) plot(d_classical_weighted, d3_weighted, 'o') line([0 3], [0, 3]) xlabel('Mahalanobis Distance') ylabel('Robust Distance') title('Weighted DD Plot, 200 Lognormal cases')

La escala en esta gráfica indica que representa una vista magnificada de la gráfica DD original para los datos lognormal. Esta vista muestra más claramente la falta de patrón a la trama, lo que indica que los datos no son ni multivariadas normales ni contorneados de forma elíptica.

Utilice una cópula gaussiana para generar puntos de datos aleatorios a partir de una distribución bivariada.

rng default rho = [1,0.05;0.05,1]; u = copularnd('Gaussian',rho,50);

Modifique 5 observaciones seleccionadas aleatoriamente para que sean valores atípicos.

noise = randperm(50,5); u(noise,1) = u(noise,1)*5;

Visualice los datos bivariados utilizando un gráfico de dispersión.

figure scatter(u(:,1),u(:,2))

La mayoría de los puntos de datos aparecen en el lado izquierdo de la gráfica. Sin embargo, algunos de los puntos de datos aparecen más a la derecha. Estos puntos son posibles valores atípicos que podrían afectar al cálculo de la matriz de covarianza.

Compare las matrices de covarianza clásicas y robustas.

c = cov(u)  
c = 2×2

    0.5523    0.0000
    0.0000    0.0913

rc = robustcov(u)
rc = 2×2

    0.1117    0.0364
    0.0364    0.1695

Las matrices de covarianza clásicas y robustas difieren porque los valores atípicos presentes en los datos de muestra influyen en los resultados.

Identifique y trace los puntos de datos que consideren los valores atípicos.robustcov

[sig,mu,mah,outliers] = robustcov(u); figure gscatter(u(:,1),u(:,2),outliers,'br','ox') legend({'Not outliers','Outliers'})

identifica los puntos de datos en el lado derecho de la gráfica como posibles valores atípicos y los trata en consecuencia al calcular la matriz de covarianza robusta.robustcov

Argumentos de entrada

contraer todo

Datos de ejemplo utilizados para estimar la matriz de covarianza robusta, especificada como una matriz de valores numéricos. es una-por-matriz donde cada fila es una observación y cada columna es una variable.xnp

elimina las filas con valores de predictor faltantes al calcular la matriz de covarianza robusta.robustcov

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 el estimador robusto como método orthogonalized Gnanadesikan-Kettenring y establece el número de iteraciones de ortogonalización en 1.'Method','ogk','NumOGKIterations',1

Para todos los Estimators

contraer todo

Estimador robusto, especificado como uno de los siguientes.

NombreValor
'fmcd'MétodoFAST-MCD (determinante de covarianza mínimo)
'ogk'EstimaciónOrthogonalized Gnanadesikan-Kettenring (OGK)
'olivehawkins'técnicas, una familia de métodos rápidos, consistentes y altamente resistentes a los valoresAlgoritmo de concentración

Ejemplo: 'Method','ogk'

Para ' FMCD ' y ' OliveHawkins ' Estimators Only

contraer todo

Fracción outlier, especificada como el par separado por comas que consta de y un valor numérico en el intervalo [0, 0.5].'OutlierFraction' El valor 1 – OutlierFraction Especifica la fracción de observaciones sobre la que se minimiza el determinante de covarianza.

El algoritmo elige una submuestra de tamaño h = ceiling(n + p + 1) / 2), donde está el número de observaciones y es el número de dimensiones. es el valor para el que se consigue el desglose máximo posible y controla el tamaño de los subconjuntos sobre los que se minimiza el determinante de la covarianza.npOutlierFractionh A continuación, el algoritmo elige aproximadamente igualh (1 – OutlierFraction) × n observaciones por subconjunto.

Ejemplo: 'OutlierFraction',0.25

Tipos de datos: single | double

Número de ensayos, especificado como el par separado por comas y que consta de un valor entero positivo.'NumTrials'

Si es así, entonces es el número de submuestras aleatorias de tamaño ('Method''fmcd'NumTrialsp + 1) extraídos de los datos de muestra como puntos de partida en el algoritmo. es el número de dimensiones de los datos de ejemplo.p En este caso, el valor predeterminado es 500.NumTrials

Si es, entonces es el número de prueba se ajusta, o atractores, para ser utilizado.'Method''olivehawkins'NumTrials En este caso, el valor predeterminado es 2.NumTrials Esta opción solo es útil para inicios no deterministas.

Ejemplo: 'NumTrials',300

Tipos de datos: single | double

Sólo para el método FMCD

contraer todo

Marcar para aplicar el factor de corrección de muestra pequeña, especificado como el par separado por comas que consta de y cualquiera o.'BiasCorrection'10 Un valor indica que corrige el sesgo en la estimación de covarianza para muestras pequeñas.1robustcov Un valor indica que no se aplica esta corrección.0robustcov

Ejemplo: 'BiasCorrection',0

Tipos de datos: logical

Sólo para el método OGK

contraer todo

Número de iteraciones de ortogonalización, especificadas como el par separado por comas y que consta de un valor entero positivo.'NumOGKIterations' Por lo general, este valor se establece en 1 o 2, y es poco probable que los pasos adicionales mejoren la estimación.

Ejemplo: 'NumIter',1

Tipos de datos: single | double

Función para calcular estimaciones sólidas univariadas, especificadas como el par separado por comas que consta de uno de los siguientes.'UnivariateEstimator'

NombreValor
'tauscale'Utilice la estimación de "escala Tau" de Yohai y Zamar, que es una desviación estándar truncada y una media ponderada.
'qn'Usa la estimación de escala QN de Croux y Rousseuw.

Ejemplo: 'UnivariateEstimator','qn'

Para el método OliveHawkins sólo

contraer todo

Método de reponderación en el paso de eficiencia, especificado como el par separado por comas que consta de uno de los siguientes.'ReweightingMethod'

NombreValor
'rfch'Utiliza dos pasos de reponderación. Este es un método estándar de reponderación para mejorar la eficiencia.
'rmvn'Reponderada de la normalidad multivariada. Utiliza dos pasos de reponderación que pueden ser útiles para estimar la matriz de covarianza verdadera en una variedad de configuraciones de valores atípicos cuando los datos limpios son multivariados normales.

Ejemplo: 'ReweightingMethod','rmvn'

Número de pasos de concentración, especificados como el par separado por comas y que consta de un valor entero positivo.'NumConcentrationSteps'

Ejemplo: 'NumConcentrationSteps',8

Tipos de datos: single | double

Método de inicio para cada Attractor, especificado como el par separado por comas que consta de y uno de los siguientes.'Start'

NombreValor
'classical'Utilice el estimador clásico como el comienzo. Este es el atractor DGK que, utilizado en su propio, se conoce como el estimador DGK.
'medianball'Usa la bola mediana como el comienzo. La bola mediana es.(med(x),eye(p)) Así que el 50% de los casos más lejanos en la distancia euclidiana de la mediana de la muestra se recortan para calcular el inicio del MB. Este es el atractor MB que, utilizado por sí mismo, se conoce como el estimador MB.
'elemental'El atractor se genera por concentración donde el inicio es un inicio elemental seleccionado aleatoriamente: el estimador clásico aplicado a un "conjunto elemental" seleccionado aleatoriamente de p + 1 casos. Este "elemental" atractor es computacionalmente eficiente, pero sufre de inconvenientes teóricos, ya que es inconsistente y cero desglose.

De forma predeterminada, el atractor se elige de la siguiente manera: Si uno de los atractores es, entonces cualquier atractor cuya estimación de la ubicación tiene una mayor distancia euclidiana de la mitad de los datos (en otras palabras, está fuera de la bola mediana) no se utiliza.'medianball'median(X) A continuación, se elige el atractor final según el criterio de MCD.

También puede especificar un identificador de función para una función que devuelva dos argumentos de salida utilizados para calcular la ubicación inicial y las estimaciones de dispersión..

También puede especificar una matriz de celdas que contenga cualquier combinación de las opciones dadas en los identificadores de tabla y función anteriores. El número de atractores utilizados es igual a la longitud de la matriz de celdas. Esta opción permite un mayor control sobre el algoritmo y la capacidad de especificar un número personalizado de atractores e inicios.

Ejemplo: 'StartMethod','medianball'

Argumentos de salida

contraer todo

Estimaciones sólidas de matriz de covarianza, devueltas como una matriz numérica. es el número de predictores contenidos en los datos de ejemplo.ppp

Estimaciones de media sólidas, devueltas como 1 por matriz de valores numéricos. es el número de predictores contenidos en los datos de ejemplo.pp

Distancias sólidas, devueltas como 1 por matriz de valores numéricos. quita las filas que contienen datos que faltan, por lo que el número de filas de puede ser menor que el número de filas en.nrobustcovxmahx

Índices de observaciones retenidos como valores atípicos en los datos de ejemplo, devueltos como una matriz de 1 por-array de valor lógico.xn Un valor indica que la observación no es un outlier.0 Un valor indica que la observación es un outlier.1

quita las filas que contienen datos que faltan, por lo que el número de filas de puede ser menor que el número de filas en.robustcovxoutliersx

Estructura que contiene información de estimación, devuelta como una estructura.

Algoritmos

contraer todo

Estimación mínima de covarianza determinante

(MCD) es el estimador más rápido de la ubicación y dispersión multivariada que es consistente y robusto.Minimum covariance determinant Sin embargo, una evaluación exacta del MCD es poco práctica porque es costoso de computacionalmente evaluar todos los subconjuntos posibles de los datos de ejemplo. utiliza el método FAST-MCD para implementar MCDrobustcov[3]

El método FAST-MCD selecciona las observaciones de (dondehn n/2 < hn) cuya matriz de covarianza clásica tiene el determinante más bajo posible. La media de MCD es la media de las observaciones seleccionadas.h

La covarianza de MCD es la matriz de covarianza de los puntos seleccionados, multiplicada por un factor de consistencia para obtener consistencia en la distribución normal multivariada, y por un factor de corrección para corregir el sesgo en tamaños de muestra pequeños.h

Orthogonalized Gnanadesikan-Kettenring estimación

(OGK) es una estimación definitiva positiva de la dispersión a partir de la Gnanadesikan y Kettering (GK) estimador, una matriz de dispersión robusta en parejas que puede ser no positivo definitivo.Orthogonalized Gnanadesikan-Kettenring[1] La estimación utiliza una forma de componentes principales denominada iteración de ortogonalización en la matriz de dispersión por pares, reemplazando sus valores propios, que podrían ser negativos, con varianzas sólidas. Este procedimiento se puede iterar para los resultados mejorados, y la convergencia se obtiene generalmente después de 2 o 3 iteraciones.

La estimación de Olive Hawkins

La estimación de Olive-Hawkins utiliza las técnicas de "algoritmo de concentración" propuestas por Olive y Hawkins. Esta es una familia de métodos rápidos, consistentes y altamente resistentes a los valores atípicos. La estimación es un robusto estimador de la covarianza de la raíz n consistente para distribuciones de contorneado elísticamente con cuarto momento. Esta estimación se obtiene generando primero estimaciones de ensayo, o comienza, y luego utilizando la técnica de concentración de cada ensayo para obtener atractores.

Supongo (T0j,C0j) es un comienzo, a continuación, en la siguiente iteración los estimadores de media y covarianza clásica se calculan a partir de la aproximadamente n / 2 casos (donde es el número de observaciones) con las distancias más pequeñas de Mahalanobis basadas en las estimaciones de la iteración anterior.n Esta iteración se puede continuar para un número fijo de pasos, con la estimación en el último paso, siendo el atractor.kk La estimación final se elige en función de un criterio determinado.

De forma predeterminada, se utilizan dos atractores. El primer atractor es el atractor Devlin-gnanadesikan-Kettering (DGK), donde el comienzo utilizado es el estimador clásico. El segundo atractor es el atractor mediana Ball (MB), donde el comienzo utilizado es, en otras palabras, el medio conjunto de datos más cercano a la distancia euclidiana.(median(x),eye(p))median(x) El atractor MB se utiliza si el estimador de ubicación del atractor DGK está fuera de la bola mediana, y el atractor con el determinante más pequeño se utiliza de otra manera. La estimación media final es la estimación media del Attractor elegido, y la estimación de covarianza final es la estimación de covarianza del Attractor elegido, multiplicado por un factor de escala para hacer que la estimación sea consistente en la distribución normal.

Referencias

[1] Maronna, R. and Zamar, R.H.. “Robust estimates of location and dispersion for high dimensional datasets.” Technometrics, Vol. 50, 2002.

[2] Pison, S. Van Aelst and G. Willems. “Small Sample Corrections for LTS and MCD.” Metrika, Vol. 55, 2002.

[3] Rousseuw, P.J. and Van Driessen, K. “A fast algorithm for the minimum covariance determinant estimator.” Technometrics, Vol. 41, 1999.

[4] Olive, D.J. “A resistant estimator of multivariate location and dispersion.” Computational Statistics and Data Analysis, Vol. 46, pp. 99–102, 2004.

Consulte también

Introducido en R2016a