Какова разница?
Дисперсия — это способ узнать, насколько ваши данные отклоняются от среднего значения (наиболее вероятного ожидаемого значения ваших данных).
Когда вам нужно вычислить его в режиме реального времени?
Один из случаев: вы получаете на вход поток значений и не хотите резервировать память под этот ввод. В то же время вам нужно вычислить их дисперсию; для обнаружения выбросов/шума или для принятия решения, когда значения начинают внезапно уменьшаться (или внезапно увеличиваться) (последний случай часто встречается в здравоохранении).
Как тогда можно вычислить дисперсию, не сохраняя данные в памяти?
Давайте сначала вспомним, как мы вычисляем дисперсию обычным способом (в случае, если вы можете сохранить данные в памяти).
Чтобы вычислить дисперсию набора данных, нужно вычислить 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)