![]() |
|
![]() ![]() ![]() |
|
KOLANICH |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 21.4.2010 Репутация: нет Всего: нет |
как посчитать отклонение от среднего арифметического не храня все значения
то есть есть поток из n значений (сначала поступает первое, затем второе, затем - третье и тд, но количество их заранее известно) нужно вычислить для каждого значения отклонение от среднего арифметического, возвести в квадрат и просуммировать сохранять все, а потом считать нельзя - их может быть ОЧЕНЬ МНОГО, памяти может не хватить также должна соблюдаться точность |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 7 Всего: 386 |
а каким образом предлагается узнать среднее арифметическое для первого элемента потока? ![]() Само среднее арифметическое несложно считать на лету, просто храня сумму всего потока и считая количество элементов потока. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
sQu1rr |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: нет Всего: 13 |
дисперсию считаете?
Помоему никак ![]() |
||||
|
|||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Из формулы-определения дисперсии D = 1/N*Sum ((Di - M)^2) легко выводится другая: D = 1/N*Sum (Di^2) - M^2, где Di - i-й элемент, M - среднее. Таким образом, если хранить 3 величины (сумму элементов, сумму их квадратов и количество), дисперсию можно считать на лету. -------------------- ... |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Среднее арифметическое для множества из одного элемента равно значению этого единственного элемента. Очевидно же. А отклонение в этом случае - нулевое. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: нет Всего: 13 |
||||
|
||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Правильно. Но не всего потока, который теоретически пройдёт через счётный механизм, а того, который УЖЕ прошёл. А если на данный момент прошёл только один элемент - то дисперсия считается для потока из 1 элемента. Когда поступит второй - она будет считаться для потока из 2 элементов... и так далее, пока не будет принят весь объём данных - и только тогда будет получено окончательное, а не промежуточное, значение.
![]() -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Подставь M в первую формулу, раскрой скобки и т.д. Это известная формула из теорвера или мат. статистики, уже не помню, где-то на втором курсе в приличном вузе должны проходить. -------------------- ... |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Earnest, давай попробуем на примере.
N=3 D(1)=1 D(2)=2 D(3)=3 M=(1+2+3)/3=2 1/(N*Sum(Di-M)^2) = 1/3*((1-2)^2+(2-2)^2+(3-2)^2)=1/(3*2)=1/6 1/(N*Sum (Di^2)) - M^2 = 1/(3*(1^2+2^2+3^2)) - 2^2 = 1/(3*14) - 4 = ну ни разу не 1/6... Может, ты имел в виду, что дисперсия равна разности квадрата матожидания и матожидания квадрата? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Так и результат ни разу ни 1/6.
В первой формуле ты чего-то того: сумма квадратов отклонений = 1/3 * ((1-2)^2 + (2-2)^2 + (3-2)^2) = 1/3 * (1+1) = 2/3. Как у тебя двойка в знаменатель попала, не пойму.
А я разве не это написала? -------------------- ... |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Хм... и правда, если присмотреться... но пока поймёшь... милль пардон. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
KOLANICH |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 21.4.2010 Репутация: нет Всего: нет |
всем спасибо
на другом форуме товарищ по никнейму val_nnm подсказал решение ![]() Это сообщение отредактировал(а) KOLANICH - 24.10.2011, 18:02 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
KOLANICH, Это абсолютно то же, что тебе сказала Earnest.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
KOLANICH |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 21.4.2010 Репутация: нет Всего: нет |
DELETED
Это сообщение отредактировал(а) KOLANICH - 24.10.2011, 22:47 |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Но, надо понимать, дисперсия каждый раз будет считаться для выборки разной величины (увеличивающейся с каждым шагом на единицу). Впрочем, если в потоке данных нет дрифта (постепенного законопмерного изменения величин и/или закона их рассеяния), то где-то после 50-й точки все выйдет на более-менее достоверную постоянную величину. В других же случаях, похоже, без двух проходов через данные не обойтись. ЗЫ: Помнится когда-то для чего-то подобного мы считали статистические характеристики не для всего потока, а только для последних N точек (штук 100-200 брали - с запасом, если правильно помню). -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |