Какова разница?

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

Когда вам нужно вычислить его в режиме реального времени?

Один из случаев: вы получаете на вход поток значений и не хотите резервировать память под этот ввод. В то же время вам нужно вычислить их дисперсию; для обнаружения выбросов/шума или для принятия решения, когда значения начинают внезапно уменьшаться (или внезапно увеличиваться) (последний случай часто встречается в здравоохранении).

Как тогда можно вычислить дисперсию, не сохраняя данные в памяти?

Давайте сначала вспомним, как мы вычисляем дисперсию обычным способом (в случае, если вы можете сохранить данные в памяти).

Чтобы вычислить дисперсию набора данных, нужно вычислить Mean, а затем вычислить среднее квадратное расстояние между точками данных и средним значением.

Результатом этого уравнения является оценка — оценка Монте-Карло — дисперсии (поскольку у вас нет доступа ко всей совокупности, вы не можете получить доступ ко всем возможным выборкам ваших данных). И забавный факт, что этот способ оценки дисперсии немного предвзят :))
Примечание: тема смещения выходит за рамки этого поста, но я напишу позже подробный сообщение о том, почему эта оценка необъективна :)
Примечание 2
. Необоснованную оценку можно получить, используя 1/(n-1) вместо 1/n , хотя, если у вас достаточно точки данных, вы получите тот же результат, независимо от того, использовали ли вы 1/n или 1/(n-1).

Но давайте пока предположим, что это способ, который мы будем использовать для вычисления дисперсии — если у нас есть возможность сохранить данные в памяти — .

Для вычисления среднего значения обычным способом необходимо суммировать все точки данных, а затем разделить на их общее количество.
Примечание: этот способ также является оценкой среднего значения по методу Монте-Карло, и он точность зависит от количества точек данных, которые у вас есть.

Версия вычисления среднего значения без памяти — это то, что в статистике называется экспоненциально взвешенным скользящим средним!

Где вы вычисляете гладкое среднее значение в реальном времени, используя скользящее окно любого размера, и у вас есть переменная, которая вычисляет среднее значение подмножества выборок внутри этого окна в реальном времени. Таким образом, этот метод приводит к усреднению последней точки данных, которая соответствует этому размеру окна. Таким образом, это также оценка среднего значения.

Где размер вычисляемой подвыборки внутри скользящего окна равен 1/(1-бета). Таким образом, вы получаете оценку среднего значения данных в режиме реального времени, без необходимости памяти для сохранения даты.

Примечание, о котором стоит здесь упомянуть!

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

А что тогда с Variance без памяти?

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

Поскольку E (X + Y) = E (X) + E (Y) (линейность ожидания)

в то время как E (XY) = E (X) E (Y) (ожидание продукта)

Поскольку E(constant) = эта константа, а E[x] и E[x]² вернутся в константу

Что можно оценить с помощью оценки Монте-Карло следующим образом:

Теперь мы можем использовать метод Экспоненциально взвешенное скользящее среднее для вычисления дисперсии, как экспоненциально взвешенноескользящее среднее квадрата точек данных минус квадрат экспоненциально взвешенногоСкользящее среднее точек данных:

Вы можете увидеть подробный код, который я реализовал, для экспоненциально взвешенной движущейся дисперсии: https://github.com/baraaHassan/Machine-Learning-Self-Implemented- Идеи/blob/main/Moving%20Variance.py

Ссылки:
1. Эндрю Н.Г.: Экспоненциально взвешенные средние значения (C2W2L03)(https://www.youtube.com/watch?v=lAq96T8FkTw)

2. Эндрю Н.Г.: Коррекция смещения экспоненциально взвешенных средних (C2W2L05) (https://www.youtube.com/watch?v=lWzo8CajF5s)