Jump to content

Критерий Пирса

В робастной статистике критерий Пирса — это правило исключения выбросов из наборов данных, которое было разработано Бенджамином Пирсом .

Выбросы удаляются по критерию Пирса

[ редактировать ]

Проблема выбросов

[ редактировать ]

В наборах данных, содержащих измерения с действительными числами, предполагаемыми выбросами являются измеренные значения, которые кажутся лежащими за пределами кластера большинства других значений данных. Выбросы сильно изменили бы оценку местоположения, если бы среднее арифметическое использовалось в качестве сводной статистики местоположения. Проблема в том, что среднее арифметическое очень чувствительно к включению любых выбросов; В статистической терминологии среднее арифметическое не является устойчивым .

При наличии выбросов у статистика есть два варианта. Во-первых, статистик может удалить предполагаемые выбросы из набора данных, а затем использовать среднее арифметическое для оценки параметра местоположения. Во-вторых, статистика может использовать надежную статистику, например медианную статистику.

Критерий Пирса — это статистическая процедура исключения выбросов.

Использование критерия Пирса

[ редактировать ]

Статистик и историк статистики Стивен М. Стиглер следующее написал о Бенджамине Пирсе : [ 1 ]

«В 1852 году он опубликовал первый тест значимости, для того, чтобы сообщить исследователю, следует ли отклонить выброс (Peirce 1852, 1878) . предназначенный таких действий ( Анскомб , 1960, Райдер, 1933, Стиглер , 1973а)».

Критерий Пирса получен на основе статистического анализа распределения Гаусса . В отличие от некоторых других критериев удаления выбросов, метод Пирса можно применять для выявления двух или более выбросов.

«Предлагается определить в серии наблюдений — предел погрешности, за пределами которого все наблюдения, содержащие столь большую ошибку, могут быть отклонены, при условии, что их не менее такие наблюдения. Принцип, по которому предлагается решить эту задачу, состоит в том, что предлагаемые наблюдения следует отбрасывать, когда вероятность системы ошибок, полученной путем их сохранения, меньше, чем вероятность системы ошибок, полученной путем их отклонения, умноженной на вероятность делая так много, и не более, аномальных наблюдений». [ 2 ]

Хокинс [ 3 ] дает формулу критерия.

Критерий Пирса десятилетиями использовался в Береговой службе США. [ 4 ] которая была переименована в Береговую и геодезическую службу США в 1878 году:

«С 1852 по 1867 год он служил руководителем отдела определения долготы Береговой службы США, а с 1867 по 1874 год — суперинтендантом Службы. В течение этих лет его тест последовательно использовался всеми служащими этой, наиболее активной и математически развитой склонная статистическая организация эпохи». [ 1 ]

Критерий Пирса обсуждался в Уильяма Шовене . книге [ 2 ]

Приложения

[ редактировать ]

Применение критерия Пирса заключается в удалении плохих точек данных из пар наблюдений, чтобы выполнить регрессию между двумя наблюдениями (например, линейную регрессию). Критерий Пирса не зависит от данных наблюдения (только характеристики данных наблюдения), что делает его очень повторяемым процессом, который можно рассчитать независимо от других процессов. Эта особенность делает критерий Пирса для выявления выбросов идеальным для компьютерных приложений, поскольку его можно записать как функцию вызова.

Предыдущие попытки

[ редактировать ]

В 1855 году Б. А. Гулд попытался облегчить применение критерия Пирса, создав таблицы значений, представляющие значения из уравнений Пирса. [ 5 ] Между алгоритмом Гулда и практическим применением критерия Пирса все еще существует разрыв.

В 2003 году С.М. Росс (Университет Нью-Хейвена) повторно представил алгоритм Гулда (теперь называемый «методом Пирса») с новым примером набора данных и отработкой алгоритма. Эта методология по-прежнему опирается на использование справочных таблиц, которые были обновлены в этой работе (таблица критериев Пирса). [ 6 ]

В 2008 году попытку написать псевдокод предпринял датский геолог К. Томсен. [ 7 ] Хотя этот код обеспечивал некоторую основу для алгоритма Гулда, пользователям не удалось вычислить значения, сообщенные ни Пирсом, ни Гулдом.

