Spec-Zone.ru › Nim 1

stats

Статистическая платформа для выполнения базового статистического анализа данных. Данные анализируются за один проход, когда значение данных передается объектам RunningStat или RunningRegress

RunningStat рассчитывается для одного набора данных

  • n (количество данных)
  • min (наименьшее значение)
  • max (наибольшее значение)
  • сумма
  • среднее
  • дисперсия
  • varianceS (дисперсия выборки)
  • стандартное отклонение
  • стандартное отклонение выборки (стандартное отклонение выборки)
  • асимметрия (третий статистический момент)
  • эксцесс (четвертый статистический момент)

RunningRegress рассчитывается для двух наборов данных

  • n
  • наклон
  • перехват
  • корреляция

Предоставлены процедуры для расчета статистических данных по массивам и последовательностям.

Однако, если требуется более одной статистической вычисления, более эффективно передать данные один раз в объект RunningStat и вызвать многочисленные статистические процедуры для объекта RunningStat.

var rs: RunningStat
rs.push(MySeqOfData)
rs.mean()
rs.variance()
rs.skewness()
rs.kurtosis()

Пример:

static:
  block:
    var statistics: RunningStat  ## Must be "var"
    statistics.push(@[1.0, 2.0, 1.0, 4.0, 1.0, 4.0, 1.0, 2.0])
    doAssert statistics.n == 8
    template `===`(a, b: float): bool = (abs(a - b) < 1e-9)
    doAssert statistics.mean() === 2.0
    doAssert statistics.variance() === 1.5
    doAssert statistics.varianceS() === 1.714285714285715
    doAssert statistics.skewness() === 0.8164965809277261
    doAssert statistics.skewnessS() === 1.018350154434631
    doAssert statistics.kurtosis() === -1.0
    doAssert statistics.kurtosisS() === -0.7000000000000008

Импорты

math

Типы

RunningStat = object
  n*: int                    ## number of pushed data
  min*, max*, sum*: float    ## self-explaining
  mom1, mom2, mom3, mom4: float ## statistical moments, mom1 is mean
накопитель статистических данных Исходный код Изменить
RunningRegress = object
  n*: int                    ## number of pushed data
  x_stats*: RunningStat      ## stats for first set of data
  y_stats*: RunningStat      ## stats for second set of data
  s_xy: float                ## accumulated data for combined xy
накопитель для расчетов регрессии Исходный код Изменить

Процедуры

proc clear(s: var RunningStat) {...}{.raises: [], tags: [].}
сбросить s Исходный код Редактировать
proc push(s: var RunningStat; x: float) {...}{.raises: [], tags: [].}
добавляет значение x для обработки Исходный код Редактировать
proc push(s: var RunningStat; x: int) {...}{.raises: [], tags: [].}

добавляет значение x для обработки.

x просто преобразуется в float и вызывается другая операция добавления.

Исходный код Редактировать
proc push(s: var RunningStat; x: openArray[float | int])

добавляет все значения x для обработки.

Целочисленные значения x просто преобразуются в float и вызывается другая операция добавления.

Исходный код Редактировать
proc mean(s: RunningStat): float {...}{.raises: [], tags: [].}
вычисляет текущее среднее значение s Исходный код Редактировать
proc variance(s: RunningStat): float {...}{.raises: [], tags: [].}
вычисляет текущую дисперсию генеральной совокупности s Исходный код Редактировать
proc varianceS(s: RunningStat): float {...}{.raises: [], tags: [].}
вычисляет текущую выборочную дисперсию s Исходный код Редактировать
proc standardDeviation(s: RunningStat): float {...}{.raises: [], tags: [].}
вычисляет текущее среднее квадратическое отклонение генеральной совокупности s Исходный код Редактировать
proc standardDeviationS(s: RunningStat): float {...}{.raises: [], tags: [].}
вычисляет текущее среднее квадратическое отклонение выборки s Исходный код Редактировать
proc skewness(s: RunningStat): float {...}{.raises: [], tags: [].}
вычисляет текущий коэффициент асимметрии генеральной совокупности s Исходный код Редактировать
proc skewnessS(s: RunningStat): float {...}{.raises: [], tags: [].}
вычисляет текущий коэффициент асимметрии выборки s Исходный код Редактировать
proc kurtosis(s: RunningStat): float {...}{.raises: [], tags: [].}
вычисляет текущий эксцесс генеральной совокупности s Исходный код Редактировать
proc kurtosisS(s: RunningStat): float {...}{.raises: [], tags: [].}
вычисляет текущий эксцесс выборки s Исходный код Редактировать
proc `+`(a, b: RunningStat): RunningStat {...}{.raises: [], tags: [].}

