En estadísticas robustas , el criterio de Peirce es una regla para eliminar valores atípicos de los conjuntos de datos, que fue ideada por Benjamin Peirce .
Valores atípicos eliminados por el criterio de Peirce
El problema de los valores atípicos
En conjuntos de datos que contienen mediciones con números reales, los valores atípicos sospechosos son los valores medidos que parecen estar fuera del grupo de la mayoría de los otros valores de datos. Los valores atípicos cambiarían enormemente la estimación de la ubicación si se utilizara el promedio aritmético como una estadística resumida de la ubicación. El problema es que la media aritmética es muy sensible a la inclusión de valores atípicos; en terminología estadística, la media aritmética no es robusta .
En presencia de valores atípicos, el estadístico tiene dos opciones. Primero, el estadístico puede eliminar los valores atípicos sospechosos del conjunto de datos y luego usar la media aritmética para estimar el parámetro de ubicación. En segundo lugar, el estadístico puede utilizar una estadística sólida, como la estadística mediana .
El criterio de Peirce es un procedimiento estadístico para eliminar valores atípicos.
Usos del criterio de Peirce
El estadístico e historiador de la estadística Stephen M. Stigler escribió lo siguiente sobre Benjamin Peirce : [1]
"En 1852 publicó la primera prueba de significancia diseñada para decirle a un investigador si un valor atípico debería ser rechazado (Peirce 1852, 1878). La prueba, basada en un tipo de argumento de razón de verosimilitud , tenía la distinción de producir un debate internacional sobre la sabiduría de tales acciones ( Anscombe , 1960, Rider, 1933, Stigler , 1973a) ".
El criterio de Peirce se deriva de un análisis estadístico de la distribución gaussiana . A diferencia de otros criterios para eliminar valores atípicos, el método de Peirce se puede aplicar para identificar dos o más valores atípicos.
"Se propone determinar en una serie de observaciones el límite del error, más allá del cual todas las observaciones que impliquen un error tan grande pueden ser rechazadas, siempre que haya tantas como tales observaciones. El principio sobre el que se propone resolver este problema es que las observaciones propuestas deben ser rechazadas cuando la probabilidad del sistema de errores obtenido al retenerlas es menor que la del sistema de errores obtenido por su rechazo multiplicado por la probabilidad de haciendo tantas, y nada más, observaciones anormales ". [2]
Hawkins [3] proporciona una fórmula para el criterio.
El criterio de Peirce se utilizó durante décadas en el United States Coast Survey . [4]
"De 1852 a 1867 se desempeñó como director de las determinaciones de longitud del US Coast Survey y de 1867 a 1874 como superintendente del Survey. Durante estos años, su prueba fue empleada constantemente por todos los empleados de este, los más activos y matemáticamente organización estadística inclinada de la época ". [1]
El criterio de Peirce se discutió en el libro de William Chauvenet . [2]
Aplicaciones
Una aplicación del criterio de Peirce es eliminar los puntos de datos deficientes de los pares de observaciones para realizar una regresión entre las dos observaciones (por ejemplo, una regresión lineal). El criterio de Peirce no depende de los datos de observación (solo características de los datos de observación), por lo que es un proceso altamente repetible que se puede calcular independientemente de otros procesos. Esta característica hace que el criterio de Peirce para identificar valores atípicos sea ideal en aplicaciones informáticas porque se puede escribir como una función de llamada.
Intentos anteriores
En 1855, BA Gould intentó facilitar la aplicación del criterio de Peirce mediante la creación de tablas de valores que representan valores a partir de las ecuaciones de Peirce. [5] Todavía existe una desconexión entre el algoritmo de Gould y la aplicación práctica del criterio de Peirce.
En 2003, SM Ross (Universidad de New Haven) volvió a presentar el algoritmo de Gould (ahora llamado "método de Peirce") con un nuevo conjunto de datos de ejemplo y un trabajo completo del algoritmo. Esta metodología aún se basa en el uso de tablas de consulta, que se han actualizado en este trabajo (tabla de criterios de Peirce). [6]
En 2008, el geólogo danés K. Thomsen intentó escribir un pseudocódigo. [7] Si bien este código proporcionó algún marco para el algoritmo de Gould, los usuarios no pudieron calcular los valores informados por Peirce o Gould.
En 2012, C. Dardis lanzó el paquete R "Peirce" con varias metodologías (criterio de Peirce y método Chauvenet) con comparaciones de eliminaciones de valores atípicos. Dardis y el colaborador Simon Muller implementaron con éxito el pseudocódigo de Thomsen en una función llamada "findx". El código se presenta en la sección de implementación de R a continuación. Las referencias para el paquete R están disponibles en línea [8] , así como una revisión no publicada de los resultados del paquete R. [9]
En 2013, un reexamen del algoritmo de Gould y la utilización de módulos avanzados de programación de Python (es decir, numpy y scipy) hicieron posible calcular los valores de umbral de error al cuadrado para identificar valores atípicos.
Implementación de Python
Para utilizar el criterio de Peirce, primero se deben comprender los valores de entrada y retorno. El análisis de regresión (o el ajuste de curvas a los datos) da como resultado errores residuales (o la diferencia entre la curva ajustada y los puntos de observación). Por lo tanto, cada punto de observación tiene un error residual asociado con una curva ajustada. Al tomar el cuadrado (es decir, el error residual elevado a la potencia de dos), los errores residuales se expresan como valores positivos. Si el error al cuadrado es demasiado grande (es decir, debido a una mala observación), puede causar problemas con los parámetros de regresión (p. Ej., Pendiente e intersección para una curva lineal) recuperados del ajuste de la curva.
Fue idea de Peirce identificar estadísticamente lo que constituía un error como "demasiado grande" y, por lo tanto, identificarse como un "valor atípico" que podría eliminarse de las observaciones para mejorar el ajuste entre las observaciones y una curva. K. Thomsen identificó que se necesitaban tres parámetros para realizar el cálculo: el número de pares de observación (N), el número de valores atípicos que se eliminarán (n) y el número de parámetros de regresión (por ejemplo, coeficientes) utilizados en la curva. ajuste para obtener los residuos (m). El resultado final de este proceso es calcular un valor de umbral (de error al cuadrado) mediante el cual las observaciones con un error al cuadrado menor que este umbral deben mantenerse y las observaciones con un error al cuadrado mayor que este valor deben eliminarse (es decir, como un valor atípico). .
Debido a que el criterio de Peirce no toma observaciones, parámetros de ajuste o errores residuales como entrada, la salida debe volver a asociarse con los datos. Tomar el promedio de todos los errores cuadrados (es decir, el error cuadrático medio) y multiplicarlo por el error cuadrático umbral (es decir, la salida de esta función) dará como resultado el valor umbral específico de los datos utilizado para identificar valores atípicos.
El siguiente código de Python devuelve valores x-cuadrados para una N (primera columna) yn (fila superior) dadas en la Tabla 1 (m = 1) y la Tabla 2 (m = 2) de Gould 1855. [5] Debido al Newton -método de iteración, las tablas de consulta, como N versus log Q (Tabla III en Gould, 1855) yx versus log R (Tabla III en Peirce, 1852 y Tabla IV en Gould, 1855) ya no son necesarias.
Código Python
#! / usr / bin / env python3 import numpy import scipy.specialdef peirce_dev ( N : int , n : int , m : int ) -> float : "" "Criterio de Peirce Devuelve la desviación del error de umbral al cuadrado para la identificación de valores atípicos utilizando el criterio de Peirce basado en la metodología de Gould. Argumentos: - int, número total de observaciones (N) - int, número de valores atípicos a eliminar (n) - int, número de incógnitas del modelo (m) Devuelve: flotante, umbral de error al cuadrado (x2) "" " # Asignar flotantes a las variables de entrada: N = flotante ( N ) n = flotar ( n ) m = flotar ( m ) # Verifique el número de observaciones: si N > 1 : # Calcule Q (raíz enésima de la ecuación B de Gould): Q = ( n ** ( n / N ) * ( N - n ) ** (( N - n ) / N )) / N # # Inicializar valores de R (como flotantes) r_new = 1.0 r_old = 0.0 # <- Necesario solicitar while loop # # Iniciar iteración para converger en R: while abs ( r_new - r_old ) > ( N * 2.0e- 16 ): # Calcular Lamda # (1 / (Nn) la raíz de la ecuación de Gould A '): ldiv = r_new ** n si ldiv == 0 : ldiv = 1.0e-6 Lamda = (( Q ** N ) / ( ldiv )) ** ( 1.0 / ( N - n )) # Calcular x al cuadrado (ecuación C de Gould): x2 = 1.0 + ( N - m - n ) / n * ( 1.0 - Lamda ** 2.0 ) # Si x2 se vuelve negativo, devuelve 0: si x2 < 0 : x2 = 0.0 r_old = r_new else : # Use x-squared para actualizar R (ecuación D de Gould): r_old = r_new r_new = numpy . exp (( x2 - 1 ) / 2.0 ) * scipy . especial . erfc ( numpy . sqrt ( x2 ) / numpy . sqrt ( 2.0 ) ) else : x2 = 0.0 return x2
Código Java
import org.apache.commons.math3.special.Erf ;public class PierceCriterion { / ** * Criterio de Peirce *
* Devuelve la desviación del error de umbral al cuadrado para la identificación de valores atípicos * utilizando el criterio de Peirce basado en la metodología de Gould. *
* Argumentos: * - int, número total de observaciones (N) * - int, número de valores atípicos que se eliminarán (n) * - int, número de incógnitas del modelo (m) * Devuelve: * flotante, error al cuadrado umbral (x2) ** / public static final double peirce_dev ( double N , double n , double m ) { // Verificar el número de observaciones: double x2 = 0.0 ; if ( N > 1 ) { // Calcular Q (raíz enésima de la ecuación B de Gould): doble Q = ( Math . pow ( n , ( n / N )) * Math . pow (( N - n ), ( ( N - n ) / N ))) / N ; // Inicializar valores R (como flotantes) double r_new = 1.0 ; doble r_old = 0.0 ; // <-Necesario para solicitar el ciclo while // Start iteración para converger en R: mientras ( Math . Abs ( r_new - r_old ) > ( N * 2.0e-16 )) { // Calcular Lamda // (1 / (N - n) -ésimo de la raíz de s Gould' ecuación A '): doble ldiv = Math . pow ( r_nuevo , n ); if ( ldiv == 0 ) { ldiv = 1.0e-6 ; } doble Lamda = Matemáticas . pow (( Math . pow ( Q , N ) / ( ldiv )), ( 1.0 / ( N - n ))); // Calcular x al cuadrado (ecuación C de Gould): x2 = 1.0 + ( N - m - n ) / n * ( 1.0 - Math . Pow ( Lamda , 2.0 )); // Si x2 se vuelve negativo, devuelve 0: if ( x2 < 0 ) { x2 = 0.0 ; r_old = r_new ; } else { // Use x -squared para actualizar R (ecuación D de Gould): r_old = r_new ; r_new = Matemáticas . exp (( x2 - 1 ) / 2.0 ) * Erf . erfc ( Math . sqrt ( x2 ) / Math . sqrt ( 2.0 )); } } } else { x2 = 0.0 ; } return x2 ; } }
Implementación de R
El código de Thomsen se ha escrito con éxito en la siguiente llamada de función, "findx" por C. Dardis y S. Muller en 2012, que devuelve la desviación de error máxima, . Para complementar el código Python presentado en la sección anterior, aquí también se presenta el equivalente R de "peirce_dev", que devuelve la desviación de error máxima al cuadrado,. Estas dos funciones devuelven valores equivalentes ya sea elevando al cuadrado el valor devuelto por la función "findx" o tomando la raíz cuadrada del valor devuelto por la función "peirce_dev". Las diferencias ocurren con el manejo de errores. Por ejemplo, la función "findx" devuelve NaN para datos no válidos mientras que "peirce_dev" devuelve 0 (lo que permite que los cálculos continúen sin manejo adicional de valores NA). Además, la función "findx" no admite ningún manejo de errores cuando el número de valores atípicos potenciales aumenta hacia el número de observaciones (arroja un error de valor perdido y una advertencia de NaN).
Al igual que con la versión de Python, el error al cuadrado (es decir, ) devuelto por la función "peirce_dev" debe multiplicarse por el error cuadrático medio del ajuste del modelo para obtener el valor delta cuadrático (es decir, Δ2). Utilice Δ2 para comparar los valores de error al cuadrado del ajuste del modelo. Cualquier par de observación con un error al cuadrado mayor que Δ2 se considera valores atípicos y se puede eliminar del modelo. Se debe escribir un iterador para probar valores crecientes de n hasta que el número de valores atípicos identificados (comparando Δ2 con errores cuadrados de ajuste del modelo) sea menor que los supuestos (es decir, n de Peirce).
Código R
findx <- function ( N , k , m ) { # método de K. Thomsen (2008) # escrito por C. Dardis y S. Muller (2012) # Disponible en línea: https: //r-forge.r-project. org / R /? group_id = 1473 # # Definiciones de variables: # N :: número de observaciones # k :: número de valores atípicos potenciales a eliminar # m :: número de cantidades desconocidas # # Requiere la función de error complementario, erfc: erfc <- function ( x ) 2 * pnorm ( x * sqrt ( 2 ), lower.tail = FALSE ) # x <- 1 if (( N - m - k ) <= 0 ) { return ( NaN ) print ( NaN ) } else { x <- min ( x , sqrt (( N - m ) / k ) - 1e-10 ) # # Logaritmo de la ecuación de Gould B: LnQN <- k * log ( k ) + ( N - k ) * log ( N - k ) - N * log ( N ) # # Ecuación de Gould D: R1 <- exp (( x ^ 2 - 1 ) / 2 ) * erfc ( x / sqrt ( 2 )) # # Ecuación de Gould A 'resuelta para la sustitución de R con Lambda: R2 <- exp ( ( LnQN - 0.5 * ( N - k ) * log (( N - m - k * x ^ 2 ) / ( N - m - k )) ) / k ) # # Equivale las dos ecuaciones R: R1d <- x * R1 - sqrt ( 2 / pi / exp ( 1 )) R2d <- x * ( N - k ) / ( N - m - k * x ^ 2 ) * R2 # # Actualización de x: oldx <- x x <- oldx - ( R1 - R2 ) / ( R1d - R2d ) # # Loop hasta la convergencia: mientras ( abs ( x - oldx ) > = N * 2e-16 ) { R1 <- exp (( x ^ 2 - 1 ) / 2 ) * erfc ( x / sqrt ( 2 )) R2 <- exp ( ( LnQN - 0.5 * ( N - k ) * log (( N - m - k * x ^ 2 ) / ( N - m - k )) ) / k ) R1d <- x * R1 - sqrt ( 2 / pi / exp ( 1 )) R2d <- x * ( N - k ) / ( N - m - k * x ^ 2 ) * R2 oldx <- x x <- oldx - ( R1 - R2 ) / ( R1d - R2d ) } } retorno ( x ) }
peirce_dev <- function ( N , n , m ) { # N :: número total de observaciones # n :: número de valores atípicos que se eliminarán # m :: número de incógnitas del modelo (por ejemplo, parámetros de regresión) # # Compruebe el número de observaciones : if ( N > 1 ) { # Calcular Q (raíz N de la ecuación B de Gould): Q = ( n ^ ( n / N ) * ( N - n ) ^ (( N - n ) / N )) / N # # Inicializar valores de R: Rnew = 1.0 Rold = 0.0 # <- Necesario para solicitar while loop # while ( abs ( Rnew - Rold ) > ( N * 2.0e-16 )) { # Calcular Lamda (1 / (Nn) th raíz de la ecuación de Gould A '): ldiv = Rnew ^ n if ( ldiv == 0 ) { ldiv = 1.0e-6 } Lamda = (( Q ^ N ) / ( ldiv )) ^ ( 1.0 / ( N - n )) # # Calcule x al cuadrado (ecuación C de Gould): x2 = 1.0 + ( N - m - n ) / n * ( 1.0 - Lamda ^ 2.0 ) # # Si x2 se vuelve negativo, establezca igual a cero: si ( x2 < 0 ) { x2 = 0 Rold = Rnew } else { # # Use x-squared para actualizar R (ecuación D de Gould): # NOTA: la función de error (erfc) se reemplaza con pnorm (Rbasic): # fuente: # http: // stat.ethz.ch/R-manual/R-patched/library/stats/html/Norma l.html Rold = Rnew Rnew = exp (( x2 -1 ) / 2.0 ) * ( 2 * pnorm ( sqrt ( x2 ) / sqrt ( 2 ) * sqrt ( 2 ), lower = FALSE )) } } } else { x2 = 0 } x2 }
Notas
- ^ a b S.M. Stigler, "Estadística matemática en los primeros estados", The Annals of Statistics, vol. 6, no. 2, pág. 246, 1978. Disponible en línea: https://www.jstor.org/stable/2958876
- ↑ a b Citado en la nota editorial de la página 516 de Collected Writings of Peirce (edición de 1982). La cita cita A Manual of Astronomy (2: 558) de Chauvenet.
- ^ DM Hawkins (1980). "Breve historia temprana del rechazo de valores atípicos", Identificación de valores atípicos (monografías sobre probabilidad aplicada y estadística). Chapman y Hall, página 10.
- ↑ Peirce (1878)
- ↑ a b Gould, BA, "Sobre el criterio de Peirce para el rechazo de observaciones dudosas, con tablas para facilitar su aplicación", Astronomical Journal , número 83, vol. 4, no. 11, págs. 81–87, 1855. DOI: 10.1086 / 100480.
- ^ Ross, SM, "Criterio de Peirce para la eliminación de datos experimentales sospechosos", Journal of Engineering Technology , vol. 2, no. 2, págs. 1-12, 2003.
- ^ Thomsen, K., "Tema: tablas de cálculo para su uso con el criterio de Peirce - en 1855 y 2008", The Math Forum @ Drexel, publicado el 5 de octubre de 2008. Consultado el 15 de julio de 2013.
- ^ C. Dardis, "Package: Peirce," R-forge, acceso en línea: https://r-forge.r-project.org/scm/viewvc.php/*checkout*/pkg/Peirce/Peirce-manual. pdf? root = peirce
- ^ C. Dardis, "Criterio de Peirce para el rechazo de valores atípicos no normales; definición del rango de aplicabilidad", Journal of Statistical Software (no publicado). Disponible en línea: https://r-forge.r-project.org/scm/viewvc.php/*checkout*/pkg/Peirce/PeirceSub.pdf?root=peirce
Referencias
- Peirce, Benjamin , "Criterio para el rechazo de observaciones dudosas" , Astronomical Journal II 45 (1852) y Fe de erratas del artículo original .
- Peirce, Benjamin (mayo de 1877 - mayo de 1878). "A criterio de Peirce". Actas de la Academia Estadounidense de Artes y Ciencias . 13 : 348–351. doi : 10.2307 / 25138498 . JSTOR 25138498 .
- Peirce, Charles Sanders (1870) [publicado en 1873]. "Apéndice No. 21. Sobre la teoría de los errores de observación". Informe del Superintendente de la encuesta de la costa de los Estados Unidos que muestra el progreso de la encuesta durante el año 1870 : 200–224.. NOAA PDF Eprint (va al Informe pág. 200, PDF a la pág. 215). Enlaces a los informes anuales de la encuesta geodésica y costera de EE . UU . Correspondientes a los años 1837–1965 .
- Peirce, Charles Sanders (1982). "Sobre la teoría de los errores de observación". En Kloesel, Christian JW; et al. (eds.). Escritos de Charles S. Peirce: una edición cronológica . Volumen 3, 1872-1878. Bloomington, Indiana: Indiana University Press. págs. 140-160 . ISBN 0-253-37201-1.
|volume=
tiene texto extra ( ayuda ) - Ross, Stephen, "Criterio de Peirce para la eliminación de datos experimentales sospechosos", J. Engr. Tecnología , vol. 20 n. ° 2, otoño de 2003. [1] [ enlace muerto permanente ]
- Stigler, Stephen M. (marzo de 1978). "Estadística matemática en los primeros estados" . Annals of Statistics . 6 (2): 239–265. doi : 10.1214 / aos / 1176344123 . JSTOR 2958876 . Señor 0483118 .
- Stigler, Stephen M. (1980). "Estadística matemática en los primeros estados". En Stephen M. Stigler (ed.). Contribuciones estadounidenses a la estadística matemática en el siglo XIX, volúmenes I y II . Yo . Nueva York: Arno Press.
- Stigler, Stephen M. (1989). "Estadística matemática en los primeros estados". En Peter Duren (ed.). Un siglo de matemáticas en América . III . Providence, RI: Sociedad Matemática Estadounidense. págs. 537–564.
- Hawkins, DM (1980). Identificación de valores atípicos . Chapman y Hall , Londres. ISBN 0-412-21900-X
- Chauvenet, W. (1876) Un manual de astronomía esférica y práctica . JBLippincott, Filadelfia. (reimpresiones de varias ediciones: Dover, 1960; Peter Smith Pub, 2000, ISBN 0-8446-1845-4 ; Adamant Media Corporation (2 volúmenes), 2001, ISBN 1-4021-7283-4 , ISBN 1-4212-7259-8 ; BiblioBazaar, 2009, ISBN 1-103-92942-9 )