В 2012 году К. Дардис выпустил пакет R «Пирс» с различными методологиями (критерий Пирса и метод Шовене) со сравнением удаления выбросов. Дардис и его коллега Саймон Мюллер успешно реализовали псевдокод Томсена в функции под названием «findx». Код представлен в разделе реализации R ниже. Ссылки на пакет R доступны в Интернете. [ 8 ] а также неопубликованный обзор результатов пакета R. [ 9 ]

В 2013 году пересмотр алгоритма Гулда и использование передовых программных модулей Python (например, numpy и scipy) позволили вычислить пороговые значения квадрата ошибки для выявления выбросов.

Реализация Python

[ редактировать ]

Чтобы использовать критерий Пирса, необходимо сначала понять входные и возвращаемые значения. Регрессионный анализ (или подгонка кривых к данным) приводит к остаточным ошибкам (или разнице между подобранной кривой и точками наблюдения). Следовательно, каждая точка наблюдения имеет остаточную ошибку, связанную с подобранной кривой. Если взять квадрат (т.е. остаточную ошибку, возведенную в степень двойки), остаточные ошибки выражаются как положительные значения. Если квадратичная ошибка слишком велика (т. е. из-за плохого наблюдения), это может вызвать проблемы с параметрами регрессии (например, наклоном и точкой пересечения для линейной кривой), полученными в результате аппроксимации кривой.

Идея Пирса заключалась в том, чтобы статистически определить то, что представляет собой ошибку, как «слишком большую» и, следовательно, идентифицированную как «выброс», который можно было бы удалить из наблюдений, чтобы улучшить соответствие между наблюдениями и кривой. К. Томсен определил, что для выполнения расчета необходимы три параметра: количество пар наблюдений (N), количество выбросов, которые необходимо удалить (n), и количество параметров регрессии (например, коэффициентов), используемых в кривой. фитинг для получения остатков (м). Конечным результатом этого процесса является вычисление порогового значения (квадратичной ошибки), при этом наблюдения с квадратичной ошибкой, меньшей этого порога, должны быть сохранены, а наблюдения с квадратичной ошибкой, большей, чем это значение, должны быть удалены (т. е. как выбросы). .

Поскольку критерий Пирса не принимает в качестве входных данных наблюдения, параметры аппроксимации или остаточные ошибки, выходные данные необходимо повторно связать с данными. Если взять среднее значение всех квадратов ошибок (т. е. среднеквадратическую ошибку) и умножить его на пороговую квадратичную ошибку (т. е. выходные данные этой функции), то получится пороговое значение для конкретных данных, используемое для выявления выбросов.

Следующий код Python возвращает значения x-квадрат для заданных N (первый столбец) и n (верхняя строка) в таблице 1 (m = 1) и таблице 2 (m = 2) Gould 1855. [ 5 ] Из-за итерационного метода Ньютона справочные таблицы, такие как N в зависимости от log Q (таблица III в Гулде, 1855 г.) и x в зависимости от log R (таблица III в Пирсе, 1852 г. и таблица IV в Гулде, 1855 г.), не являются больше не нужно.

#!/usr/bin/env python3
import numpy
import scipy.special

def peirce_dev(N: int, n: int, m: int) -> float:
    """Peirce's criterion
    
    Returns the squared threshold error deviation for outlier identification
    using Peirce's criterion based on Gould's methodology.
    
    Arguments:
        - int, total number of observations (N)
        - int, number of outliers to be removed (n)
        - int, number of model unknowns (m)
    Returns:
        float, squared error threshold (x2)
    """
    # Assign floats to input variables:
    N = float(N)
    n = float(n)
    m = float(m)

    # Check number of observations:
    if N > 1:
        # Calculate Q (Nth root of Gould's equation B):
        Q = (n ** (n / N) * (N - n) ** ((N - n) / N)) / N
        #
        # Initialize R values (as floats)
        r_new = 1.0
        r_old = 0.0  # <- Necessary to prompt while loop
        #
        # Start iteration to converge on R:
        while abs(r_new - r_old) > (N * 2.0e-16):
            # Calculate Lamda
            # (1/(N-n)th root of Gould's equation A'):
            ldiv = r_new ** n
            if ldiv == 0:
                ldiv = 1.0e-6
            Lamda = ((Q ** N) / (ldiv)) ** (1.0 / (N - n))
            # Calculate x-squared (Gould's equation C):
            x2 = 1.0 + (N - m - n) / n * (1.0 - Lamda ** 2.0)
            # If x2 goes negative, return 0:
            if x2 < 0:
                x2 = 0.0
                r_old = r_new
            else:
                # Use x-squared to update R (Gould's equation D):
                r_old = r_new
                r_new = numpy.exp((x2 - 1) / 2.0) * scipy.special.erfc(
                    numpy.sqrt(x2) / numpy.sqrt(2.0)
                )
    else:
        x2 = 0.0
    return x2