объединяет два объекта RunningStats.

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

Исходный код Редактировать
proc `+=`(a: var RunningStat; b: RunningStat) {...}{.inline, raises: [], tags: [].}
добавляет второй RunningStats b к a Исходный код Редактировать
proc `$`(a: RunningStat): string {...}{.raises: [], tags: [].}
генерирует строковое представление объекта RunningStat. Точный формат в настоящее время не определен и может быть изменен. В настоящее время он содержит:
  • количество проб
  • минимальное и максимальное значения
  • сумму, среднее значение и стандартное отклонение.
Исходный код Редактировать
proc mean[T](x: openArray[T]): float
вычисляет среднее значение x Исходный код Редактировать
proc variance[T](x: openArray[T]): float
вычисляет дисперсию генеральной совокупности x Исходный код Редактировать
proc varianceS[T](x: openArray[T]): float
вычисляет выборочную дисперсию x Исходный код Редактировать
proc standardDeviation[T](x: openArray[T]): float
вычисляет среднее квадратическое отклонение генеральной совокупности x Исходный код Редактировать
proc standardDeviationS[T](x: openArray[T]): float
вычисляет среднее квадратическое отклонение выборки x Исходный код Редактировать
proc skewness[T](x: openArray[T]): float
вычисляет коэффициент асимметрии генеральной совокупности x Исходный код Редактировать
proc skewnessS[T](x: openArray[T]): float
вычисляет коэффициент асимметрии выборки x Исходный код Редактировать
proc kurtosis[T](x: openArray[T]): float
вычисляет эксцесс генеральной совокупности x Исходный код Редактировать
proc kurtosisS[T](x: openArray[T]): float
вычисляет эксцесс выборки x Исходный код Редактировать
proc clear(r: var RunningRegress) {...}{.raises: [], tags: [].}
сбросить r Исходный код Редактировать
proc push(r: var RunningRegress; x, y: float) {...}{.raises: [], tags: [].}
добавляет два значения x и y для обработки Исходный код Редактировать
proc push(r: var RunningRegress; x, y: int) {...}{.inline, raises: [], tags: [].}

добавляет два значения x и y для обработки.

x и y преобразуются в float и вызывается другая операция добавления.

Исходный код Редактировать
proc push(r: var RunningRegress; x, y: openArray[float | int])
добавляет два набора значений x и y для обработки. Исходный код Редактировать
proc slope(r: RunningRegress): float {...}{.raises: [], tags: [].}
вычисляет текущий наклон r Исходный код Редактировать
proc intercept(r: RunningRegress): float {...}{.raises: [], tags: [].}
вычисляет текущий свободный член r Исходный код Редактировать
proc correlation(r: RunningRegress): float {...}{.raises: [], tags: [].}
вычисляет текущую корреляцию двух наборов данных, добавленных в r Исходный код Редактировать
proc `+`(a, b: RunningRegress): RunningRegress {...}{.raises: [], tags: [].}

объединяет два объекта RunningRegress.

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

Исходный код Редактировать
proc `+=`(a: var RunningRegress; b: RunningRegress) {...}{.raises: [], tags: [].}
добавляет RunningRegress b к a Исходный код Редактировать

© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/stats.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API