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