import org.apache.commons.math3.special.Erf;

public class PierceCriterion {

  /**
   * Peirce's criterion
   * <p>
   * Returns the squared threshold error deviation for outlier identification
   * using Peirce's criterion based on Gould's methodology.
   * <p>
   * Arguments:
   * - int, total number of observations (N)
   * - int, number of outliers to be removed (n)
   * - int, number of model unknowns (m)
   * Returns:
   * float, squared error threshold (x2)
   **/
  public static final double peirce_dev(double N, double n, double m) {
    // Check number of observations:
    double x2 = 0.0;
    if (N > 1) {
      // Calculate Q (Nth root of Gould 's equation B):
      double Q = (Math.pow(n, (n / N)) * Math.pow((N - n), ((N - n) / N))) / N;

      // Initialize R values(as floats)
      double r_new = 1.0;
      double r_old = 0.0;  // <-Necessary to prompt while loop

      // Start iteration to converge on R:
      while (Math.abs(r_new - r_old) > (N * 2.0e-16)) {
        // Calculate Lamda
        // (1 / (N - n) th root of Gould 's equation A'):
        double ldiv = Math.pow(r_new, n);
        if (ldiv == 0) {
          ldiv = 1.0e-6;
        }
        double Lamda = Math.pow((Math.pow(Q, N) / (ldiv)), (1.0 / (N - n)));
        // Calculate x -squared(Gould 's equation C):
        x2 = 1.0 + (N - m - n) / n * (1.0 - Math.pow(Lamda, 2.0));
        // If x2 goes negative, return 0:
        if (x2 < 0) {
          x2 = 0.0;
          r_old = r_new;
        } else {
          // Use x -squared to update R(Gould 's equation D):
          r_old = r_new;
          r_new = Math.exp((x2 - 1) / 2.0) * Erf.erfc(Math.sqrt(x2) / Math.sqrt(2.0));
        }
      }
    } else {
      x2 = 0.0;
    }
    return x2;
  }
}

реализация R

[ редактировать ]

Код Томсена был успешно записан в следующий вызов функции «findx» К. Дардисом и С. Мюллером в 2012 году, который возвращает максимальное отклонение ошибки: . В дополнение к коду Python, представленному в предыдущем разделе, здесь также представлен R-эквивалент «peirce_dev», который возвращает квадрат максимального отклонения ошибки, . Эти две функции возвращают эквивалентные значения либо путем возведения в квадрат значения, возвращенного функцией «findx», либо путем извлечения квадратного корня из значения, возвращенного функцией «peirce_dev». Различия возникают при обработке ошибок. Например, функция findx возвращает NaN для недопустимых данных, а функция peirce_dev возвращает 0 (что позволяет продолжить вычисления без дополнительной обработки значений NA). Кроме того, функция findx не поддерживает обработку ошибок, когда количество потенциальных выбросов увеличивается по мере увеличения количества наблюдений (выдает ошибку пропущенного значения и предупреждение NaN).

Как и в версии Python, квадрат ошибки (т. е. ), возвращаемое функцией «peirce_dev», необходимо умножить на среднеквадратическую ошибку подгонки модели, чтобы получить значение квадрата дельты (т. е. Δ2). Используйте Δ2, чтобы сравнить значения квадратов ошибок подгонки модели. Любые пары наблюдений с квадратичной ошибкой, превышающей Δ2, считаются выбросами и могут быть удалены из модели. Итератор должен быть написан для проверки возрастающих значений n до тех пор, пока количество выявленных выбросов (при сравнении Δ2 с квадратичными ошибками подбора модели) не станет меньше предполагаемого (т. е. n Пирса).

findx <- function(N, k, m) { 
  # method by K. Thomsen (2008)
  # written by C. Dardis and S. Muller (2012)
  # Available online: https://r-forge.r-project.org/R/?group_id=1473
  #
  # Variable definitions:
  # N :: number of observations
  # k :: number of potential outliers to be removed
  # m :: number of unknown quantities
  #
  # Requires the complementary error function, 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)
    #
    # Log of Gould's equation B:
    LnQN <- k * log(k) + (N - k) * log(N - k) - N * log(N)
    #
    # Gould's equation D:
    R1   <- exp((x^2 - 1)/2) * erfc(x/sqrt(2))
    #
    # Gould's equation A' solved for R w/ Lambda substitution:
    R2   <- exp( (LnQN - 0.5 * (N - k) * log((N-m-k*x^2)/(N-m-k)) )/k )
    #
    # Equate the two R equations:
    R1d  <- x * R1 - sqrt(2/pi/exp(1))
    R2d  <- x * (N - k)/(N - m - k * x^2) * R2
    #
    # Update x:
    oldx <- x
    x    <- oldx - (R1 - R2)/(R1d - R2d)
    #
    # Loop until convergence:
    while (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)
    }
  }
  return(x)
}
peirce_dev <- function(N, n, m) {
    # N :: total number of observations
    # n :: number of outliers to be removed
    # m :: number of model unknowns (e.g., regression parameters)
    #
    # Check number of observations:
    if (N > 1) {
       # Calculate Q (Nth root of Gould's equation B):
       Q = (n^(n/N) * (N-n)^((N-n)/N))/N
       #
       # Initialize R values:
       Rnew = 1.0
       Rold = 0.0  # <- Necessary to prompt while loop
       #
       while (abs(Rnew-Rold) > (N*2.0e-16)) {
           # Calculate Lamda (1/(N-n)th root of Gould's equation A'):
           ldiv = Rnew^n
           if (ldiv == 0) {
              ldiv = 1.0e-6
           }
           Lamda = ((Q^N)/(ldiv))^(1.0/(N-n))
           #
           # Calculate x-squared (Gould's equation C):
           x2 = 1.0 + (N-m-n)/n * (1.0-Lamda^2.0)
           #
           # If x2 goes negative, set equal to zero:
           if (x2 < 0) {
              x2 = 0
              Rold = Rnew
           } else {
              #
              # Use x-squared to update R (Gould's equation D):
              # NOTE: error function (erfc) is replaced with pnorm (Rbasic):
              # source: 
              # http://stat.ethz.ch/R-manual/R-patched/library/stats/html/Normal.html
              Rold = Rnew
              Rnew = exp((x2-1)/2.0)*(2*pnorm(sqrt(x2)/sqrt(2)*sqrt(2), lower=FALSE))
           }
       }
    } else {
       x2 = 0
    }
    x2
}

Примечания

[ редактировать ]
  1. ^ Перейти обратно: а б С. М. Стиглер, «Математическая статистика в ранних государствах», «Анналы статистики», т. 1, с. 6, нет. 2, с. 246, 1978. Доступно онлайн: https://www.jstor.org/stable/2958876 .
  2. ^ Перейти обратно: а б Цитируется в редакционной заметке на стр. 516 Собрания сочинений Пирса (издание 1982 г.). Цитата цитирует «Руководство по астрономии» (2:558) Шовене.
  3. ^ Д.М. Хокинс (1980). «Краткая ранняя история отклонения выбросов», «Идентификация выбросов» (монографии по прикладной вероятности и статистике). Чепмен и Холл, стр. 10.
  4. ^ Пирс (1878)
  5. ^ Перейти обратно: а б Гулд, Б.А., «О критерии Пирса для отклонения сомнительных наблюдений с таблицами, облегчающими его применение», Astronomical Journal , выпуск 83, том. 4, нет. 11, стр. 81–87, 1855. DOI: 10.1086/100480.
  6. ^ Росс, С.М., «Критерий Пирса для исключения подозрительных экспериментальных данных», Journal of Engineering Technology , vol. 2, нет. 2, стр. 1–12, 2003.
  7. ^ Томсен, К., «Тема: Вычислительные таблицы для использования с критерием Пирса - в 1855 и 2008 годах», The Math Forum @ Drexel, опубликовано 5 октября 2008 года. По состоянию на 15 июля 2013 года.
  8. ^ К. Дардис, «Пакет: Пирс», R-forge, доступ в Интернете: https://r-forge.r-project.org/scm/viewvc.php/*checkout*/pkg/Peirce/Peirce-manual. pdf?root=пирс
  9. ^ К. Дардис, «Критерий Пирса для отклонения ненормальных выбросов; определение диапазона применимости», Журнал статистического программного обеспечения (неопубликовано). Доступно онлайн: https://r-forge.r-project.org/scm/viewvc.php/*checkout*/pkg/Peirce/PeirceSub.pdf?root=peirce .
  • Пирс, Бенджамин , «Критерий отклонения сомнительных наблюдений» , Astronomical Journal II 45 (1852 г.) и исправления к оригинальной статье .
  • Пирс, Бенджамин (май 1877 – май 1878). «По критерию Пирса». Труды Американской академии искусств и наук . 13 : 348–351. дои : 10.2307/25138498 . JSTOR   25138498 .
  • Пирс, Чарльз Сандерс (1870) [опубликовано в 1873 году]. «Приложение № 21. К теории ошибок наблюдения». Отчет суперинтенданта береговой службы США, показывающий ход исследования в течение 1870 года : 200–224. . Электронная версия NOAA PDF (переходит к стр. 200 отчета, стр. 215 PDF-файла). Ссылки на годовые отчеты береговой и геодезической службы США за 1837–1965 годы .
  • Пирс, Чарльз Сандерс (1982). «К теории ошибок наблюдения». В Клозеле, Кристиан Дж.В.; и др. (ред.). Сочинения Чарльза С. Пирса: хронологическое издание . Том. 3, 1872–1878. Блумингтон, Индиана: Издательство Университета Индианы. стр. 140–160 . ISBN  0-253-37201-1 .
  • Росс, Стивен, «Критерий Пирса для исключения подозрительных экспериментальных данных», J. Engr. Технология , вып. 20 № 2, осень 2003 г. [1]
  • Стиглер, Стивен М. (март 1978 г.). «Математическая статистика в ранних государствах» . Анналы статистики . 6 (2): 239–265. дои : 10.1214/aos/1176344123 . JSTOR   2958876 . МР   0483118 .
  • Стиглер, Стивен М. (1980). «Математическая статистика в ранних государствах». ( Стивен М. Стиглер ред.). Американский вклад в математическую статистику в девятнадцатом веке, тома I и II . Том. Я. Нью-Йорк: Арно Пресс.
  • Стиглер, Стивен М. (1989). «Математическая статистика в ранних государствах». В Питере Дюрене (ред.). Век математики в Америке . Том. III. Провиденс, Род-Айленд: Американское математическое общество. стр. 537–564.
  • Хокинс, DM (1980). Выявление выбросов . Чепмен и Холл , Лондон. ISBN   0-412-21900-X
  • Шовене, В. (1876) Руководство по сферической и практической астрономии . Дж. Б. Липпинкотт, Филадельфия. (перепечатки различных изданий: Дувр, 1960; паб Питер Смит, 2000, ISBN   0-8446-1845-4 ; Адамант Медиа Корпорейшн (2 тома), 2001 г., ISBN   1-4021-7283-4 , ISBN   1-4212-7259-8 ; БиблиоБазар, 2009, ISBN   1-103-92942-9 )
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d27a258dd01c8305b4822982994bb2a7__1701642060
URL1:https://arc.ask3.ru/arc/aa/d2/a7/d27a258dd01c8305b4822982994bb2a7.html
Заголовок, (Title) документа по адресу, URL1:
Peirce's criterion - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)